Hallo zusammen, ich habe gerade eine FlipFlop Schaltung aufgebaut, die ich mittels eines Tasters ein und ausschalten möchte. Das einschalten mit einer endlosschleife geht. Nun möchte ich den code soweit erweitern, dass ich die Schaltung mit dem gleichen Taster wieder ausschalten kann. Und komme nicht darauf, wie ich den code entsprechend erweitern soll. Nun möchte ich gerne einen Tipp bekommen und bitte keine Lösung ;-) Mag gerne selber drauf kommen. Schon mal danke im voraus :-) Der Code: int ledPin1=11; int ledPin2=12; int buttonPin=3; int i; void setup(){ pinMode(ledPin1,OUTPUT); pinMode(ledPin2,OUTPUT); pinMode(buttonPin,INPUT); } void loop() { if (digitalRead(buttonPin)==HIGH) { for (i=0;i<100;i--) { digitalWrite(ledPin1,HIGH); digitalWrite(ledPin2,LOW); delay(300); digitalWrite(ledPin1,LOW); digitalWrite(ledPin2,HIGH); delay(300); } } }
Sebastian P. schrieb: > Nun möchte ich gerne einen Tipp bekommen und bitte keine Lösung ;-) > Mag gerne selber drauf kommen. Es gibt da verschiedenes, wie man je nach Fall eine Entprellung macht. In deinem Fall vielleicht ein Timer-Interrupt, worin die Entprellung bearbeitet wird. Man speichert dann dort die Tastenzustände in Bits oder Bytes, Speicherzellen, wie auch immer.
Danke. Guter Tip Ich google mal hier im Forum und melde mich nochmal ;-)
So, hab zu dem Thema was gefunden aber kann das gedanklich nicht umsetzten :-( Nun bitte ich um Hilfe für eine Lösung hihi ;-) Und es wäre nett es ein wenig zu kommentieren, damit ich den Sinn bzw. die Gedankenschritte verstehe. Danke im voraus :-)
Wie wäre es mit einer Variablen. (Beschreibung gibt es in jedem besseren C-Buch). Damit könnte man sich einen Zustand merken, und abhängig davon unterschiedliche Aktionen ausführen. Das würde wieder mit einem if() gehen.
Sebastian P. schrieb: > Danke. > Guter Tip > > Ich google mal hier im Forum und melde mich nochmal ;-) Es gibt hier anscheinend in der Codesammlung und auch sonst Beschreibungen zur Entprellung. Da könntest du über die Forensuche mit Stichworten noch mal suchen. Ich selbst machte mit µC in den Anfangsjahren auch Designfehler, und entprellte Tasten direkt in der Main-Schleife. Die Tasten wurden aber dort direkt physikalisch auf Prellung untersucht, das ist eine Sache von einer Milisekunde, und dank Assemblercode gab es auch nie zeitliche Stockungen. Moderner würde ich eine Tastenfilterung mit dem Timer-Interrupt machen, in Zeitabständen, die unter der menschlichen Reaktionszeit liegen, z.B. mit 50Hz. Da hat man mit der direkten Prellung nichts zu tun. Für einen anderen Fall benötigte ich wiederum die Tastenprellung direkt. Z.B. Software-Single-Step auf einem 8085 oder 8051. Das Programm mußte da an Ort und Stelle stehen bleiben, und irgendwas an LEDs oder seriell aus geben. Das geht über Filterung mit Timern gar nicht, die Taste muß in einer Code-Sequenz direkt entprellt werden. Also es gibt viele Wege, mögest du den besten finden.
hmmm ok, aber wie lasse ich sonst auf Knopfdruck die LEDs blinken ? Bzw. kann mit dem gleichen Taster die LEDs wieder ausschalten ? Das mit dem entprellen ist mir jetzt noch etwas zu hoch ;-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.