Pomoduino Gör en Arduino-driven Pomodoro Timer

Pomoduino Gör en Arduino-driven Pomodoro Timer / DIY

Pomodoro-tekniken skärs genom förskjutning med dessa Pomodoro-teknik Apps och programvara skärs genom förskjutning med dessa Pomodoro-teknik Apps & Software Procrastination är en sjukdom som genomtränger studenter och arbetstagare i alla hörn av världen och det infekterar både amatörer och yrkesverksamma. Som författare lider jag dagligen av förskott. Vissa människor ... Läs mer är ett populärt tidsstyrningssystem som innebär att man bryter arbetet i 25 minuters bitar med 5 minuters vila. Olika program finns för att hjälpa till med detta, men vad händer om du vill använda pomodoro-systemet medan du arbetar bort från datorn eller när du är på din arbetsbänk? Att göra en Arduino-driven pomodoro-timer är ett utmärkt introduktionsprojekt 15 Great Arduino-projekt för nybörjare 15 Great Arduino-projekt för nybörjare Intresserad av Arduino men inte säker på var du ska börja? Här är några av våra bästa Arduino-projekt för nybörjare att komma igång med! Läs mer för att hjälpa dig att lära dig dig runt en Arduino, och kommer faktiskt att resultera i något användbart.

Målet

Om du vill försöka lista ut hur du ställer upp det innan du tittar framåt, så är det vad vi försöker göra. Vi har tre ljus; en för “arbete,” en för “ha sönder,” och en varningslampa. Arbetsljuset lyser i 25 minuter och varningslampan lyser också under de två sista minuterna av det intervallet. Efter 25 minuter stängs arbets- och varningslamporna och pauslampan tänds i 5 minuter (varningslampan lyser igen under de senaste två minuterna).

Dessutom ingår en knapp som fördröjer ljusändringen i två minuter för att ge dig lite extra arbetstid eller brytningstid.

Vad du behöver

För det här projektet ska vi använda följande delar - allt du borde ha i startpaketet.

  • Arduino microcontroller (vi använde en Mega, men Uno skulle fungera bra också)
  • Bakbord
  • USB-kabel
  • 6 trådar
  • 3 x 330 ohm motstånd
  • 3 x LED (vi har använt grön, gul och blå)
  • 1 tryckknapp

Steg 1: Ställa in allt

Sätt i varje LED-lampa i en annan kolonn på brödbrädet (det är lättast om de är placerade lite) och placera knappen lite längre ner. Se till att knappen står i rätt riktning - det finns två uppsättningar med två stiften på en enda sida av knappen, och dessa stift måste vara i samma rad.

Kör ledningar från stiften 5, 7 och 13 till kolonnen som innehåller det negativa benet i de blå, gula och gröna lysdioderna (det negativa benet är kortare av de två). Sätt sedan ett motstånd i samma kolumn som varje positivt ben och anslut dem till den negativa skenan på sidan av brödbrädet (den blåa, men färgen spelar ingen roll, det är bara konventionen att använda blå för tydlighet).

Kör också en tråd från den blå skenan på brödbrädet till en av benen på knappen, och en annan tråd från det andra benet (på samma sida) till stift 2 på Arduino. Markera sedan den blå spåret i GND-stiftet på Arduino.

Här är ett diagram som bör rensa upp förvirring:

Det är det! Nu vidare till programmeringen.

Programmera din Arduino

