Il Pomoduino realizza un timer per Pomodoro alimentato con Arduino

Il Pomoduino realizza un timer per Pomodoro alimentato con Arduino / Fai da te

La tecnica del pomodoro Tagliare la procrastinazione con queste applicazioni e software della tecnica del Pomodoro Tagliare la procrastinazione con queste applicazioni e software della tecnica Pomodoro La procrastinazione è una malattia che pervade studenti e lavoratori in tutti gli angoli del mondo e infetta sia i dilettanti che i professionisti. Come scrittore, soffro di procrastinazione su base giornaliera. Alcune persone ... Read More è un popolare sistema di gestione del tempo che prevede di interrompere il lavoro in blocchi di 25 minuti con un riposo di 5 minuti. Esistono vari software per aiutare con questo, ma cosa succede se si desidera utilizzare il sistema pomodoro mentre si sta lavorando lontano dal tuo computer, o mentre sei al tuo banco di lavoro? Creare un timer pomodoro con tecnologia Arduino è un ottimo progetto introduttivo 15 Grandi progetti Arduino per principianti 15 Grandi progetti Arduino per principianti Interessato ad Arduino ma non sapendo da dove cominciare? Ecco alcuni dei nostri migliori progetti Arduino per principianti per iniziare! Leggi di più per aiutarti ad imparare come aggirare un Arduino, e in realtà si tradurrà in qualcosa di utile.

L'obiettivo. il gol

Nel caso in cui ti piacerebbe provare a capire come impostare questo prima di guardare avanti, ecco cosa stiamo cercando di fare. Avremo tre luci; uno per “lavoro,” uno per “rompere,” e una luce di avvertimento. La luce di lavoro rimarrà accesa per 25 minuti e la spia di avviso si accenderà anche per gli ultimi due minuti di tale intervallo. Dopo 25 minuti, le luci di lavoro e di avviso si spegneranno e la luce di stop si accenderà per 5 minuti (la spia si accenderà di nuovo per gli ultimi due minuti).

Inoltre sarà incluso un pulsante che ritarderà il cambio delle luci per due minuti per darti un po 'di tempo extra di lavoro o di pausa.

Quello di cui hai bisogno

Per questo progetto, utilizzeremo le seguenti parti: tutto ciò che dovresti avere nel tuo kit iniziale.

  • Microcontrollore Arduino (abbiamo usato un Mega, ma Uno funzionava anche bene)
  • breadboard
  • cavo USB
  • 6 fili
  • 3 resistenze da 330 Ohm
  • 3 x LED (abbiamo usato verde, giallo e blu)
  • 1 pulsante

Passaggio 1: impostazione di tutto

