Pomoduino Lav en Arduino-drevet Pomodoro-timer

  • Harry James
  • 0
  • 4256
  • 800
Reklame

Pomodoro-teknikken Gennemsnitlig udsættelse med disse Pomodoro-teknik-apps og -software Gennemsnitlig udskillelse med disse Pomodoro-teknikapps og -software Udskillelse er en ondskab, der gennemsyrer studerende og arbejdstagere i alle hjørner af verden, og det smitter både amatører og fagfolk. Som forfatter lider jeg dagligt af udskud. Nogle mennesker ... er et populært tidsstyringssystem, der involverer opdeling af arbejde i 25 minutters bidder med 5 minutters hvile. Der findes forskellige software til at hjælpe med dette, men hvad nu hvis du vil bruge pomodoro-systemet, mens du arbejder væk fra din computer, eller mens du er på din arbejdsbænk? At lave en Arduino-drevet pomodoro-timer er et fantastisk introduktionsprojekt 15 Store Arduino-projekter for begyndere 15 Store Arduino-projekter for begyndere Interesseret i Arduino-projekter, men ikke sikker på, hvor de skal begynde? Disse nybegynderprojekter vil lære dig, hvordan du kommer i gang. for at hjælpe dig med at lære dig rundt i en Arduino og faktisk resultere i noget nyttigt.

Målet

I tilfælde af at du gerne vil prøve at finde ud af, hvordan du indstiller dette, før du ser fremad, her er hvad vi prøver at gøre. Vi har tre lys; en til “arbejde,” en til “pause,” og et advarselslys. Arbejdslampen vil være tændt i 25 minutter, og advarselslampen vil også være tændt i de sidste to minutter af dette interval. Efter 25 minutter slukkes arbejds- og advarselslamperne, og pauselyset tændes i 5 minutter (advarselslampen tændes igen i de sidste to minutter).

Der er også en knap, der forsinker skiftet af lys i to minutter for at give dig lidt ekstra arbejdstid eller pausetid.

Hvad du har brug for

Til dette projekt bruger vi følgende dele - alt hvad du skal have i dit startsæt.

  • Arduino mikrokontroller (vi brugte en Mega, men Uno ville også fungere fint)
  • breadboard
  • USB-kabel
  • 6 ledninger
  • 3 x 330 Ohm-modstande
  • 3 x LED (vi har brugt grøn, gul og blå)
  • 1 trykknap

Trin 1: Opsætning af alt

Sæt hver af LED'erne i en anden søjle på brødbrættet (det er nemmest, hvis de er placeret lidt i afstand), og placer knappen lidt længere nede. Sørg for, at knappen vender mod den rigtige retning - der er to sæt med to stifter på en enkelt side af knappen, og at stifterne skal være i samme række.

Kør ledninger fra stifter 5, 7 og 13 til kolonnen, der indeholder det negative ben af ​​de blå, gule og grønne lysdioder (det negative ben er det korteste af de to). Sæt derefter en modstand i den samme søjle som hvert positivt ben, og tilslut dem til den negative skinne på siden af ​​brødbrættet (den blå, selvom farven ikke rigtig betyder noget, det er bare konvention at bruge blåt for klarhed).

Kør også en ledning fra den blå skinne på brødbrættet til et af benene på knappen, og en anden ledning fra det andet ben (på samme side) til pin 2 på Arduino. Jord derefter den blå skinne ind i GND-stiften på Arduino.

Her er et diagram, der skal fjerne enhver forvirring:

Det er det! Nu videre til programmeringen.

Programmering af din Arduino

Nedenfor er koden til Pomoduino-timeren - læs gennem de inline kommentarer, da de forklarer, hvad hvert trin i koden gør.

 int grønt = 13; int gul = 7; int blå = 5; int ledStateGreen = LAV; int ledStateBlue = LAV; længe tidligereMillis = 0; langt interval; int-knapPin = 2; int-knapState = 1; bool presset = 0; lang pressetid = 0; int-fase = 0; tom opsætning () pinMode (grøn, OUTPUT); pinMode (gul, OUTPUT); pinMode (blå, OUTPUT); pinMode (buttonPin, INPUT_PULLUP); digitalWrite (buttonPin, HIGH);  void loop () // opdater aktuel tid og tilstand af knap usigneret lang strømMillis = millis (); int buttonState = digitalRead (buttonPin); // måle tid siden sidste knap tryk på lang fremgang = strømMillis - forrigeMillis; // Kontroller for at se, om der er trykket på knappen // i over 2 sekunder siden sidst tryk på // (for at forhindre, at flere tryk registreres) hvis ((pressTime - currentMillis)> 2000) if (buttonState == 0) pressed = 1; pressTime = currentMillis; andet presset = 0; // fase 0 er "arbejde" fase // hvis der er trykket på knappen, tilføj 2 minutter til arbejdstimeren hvis (fase == 0) if (trykket == 1 ) interval = 1620000; // hvis intervallet er overstået, skal du registrere den aktuelle // tid til måling af næste interval, hvis (strømMillis - forrigeMillis> interval) forrigeMillis = strømMillis; // indstil grøn og blå LED-tilstand, hvis (ledStateGreen == LOW) ledStateGreen = HIGH; ledStateBlue = LAV; andet ledStateGreen = LOW; // anvende LED-tilstande til lysdioder // nulstillingsinterval og skift til "break" -fase digitalWrite (grøn, ledStateGreen); digitalWrite (blå, ledStateBlue); interval = 1500000; buttonState = 1; fase = 1;  andet // hvis der er trykket på knappen, tilføj 2 minutter til at bryde timeren, hvis (trykket == 1) interval = 420000; // hvis intervallet er ovre, skal du registrere den aktuelle // tid til måling af det næste interval, hvis (aktuelleMillis) - previousMillis> interval) previousMillis = currentMillis; // indstil blå og grøn LED angiver hvis (ledStateBlue == HØJ) ; ledStateBlue = LAV;  andet ledStateBlue = HØJ; ledStateGreen = LAV; // anvende LED-tilstande til lysdioder // nulstillingsinterval og indstillet til "arbejde" -fasen digitalWrite (grøn, ledStateGreen); digitalWrite (blå, ledStateBlue); interval = 300000; buttonState = 1; fase = 0;  // beregne den resterende tid i intervallet usigneret lang tidLeft = (interval - fremgang); // hvis der er mindre end to minutter tilbage, lyser gul LED, hvis (timeLeft < 120000)  digitalWrite(yellow, HIGH);  else  digitalWrite(yellow, LOW);  // reset pressed variable pressed = 0; 

Bemærk: Når du tester dette, vil du sandsynligvis ikke vente i 25 minutter for at se, om det fungerer. I videoen herunder har jeg intervaller indstillet til 5 sekunder for grønt, 2 sekunder for blåt og 1 sekund for gult. Brug et kortere interval for at sikre dig, at alt fungerer korrekt, før du bruger det til at holde styr på tiden!

Når du har tilsluttet alt, og koden er indtastet i IDE, er du klar til at gå! Upload skitsen, så får du en fungerende pomodoro-timer med en 2-minutters forsinkelse-knap. Hvis advarselslampen lyser, og du har brug for mere tid, skal du bare trykke på knappen.

Du kan bemærke, at knappen er tilsluttet direkte til Arduino-indgangsstiften. Ved at bruge en af ​​pullupmodstanderne, der er indbygget i Arduino, behøver du ikke at køre en ledning fra 5V-porten til knappen eller bruge en modstand på linje med den. Du kan få mere information om Arduino-reference for digitale stifter.

Flere avancerede udfordringer

Hvis du har lavet din Pomoduino, og du ønsker at tage på noget lidt mere avanceret, kan du prøve et af følgende:

  • Tilføj en række LED'er, der lyser op og tjener som en tæller for antallet af afsluttede arbejdssessioner
  • Få knappen til at tilføje to minutter til timeren for hver gang du trykker på den
  • Tilføj en højttaler, og spill en støj, når det er tid til at komme tilbage på arbejde
  • Brug et 9V batteri for at gøre det bærbart
  • I stedet for at bruge en advarselslampe, skal du blinke det grønne eller blå lys i et minut, før du skifter
  • Vis en nedtælling på en LED-skærm

Andre store begynderprojekter

Hvis du er ny på Arduino, har vi masser af sjove tutorials til dig at tage på. Prøv en trafiklyscontroller Arduino-programmering for begyndere: Trafiklyskontroller Projektvejledning Arduino-programmering for begyndere: Trafiklyskontroller Projektvejledning Opbygning af en Arduino trafiklyscontroller hjælper dig med at udvikle grundlæggende kodningsevner! Vi sætter dig i gang. , en futuristisk LED-terning Hvordan man fremstiller en pulserende Arduino LED-terning, der ligner den kom fra fremtiden Hvordan man fremstiller en pulserende Arduino LED-terning, der ligner den kom fra fremtiden, hvis du har dybt med nogle nybegynder Arduino-projekter, men er på udkig efter noget lidt permanent og på et helt andet niveau af awesome, så er den ydmyge 4 x 4 x 4 LED-terning…, en solopgangsalarm Arduino natlys og solopgangalarmprojekt Arduino natlys og solopgangalarmprojekt I dag, vi laver et solopgang vækkeur, der forsigtigt og langsomt vækker dig uden at ty til en stødende støjfremstillende maskine. , eller et alarmsystem Sådan opretter du et simpelt Arduino alarmsystem Sådan opretter du et simpelt Arduino alarmsystem Registrer bevægelse, og skræm derefter pokker ud af en ubuden gæst med en høj toneangivende alarmlyde og blinkende lys. Lyder det sjovt? Selvfølgelig gør det det. Det er målet med dagens Arduino-projekt, passende…. Hvis du beslutter at tage en af ​​de mere avancerede udfordringer opført ovenfor, så lad os vide, hvordan det går!




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.