Arduino- beim 2. Tastendruck LED wieder ausmachen?

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..

Woher ich das weiß:Hobby
Arazhulhd66 
Fragesteller
 16.06.2019, 11:59

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

?

0
iEdik  16.06.2019, 12:21
@Arazhulhd66

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..

1
Arazhulhd66 
Fragesteller
 16.06.2019, 12:40
@iEdik

Habe schon alles gelöst, aber trotzdem danke, siehe meine eigene Antwort.

:D

1

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!