Innehållsförteckning:
- Tillbehör
- Steg 1: Anslut kretsen
- Steg 2: Förbereda summern
- Steg 3: Förbereda LED -panelen
- Steg 4: Förbereda omkopplaren (tryckknapp faktiskt)
- Steg 5: Förbered LED -remsa
- Steg 6: Förbereda kapacitanssensorn
- Steg 7: Förbereda strömförsörjningen
- Steg 8: Anslut dem till Arduino
- Steg 9: Kapsling
- Steg 10: Programmeringstid
- Steg 11: Korrigerande mekanism
- Steg 12: Så här använder du alla funktioner
- Steg 13: Slutsats
- Steg 14: Uppdatering: Efter en veckas användning
Video: DIY Arduino binär väckarklocka: 14 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:40
Det är den klassiska binära klockan igen! Men den här gången med ännu mer tilläggsfunktion! I den här instruktören visar jag dig hur du bygger en binär väckarklocka med Arduino som inte bara kan visa dig tid, men datum, månad, även med timer och larmfunktioner som också kan användas som sänglampa! Utan vidare låt oss komma igång!
Obs! Detta projekt använder inte en RTC -modul, så noggrannheten beror på ombord du använde. Jag har inkluderat en korrigeringsmekanism som kommer att korrigera tidsdrift under viss tid, men du måste experimentera runt för att hitta rätt värde för tiden (Mer om detta nedan), och även med korrigerande mekanism kommer det fortfarande att driva över lång tid (jämfört med utan en). Om någon är intresserad får du gärna använda RTC -modulen i detta projekt
Tillbehör
5 mm LED (av vilken färg som helst, jag använde 13 vita lysdioder med en RGB LED som indikator) --- 14 st
Arduino Nano (andra kanske fungerar) --- 1 st
Mikrobrytare --- 1 st
Liten bit aluminiumfolie
Monteringsbräda (för kapsling, men design gärna din egen)
Ett vitt papper (eller någon annan färg)
Någon plastfilm (den som används som omslag på boken)
Massa ledningar
Summer --- 1 st
NPN-transistor --- 1st
Motstånd 6k8 --- 14 st, 500R --- 1 st, 20R (10Rx2) --- 1 st, 4k7 --- 1st
Strömförsörjning för projektet (jag använde li-on batteri)
5050 LED -remsa och en skjutbrytare (tillval)
Steg 1: Anslut kretsen
Jag delar upp det här steget i:
1) summern delen
2) LED -panelen
3) Brytaren (tryckknapp)
4) LED -remsa
5) Kapacitanssensorn
6) Strömförsörjning
7) Anslut dem alla till Arduino
För det mesta är detta bara ett "följ det schematiska" steget. Så kolla in schemat ovan eller ladda ner och skriv ut det!
Steg 2: Förbereda summern
Om du har använt summer med Arduino tidigare vet du att om vi ansluter det direkt till Arduino kommer det inte att vara tillräckligt högt. Så vi behöver en förstärkare. För att konstruera förstärkaren behöver vi en NPN -transistor (i princip vilken NPN som helst fungerar, jag använde S9013 eftersom jag fick den från ett gammalt projekt) och lite motstånd för att begränsa strömmen. För att börja, identifiera först kollektorn, sändaren och basen på transistorn. En liten googling av databladet fungerar för detta. Löd sedan transistorns kollektor till summerns negativa terminal. Vid summerns positiva terminal löder vi bara en bit tråd till den så att vi kan lödda den till vår Arduino senare. Löd därefter 500R (eller liknande motståndsvärde) motståndet till basen på transistorn och från motståndet, löd ytterligare en trådbit för framtida bruk. Slutligen löd de två 10R -motstånden i serie till transistorns emitter och anslut en annan tråd från motstånden.
Verkligen, hänvisa till schematisk.
p/s: Jag vet fortfarande inte riktigt hur jag ska välja motstånd för transistorn vid den här tiden. Det värde jag använde väljs empiriskt.
Steg 3: Förbereda LED -panelen
Anslut lysdioderna och motståndet till prototypkortet i enlighet därmed och löd. Det är allt. Följ schemat. Om du är intresserad av avståndet jag använde, 3 hål isär för varje kolumn och två hål isär för varje rad (se bild). Och indikatorlampan? Jag kopplade den slumpmässigt.
Efter lödning av lysdioderna och motståndet till kortet, anslut alla positiva terminaler på lysdioderna tillsammans. Sedan lödtrådar en efter en till var och ett av motståndet vid de negativa terminalerna på lysdioder så att vi kan löda dem till Arduino senare.
OBS: Du kan bli förvirrad i det här steget. Kom ihåg att istället för att ansluta all jord tillsammans, ansluter vi alla positiva terminaler tillsammans och negativa terminaler till den individuella stiftet på Arduino. Således använder vi Arduino GPIO -stiftet som mark, inte Vcc. Om du av misstag ansluter den bakåt, oroa dig inte. Du kan ändra alla HIGH till LOW och LOW till HIGH i ledkontrollfunktionen.
Steg 4: Förbereda omkopplaren (tryckknapp faktiskt)
För omkopplaren (jag kallar det switch för att jag använde mikrobrytare, men du vet att det är tryckknapp), vi behöver ett neddragningsmotstånd på 4 k7 och naturligtvis själva omkopplaren. Glöm inte att förbereda några trådar. Börja med att löda motståndet och en bit tråd till mikrobrytarens gemensamma jord (COM). Löd sedan en annan tråd till mikrobrytarens normalt öppna (NO). Slutligen, fäst en annan kabel till motståndet. Säkra den med lite varmt lim.
Kunskapshörn: Varför behöver vi ett neddragbart motstånd?
"Om du kopplar bort den digitala I/O -stiftet från allt kan lysdioden blinka oregelbundet. Detta beror på att ingången är" flytande " - det vill säga att den slumpmässigt kommer tillbaka antingen HÖG eller LÅG. Det är därför du behöver en pull -up eller neddragningsmotstånd i kretsen. " - Källa: Arduino webbplats
Steg 5: Förbered LED -remsa
LED -remsan är för sänglampa, vilket är valfritt. Anslut bara LED -remsa och skjutreglage i serie, inget särskilt.
Steg 6: Förbereda kapacitanssensorn
Ok hänvisa till bilden. I grund och botten ska vi bara fästa tråden på en liten bit aluminiumfolie (eftersom aluminiumfolie inte kan lödas) och tejpa den på en liten bit monteringsbräda. Vänlig påminnelse, se till att du inte tejper aluminiumfolien helt. Lämna en del av den utsatt för direktkontakt.
Steg 7: Förbereda strömförsörjningen
Eftersom jag använde li-on-batteri som strömförsörjning behöver jag en TP4056-modul för laddning och skydd, och en boost-omvandlare för att konvertera spänningen till 9v. Om du bestämde dig för att använda 9V -väggadapter kan du behöva ett DC -uttag eller bara ansluta det direkt. Observera att motståndsvärdet för förstärkaren är konstruerat för 9V och om du vill använda annan spänning kan du behöva byta motståndet.
Steg 8: Anslut dem till Arduino
Följ schemat! Följ schemat! Följ schemat!
Anslut inte fel stift annars blir det konstigt.
Steg 9: Kapsling
Dimensionen på min design är 6,5 cm*6,5 cm*8 cm, så den är lite skrymmande. Den består av ett främre fönster för LED -display och toppfönster för sänglampan. För min design, se bilder.
Steg 10: Programmeringstid
Ladda ner min skiss nedan och ladda upp till din Arduino. Om du inte vet hur du gör det, bry dig inte om att göra det här projektet! Nja bara skojar, här är en bra handledning om det: Ladda upp skiss till arduino
Öppna sedan seriell bildskärm, och du bör se den mata ut aktuell tid. Så här gör du för att ställa in tiden.
För att ställa in timme: h, XX - där xx är den aktuella timmen
För att ställa in minut: min, XX - xx är den aktuella minuten
För att ställa in två: s, XX
För att ställa in datum: d, XX
För att ställa in månad: mån, XX
När ovanstående kommentar har körts bör den ge dig det värde du just ställt in. (Till exempel när du ställer in timme med h, 15, bör den returnera Timme: 15 i seriemonitorn.
För kapacitanssensorn kan du behöva kalibrera den innan den fungerar. För att göra detta, tryck på mikrobrytaren två gånger och titta på den seriella bildskärmen. Det bör mata ut ett gäng nummer. Sätt nu fingret på kapacitanssensorn och se notera räckvidden för numret. Ändra sedan variabeln "captrigger". Låt oss säga att du får 20-30 när du trycker på den och ställ sedan in captrigger på 20.
Skissen använder ADCTouch -biblioteket, se till att du installerade det.
Steg 11: Korrigerande mekanism
Tidsperioden för korrigeringsmekanismen i min kod är inställd på den som är korrekt för mig. Om tiden fortfarande inte är korrekt måste du ändra värdet på variabeln "corrdur"
Corrdur är nu standard till 0 i senaste uppdateringen.
Värdet av corrdur betyder hur många millisekunder det tar att sakta ner en sekund
För att ta reda på värdet på corrdur, använd formeln:
2000/(y-x)/x)
där x = tidens faktiska varaktighet och y = tiden som förflutit för klockan, båda i andra
För att hitta värdet på x och y måste du göra ett litet experiment.
Ställ in klockans tid till den verkliga tiden och registrera den initiala tiden (den verkliga initialtiden och klockans initialtid bör vara densamma). Efter ett tag (några timmar), spela in den sista faktiska tiden och klockans sista tid.
x = faktisk sluttid-initialtid och y = klockans sluttid-initialtid
Ändra sedan värdet på corrdur i koden och ladda upp det igen till Arduino.
Upprepa sedan testet och denna gång ändrades formeln till:
2000/((2/z)+(y-x/x))
Där x och y är samma sak som tidigare, medan z är det aktuella korrigeringsvärdet.
Ladda upp igen och gör testet om och om igen tills det är exakt nog för dig.
Om din klocka fortfarande påskyndar även corrdur är inställd på 0 (betyder ingen korrigeringsmekanism), måste du ändra den andra ++ till andra-- i korrigeringsmekanismens del av koden (jag kommenterade det), ställ in corrdur till 0, hitta sedan nej. millisekund tar det att påskynda en sekund.
Steg 12: Så här använder du alla funktioner
Du kan ändra läge genom att trycka på mikrobrytaren.
I det första läget visar det bara tid. Om indikatorlampan blinkar 1 gång per sekund är larmet avstängt. Om 2 gånger per sekund är larmet på. Du kan slumra larmet i 10 minuter i första läget genom att trycka på kapacitanssensorn.
I det andra läget visar det datum. Att trycka på kapacitanssensorn gör ingenting.
I det tredje läget kan du ställa in timer. Om du trycker på kapacitanssensorn startas timern och du bör se att indikatorlampan börjar blinka. Kapacitanssensor används också för att ställa in tid. Tidsintervallet är 1 minut till 59 minuter.
I fjärde läget kan du ställa in alarmtimmar med hjälp av kapacitanssensor
I femte läget kan du ställa in larmminuten med hjälp av kapacitanssensor.
I sjätte läge återställs minuten till 30 och sekund till 0 utan att ändra timme genom att trycka på kapacitanssensorn. Det betyder att så länge din klocka inte går över 30 minuter kan du kalibrera om den med det här läget.
Sjunde läget är läget gör ingenting om kapacitanssensorn glider ut vid laddning.
Åh, för att stänga av larmet, tryck bara på mikrobrytaren. (SENASTE UPPDATERING FÖR ATT INKLUDERA ALARM SNOOZE)
Tja, vad sägs om att läsa klockan? Det är lätt! Läsa binärklocka - Wikihow Du kan känna dig konstig först, men du kommer att vänja dig vid det!
Steg 13: Slutsats
Varför jag startade det här projektet. Ursprungligen beror det på att jag har en gammal digital klocka som ligger och jag vill göra den till en väckarklocka. Tyvärr visar sig den gamla klockan vara trasig. Så jag tänkte varför inte bygga en med Arduino? Med lite google -sökning hittade jag detta binära klockprojekt utan RTC på instruerbart av Cello62. Den har dock inte den väckarklocka jag vill ha, så jag tar koden och ändrar den själv. Och projektet är fött. Dessutom såg jag att klocktävlingen gick på instruerbar nyligen vilket gav mig ännu mer motivation att göra detta. Hur som helst, det här är fortfarande mitt första projekt med Arduino, så massa möjliga förbättringar.
Framtida förbättringar:
1) Använd RTC
2) Ställ in larm eller tid eller timer trådlöst!
3) Oavsett vilken egenskap jag tänker på
Steg 14: Uppdatering: Efter en veckas användning
Bortsett från det uppenbara problemet - tidsdrift, är det nästa jag skulle säga strömförbrukning. Först stegar jag spänningen upp till 9v, som sedan kommer att trappas ner av den linjära regulatorn i Arduino. Den linjära regulatorn är mycket ineffektiv. Klockan varar bara en dag. Det betyder att jag måste ladda det varje dag. Det är inte den största affären förrän du inser att hela systemet bara är cirka 50% effektivt. Med tanke på att mitt batteri är 2000mAh, skulle jag kunna beräkna strömförbrukningen varje dag.
Strömförbrukning = (7,4Wh*10%)+(7,4Wh*90%*50%) = 4,07Wh om dagen
Det är 1,486kWh per år! Det kan användas för att koka 283 g vatten (från 25 C till 100 C)? Men hur som helst ska jag förbättra klockans effektivitet. Sättet att göra detta är att inte använda den linjära regulatorn alls. Det betyder att vi måste justera boostomvandlaren för att mata ut 5V direkt till 5V -stiftet på Arduino. För att minimera den bortkastade effekten ytterligare måste jag ta bort de två ombord -lysdioderna (pin13 och ström), eftersom de kommer att slösa 0,95Wh per dag. Tyvärr är jag helt noob på SMD -lödning så det enda sättet för mig att göra detta är att klippa skenan på brädet. Efter detta måste jag ta bort emittermotståndet på summern och sänglampan (LED -remsan fungerar inte vid 5V). Men betyder det att du måste ge upp den fantastiska funktionen? Nej! Du har två val här: Använd den vanliga 5 mm LED -dioden eller använd 5V LED -remsan. Men för mig kände jag mig redan trött för att göra det här projektet under hela förra veckan, så jag bestämde mig för att ge upp den här funktionen. Jag använde dock strömbrytaren ursprungligen för ljusfunktionen för att slå på eller stänga av klockpanelen för att ytterligare spara energi, men slutar att lysdioden blinkar när jag stänger av den. Bug bli funktion? Jag vet inte (någon vet, berätta för mig nedan).
I slutet av ändringen håller klockan nu i mer än 2 dagar!
Nästa gång har jag ett mindre allvarligt problem med klockan. Under laddning skulle kapacitanssensorn bli galen, så jag lägger till ett annat läge som gör ingenting.
När det gäller tidsdrift, eftersom det är mycket obekvämt att ansluta till datorn varje dag för att återställa den, har jag lagt till ett annat läge som kommer att ställa in minuten till 30 och andra till 0. Det betyder att du kan återställa den halv en timme!
Rekommenderad:
LED Matrix väckarklocka (med MP3 -spelare): 6 steg (med bilder)
LED Matrix väckarklocka (med MP3 -spelare): Denna Arduino -baserade väckarklocka har allt du kan förvänta dig av ditt larm - möjlighet att väcka dig med varje låt du gillar, snooze -knapp och den är lätt att styra med tre knappar. Det finns tre huvudblock - LED -matris, RTC -modul och
Smart väckarklocka: en smart väckarklocka tillverkad med hallon Pi: 10 steg (med bilder)
Smart väckarklocka: en smart väckarklocka tillverkad med hallon Pi: Har du någonsin velat ha en smart klocka? I så fall är detta lösningen för dig! Jag gjorde Smart Alarm Clock, det här är en klocka som du kan ändra alarmtiden enligt webbplatsen. När larmet går går det ett ljud (summer) och 2 lampor lyser
Slap väckarklocka med Arduino: 13 steg (med bilder)
Slap Alarm Clock With Arduino: Jag vet inte om dig, men en enkel väckarklocka kan inte väcka mig. Jag behöver ljus, ljud och till och med en mjuk smäll för att vakna. Ingen väckarklocka tilltalar mig, så jag bestämde mig för att göra mig själv en värdig att väcka mig. Även om det verkar väckarklockan jag
5 $ PCB -KALENDER MED BINÄR KLOCKA: 7 steg (med bilder)
5 $ PCB -KALENDER MED BINÄR KLOCKA: Hej! Jag gjorde denna PCB -kalender och binära klocka med Eagle CAD. Jag använde ATMEGA328P MCU (från Arduino) och 9x9 LED -matris. Mått för mitt bräde är 8 cm x 10 cm (3,14 tum x 3,34 tum). Det är lite för litet men först: gratisversionen av Eagle CAD tillåter 80 cm^2
Soluppgång väckarklocka med Arduino: 9 steg (med bilder)
Soluppgång väckarklocka med Arduino: Vintertid kan vara trist. Du vaknar, det är mörkt och du måste gå upp ur sängen. Det sista du vill höra är det väckande ljudet från din väckarklocka. Jag bor i London och har svårt att vakna på morgonen. Jag saknar också att vakna till