Il Pomoduino: crea un timer per Pomodoro alimentato ad Arduino

Annuncio pubblicitario

Annuncio pubblicitario
Annuncio pubblicitario

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 10 Grandi progetti Arduino per principianti 10 Grandi progetti Arduino per principianti Completare un progetto Arduino ti dà un senso di soddisfazione come nessun altro. La maggior parte dei principianti non è sicura da dove iniziare, e anche i progetti per principianti possono sembrare piuttosto scoraggianti. 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 "pausa" e una spia. 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 spie di lavoro e di avviso si spegneranno e la luce di interruzione si accenderà per 5 minuti (la spia si accenderà nuovamente 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 che ti serve

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 piedini su un lato singolo del pulsante e questi perni devono essere nella stessa riga.

pomoduino-Setup1

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) .

pomoduino-Setup2

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.

pomoduino-SETUP3

Ecco un diagramma che dovrebbe chiarire qualsiasi confusione:

pomoduino

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 yellow = 7; int blue = 5; int ledStateGreen = LOW; int ledStateBlue = LOW; long previousMillis = 0; long interval; int buttonPin = 2; int buttonState = 1; bool pressed = 0; long pressTime = 0; int phase = 0; void setup() { pinMode(green, OUTPUT); pinMode(yellow, OUTPUT); pinMode(blue, OUTPUT); pinMode(buttonPin, INPUT_PULLUP); digitalWrite(buttonPin, HIGH); } void loop() { // update current time and state of button unsigned long currentMillis = millis(); int buttonState = digitalRead(buttonPin); // measure time since last button press long progress = currentMillis - previousMillis; // check to see if button has been pressed // over 2 seconds since last press // (to prevent multiple presses registering) if ((pressTime - currentMillis)>2000){ if(buttonState == 0){ pressed = 1; pressTime = currentMillis;} else{ pressed = 0;} } // phase 0 is "work" phase // if button has been pressed, add 2 minutes to work timer if (phase == 0){ if (pressed == 1){ interval = 1620000;} // if interval is over, record current // time for measuring next interval if(currentMillis - previousMillis>interval) { previousMillis = currentMillis; // set green and blue LED states if (ledStateGreen == LOW){ ledStateGreen = HIGH; ledStateBlue = LOW;} else { ledStateGreen = LOW;} // apply LED states to LEDs // reset interval and switch to "break" phase digitalWrite(green, ledStateGreen); digitalWrite(blue, ledStateBlue); interval = 1500000; buttonState = 1; phase = 1; } } else { // if button has been pressed, add 2 minutes to break timer if (pressed == 1){ interval = 420000;} // if interval is over, record current // time for measuring next interval if(currentMillis - previousMillis>interval) { previousMillis = currentMillis; // set blue and green LED states if (ledStateBlue == HIGH){; ledStateBlue = LOW; } else { ledStateBlue = HIGH; ledStateGreen = LOW;} // apply LED states to LEDs // reset interval and set to "work" phase digitalWrite(green, ledStateGreen); digitalWrite(blue, ledStateBlue); interval = 300000; buttonState = 1; phase = 0; } } // calculate time left in interval unsigned long timeLeft = (interval - progress); // if there are less than two minutes left, light up yellow LED if (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. Usa un intervallo più breve per assicurarti che tutto funzioni correttamente prima di usarlo 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 per te 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 che sembra uscito dal futuro Come creare un cubo LED Arduino che sembra uscito dal futuro Se hai dilettato con alcuni progetti Arduino per principianti, ma sono alla ricerca di qualcosa di un po 'permanente e di un altro livello fantastico, quindi l'umile cubo 4 x 4 x LED è ... Per saperne di più, un allarme alba Arduino Night Light e Sunrise Alarm Project Arduino Night Light and 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!

In this article