Come aggiungere un interruttore e ingresso pulsanti per Your Project Clock Arduino

Per il vostro Project Clock Arduino, è necessario innanzitutto aggiungere uno degli interruttori a pulsante e una delle resistenze, che si utilizza come input per incrementare le ore di allarme. Le opere pulsantiere consentendo + 5V da applicare al pin 7 quando è premuto.

Quando la corrente fluisce attraverso l'interruttore, incontra la resistenza, e invece prende il percorso più facile a massa attraverso Pin 7 (vi sono collegamenti a massa internamente, all'interno del microcontrollore ATmega328 IC). Leggendo Pin 7 con la funzione digitalRead () restituisce un valore di HIGH (+ 5V).

Come aggiungere un interruttore e ingresso pulsanti per Your Project Clock Arduino

Quando non è premuto, PIN 7 è collegato attraverso la resistenza a GND, tramite la rotaia a terra. PIN 7 Leggendo con la funzione digitalRead () restituisce un valore LOW (0V).

Ora aggiungere il secondo interruttore a pulsante e la resistenza, che incrementa i minuti. Deve essere collegato al pin digitale 8.

Infine, aggiungere l'interruttore a scorrimento, che ha tre posizioni, e due resistenze. Si può vedere che i collegamenti elettrici per l'interruttore a scorrimento sono molto simili ai due interruttori a pulsante. Ma perché è un cursore, rimane nella posizione che si è messo in.

In posizione sinistra, mantiene + 5V sul pin digitale 10. In posizione destra, mantiene + 5V sul pin digitale 10. Nel centro, non fa alcuna connessione, ed entrambi i perni digitali sono collegati solamente alla rotaia terra .

Leggendo questi pin, è possibile determinare se l'orologio è Alarm Set Mode (Pin 6 è HIGH), modalità Armed allarme (pin 10 è alto), o semplicemente in modalità Time Display (nessun collegamento, Pin 6 e Pin 10 sono LOW).

Come aggiungere un interruttore e ingresso pulsanti per Your Project Clock Arduino

Ora aggiungere il codice necessario per leggere e rispondere all'hardware. Avete bisogno di alcune variabili per memorizzare lo stato del sistema e tenere traccia di quando far scattare l'allarme. Nella sezione di dichiarazione delle variabili, aggiungere il seguente codice:

...
DateTime ora;
boolean displayAlarmSet = false; // Se siamo in modalità modalità o spettacolo impostato allarme show time
boolean allarme = false; // Se l'allarme è attualmente accadendo
boolean armato = false; // Se l'antifurto è inserito o meno
int alarmHrs = 12; // È possibile impostare il tempo di allarme in codice, qui
int alarmMins = 00;

La variabile displayAlarmSet consente di passare tra mostrare l'ora o che mostra l'ora della sveglia, che si utilizza nella funzione updateDisplay (), un po 'più tardi. È possibile utilizzare l'interruttore a scorrimento per modificare il valore di questa variabile.

La variabile "allarme" tiene traccia di se l'allarme è attualmente accadendo, in modo da poter suonare la sirena piezoelettrico, se necessario.

È inoltre necessario tenere traccia di quando far scattare l'allarme. Questo viene fatto con due numeri interi, alarmHrs e alarmMins. Se si desidera impostare l'ora della sveglia dall'interno del software e non dai pulsanti, è possibile impostare che modificando il valore di partenza di queste variabili.

Contando i due pulsanti e due stati che possono essere impostati per l'interruttore a scorrimento, si dispone di quattro ingressi. Quindi, è necessario quattro pin digitali per leggerli. Li usa per l'ingresso, quindi hanno bisogno di essere attivato nella parte setup () del codice. Potrai anche utilizzare la sirena piezo per l'uscita, in seguito, ma può essere aggiunto ora, in modo da aggiungere il seguente codice:

// Input dell'utente per impostare il tempo di allarme
const int alarmSetPin = 6; // Usato per passare alla modalità di impostazione della sveglia
const int incrementAlarmHrsPin = 7; // Usato per incrementare le ore di allarme in modalità di impostazione della sveglia
const int incrementAlarmMinsPin = 8; // Usato per incrementare i minuti di allarme in modalità di impostazione della sveglia
const int piezoPin = 9; // Utilizzato per la sirena piezoelettrica
const int alarmArmedPin = 10; // Utilizzare per abilitare l'allarme per andare via
...
impostare () {
...
lcd.clear ();
// Imposta diversi pin per ingresso e uscita
pinMode (alarmSetPin, INPUT);
pinMode (incrementAlarmHrsPin, INPUT);
pinMode (incrementAlarmMinsPin, INPUT);
pinMode (alarmArmedPin, INPUT);
pinMode (piezoPin, OUTPUT);

Nota, i puntini di sospensione (...) indicano il codice aggiunto in precedenza - non c'è bisogno di ripetere che qui. Ci sono cinque nuovi numeri interi, che gestiscono i pin di ingresso. Questi non cambiano per tutto il programma in modo che siano costanti intere.

È collegato l'interruttore a scorrimento Pin 6 e Pin 10 per gestire sia l'impostazione della sveglia o armando per andare fuori. È collegato gli interruttori a pulsante per Pin 7 e Pin 8. Ognuno controlla separatamente incrementare le ore ei minuti.

È possibile incrementare solo verso l'alto. In caso contrario, vi sia bisogno pulsanti aggiuntivi per diminuire ore e minuti o un modo per passare tra incremento e decremento, che sarebbe complicato inutilmente. Infine, questi pin sono tutti utilizzati per l'ingresso, quindi devono essere esplicitamente impostato per essere utilizzato per INPUT con la funzione pinMode ().