Arduino Random RGB LED

Arduino ile random çalışan RGB LED uygulaması yapalım.
Piyasadaki 4 bacaklı RGB LED'ler ya ortak anotlu ya da ortak katotlu.
Arduino Uno için:

R (red) bacağını 9 nolu pine
G (green) bacağını 10 nolu pine
B (blue) bacağını 11 nolu pine bağlayın.
RGB LED ortak katotluysa ortak ucunu gnd'ye 1K direnç ile bağlayınız.
RGB LED ortak anotluysa ortak ucunu +5 volt'a 1K direnç ile bağlayınız.

Arduino Ide Kodları (1) :

// Random RGB LED Uygulaması 1
// kodlagitsin.blogspot.com
// RGB LED ortak katotluysa ortak ucunu gnd'ye 1K direnç ile bağlayınız.
// RGB LED ortak anotluysa ortak ucunu +5 volt'a 1K direnç ile bağlayınız.

  int kirmiziPin = 9;
  int yesilPin = 10;
  int maviPin = 11;
  
void setup()
  pinMode(kirmiziPin, OUTPUT); 
  pinMode(yesilPin, OUTPUT); 
  pinMode(maviPin, OUTPUT);
  }
               
  void loop()
  { 
    renkAyarla(random(0,255), random(0,255), random(0,255));
 delay(5000); // renk süreleri için bu değeri oynayın
  }

   void renkAyarla(int kirmizi, int yesil, int mavi)
  { 
    kirmizi=255-kirmizi;
    
    yesil=255-yesil;
    mavi=255-mavi;
    analogWrite(kirmiziPin,kirmizi);
    analogWrite(yesilPin,yesil);
    analogWrite(maviPin,mavi);
  }



Aynı kodun daha kısaltılmış hali:
Arduino Ide Kodları (2) :

// Random RGB LED Uygulaması 2
// kodlagitsin.blogspot.com
// RGB LED ortak katotluysa ortak ucunu gnd'ye 1K direnç ile bağlayınız.
// RGB LED ortak anotluysa ortak ucunu +5 volt'a 1K dirnç ile bağlayınız.

  int kirmiziPin = 9;
  int yesilPin = 10;
  int maviPin = 11;
  
void setup()
  pinMode(kirmiziPin, OUTPUT); 
  pinMode(yesilPin, OUTPUT); 
  pinMode(maviPin, OUTPUT);
  }
               
  void loop()
  {   
   analogWrite(kirmiziPin,random(0,255));
   analogWrite(yesilPin,random(0,255));
   analogWrite(maviPin,random(0,255));
   delay(250);
  }


Aşağıdaki kod da www.superkahraman.com adresinden güzel bir çalışma. Renk geçişleri daha yumuşak.
Arduino Ide Kodları (3) :

// Random RGB LED Uygulaması 3
// RGB Led Fader with Random Colours
// Kaynak: https://www.superkahraman.com/arduino-rgb-led-fader-random-colours/
// kodlagitsin.blogspot.com
// RGB LED ortak katotluysa ortak ucunu gnd'ye 1K direnç ile bağlayınız.
// RGB LED ortak anotluysa ortak ucunu +5 volt'a 1K dirnç ile bağlayınız.
  
#include <EEPROM.h>
int randNumber;

int redNew;
int greenNew; 
int blueNew;

int redTemp;
int greenTemp;
int blueTemp;

bool isCycle = false;

const int redPin = 9;
const int greenPin = 10;
const int bluePin = 11;


void setup(){
  randomSeed(analogRead(0));
}

void loop() {
 cycleColour();
 delay(100); 
}

void cycleColour() {

  if(isCycle == false)
  {
    redNew = random(255);
    greenNew = random(255); 
    blueNew = random(255);
    isCycle = true;
  }
  while(isCycle == true) {
    if(redTemp < redNew) redTemp++; 
    if(redTemp > redNew) redTemp--;
    if(greenTemp < greenNew) greenTemp++; 
    if(greenTemp > greenNew) greenTemp--;
    if(blueTemp < blueNew) blueTemp++; 
    if(blueTemp > blueNew) blueTemp--;
    setColourRgb(redTemp,greenTemp,blueTemp);
    if(redTemp == redNew && 
       greenTemp == greenNew && 
       blueTemp == blueNew) isCycle = false;
    delay(4);
  }
}

void setColourRgb(int red, int green, int blue) {
  analogWrite(redPin, red);
  analogWrite(greenPin, green);
  analogWrite(bluePin, blue);
}

KULLANILAN PROGRAMLAYICI: Arduino 1.8.10  


Yorumlar