5 zufalls LED´s leuchten lassen

Ich hab nun meinen Arduino Uno erhalten und sofort losgebastelt, so weit, so gut.

Nun wollte ich 5 LED´s zufällig leuchten lassen aber das geht irgendwie nicht.
Ich bin ein neuling im Programmieren also bitte nicht wundern warum mein Code so ist wie er ist :slight_smile:

int ran1 = random(1, 2);
int ran2 = random(1, 2);
int ran3 = random(1, 2);
int ran4 = random(1, 2);
int ran5 = random(1, 2);
int led1 = 0;
int led2 = 1;
int led3 = 2;
int led4 = 3;
int led5 = 4;


void setup() {                
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
}
void loop() {
  if (ran1 = 2);
    digitalWrite(led1, HIGH);
  if (ran2 = 2);
    digitalWrite(led2, HIGH);
  if (ran3 = 2);
    digitalWrite(led3, HIGH);
  if (ran4 = 2);
    digitalWrite(led4, HIGH);
  if (ran5 = 2);
    digitalWrite(led5, HIGH);
  delay(1000);

  
}

das Ergbnis des Codes sind immer 5 dauernd leuchtende LED´s.
Könnt ihr mir da weiterhelfen?

Du darfst deine if-Anweisungen nicht mit einem Semikolon abschließen.
Soll das Zufallsmuster nur einmal beim Start generiert werden oder soll es sich im Sekundentakt ändern (wg. der Verwendung des delay im Code)?

Ausserdem meinst du

  if (ran1 == 2)  // Vergleiche mit == , Zuweisung mit =

Weiterhin werden sich die LEDs nie verändern, da Du nur einmal beim deklarieren der Variablen die Werte zufällig setzt, aber nicht mehr in der loop().
Erschwerend kommt hinzu, das der zweite Wert bei random(min,max) exklusive ist. EIn random(1,2) liefert immer eine 1.
Siehe auch:
http://arduino.cc/en/Reference/Random#.Uxh6FV78-X0

Mario.

ok, danke

hab vergessen das mit der if anweisung mit semikolon und dass "=="

ok jetzt läuft es so wie ich will:

int led1 = 3;
int led2 = 4;
int led3 = 5;
int led4 = 6;
int led5 = 7;

void setup() {                
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
}
void loop() {
  if (random(100) < 50)
    digitalWrite(led1, HIGH);
  else 
    digitalWrite(led1, LOW);
  if (random(100) < 50)
    digitalWrite(led2, HIGH);
  else 
    digitalWrite(led2, LOW);
  if (random(100) < 50)
    digitalWrite(led3, HIGH);
  else 
    digitalWrite(led3, LOW);
  if (random(100) < 50)
    digitalWrite(led4, HIGH);
  else 
    digitalWrite(led4, LOW);
  if (random(100) < 50)
    digitalWrite(led5, HIGH);
  else 
    digitalWrite(led5, LOW);
  delay(1000);
 
}
1 Like

Glückwunsch.
Und selber hinbekommen. Das macht es sogar noch besser.
Viel Spaß beim weiter basteln.
Mario.

Einen weiteren Fehler hast Du auch entfernt ohne daß wir was sagen mußten.
Die Pins 0 und 1 werden für die USB-Schnittstelle verwendet. Darum solltest Du sie nicht verwenden da ansonsten das Upload des Sketches nicht funktionieren kann.
grüße Uwe