In questo articolo impariamo come realizzare un semplice circuito timer programmabile Arduino a 2 fasi, che può essere utilizzato per commutare un carico elettrico ON / OFF con temporizzazioni ON e OFF regolabili in modo indipendente.
Ad esempio, se desideri che una luce rimanga accesa per 24 ore e spenta per 2 ore, puoi semplicemente farlo tramite una rapida modifica nel codice del programma. Allo stesso modo è possibile personalizzare i tempi di uscita su qualsiasi altro set di intervalli di tempo desiderato modificando il codice in modo appropriato.
Devi solo farlo compilare e caricare il seguente codice sulla tua scheda Arduino e avvia la funzione timer secondo le tue esigenze specifiche dell'applicazione.
Codice programma
void setup(){ pinMode(13, OUTPUT) } void loop(){ digitalWrite(13, HIGH) delay(86400000) digitalWrite(13, LOW) delay(3600000) }
Nell'esempio sopra codificare le righe ritardo (86400000) e ritardo (3600000) determinare rispettivamente gli intervalli di tempo di ritardo ON e OFF dell'uscita, in millisecondi. Ecco la figura 86400000 millisecondi corrisponde a 24 ore, mentre 3.600.000 presenta 1 ora di ritardo.
È possibile personalizzare questi due valori in base alle proprie preferenze personali per ottenere i ritardi di output richiesti.
Una volta configurato e alimentato, Arduino continuerà a passare dalla sequenza di temporizzazione ON / OFF a due fasi. fintanto che l'alimentazione rimane applicata al sistema.
Schema elettrico
Lo schema elettrico completo insieme alle connessioni Arduino può essere visto nello schema seguente:
Circuito timer One-Shot Arduino
Se non vuoi che il timer passi attraverso il timer a due fasi, ma desideri invece che il timer sia di tipo one-shot, che si spegnerà in modo permanente dopo il ritardo impostato, puoi applicare il seguente codice:
int led = 13 // Pin 13 has an LED connected on most Arduino boards. unsigned long DELAY_TIME = 10000 // 10 sec unsigned long delayStart = 0 // the time the delay started bool delayRunning = false // true if still waiting for delay to finish void setup() { pinMode(led, OUTPUT) // initialize the digital pin as an output. digitalWrite(led, HIGH) // turn led on // start delay delayStart = millis() delayRunning = true } void loop() { // check if delay has timed out if (delayRunning && ((millis() - delayStart) >= DELAY_TIME)) { delayRunning = false // finished delay -- single shot, once only digitalWrite(led, LOW) // turn led off } }
Se desideri una versione dal design discreto di un circuito timer programmabile identico, puoi farlo optare per questo circuito
Parti necessarie per il circuito timer programmabile Arduino
- Scheda Arduino UNO = 1
- IC 7809 = 1
- BC547 = 1
- Diodo 1N4007 = 1
- Resistenza da 10k 1/4 w = 1
- Relè 12V / 400 ohm / SPDT / 5 amp = 1
- Adattatore da 12 V CA a CC = 1
Precedente: Semplice circuito timer digitale con display a 2 cifre Avanti: Circuito del termometro digitale: utilizza una cella solare per l'alimentazione