Metti tutti i LED in una colonna diversa sulla breadboard (è più facile se sono distanziati un po ') e posiziona il pulsante un po' più in basso. Assicurati che il pulsante sia rivolto nella giusta direzione: ci sono due serie di due pin su un lato singolo del pulsante, e quei pin devono essere nella stessa riga.

Far passare i fili dai piedini 5, 7 e 13 alla colonna che contiene il polo negativo dei LED blu, giallo e verde (la gamba negativa è la più corta delle due). Quindi, metti un resistore nella stessa colonna di ogni gamba positiva e collegali al binario negativo sul lato della breadboard (quello blu, anche se il colore non ha molta importanza, è solo convenzione usare il blu per chiarezza).

Esegui anche un filo dalla guida blu sulla breadboard a una delle gambe sul pulsante, e un altro filo dall'altra parte (sullo stesso lato) al pin 2 sull'Arduino. Quindi metti a terra la guida blu nel pin GND di Arduino.

Ecco un diagramma che dovrebbe chiarire qualsiasi confusione:

Questo è! Ora alla programmazione.

Programmare il tuo Arduino

Di seguito è riportato il codice per il timer Pomoduino: consente di leggere i commenti incorporati, in quanto spiegano cosa fa ogni passaggio del codice.

 int green = 13; int giallo = 7; int blue = 5; int ledStateGreen = LOW; int ledStateBlue = LOW; long previousMillis = 0; lungo intervallo; int buttonPin = 2; int buttonState = 1; bool premuto = 0; long pressTime = 0; int phase = 0; void setup () pinMode (green, OUTPUT); pinMode (giallo, OUTPUT); pinMode (blue, OUTPUT); pinMode (buttonPin, INPUT_PULLUP); digitalWrite (buttonPin, HIGH);  void loop () // aggiorna l'ora corrente e lo stato del pulsante unsigned long currentMillis = millis (); int buttonState = digitalRead (buttonPin); // misura il tempo dall'ultimo pulsante, premere il progresso lungo = currentMillis - previousMillis; // controlla se il pulsante è stato premuto // per oltre 2 secondi dall'ultima pressione // (per impedire la registrazione di più stampanti) if ((pressTime - currentMillis)> 2000) if (buttonState == 0) pressed = 1; pressTime = currentMillis; else pressed = 0; // phase 0 è la fase "work" // se il pulsante è stato premuto, aggiungi 2 minuti al timer di lavoro if (phase == 0) if (premuto == 1 ) interval = 1620000; // se l'intervallo è scaduto, registra il tempo corrente // per misurare l'intervallo successivo se (currentMillis - previousMillis> interval) previousMillis = currentMillis; // imposta gli stati LED verdi e blu se (ledStateGreen == BASSO) ledStateGreen = ALTO; ledStateBlue = LOW; else ledStateGreen = LOW; // applica gli stati LED ai LED // ripristina intervallo e passa alla fase "break" digitalWrite (green, ledStateGreen); digitalWrite (blue, ledStateBlue); intervallo = 1500000; buttonState = 1; fase = 1;  else // se il pulsante è stato premuto, aggiungere 2 minuti per interrompere il timer se (premuto == 1) intervallo = 420000; // se l'intervallo è scaduto, registrare l'ora // ora per misurare l'intervallo successivo se (currentMillis - previousMillis> interval) previousMillis = currentMillis; // imposta gli stati LED blu e verde se (ledStateBlue == HIGH) ; ledStateBlue = LOW;  else ledStateBlue = ALTO; ledStateGreen = LOW; // applica gli stati LED ai LED // ripristina intervallo e imposta la fase "lavoro" digitalWrite (verde, ledStatoGreen); digitalWrite (blue, ledStateBlue); intervallo = 300000; buttonState = 1; fase = 0;  // calcola il tempo rimasto nell'intervallo unsigned long timeLeft = (interval - progress); // se mancano meno di due minuti, si accende il LED giallo se (timeLeft < 120000)  digitalWrite(yellow, HIGH);  else  digitalWrite(yellow, LOW);  // reset pressed variable pressed = 0; 

Nota: quando stai testando questo, probabilmente non vuoi aspettare 25 minuti per vedere se funziona. Nel video qui sotto, ho gli intervalli impostati su 5 secondi per il verde, 2 secondi per il blu e 1 secondo per il giallo. Utilizzare un intervallo più breve per assicurarsi che tutto funzioni correttamente prima di utilizzarlo per tenere traccia del tempo!

Una volta che tutto è cablato e il codice inserito nell'IDE, sei pronto per partire! Carica lo schizzo e avrai un timer pomodoro funzionante con un pulsante di ritardo di 2 minuti. Se la spia si accende e hai bisogno di più tempo, premi il pulsante.

Potresti notare che il pulsante è collegato direttamente al pin di input di Arduino. Usando uno dei resistori pullup integrati nell'Arduino, non è necessario eseguire un filo dalla porta 5V al pulsante o utilizzare un resistore in linea con esso. È possibile ottenere ulteriori informazioni sulla referenza Arduino per i pin digitali.

Altre sfide avanzate

Se hai creato il tuo Pomoduino e stai cercando di assumere qualcosa di leggermente più avanzato, puoi provare uno dei seguenti metodi:

  • Aggiungi una sequenza di LED che si illuminano e fungono da contatore del numero di sessioni di lavoro completate
  • Fai in modo che il pulsante aggiunga due minuti al timer ogni volta che lo premi
  • Aggiungi un altoparlante e riproduci un rumore quando è ora di tornare al lavoro
  • Utilizzare una batteria da 9 V per renderlo portatile
  • Anziché utilizzare una spia di avvertimento, prima di accendere la luce verde o blu lampeggiare per un minuto
  • Visualizza un conto alla rovescia su un display a LED

Altri progetti per principianti

Se sei nuovo di Arduino, abbiamo un sacco di tutorial divertenti da affrontare. Prova il controller del semaforo Programmazione Arduino per principianti: il semaforo del programmatore Programmazione Arduino per principianti: il semaforo della torcia La settimana scorsa abbiamo appreso la struttura di base di un programma Arduino e abbiamo esaminato più da vicino l'esempio del "lampeggiare". Spero che tu abbia colto l'opportunità per sperimentare il codice, regolando i tempi. Questa volta, ... Per saperne di più, un cubo LED futuristico Come creare un cubo LED Arduino pulsante che sembra uscito dal futuro Come creare un cubo LED Arduino pulsante che sembra uscito dal futuro Se vi siete divertiti con un po 'di tempo i progetti per principianti Arduino, ma sono alla ricerca di qualcosa di un po 'permanente e di un altro livello fantastico, l'umile cubo 4 x 4 x LED è ... Leggi di più, un allarme alba Arduino Night Light e Sunrise Alarm Project Arduino Night Light e Sunrise Alarm Project Oggi prepareremo una sveglia all'alba, che ti farà svegliare dolcemente e lentamente senza ricorrere a una macchina offensiva. Per saperne di più, o un sistema di allarme Come fare un semplice sistema di allarme Arduino Come creare un semplice sistema di allarme Arduino Rileva il movimento, poi spaventa il diavolo da un intruso con un suono di allarme acuto e luci lampeggianti. Sembra divertente? Certo che lo fa. Questo è l'obiettivo del progetto Arduino di oggi, adatto ... Per saperne di più. Se decidi di affrontare una delle sfide più avanzate sopra elencate, facci sapere come va!

Scopri di più su: Arduino, gestione del tempo, software del timer.