Arduino-Programmierung: Denkfehler?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Tausch mal den 5V-Anschluss und GND-Anschluss gegeneinander.. Dann sollte es eig passen... Natürlich auch die LEDs drehen, da ja Masse dann am anderen Pin ist...


joernius 
Beitragsersteller
 12.06.2024, 18:40

Ich habe im Code wie folgt verändert

 // Berechnen der Ausgangswerte
  int output1Value = (input1Value == 0) && (input2Value == 0);
  int output2Value = (input1Value == 1) && (input2Value == 0);
  int output3Value = (input1Value == 0) && (input2Value == 1);
  int output4Value = (input1Value == 1) && (input2Value == 1);

und es passt.

0
joernius 
Beitragsersteller
 12.06.2024, 18:34

Ja, stimmt. Im Prinzip ist der Ausgang negiert. Tausche ich die Polarität, so ergeben die Eingänge 00 und 11 die erwarteten Ausgangspegel. Aber es ist trotzdem ein Fehler in der Logik : 01 und 10 sind vertauscht. Gemini ist eben nicht fehlerfrei ...

0

So wie die Schalter aktuell geschalten sind (beide ziehen auf GND), passt das doch.

input1Value und input2Value sind beide 0. Damit wird output1Value TRUE und das schreibst du an den digitalen Ausgang 1. Da die LEDs aber nur leuchten, wenn der Ausgang FALSE, also auf Ground gezogen wird, leuchtet die LED 1 nicht, die anderen 3 aber.

Was passiert denn nun, wenn du einen der Schalter veränderst?


joernius 
Beitragsersteller
 12.06.2024, 18:35

Die Zustände sind wie folgt:

Schalter LED soll sein LED ist-Zustand

S 1 S 2 1 2 3 4 1 2 3 4

0 0 1 0 0 0 0 1 1 1

1 0 0 1 0 0 1 1 0 1

0 1 0 0 1 0 1 0 1 1

1 1 0 0 0 1 1 1 1 0

Die Schaltung verhält sich wie folgt: Sie reagiert erst mal negiert, aber trotzdem nicht richtig, irgendwie durcheinander.

0