Go Down

Topic: Mithilfe serieller Schnittstelle LEDs zum leuchten bringen?! (Read 124 times) previous topic - next topic

ProgoX

Hallo zusammen!

Für ein Projekt im Betrieb soll ich mithilfe einer seriellen Schnittstelle(USB) über den Arduino 4 LEDs steuern können.

Das Prinzip soll folgendermaßen funktionieren:

Das Programm gibt eine "1" aus, damit soll die LED1 angeschaltet werden.
Wenn nun erneut eine "1" gesendet wird, soll die LED1 ausgeschaltet werden.

Das selbe Prinzip soll genauso für "2"-"4" funktionieren.

Meinen bisherigen Versuch habe ich leider auf dem Firmenpc und kann es gerade nicht mitposten.


Habt ihr eine Idee, wie ich es, möglichst einfach, lösen kann?


Gruß

ProgoX

Whandall

Einfach und nicht besonders elegant, sollte aber tun was du verlangst (nur übersetzt, nicht getestet).
Code: [Select]
const byte led1 = 2;
const byte led2 = 3;
const byte led3 = 4;
const byte led4 = 5;

void setup() {
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  Serial.begin(115200);
}

void loop() {
  if (Serial.available()) {
    switch (Serial.read()) {
      case '1': digitalWrite(led1, !digitalRead(led1)); break;
      case '2': digitalWrite(led2, !digitalRead(led2)); break;
      case '3': digitalWrite(led3, !digitalRead(led3)); break;
      case '4': digitalWrite(led4, !digitalRead(led4)); break;
    }
  }
}
Ah, this is obviously some strange usage of the word 'safe' that I wasn't previously aware of. (D.Adams)

ProgoX

Danke Whandall!

Der Code funktioniert einwandfrei!
Jetzt habe ich auch noch eine neue Funktion gelernt!
Von SwitchCase habe ich vorher noch nicht gehört.

Kannst du mir das mit dem Toggeln der LEDs noch näher erklären?

Serenifly

switch/case ist nur eine andere Schreibweise für if/else if

Code: [Select]

digitalWrite(led1, !digitalRead(led1));

Pin auslesen. Zustand invertieren. Pin setzten.

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy