Mittwoch, 13. Mai 2015

Steuern mithilfe von Buttons

Heute wollen wir unser Programm mit der leuchtenden LED mithilfe eines Buttons verbessern, sodass die LED nur blinkt, wenn der Knopf gedrückt ist.

Ein Button  ist ein kleines technisches Bauteil mit zwei normalerweise miteinander verbundenen Stromkreisen. Wenn man jedoch auf den Knopf drückt werden sie getrennt und es der Stromfluss wird unterbrochen, was unser Arduino messen kann.


Die beine die sich gegenseitig jeweils "anschauen bilden einen Stromkreis. Damit Strom fließt braucht es einen Plus- und einen Minuspol. Dazu können wir den Ground als Minuspol und den 3.3V Ausgang oder einen immer HIGH gestellten digital Pin als Pluspol verwenden. Dabei braucht jeder Button seinen eigenen Pluspol. Zusätzlich muss man zum den Pluspol "anschauenden" Bein eine Kabelverbindung zu einem Eingang herstellen.
Ich habe in meinem Beispiel Pin 7 zum Steuern der LED verwendet, Pin 9 als Spannungsquelle für den Button und Pin 8 als Eingang um zu schauen ob Strom fließt oder nicht. Da man jedoch am gesamten Arduino nur 3 Grounds hat kann man Grounds "zusammenlegen", d.h. man macht eine Kabelverbindung von einem Ground zur "Minus-Lane" des Breadbords und von dort jeweils Verbindungen zu den Grounds der Teile, beispielsweise des Knopfs oder der LED. Die ganze Schaltung sieht dann so aus:
Als erstes müssen wir in void setup() die drei Pins als OUTPUTs bzw. INPUT definieren. Die erste Zeile in void loop() legt fest, dass es eine Variable gibt mit dem Namen button_status und dem Datentyp integer. Eine Variable ist wie in Ort in dem man Informationen abspeichern kann. Dieser Ort muss einen Namen besitzen(button_status), der fast komplett frei gewählt werden kann(besser keine ä,ö,ü...) und einen Datentyp also die Angabe ob der Wert eine Zahl oder ein Zeichen oder ein Text ist. Integer steht für eine Zahl ohne Nachkommastellen. In der nächsten Zeile wird abgefragt ob an Pin 8 Spannung anliegt oder nicht was mit der Funktion digitalRead(Pin); an als INPUT definierten Pins geht. Das Ergebnis, 0 für 0.0V und 1 für 3.3V, wird dann mit "=" in der Variable button_status gespeichert. Danach kommt eine if- Abfrage. Eine if-Abfrage ist wie eine Frage an den Computer, zum Beispiel: steht in der Variable button_status HIGH also 1? Wenn es wahr ist wird der Code innerhalb der geschweiften Klammern ausgeführt. Die gestellte Frage also die Bedingung wird in die normalen Klammern gesetzt. Die Frage ob etwas einer Sache entspricht wird mit "==" formuliert, da "=" eine Zuweisung ist, also dieser Wert in der Variable gespeichert wird. Das "==" ist ein Vergleichsoperator. Weitere Beispiele wären "<", ">", "!=". "!=" bedeutet ungleich, ergibt also wahr, wenn die beiden Werte nicht gleich sind. Der Programmteil in den geschweiften Klammern ist der Blinkteil von Gestern.




1 Kommentar:

  1. Dankeschön für diesen kurzen informativen Artikel.

    AntwortenLöschen