wie radbruch schon sagte, sind die beiden Zeilen
Code:
digitalRead(12);
if(12 == HIGH){
falsch.
Zudem kann das ganze so nur funktionieren, wenn du am Eingang auch einen Pulldown-Widerstand hast, der den Eingang auf LOW zieht, wenn eben keine Spannung anliegt. Deshalb wäre neben dem Code auch ein Schaltplan (und bitte kein Fritzing Gekritzel) notwendig, da weitere Probleme auch auf der Hardware Seite sein können. Üblicherweise macht man das ganze übrigens anders herum. Man legt die Eingänge über PullUp Widerstände (dafür hat der Prozessor extra interne PullUps verbaut ... sieht auch Doku zu pinMode() ) dauerhaft auf HIGH. Um dann zum Beispiel einen Taster oder sowas auszuwerten, wird der auf der einen Seite mit dem Eingangs-Pin und auf der anderen Seite mit GND verbunden. Beim Betätigen des Schalters wird der Eingang dann LOW und man kann darauf reagieren. Diese Variante nennt sich deshalb Active-LOW. Das was Du machst ist Active-HIGH (Erkennen einer positiven Spannung am Eingang). Das macht man eigentlich nur im Ausnahmefall.
Lesezeichen