void setup() { for ( int i = 1; i <= 18; i++ ) pinMode(i, OUTPUT); } void loop() { for ( int i = 1; i <= 18; i++ ) { digitalWrite(i, HIGH); delay(80); digitalWrite(i, LOW); delay(80); } }
Op de foto's is helaas niet goed te zien hoe mooi het er in werkelijk uit ziet.
// ledSnoer.ino // auteur: Th.M. Hupkens const int Max = 18; // Zet hier jouw aantal gebruikte pinnen (volgorde: D0 t/m D13 en dan A0 t/m A5) void setup() { for ( int i = 1; i <= Max; i++ ) pinMode(i, OUTPUT); } void loop() { // haal bij EEN van de functies // weg // ketting(); // heenenweer(); // willekeurig(); // aantalAan(3); // Kies niet hoger dan MAX! // worm(); // binaireteller(); } void ketting() { for ( int i = 1; i <= Max; i++ ) { digitalWrite(i, HIGH); delay(60); digitalWrite(i, LOW); delay(60); } } void heenenweer() { for ( int i = 1; i <= Max; i++ ) { digitalWrite(i, HIGH); delay(60); digitalWrite(i, LOW); delay(60); } for ( int i = Max - 1; i > 1; i-- ) { digitalWrite(i, HIGH); delay(60); digitalWrite(i, LOW); delay(60); } } void willekeurig() { int i = 1 + random(18); digitalWrite(i, HIGH); delay(60); digitalWrite(i, LOW); delay(60); } void aantalAan(int aantal) { int k, leds[Max]; for ( int i = 0; i < Max; i++ ) leds[i] = 0; leds[random(18)] = 1; for ( int i = 1; i < aantal; i++ ) { do k = random(18); while (leds[k] == 1); leds[k] = 1; } for ( int i = 0; i < Max; i++ ) if (leds[i] == 1) digitalWrite(i + 1, HIGH); else digitalWrite(i + 1, LOW); delay(100); // Door traagheid oog lijkt het of er meer ledjes branden for ( int i = 0; i < Max; i++ ) if (leds[i] == 1) digitalWrite(i + 1, LOW); } void worm() { for ( int i = 1; i <= Max + 1; i++ ) for ( int t = 0; t < 200; t++ ) { if (i <= Max) if (t & 11) digitalWrite(i, LOW); else digitalWrite(i, HIGH); if (i + 1 <= Max) if (t & 1) digitalWrite(i + 1, LOW); else digitalWrite(i + 1, HIGH); if (i + 2 <= Max) digitalWrite(i + 2, HIGH); if (i + 3 <= Max) if (t & 1) digitalWrite(i + 3, LOW); else digitalWrite(i + 3, HIGH); if (i + 4 <= Max) if (t & 11) digitalWrite(i + 4, LOW); else digitalWrite(i + 4, HIGH); delayMicroseconds(650); for (int j = i; j < i + 5; j++) if (j <= Max) digitalWrite(j, LOW); } } void binaireteller() { for ( unsigned int i = 0; i < 4095; i++) { // 4095 is meer dan genoeg! for ( unsigned int j = 0; j <= 15; j++ ) { if ((1 << j & i)) digitalWrite(Max - j, HIGH); else digitalWrite(Max - j, LOW); // minst belangrijk bit staat rechts } delay(300); } delay(2000); }