Arduino- beim 2. Tastendruck LED wieder ausmachen?
Hallo,
Ich möchte bei meinem Sketch in Arduino gerne eine bestimmte Sache machen:
Ich will quasi, dass beim ersten Tastendruck (PS2 Controller) eine LED angeht und diese wieder erlöscht, wenn ich dieselbe Taste ein zweites mal drücke... Also quasi An und Aus mit einer Taste...
Aktuell sieht das ganze so aus:
...
if (ps2.ButtonPressed(PSB_PINK)) {
digitalWrite(2, HIGH);
}
//Hier soll dann das mit dem ausschalten stehen oder eben da, wo es hin sollte
MFG Alex, freue mich auf eure Antworten!
(Ignoriert mal den Iron Man, ist vom 2. Monitor...)
3 Antworten
Cooles Wallpaper!
also..du kannst mit einer IF abfrage auch den zustand des ausgangs abfragen if pinx=HIGH..oder mit einer zusätzlichen variablen, die dir den zustand klont..
beispiel mit der variablen:
status1=LOW; //ausserhalb von loop
if (ps2.ButtonPressed(PSB_PINK) && status1==LOW) {
digitalWrite(2, HIGH);
status1=HIGH;
}
dann das gleiche entweder mit elseif oder noch eine IF
nur mit digitalwrite LOW..und status high
oder direkt mit digitalread:
if (ps2.ButtonPressed(PSB_PINK) && digitalRead(2)==LOW) {
usw..
Problem dabei:
Tasten muss man entprellen, das heißt der wird dir diese 2 Befehle innerhalb von einem tastendruck 10x ausführen, die LED wird blinken weil der Loop zu schnell arbeitet..du musst dazu eine verriegelung einbauen..mit einer weiteren variablen die dir status1 vorher und nachher zusätzlich abfragt..
Problem gelöst: An alle, die es vlt. auch haben: Mithilfe von ButtonReleased könnt ihr eine Bedingung hinzufügen, wenn der Knopf losgelassen wird, also Viereck (PS2) wird losgelassen--> Lampe geht aus.
-->if (ps2.ButtonReleased(PSB_PINK)) {
digitalWrite(2, HIGH);
}
:D
Alternativ ist auch ein Gedrückt halten okay. ABER OHNE DELAY!
Danke, habe es leider nicht wiedergefunden, sonst hätte ich das hier mal gepostet...
So, erstmal danke, aber wie stellst du dir das genau vor? z.B.
status1=0;
...
status1=digitalRead(...);
if status1== HIGH ...
Oder wie? Ich kann glaube ich kein digitalRead nutzen, ich brauche ja quasi als Variable/ Status etwas, was nachguckt, ist die Taste gedrückt...
:D
?