Baš sam se pitao hoće li netko pisati u ovo praznično vrijeme kad mi je na pamet palo nešto prikladno. Igrao sam se s generatorom slučanjnih brojeva a kako kod računala ništa nije slučajno, odlučio sam provjeriti kako to izgleda u praksi. Da ne duljim, napravio sam mali program koji metodom slučajnih brojeva mijenja boje na RGB ledici. Boje su odabrane tako da simuliraju plamen svijeće. Poigrao sam se s bojama ali i pauzama između promjena. Sve u svemu jednostavno, ali za realan rezultat treba se poigrati. Shema je jednostavna, PWM izlaze sam preko otpornika 220 ohma spojio s RGB nožicama LEDice i to je to. Ostalo je odradio generator slučajnih brojeva i analogWrite(). Od zanimljivosti treba spomenuti da prije upotrebe funkcije random() treba odrediti konstantu koju ta funkcija koristi. Za to sam iskoristio analogni ulaz koji nije spojen, ali baš zato njegova vrijednost može varirati, pa je to onda dobar predložak da bude što bliže slučajnosti.
Evo programa.
Kod: Označite sve
#define red 6
#define blue 9
#define green 10
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(red,OUTPUT);
pinMode(blue,OUTPUT);
pinMode(green,OUTPUT);
randomSeed(analogRead(0));
}
void loop() {
analogWrite(red,(byte)random(50,256));
analogWrite(green,(byte)random(128,256));
analogWrite(blue,(byte)random(0,5));
delay(random(100,300));
//možda ako se nakratko i potpuno ugasi
/*analogWrite(red,0);
analogWrite(green,0);
analogWrite(blue,0);
delay(random(0,20));*/
}

I to je to, poigrajte se.
Pozdrav, Domagoj