Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Tilslut kredsløbet
- Trin 2: Forberedelse af summeren
- Trin 3: Forberedelse af LED -panelet
- Trin 4: Forberedelse af kontakten (trykknap faktisk)
- Trin 5: Forberedelse af LED Strip
- Trin 6: Forberedelse af kapacitanssensoren
- Trin 7: Forberedelse af strømforsyningen
- Trin 8: Tilslut dem til Arduino
- Trin 9: Kapsling
- Trin 10: Programmeringstid
- Trin 11: Korrigerende mekanisme
- Trin 12: Sådan bruges alle funktioner
- Trin 13: Konklusion
- Trin 14: Opdatering: Efter en uges brug
Video: DIY Arduino binær vækkeur: 14 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Det er det klassiske binære ur igen! Men denne gang med endnu flere ekstra funktioner! I denne instruktive vil jeg vise dig, hvordan du bygger et binært vækkeur med Arduino, der ikke kun kan vise dig tid, men dato, måned, selv med timer og alarmfunktioner, der også kan bruges som sengelampe! Lad os komme i gang uden videre!
Bemærk: Dette projekt bruger ikke et RTC -modul, så nøjagtigheden afhænger af det bord, du har brugt. Jeg har inkluderet en korrigerende mekanisme, der vil korrigere tidsdrift over en bestemt periode, men du bliver nødt til at eksperimentere rundt for at finde den korrekte værdi for tidsperioden (mere om dette nedenfor), og selv med korrigerende mekanisme vil den stadig glide over lang tid (sammenlignet med uden en). Hvis nogen er interesseret, er du velkommen til at implementere brugen af RTC -modul i dette projekt
Forbrugsvarer
5 mm LED (af enhver farve, jeg brugte 13 hvide lysdioder med en RGB LED som indikator) --- 14 stk
Arduino Nano (andre kan fungere) --- 1 stk
Mikrokontakt --- 1 stk
Lille stykke aluminiumsfolie
Monteringsbræt (til kabinet, men design gerne dit eget)
Stykke hvidt papir (eller enhver anden farve)
Noget plastfilm (den bruges som omslag til bog)
Flok ledninger
Summer --- 1 stk
NPN transistor --- 1 stk
Modstande 6k8 --- 14 stk., 500R --- 1 stk., 20R (10Rx2) --- 1 stk., 4k7 --- 1stk.
Strømforsyning til projektet (jeg brugte li-on batteri)
5050 LED -strip og en skydekontakt (valgfri)
Trin 1: Tilslut kredsløbet
Jeg deler dette trin op i:
1) summeren
2) LED -panelet
3) kontakten (trykknap)
4) LED -strimmel
5) Kapacitanssensoren
6) Strømforsyning
7) Tilslut dem alle til Arduino
For det meste er dette bare et "følg skematisk" trin. Så tjek skematisk ovenfor eller download og udskriv det endda!
Trin 2: Forberedelse af summeren
Hvis du har brugt summer med Arduino før, ved du, at hvis vi forbinder det direkte med Arduino, vil det ikke være højt nok. Så vi har brug for en forstærker. For at konstruere forstærkeren har vi brug for en NPN -transistor (stort set enhver NPN vil fungere, jeg brugte S9013, fordi jeg fik den fra et gammelt projekt), og en vis modstand for at begrænse strømmen. For at starte skal du først identificere kollektoren, emitteren og bunden af transistoren. En lille smule googling af databladet virker til dette. Lod derefter transistorens kollektor til summerens negative terminal. På summerens positive terminal lodder vi bare et stykke ledning til det, så vi senere kan lodde det til vores Arduino. Herefter loddes 500R (eller en lignende modstandsværdi) modstand til bunden af transistoren og fra modstanden, loddes endnu et stykke ledning til fremtidig brug. Endelig loddes de to 10R -modstande i serie til transistorens emitter og tilslutter en anden ledning fra modstandene.
Se virkelig skematisk.
p/s: Jeg ved stadig ikke rigtig, hvordan jeg skal vælge modstand til transistor på det tidspunkt, jeg skrev dette. Den værdi, jeg brugte, vælges empirisk.
Trin 3: Forberedelse af LED -panelet
Sæt lysdioderne og modstanden i prototypebordet i overensstemmelse hermed og lod. Det er det. Følg skematisk. Hvis du er interesseret i afstanden, jeg brugte, 3 huller fra hinanden for hver kolonne og to huller fra hinanden for hver række (se billedet). Og indikatorlampen? Jeg tilsluttede det tilfældigt.
Efter lodning af lysdioder og modstand til tavlen skal du forbinde alle de positive terminaler på lysdioder sammen. Derefter loddes lodtråde en efter en til hver af modstanden ved de negative terminaler på lysdioder, så vi kan lodde dem til Arduino senere.
BEMÆRK: Du kan blive forvirret over dette trin. Husk i stedet for at forbinde al jord sammen, forbinder vi alle positive terminaler sammen og negative terminaler til den enkelte pin på Arduino. Således bruger vi Arduino GPIO -stiften som jorden, ikke Vcc. Hvis du ved et uheld forbinder det baglæns, skal du ikke bekymre dig. Du kan ændre alt HIGH til LOW og LOW til HIGH i LED -kontrolfunktionen.
Trin 4: Forberedelse af kontakten (trykknap faktisk)
Til kontakten (jeg kalder det switch, fordi jeg brugte mikro-switch, men du ved, at det er trykknap), har vi brug for en 4k7 pull-down modstand og selvfølgelig selve kontakten. Ah, glem ikke at forberede nogle ledninger. Start med at lodde modstanden og et stykke ledning til mikrocontaktens fælles jord (COM). Derefter loddes endnu et stykke ledning til den normalt åbne (NO) af mikrokontakten. Slut endelig en anden ledning til modstanden. Fastgør det med lidt varm lim.
Videnshjørne: Hvorfor har vi brug for en pull-down-modstand?
"Hvis du afbryder den digitale I/O -pin fra alt, kan LED'en blinke uberegneligt. Dette skyldes, at indgangen er" flydende " - det vil sige, at den tilfældigt vender tilbage enten HØJ eller LAV. Derfor har du brug for en pull -up eller nedtrækningsmodstand i kredsløbet. " - Kilde: Arduino websted
Trin 5: Forberedelse af LED Strip
LED -strip er til sengelampe, som er valgfri. Tilslut bare LED -strimmel og skydekontakt i serie, ikke noget særligt.
Trin 6: Forberedelse af kapacitanssensoren
Ok se billedet. Grundlæggende vil vi bare vedhæfte tråden til et lille stykke aluminiumsfolie (fordi aluminiumsfolie ikke kan loddes) og tape den derefter på et lille stykke monteringsbræt. Venlig påmindelse, sørg for at du ikke tape aluminiumsfolien helt fast. Lad noget af det blive udsat for direkte kontakt.
Trin 7: Forberedelse af strømforsyningen
Da jeg brugte li-on batteri som strømforsyning, har jeg brug for et TP4056-modul til opladning og beskyttelse og en boost-konverter til at konvertere spændingen til 9v. Hvis du besluttede at bruge 9V vægadapter, har du muligvis brug for et DC -stik, eller bare tilslutte det direkte. Bemærk, at modstandsværdien for forstærkeren er designet til 9V, og hvis du vil bruge anden spænding, skal du muligvis ændre modstanden.
Trin 8: Tilslut dem til Arduino
Følg skematisk! Følg skematisk! Følg skematisk!
Tilslut ikke den forkerte pin, ellers bliver tingene underlige.
Trin 9: Kapsling
Dimensionen på mit design er 6,5 cm*6,5 cm*8 cm, så det er lidt omfangsrigt. Den består af et frontvindue til LED -display og topvindue til sengelampen. For mit design, se billeder.
Trin 10: Programmeringstid
Download min skitse herunder og upload til din Arduino. Hvis du ikke ved, hvordan du gør dette, gider du ikke gøre dette projekt! Næh bare sjov, her er en god tutorial om det: Upload skitse til arduino
Åbn derefter den serielle skærm, og du skal se den udsende den aktuelle tid. Sådan gør du for at indstille tiden.
Sådan indstilles time: h, XX - hvor xx er den aktuelle time
Sådan indstilles minut: min, XX - xx er det aktuelle minut
For at indstille sekund: s, XX
For at indstille dato: d, XX
For at indstille måned: man, XX
Når ovenstående kommentar er udført, skulle den returnere dig den værdi, du lige har angivet. (For eksempel når du indstiller time med h, 15, skal den returnere Time: 15 i den serielle skærm.
For kapacitanssensoren skal du muligvis kalibrere den, før den fungerer. For at gøre dette skal du trykke to gange på mikrokontakten og se på den serielle skærm. Det skal udsende en masse numre. Sæt nu fingeren på kapacitanssensoren, og se noter rækkevidden af nummeret. Rediger derefter variablen "captrigger". Lad os sige, at du får 20-30, når du trykker på det, og sæt derefter captrigger til 20.
Skitsen bruger ADCTouch -bibliotek, sørg for at du har installeret det.
Trin 11: Korrigerende mekanisme
Perioden for korrektionsmekanisme i min kode er indstillet til den, der er nøjagtig for mig. Hvis tiden stadig ikke er præcis, skal du ændre værdien af variablen "corrdur"
Corrdur er nu standard til 0 i den seneste opdatering.
Værdien af corrdur betyder, hvor mange millisekunder der skal til for at bremse et sekund
For at finde ud af værdien af corrdur, brug formlen:
2000/(y-x)/x)
hvor x = den faktiske varighed af tiden, der er gået, og y = den tid, der er gået for uret, begge i sekund
For at finde værdien af x og y skal du lave et lille eksperiment.
Indstil urets tid til den faktiske tid, og registrer den første tid (den faktiske starttid og urets starttid bør være den samme). Efter et stykke tid (få timer) registreres den endelige faktiske tid og urets sidste tid.
x = faktisk sluttid-indledende tid og y = ur sidste tid-starttid
Skift derefter værdien af corrdur i koden, og upload igen til Arduino.
Gentag derefter testen, og denne gang ændrede formlen til:
2000/((2/z)+(y-x/x))
Hvor x og y er det samme som før, mens z er den aktuelle corrdur -værdi.
Upload igen, og foretag testen igen og igen, indtil den er præcis nok til dig.
Hvis dit ur stadig fremskynder selv corrdur er indstillet til 0 (betyder ingen korrigerende mekanisme), skal du ændre den anden ++ til anden- i korrigeringsmekanismens del af koden (jeg kommenterede det), indstil corrdur til 0, find derefter nej. millisekund tager det at fremskynde et sekund.
Trin 12: Sådan bruges alle funktioner
Du kan skifte tilstand ved at trykke på mikrokontakten.
I den første tilstand viser den simpelthen tid. Hvis indikatorlampen blinker 1 gang i sekundet, er alarmen slukket. Hvis 2 gange i sekundet, er alarmen slået til. Du kan slumre alarmen i 10 minutter i første tilstand ved at trykke på kapacitanssensoren.
I anden tilstand viser den dato. At trykke på kapacitanssensoren gør ingenting.
I tredje tilstand kan du indstille timer. Ved at trykke på kapacitanssensoren tændes timeren, og du skal se indikatorlampen begynde at blinke. Kapacitanssensor bruges også til at indstille timertiden. Timerens rækkevidde er 1 minut til 59 minutter.
I fjerde tilstand kan du indstille alarmtiden ved hjælp af kapacitanssensor
I femte tilstand kan du indstille alarmminutten ved hjælp af kapacitanssensor.
I sjette tilstand vil tryk på kapacitanssensoren nulstille minut til 30 og sekund til 0 uden at ændre time. Det betyder, så længe dit ur ikke driver mere end 30 minutter, kan du kalibrere det igen ved hjælp af denne tilstand.
Syvende tilstand er gør ingenting -funktionen, hvis kapacitanssensoren glider ud under opladning.
Åh, for at afbryde alarmen, skal du bare trykke på mikrokontakten. (SENESTE OPDATERING TIL AT INKLUDE ALARM SNOOZE)
Hvad med at læse uret? Det er nemt! Læsning af binært ur - Wikihow Du kan føle dig mærkelig i starten, men du får brug for det!
Trin 13: Konklusion
Hvorfor startede jeg dette projekt. I første omgang er det fordi jeg har et gammelt digitalt ur, der ligger og jeg vil gøre det til et vækkeur. Desværre viser det gamle ur sig at være gået i stykker. Så jeg var ligesom hvorfor ikke bygge en ved hjælp af Arduino? Med en lille smule google -søgning fandt jeg dette binære urprojekt uden RTC på instruerbart af Cello62. Det har dog ikke den vækkeurfunktion, jeg ønsker, så jeg tager koden og ændrer den selv. Og projektet er født. Desuden så jeg urkonkurrencen kører på instruerbar for nylig, hvilket gav mig endnu mere motivation til at gøre dette. Anyway, dette er stadig mit første projekt, der bruger Arduino, så masser af mulige forbedringer.
Fremtidig forbedring:
1) Brug RTC
2) Indstil alarm eller tid eller timer trådløst!
3) Uanset hvilken funktion jeg tænker på
Trin 14: Opdatering: Efter en uges brug
Bortset fra det åbenlyse problem - tidsdrift, er det næste, jeg vil sige, strømforbrug. Først og fremmest træder jeg spændingen op til 9v, som derefter vil blive trappet ned af den lineære regulator i Arduino. Den lineære regulator er meget ineffektiv. Uret holder kun en DAG. Det betyder, at jeg skal genoplade det hver dag. Det er ikke den største aftale, før du indser, at hele systemet kun er omkring 50% effektivt. I betragtning af at mit batteri er 2000mAh, ville jeg være i stand til at beregne den spild, der spildes hver dag.
Strømforbrug = (7,4Wh*10%)+(7,4Wh*90%*50%) = 4,07Wh om dagen
Det er 1,486kWh om året! Det kan bruges til at koge 283 g vand (fra 25 C til 100 C)? Men alligevel vil jeg forbedre effektiviteten af uret. Måden at gøre dette på er slet ikke at bruge den lineære regulator. Det betyder, at vi skal justere boost -konverteren til at output 5V direkte i 5V pin på Arduino. For derefter at minimere den spild, der er spildt endnu, skal jeg fjerne de to indbyggede LED (pin13 og strøm), da de spilder 0,95Wh om dagen. Desværre er jeg helt noob på SMD lodning, så den eneste måde for mig at gøre dette på er at skære skinnen på brættet. Efter dette skal jeg fjerne emittermodstanden på summeren og sengelampen (LED -strimmel virker ikke ved 5V). Men betyder det, at du skal opgive den fantastiske funktion? Ingen! Du har to valg her: Brug den normale 5mm LED -diode, eller brug 5V LED -strimmel. Men for mig følte jeg allerede træt af at lave dette projekt i hele sidste uge, så jeg besluttede at opgive denne funktion. Jeg brugte imidlertid kontakten oprindeligt til lysfunktionen til at tænde eller slukke urpanelet for yderligere at spare energi, men ender med at LED'en blinker, når jeg slukker den. Bug blive funktion? Jeg ved det ikke (nogen ved det, fortæl mig det herunder).
Ved afslutningen af ændringen holder uret nu i mere end 2 dage!
Dernæst har jeg et mindre alvorligt problem med uret. Under opladning ville kapacitanssensoren gå amok, så jeg tilføjer en anden tilstand, der ikke gør noget.
Med hensyn til tidsdrift, da det er meget ubelejligt at tilslutte computeren til hverdag for at nulstille den, har jeg tilføjet en anden tilstand, der sætter minut til 30 og andet til 0. Det betyder, at du kan nulstille den på halv tre timer!
Anbefalede:
Smart vækkeur: et smart vækkeur lavet med hindbær Pi: 10 trin (med billeder)
Smart vækkeur: et smart vækkeur lavet med Raspberry Pi: Har du nogensinde ønsket et smart ur? I så fald er dette løsningen for dig! Jeg lavede Smart Alarm Clock, dette er et ur, hvor du kan ændre alarmtiden i henhold til webstedet. Når alarmen går, kommer der en lyd (summer) og 2 lyser
Slap vækkeur med Arduino: 13 trin (med billeder)
Slap vækkeur med Arduino: Jeg ved ikke om dig, men et simpelt vækkeur kan ikke vække mig. Jeg har brug for lys, lyd og endda et blødt slag for at vågne. Intet vækkeur tiltaler mig, så jeg besluttede at gøre mig selv til en værdig til at vække mig. Selvom det ser ud som vækkeuret jeg
DIY smart skala med vækkeur (med Wi-Fi, ESP8266, Arduino IDE og Adafruit.io): 10 trin (med billeder)
DIY Smart Scale With Alarm Clock (med Wi-Fi, ESP8266, Arduino IDE og Adafruit.io): I mit tidligere projekt udviklede jeg en smart badevægt med Wi-Fi. Det kan måle brugerens vægt, vise det lokalt og sende det til skyen. Du kan få flere detaljer om dette på linket herunder: https: //www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Arduino -baseret binær vækkeur: 13 trin (med billeder)
Arduino -baseret binært vækkeur: Hej, i dag vil jeg gerne vise dig, hvordan du bygger et af mine seneste projekter, mit binære vækkeur. Der er masser af forskellige binære ure på internettet, men dette kan faktisk være det første, lavet af en stribe farverige adresserbare LED'er
Solopgang vækkeur med Arduino: 9 trin (med billeder)
Solopgang vækkeur med Arduino: Vintertid kan være trist. Du vågner, det er mørkt, og du skal stå ud af sengen. Den sidste ting, du vil høre, er den vækkende lyd fra dit vækkeur. Jeg bor i London, og jeg har svært ved at vågne om morgenen. Jeg savner også at vågne til