Innehållsförteckning:

DIY Arduino binär väckarklocka: 14 steg (med bilder)
DIY Arduino binär väckarklocka: 14 steg (med bilder)

Video: DIY Arduino binär väckarklocka: 14 steg (med bilder)

Video: DIY Arduino binär väckarklocka: 14 steg (med bilder)
Video: 10 ЭЛЕКТРОННЫХ МОДУЛЕЙ ИЗ КИТАЯ С АЛИЭКСПРЕСС. КОНКУРС. 2024, Juli
Anonim
DIY Arduino binära väckarklocka
DIY Arduino binära väckarklocka
DIY Arduino binära väckarklocka
DIY Arduino binära väckarklocka
DIY Arduino binära väckarklocka
DIY Arduino binära väckarklocka

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

Anslut kretsen!
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

Förbereda summern
Förbereda summern
Förbereda summern
Förbereda summern
Förbereda summern
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

Förbereda LED -panelen
Förbereda LED -panelen
Förbereda LED -panelen
Förbereda LED -panelen
Förbereda LED -panelen
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örbereda omkopplaren (tryckknapp faktiskt)
Förbereda omkopplaren (tryckknapp faktiskt)
Förbereda omkopplaren (tryckknapp faktiskt)
Förbereda omkopplaren (tryckknapp faktiskt)
Förbereda omkopplaren (tryckknapp faktiskt)
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

Förbereder LED -remsa
Förbereder LED -remsa
Förbereder LED -remsa
Förbereder 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

Förbereda kapacitanssensorn
Förbereda kapacitanssensorn
Förbereda kapacitanssensorn
Förbereda kapacitanssensorn
Förbereda kapacitanssensorn
Förbereda kapacitanssensorn
Förbereda kapacitanssensorn
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

Förbereda strömförsörjningen
Förbereda strömförsörjningen
Förbereda strömförsörjningen
Förbereda strömförsörjningen
Förbereda strömförsörjningen
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

Ansluter dem till Arduino
Ansluter dem till Arduino
Ansluter dem till Arduino
Ansluter dem till Arduino
Ansluter dem till Arduino
Ansluter dem till Arduino

Följ schemat! Följ schemat! Följ schemat!

Anslut inte fel stift annars blir det konstigt.

Steg 9: Kapsling

Inhägnad
Inhägnad
Inhägnad
Inhägnad
Inhägnad
Inhägnad
Inhägnad
Inhägnad

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

Image
Image
Programmeringstid!
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

Image
Image

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

Slutsats
Slutsats
Slutsats
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

Uppdatering: Efter en veckas användning
Uppdatering: Efter en veckas användning
Uppdatering: Efter en veckas användning
Uppdatering: Efter en veckas användning
Uppdatering: Efter en veckas användning
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: