Skocz do zawartości

Losowe włączanie diod LED


Wyboroff

Pomocna odpowiedź

Cześć!

Zrobiłem lampkę składającą się z 12 diod. Każdą osobno podłączyłem do arduino nano żeby sterować nimi osobno. Chciałem żeby dane diody się losowo włączały więc napisałem kod który generuje losowe liczby od 0 do 1000, na różne liczby z danego przedziału mają się włączać różne tryby. I tu pojawia się problem po wgraniu kodu (tego poniżej) zapala się jeden tryb świecenia i się nie zmienia.

int x = 0;

void setup() {
 pinMode(2, OUTPUT);
 pinMode(3, OUTPUT);
 pinMode(4, OUTPUT);
 pinMode(5, OUTPUT);
 pinMode(6, OUTPUT);
 pinMode(7, OUTPUT);
 pinMode(8, OUTPUT);
 pinMode(9, OUTPUT);
 pinMode(10, OUTPUT);
 pinMode(11, OUTPUT);
 pinMode(12, OUTPUT);

 Serial.begin(9600);
 randomSeed(analogRead(A0));




}
void loop() {

x = random(0, 1001);
delay(1000);
Serial.println(x);
 if(x>10) {
     digitalWrite(2, 1);
     digitalWrite(3, 0);
     digitalWrite(4, 1);
     digitalWrite(5, 0);
     digitalWrite(6, 0);
     digitalWrite(7, 0);
     digitalWrite(8, 1);
     digitalWrite(9, 0);
     digitalWrite(10, 1);
     digitalWrite(11, 0);
     digitalWrite(12, 0);
 }
  else if(x<10 && x>100) {
     digitalWrite(2, 0);
     digitalWrite(3, 1);
     digitalWrite(4, 0);
     digitalWrite(5, 1);
     digitalWrite(6, 0);
     digitalWrite(7, 1);
     digitalWrite(8, 0);
     digitalWrite(9, 1);
     digitalWrite(10, 0);
     digitalWrite(11, 1);
     digitalWrite(12, 0);
    }
  else if(x<100 && x> 300) {
     digitalWrite(2, 0);
     digitalWrite(3, 1);
     digitalWrite(4, 1);
     digitalWrite(5, 0);
     digitalWrite(6, 0);
     digitalWrite(7, 1);
     digitalWrite(8, 1);
     digitalWrite(9, 0);
     digitalWrite(10, 0);
     digitalWrite(11, 0);
     digitalWrite(12, 1);
   }
  else if(x<300 && x>500) {

     digitalWrite(2, 1);
     digitalWrite(3, 0);
     digitalWrite(4, 1);
     digitalWrite(5, 0);
     digitalWrite(6, 1);
     digitalWrite(7, 0);
     digitalWrite(8, 1);
     digitalWrite(9, 0);
     digitalWrite(10, 1);
     digitalWrite(11, 1);
     digitalWrite(12, 1);
   }
    else if(x<500 && x>800) {
     digitalWrite(2, 0);
     digitalWrite(3, 0);
     digitalWrite(4, 1);
     digitalWrite(5, 0);
     digitalWrite(6, 1);
     digitalWrite(7, 0);
     digitalWrite(8, 1);
     digitalWrite(9, 0);
     digitalWrite(10, 1);
     digitalWrite(11, 0);
     digitalWrite(12, 0);
     }
   else if(x<800 && x>1000) {
     digitalWrite(2, 1);
     digitalWrite(3, 1);
     digitalWrite(4, 1);
     digitalWrite(5, 1);
     digitalWrite(6, 1);
     digitalWrite(7, 1);
     digitalWrite(8, 1);
     digitalWrite(9, 1);
     digitalWrite(10, 1);
     digitalWrite(11, 1);
     digitalWrite(12, 1);
     }
 }

Jako że nie jestem wprawiony w programowanie proszę na pokazaniu mi gdzie leży błąd, nie chcę gotowego rozwiązania. 🙂

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.