Nedan är koden för Pomoduino-timern - läs igenom inline-kommentarerna, eftersom de förklarar vad varje steg i koden gör.

 int grön = 13; int gul = 7; int blå = 5; int ledStateGreen = LOW; int ledStateBlue = LOW; länge tidigareMillis = 0; långt intervall int knappPin = 2; int buttonState = 1; bool tryckt = 0; lång presstid = 0; int fas = 0; void setup () pinMode (grön, OUTPUT); pinMode (gul, OUTPUT); pinMode (blå, OUTPUT); pinMode (buttonPin, INPUT_PULLUP); digitalWrite (buttonPin, HIGH);  tomrumsling () // uppdatera nuvarande tid och tillstånd av knappen unsigned long currentMillis = millis (); int buttonState = digitalRead (buttonPin); // mäta tiden sedan senaste knappen tryck på långa framsteg = currentMillis - previousMillis; // kontrollera om knappen har tryckts // över 2 sekunder sedan senaste tryckningen // (för att förhindra att flera pressar registreras) om ((pressTime - currentMillis)> 2000) if (buttonState == 0) pressed = 1; pressen = currentMillis; else pressed = 0; // fas 0 är "work" -fasen // om knappen har tryckts, lägg till 2 minuter till arbetstimern om (fas == 0) om (tryckt == 1 ) interval = 1620000; // om intervallet är över, registrera nuvarande // tid för att mäta nästa intervall om (currentMillis - previousMillis> intervall) previousMillis = currentMillis; // Ange gröna och blå LED-stater om (ledStateGreen == LOW) ledStateGreen = HIGH; ledStateBlue = LOW; else ledStateGreen = LOW; // tillämpa LED-lägen till lysdioder // återställ intervall och byt till "break" phase digitalWrite (green, ledStateGreen); digitalWrite (blå, ledStateBlue); intervall = 1500000; buttonState = 1; fas = 1;  annars // om knappen har tryckts, lägg till 2 minuter för att bryta timer om (tryckt == 1) interval = 420000; // om intervallet är över, spela in ström // tid för att mäta nästa intervall om (currentMillis - tidigareMillis> intervall) previousMillis = currentMillis; // inställd blå och grön lysdioder om (ledStateBlue == HIGH) ; ledStateBlue = LOW;  annat ledStateBlue = HIGH; ledStateGreen = LOW; // Applicera LED-lägen till lysdioder // Återställ intervall och sätt till "Work" -fas digitalWrite (grön, ledStateGreen); digitalWrite (blå, ledStateBlue); intervall = 300000; buttonState = 1; fas = 0;  // beräkna tiden kvar i intervallet unsigned long timeLeft = (interval-progress); // Om det är mindre än två minuter kvar, tänd den gula lysdioden om (timeLeft < 120000)  digitalWrite(yellow, HIGH);  else  digitalWrite(yellow, LOW);  // reset pressed variable pressed = 0; 

Obs! När du testar detta, vill du förmodligen inte vänta i 25 minuter för att se om det fungerar. I videon nedan har jag intervallen inställd på 5 sekunder för grön, 2 sekunder för blå och 1 sekund för gul. Använd ett kortare intervall för att se till att allt fungerar korrekt innan du använder det för att hålla reda på tiden!

När du har allt uppkopplat och koden gick in i IDEEN, är du redo att gå! Ladda upp skissen och du kommer att ha en fungerande pomodoro-timer med en 2-minuters fördröjningsknapp. Om varningslampan lyser och du behöver mer tid, tryck bara på knappen.

Du kanske märker att knappen är ansluten direkt till Arduino ingångsstift. Genom att använda en av pullupmotorerna inbyggda i Arduino behöver du inte köra en ledning från 5V-porten till knappen eller använda ett motstånd i linje med det. Du kan få mer information om Arduino-referensen för digitala stiften.

Mer avancerade utmaningar

Om du har gjort din Pomoduino och du vill ta på något lite mer avancerad kan du prova något av följande:

  • Lägg till en sekvens av lysdioder som tänds och fungera som en räknare för antalet avslutade arbetssessioner
  • Gör knappen två minuter till timern för varje gång du trycker på den
  • Lägg till en högtalare och spela ett ljud när det är dags att komma tillbaka till jobbet
  • Använd ett 9V batteri för att göra det bärbart
  • Istället för att använda ett varningsljus blinkar du det gröna eller det blå ljuset i några minuter innan du växlar
  • Visa en nedräkning på en LED-display

Andra bra nybörjare projekt

Om du är ny på Arduino, har vi massor av roliga handledning för dig att ta på. Prova en trafikljuskontroll Arduino Programmering för nybörjare: Trafikljuskontrollen Arduino Programmering för nybörjare: Trafikljuskontrollen I förra veckan lärde vi oss om den grundläggande strukturen i ett Arduino-program och tittade närmare på "blink" -exemplet. Förhoppningsvis tog du tillfället i akt att experimentera med kod, justera tidpunkterna. Den här gången ... Läs mer, en futuristisk LED-kub Hur man gör en pulserande Arduino LED-kub som ser ut som den kom från framtiden Hur man gör en pulserande Arduino LED-kub som ser ut som den kom från framtiden Om du har dabbled med några nybörjare Arduino-projekt, men letar efter något lite permanent och på en helt annan nivå av häftigt, då är den ödmjuka 4 x 4 x 4 LED-kuben ... Läs mer, ett soluppgångslarm Arduino Nattljus och Soluppgångslarm Projekt Arduino Nattljus och Soluppgångslarmprojekt Idag ska vi göra en soluppgång väckarklocka, som försiktigt och långsamt väcker dig utan att tillgripa en offensiv brusmaskin. Läs mer eller ett larmsystem Så här gör du ett enkelt Arduino larmsystem Så här gör du ett enkelt Arduino larmsystem Upptäck rörelsen, skräck då av en inkräktare med högljudda larmljud och blinkande lampor. Låter det roligt? Det gör det självklart. Det är målet för dagens Arduino-projekt, lämpligt ... Läs mer. Om du bestämmer dig för att ta på sig en av de mer avancerade utmaningarna ovan, låt oss veta hur det går!

Utforska mer om: Arduino, Time Management, Timer Software.