Wie ein Schalter und Eingabetasten, um Ihre Arduino Clock Projekt hinzufügen

Für Ihre Arduino Clock-Projekt, müssen Sie zunächst eine der Druckschalter hinzuzufügen und einer der Widerstände, die Sie als Eingabe verwenden die Alarm Stunden zu erhöhen. Die Taster Werke von + 5V ermöglicht auf Pin 7 angewendet werden, wenn sie gedrückt wird.

Wenn Strom durch den Schalter fließt, den Widerstand stößt, und stattdessen nimmt den leichteren Weg durch Pin 7 mit Masse (es sind Anschlüsse intern, innerhalb der IC ATmega328 Mikrocontroller nach Masse). Lesen Pin 7 mit der digitalRead () Funktion gibt einen Wert von HIGH (+ 5V).

bild0.jpg

Wenn er nicht gedrückt ist, PIN 7 ist über den Widerstand mit GND verbunden, über die Erdungsschiene. Lesen PIN 7 mit der digitalRead () Funktion gibt einen Wert von LOW (0 V).

Fügen Sie nun den zweiten Druckschalter und Widerstand, der die Minuten erhöht. Es sollte digitalen Pin 8 verbunden werden.

Schließlich fügen Sie den Schiebeschalter, der drei Positionen hat, und zwei Widerstände. Sie können sehen, dass die elektrischen Anschlüsse für den Schiebeschalter sind sehr ähnlich zu den beiden Druckschalter. Aber weil es ein Schieber ist, bleibt er in der Position, dass Sie es in.

In der linken Position, hält + 5V auf digitalen Pin 10. In der richtigen Position hält sie + 5V auf digitalen Pin 10. In der Mitte, ist es keine Verbindung bildet, und beide der digitalen Stifte sind nur in dem Erdungsschiene verbunden .

Das Lesen dieser Stifte, können Sie bestimmen, ob der Wecker ist Modus (Pin 6 ist HIGH), Alarm Armed Modus (Pin 10 ist HIGH), oder einfach nur in Display Time-Modus (keine connection- Pin 6 und Pin 10 sind LOW).

image1.jpg

Nun fügen Sie den Code notwendig zu lesen und auf die Hardware zu antworten. Sie müssen ein paar Variablen den Systemzustand zu speichern und zu verfolgen, wenn der Alarm ausgelöst werden. In der Variablendeklaration Abschnitt fügen Sie den folgenden Code:

...Datetime jetzt-boolean displayAlarmSet = falsch- // Ob wir in der Show Zeitmodus oder Alarmmeldung sind eingestellt modeboolean Alarm = falsch- // Ob der Alarm wird derzeit happeningboolean bewaffnete = falsch- // Ob die Alarmanlage aktiviert ist oder notint alarmHrs = 12- // Sie können die Alarmzeit im Code festgelegt, hereint alarmMins = 00-

die Variable displayAlarmSet können Sie zwischen der Anzeige der Uhrzeit oder zeigt die Alarmzeit zu wechseln, dass Sie in den Einsatz anzeigeAktualisieren () Funktion, ein bisschen später. Sie können den Schiebeschalter, um den Wert dieser Variablen zu ändern.

Das # 147-Alarm # 148- Variable verfolgt, ob der Alarm wird derzeit geschieht, so dass Sie die piezoelektrische Tongeber klingen kann, wenn nötig.

Sie müssen auch den Überblick zu behalten, wenn Sie den Alarm auszulösen. Dies wird mit zwei ganzen Zahlen durchgeführt, alarmHrs und alarmMins. Wenn Sie die Alarmzeit aus der Software festlegen möchten, und nicht von den Tasten, können Sie das Set durch den Startwert dieser Variablen ändern.

Zählt man die beiden Taster und die beiden Zustände, die durch den Schiebeschalter eingestellt werden können, haben Sie vier Eingänge. So müssen Sie vier digitale Stifte, sie zu lesen. Sie verwenden sie für die Eingabe, also müssen sie in die Lage versetzt werden, Konfiguration() Teil des Codes. Sie werden auch die Piezolautsprechers für die Ausgabe verwenden, später, aber es kann nun hinzugefügt werden, so dass Sie den folgenden Code hinzu:

// Benutzereingabe, um den Alarm ZEITKONST int alarmSetPin = 6- // verwendet, um Alarm zu ändern gesetzt modeconst int incrementAlarmHrsPin = 7- // verwendet, um die Alarm Stunden in Alarm zu erhöhen, setzen modeconst int incrementAlarmMinsPin = 8- // verwendet, um die zu erhöhen, Alarm Minuten in Alarm gesetzt modeconst int piezoPin = 9- // Wird für die piezoelektrischen sounderconst int alarmArmedPin = 10- // Verwenden Sie den Alarm zu aktivieren off zu gehen ... setup () {... lcd.clear () - / / Set mehrere Stifte für die Eingabe und outputpinMode (alarmSetPin, INPUT) -pinMode (incrementAlarmHrsPin, INPUT) -pinMode (incrementAlarmMinsPin, INPUT) -pinMode (alarmArmedPin, INPUT) -pinMode (piezoPin, OUTPUT) -

Beachten Sie, dass die Ellipsen (...) zeigen den Code, den Sie zuvor hinzugefügt - keine Notwendigkeit, zu wiederholen, dass hier. Es gibt fünf neue ganze Zahlen, die die Eingangs-Pins handhaben. Diese müssen nicht im gesamten Programm zu ändern, so dass sie integer sind Konstanten.

Sie angeschlossen, um den Schiebeschalter auf Pin 6 und Pin 10 entweder übernehmen die Alarmeinstellung oder bewaffnen sie gehen zu. Sie verbanden die Druckschalter an Pin 7 und Pin 8. Jeder separat steuert die Stunden und Minuten erhöht wird.

Sie können nur nach oben erhöhen. Andernfalls müssen Sie entweder zusätzliche Tasten Stunden und Minuten oder eine Möglichkeit zum Verringern zwischen Erhöhen und Erniedrigen zu wechseln, die unnötig kompliziert sein würde. Schließlich werden diese Stifte alle für die Eingabe verwendet, so haben sie sich explizit mit der für INPUT verwendet werden soll eingestellt werden pinMode () Funktion.

Menü