Im Arduino Prgramm mehrere LEDs gleichzeitig ansteuern?

2 Antworten

Wenn du willst, dass "gleichzeitig" mehrere Sachen passieren darfst du die delay() Funktion erst gar nicht anrühren. Du musst vielmehr mit Zeitenpunkten wie z.B. millis() (Zeit in ms seit Programmstart) arbeiten. Dann vergleichst du eben jeweils die gespeicherte mit der aktuellen und, wenn deine Bedingungen zutreffen, schaltest du was du willst. Eigentlich relativ simpel. Du musst dir nur im Klaren darüber sein, dass dein Arduino Mirkrocontroller eben zyklisch arbeitet.

Woher ich das weiß:Studium / Ausbildung – Elektrotechnik Student

soloflightx 
Beitragsersteller
 04.04.2018, 20:35

Also meine eigentliche Frage ist wie ich es hinbekomme verschiedene LEDs anzusteuern das heißt : Pin D2

1000 blink

100 blink

1000 blink usw

Pin D10:

2000 blink

30 blink

2000 blink

usw.

soloflightx 
Beitragsersteller
 04.04.2018, 20:32

Also das bedeutet das dieses Sketch falsch ist oder?

void setup()

{

 for (int n = 0; n < 14; n++) {

   pinMode(n, OUTPUT);

 }

}

void loop()

{

 for (int n = 0; n < 4; n++) {

   digitalWrite(n, !digitalRead(n));

 }

 delay(1000);

 for (int n = 5; n < 7; n++) {

   digitalWrite(n, !digitalRead(n));

 }

 delay(100);

}

Julian2T  04.04.2018, 20:35
@soloflightx

Du hast im setup() definiert, dass Pin 0-14 jeweils ein OUTPUT ist. Damit wird dir digitalRead() niemals brauchbare Werte zurückgeben.

Bitte ...

const int FAST_BLINK_INTERVALL = 100;
const int SLOW_BLINK_INTERVALL = 1000;

unsigned long aFastBlinkTime;
unsigned long aSlowBlinkTime;

void setup()
{
  for (int n = 0; n < 8; n++) {
    pinMode(n, OUTPUT);
  }
}

void loop()
{
  if (millis() - aSlowBlinkTime > SLOW_BLINK_INTERVALL) {
    for (int n = 0; n < 5; n++) {
      digitalWrite(n, !digitalRead(n));
    }
    aSlowBlinkTime = millis();
  }

  if (millis() - aFastBlinkTime > FAST_BLINK_INTERVALL) {
    for (int n = 5; n < 8; n++) {
      digitalWrite(n, !digitalRead(n));
    }
    aFastBlinkTime = millis();
  }
}



soloflightx 
Beitragsersteller
 04.04.2018, 22:44

Nochmal kurz ne frage ich möchte auch die die Leds zwichen pin 0 und 4 1190milisekunden LOW sind und dann wieder 50milisekunden HIGH sind. Das bekomme ich irgendwie nicht mit diesem Sketch hin :(