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.
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
Yorum Gönder