INHOUDSOPGAWE:
- Voorrade
- Stap 1: Koppel die stroombaan
- Stap 2: Berei die gonsdeel voor
- Stap 3: Berei die LED -paneel voor
- Stap 4: Die skakelaar voorberei (eintlik die drukknop)
- Stap 5: Berei LED -strook voor
- Stap 6: Voorbereiding van die kapasitansiesensor
- Stap 7: Voorbereiding van die kragtoevoer
- Stap 8: Verbind hulle met Arduino
- Stap 9: Omhulsel
- Stap 10: programmeertyd
- Stap 11: Regstellende meganisme
- Stap 12: Hoe om al die funksies te gebruik
- Stap 13: Gevolgtrekking
- Stap 14: Opdatering: Na 'n week se gebruik
Video: DIY Arduino binêre wekker: 14 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Dit is weer die klassieke binêre klok! Maar hierdie keer met nog meer bykomende funksie! In hierdie instruksies sal ek u wys hoe u 'n binêre wekker met Arduino kan bou, wat u nie net tyd, maar datum, maand, selfs met timer en alarmfunksies kan wys nie, wat ook as bedlampie gebruik kan word! Sonder meer, laat ons begin!
Opmerking: hierdie projek maak nie gebruik van 'n RTC -module nie, dus die akkuraatheid hang af van die bord wat u gebruik het. Ek het 'n regstellende meganisme ingesluit wat tydsverskuiwing oor 'n sekere tydperk sal regstel, maar u sal moet eksperimenteer om die korrekte waarde vir die tydsduur te vind (meer hieroor hieronder), en selfs met regstellende meganisme sal dit steeds dryf oor 'n lang tyd (in vergelyking met sonder een). As iemand belangstel, kan u die gebruik van die RTC -module in hierdie projek implementeer
Voorrade
5 mm LED (van enige kleur, ek gebruik 13 wit LED's met een RGB LED as aanwyser) --- 14 stuks
Arduino Nano (ander werk moontlik) --- 1 stuks
Mikro-skakelaar --- 1 stuks
Klein stukkie aluminiumfoelie
Monteerbord (vir omhulsel, maar ontwerp gerus u eie)
Stukkie wit papier (of enige ander kleur)
'N Paar plastiekfilms (die een wat as boekomslag gebruik word)
Klomp drade
Gonser --- 1 stuks
NPN transistor --- 1 stuks
Weerstanden 6k8 --- 14 stuks, 500R --- 1 stuks, 20R (10Rx2) --- 1 stuks, 4k7 --- 1 stuks
Kragtoevoer vir die projek (ek het 'n Li-on-battery gebruik)
5050 LED -strook en 'n skuifskakelaar (opsioneel)
Stap 1: Koppel die stroombaan
Ek sal hierdie stap verdeel in:
1) Die gonser deel
2) Die LED -paneel
3) Die skakelaar (drukknoppie)
4) LED -strook
5) Die kapasitansiesensor
6) Kragtoevoer
7) Koppel almal aan Arduino
Meestal is dit slegs 'n 'volg die skematiese' stap. Kyk dus na die skema hierbo of laai dit af en druk dit af!
Stap 2: Berei die gonsdeel voor
As u al voorheen 'n zoemer met Arduino gebruik het, weet u dat dit nie hard genoeg sal wees as ons dit direk met Arduino koppel nie. Ons benodig dus 'n versterker. Om die versterker te bou, benodig ons 'n NPN -transistor (basies sal enige NPN werk, ek het S9013 gebruik omdat ek dit van 'n ou projek gekry het) en 'n weerstand om die stroom te beperk. Om te begin, identifiseer eers die kollektor, emitter en basis van die transistor. 'N Bietjie googling van die datablad sal hiervoor werk. Soldeer dan die kollektor van die transistor aan die negatiewe terminaal van die zoemer. By die positiewe terminaal van die zoemer, soldeer ons net 'n stuk draad daaraan sodat ons dit later aan ons Arduino kan soldeer. Soldeer daarna die weerstand van 500R (of enige soortgelyke weerstand) aan die basis van die transistor en aan die weerstand, soldeer nog 'n stuk draad vir toekomstige gebruik. Soldeer uiteindelik die twee 10R -weerstand in serie aan die emitter van die transistor en verbind nog 'n draad van die weerstande.
Verwys regtig na skematiese.
p/s: Ek weet nog steeds nie presies hoe om 'n weerstand vir die transistor te kies nie. Die waarde wat ek gebruik het, word empiries gekies.
Stap 3: Berei die LED -paneel voor
Koppel die LED's en weerstand dienooreenkomstig aan die prototipe bord en soldeer. Dis dit. Volg die skematiese. As u belangstel in die spasiëring wat ek gebruik het, drie gate uitmekaar vir elke kolom en twee gate uitmekaar vir elke ry (sien prentjie). En die aanwyser -LED? Ek het dit lukraak ingeprop.
Nadat die LED's en weerstand aan die bord gesoldeer is, verbind al die positiewe terminale van LED's aan mekaar. Vervolgens soldeer drade een vir een na elk van die weerstand by die negatiewe terminale van LED's, sodat ons dit later aan Arduino kan soldeer.
LET WEL: hierdie stap kan moontlik deurmekaar raak. Onthou, in plaas daarvan om alle grond saam te koppel, verbind ons alle positiewe terminale saam en die negatiewe terminaal met die individuele pen op Arduino. Ons gebruik dus die Arduino GPIO -pen as grond, nie Vcc nie. Moenie bekommerd wees as u dit per ongeluk agteruit koppel nie. U kan al die HIGH na LOW en LOW na HIGH verander in die ledcontrol -funksie.
Stap 4: Die skakelaar voorberei (eintlik die drukknop)
Vir die skakelaar (ek sal dit skakelaar noem omdat ek 'n mikroskakelaar gebruik het, maar u weet dat dit 'n drukknop is), benodig ons 'n aftrekweerstand van 4 k7 en natuurlik die skakelaar self. Ag, moenie vergeet om 'n paar drade voor te berei nie. Begin deur die weerstand en 'n stuk draad aan die gemeenskaplike grond (COM) van die mikroskakelaar te soldeer. Soldeer dan nog 'n stuk draad aan die normaalweg oopgemaak (NO) van die mikroskakelaar. Heg laastens nog 'n draad aan die weerstand. Bevestig dit met 'n bietjie warm gom.
Kennishoek: waarom het ons 'n aftrekweerstand nodig?
"As u die digitale I/O -pen van alles ontkoppel, kan die LED onreëlmatig knip. Dit is omdat die invoer" dryf " - dit wil sê, dit sal willekeurig HIGH of LOW terugkeer. Daarom moet u optrek of aftrekweerstand in die stroombaan. " - Bron: Arduino-webwerf
Stap 5: Berei LED -strook voor
LED -strook is vir die bedlampie, opsioneel. Koppel net die LED -strook en die skuifskakelaar in serie, niks spesiaals nie.
Stap 6: Voorbereiding van die kapasitansiesensor
Ok, verwys na die prentjie. Eintlik gaan ons die draad net aan 'n klein stukkie aluminiumfoelie heg (want aluminiumfoelie kan nie gesoldeer word nie) en plak dit dan op 'n klein stuk monteerbord. Onthou, maak seker dat u die aluminiumfoelie nie heeltemal plak nie. Laat 'n deel daarvan blootgestel vir direkte kontak.
Stap 7: Voorbereiding van die kragtoevoer
Aangesien ek 'n Li-on-battery as kragtoevoer gebruik het, benodig ek 'n TP4056-module vir laai en beskerming, en 'n hupstootomskakelaar om die spanning na 9v om te skakel. As u besluit het om 'n 9V -muuradapter te gebruik, benodig u moontlik 'n DC -aansluiting of koppel dit direk. Let daarop dat die weerstandwaarde vir die versterker ontwerp is vir 9V en as u ander spanning wil gebruik, moet u die weerstand moontlik verander.
Stap 8: Verbind hulle met Arduino
Volg die skema! Volg die skema! Volg die skema!
Moenie die verkeerde pen aansluit nie, anders word dinge vreemd.
Stap 9: Omhulsel
Die grootte van my ontwerp is 6,5 cm*6,5 cm*8 cm, so dit is 'n bietjie lywig. Dit bestaan uit 'n voorruit vir LED -skerm en 'n boonste venster vir die bedlamp. Raadpleeg foto's vir my ontwerp.
Stap 10: programmeertyd
Laai my skets hieronder af en laai dit op na u Arduino. As u nie weet hoe u dit moet doen nie, moet u nie hierdie projek doen nie! Ek maak net 'n grap, hier is 'n goeie handleiding: laai skets op na arduino
Maak dan die seriële monitor oop, en u moet die huidige tyd sien. Hier is hoe u dit kan doen om die tyd in te stel.
Om uur in te stel: h, XX - waar xx die huidige uur is
Om minuut in te stel: min, XX - xx is die huidige minuut
Om tweede te stel: s, XX
Om datum vas te stel: d, XX
Om maand in te stel: ma, XX
As bogenoemde opmerking uitgevoer word, moet dit die waarde wat u pas gestel het, aan u teruggee. (As u byvoorbeeld uur met h, 15 stel, moet Uur: 15 in die seriële monitor terugkeer.
Vir die kapasitansiesensor moet u dit moontlik kalibreer voordat dit werk. Om dit te doen, druk twee keer op die mikroskakelaar en kyk na die seriële monitor. Dit moet 'n klomp getalle lewer. Plaas nou u vinger op die kapasitansiesensor en let op die omvang van die getal. Pas dan die veranderlike "captrigger" aan. Gestel jy kry 20-30 as jy daarop druk, en stel dan captrigger op 20.
Gebruik die ADCTouch -biblioteek in die skets, maak seker dat u dit geïnstalleer het.
Stap 11: Regstellende meganisme
Die tydsduur vir die regstellende meganisme in my kode is ingestel op die een wat vir my akkuraat is. As die tyd nog nie akkuraat is nie, moet u die waarde van die veranderlike "corrdur" verander
Die corrdur is nou standaard op 0 in die nuutste opdatering.
Die waarde van corrdur beteken hoeveel millisekondes dit neem om een sekonde te vertraag
Gebruik die formule om die waarde van corrdur uit te vind:
2000/(y-x)/x)
waar x = werklike tydsverloop en y = tydsverloop van die klok, beide in tweede
Om die waarde van x en y te vind, moet u 'n bietjie eksperimenteer.
Stel die tyd van die horlosie op die werklike tyd en teken die aanvanklike tyd aan (die werklike aanvangstyd en die aanvangstyd moet dieselfde wees). Teken na 'n rukkie ('n paar uur) die finale werklike tyd en die finale tyd van die klok aan.
x = werklike finale tyd-aanvanklike tyd en y = klok finale tyd-aanvanklike tyd
Verander dan die waarde van corrdur in die kode en laai weer op na die Arduino.
Herhaal dan die toets en hierdie keer het die formule verander na:
2000/((2/z)+(y-x/x))
Waar x en y dieselfde ding is as voorheen, terwyl z die huidige corrdur -waarde is.
Laai weer op en doen die toets telkens totdat dit presies genoeg is vir u.
As u horlosie nog steeds versnel, selfs corrdur op 0 gestel is (beteken geen regstellende meganisme nie), moet u die tweede ++ na tweede verander- in die regstellende meganisme deel van die kode (ek het kommentaar gelewer), stel corrdur op 0, vind dan die nr. van 'n millisekonde neem dit om 'n sekonde te bespoedig.
Stap 12: Hoe om al die funksies te gebruik
U kan die modus verander deur op die mikroskakelaar te druk.
In die eerste modus vertoon dit eenvoudig tyd. As die aanwyserlig 1 keer per sekonde flikker, is die alarm af. As die alarm 2 keer per sekonde is, is die alarm aan. U kan die alarm vir 10 minute in die eerste modus sluimer deur op die kapasitansiesensor te druk.
In die tweede modus word die datum vertoon. Deur op die kapasitansiesensor te druk, doen niks.
In die derde modus kan u die timer instel. Deur op die kapasitansiesensor te druk, word die timer aangeskakel en die aanwyserlig moet begin flikker. Kapasiteitsensor word ook gebruik om die tydtyd in te stel. Die tydreikwydte is 1 minuut tot 59 minute.
In die vierde modus kan u die alarmuur instel met behulp van kapasitansiesensor
In die vyfde modus kan u die alarmminuut instel met behulp van kapasitansiesensor.
In die sesde modus, as u op die kapasitansiesensor druk, word die minuut teruggestel op 30 en die tweede na 0 sonder om die uur te verander. Dit is gemeen, solank u horlosie nie meer as 30 minute loop nie, kan u dit met hierdie modus herkalibreer.
Die sewende modus is 'niksdoen' -modus, as die kapasitansiesensor uitkom tydens die laai.
Om die alarm uit te skakel, druk net op die mikroskakelaar. (LAATSTE UPDATE OM ALARM SNOOZE IN TE SLUIT)
Wel, hoe gaan dit met die lees van die klok? Dit is maklik! Lees Binary Clock - Wikihow U voel aanvanklik dalk vreemd, maar u sal daaraan gewoond raak!
Stap 13: Gevolgtrekking
Waarom ek met hierdie projek begin het. Dit is aanvanklik omdat ek 'n ou digitale horlosie het en ek wil dit in 'n wekker verander. Ongelukkig blyk die ou horlosie stukkend te wees. Ek wou dus nie een bou met Arduino nie? Met 'n bietjie Google -soektog, vind ek hierdie binêre klokprojek sonder RTC op instruksies van Cello62. Dit het egter nie die gewenste wekkerfunksie nie, so ek neem die kode en verander dit self. En die projek word gebore. Boonop het ek die klokwedstryd onlangs op instruksies sien loop, wat my nog meer motivering gegee het om dit te doen. Dit is in elk geval nog steeds my eerste projek wat Arduino gebruik, so baie moontlike verbeterings.
Toekomstige verbetering:
1) Gebruik RTC
2) Stel alarm of tyd of timer draadloos in!
3) Wat ook al die funksie waaraan ek dink
Stap 14: Opdatering: Na 'n week se gebruik
Afgesien van die voor die hand liggende probleem - tydsverloop, is die volgende een die kragverbruik. Eerstens verhoog ek die spanning tot 9v, wat dan deur die lineêre reguleerder in Arduino verlaag word. Die lineêre reguleerder is baie ondoeltreffend. Die klok hou net EEN DAG. Dit beteken dat ek dit elke dag moet herlaai. Dit is nie die grootste ooreenkoms voordat u besef dat die hele stelsel slegs ongeveer 50% doeltreffend is nie. Aangesien my battery 2000mAh is, kan ek die vermorsde krag elke dag bereken.
Vermorsde krag = (7,4Wh*10%)+(7,4Wh*90%*50%) = 4,07Wh per dag
Dit is 1,486kWh per jaar! Dit kan gebruik word om 283 g water (van 25 C tot 100 C) te kook? Maar in elk geval, ek gaan die doeltreffendheid van die klok verbeter. Die manier om dit te doen is om glad nie die lineêre reguleerder te gebruik nie. Dit beteken dat ons die boost -omskakelaar moet aanpas om 5V direk in die 5V -pen op Arduino te lewer. Om die krag wat nog meer vermors word, te verminder, moet ek die twee LED's aan boord verwyder (pin13 en krag), aangesien dit 0,95Wh per dag sal mors. Ongelukkig is ek glad nie in SMD soldeer nie, so die enigste manier om dit te doen is om die spoor op die bord te sny. Hierna moet ek die emitterweerstand op die zoemer en die bedlampie verwyder (LED -strook werk nie by 5V nie). Maar beteken dit dat u die wonderlike funksie moet prysgee? Geen! U het hier twee keuses: Gebruik die normale 5 mm LED -diode, of gebruik 'n 5V LED -strook. Maar vir my was ek al moeg daarvoor om die afgelope week hierdie projek te doen, so ek het besluit om hierdie funksie op te gee. Ek het egter die skakelaar oorspronklik gebruik vir die ligfunksie om die horlosiepaneel aan of uit te skakel om energie verder te bespaar, maar uiteindelik beland die LED wanneer ek dit afskakel. Gogga funksie geword? Ek weet nie (enigiemand weet, vertel my hieronder).
Aan die einde van die wysiging hou die klok nou meer as 2 dae!
Ek het 'n minder ernstige probleem met die horlosie. Tydens die laai sal die kapasitansiesensor mal word, so ek voeg 'n ander modus by wat niks doen nie.
Wat tydsverskuiwing betref, aangesien dit baie ongemaklik is om elke dag by die rekenaar aan te sluit om dit terug te stel, het ek 'n ander modus bygevoeg, wat die minuut op 30 en die tweede na 0. Dit beteken dat u dit half elf uur kan herstel!
Aanbeveel:
Slimme wekker: 'n slim wekker gemaak met framboos Pi: 10 stappe (met foto's)
Slimme wekker: 'n slim wekker gemaak met framboos Pi: wou u al ooit 'n slim horlosie hê? As dit die geval is, is dit die oplossing vir u! Ek het 'n slim wekker gemaak, dit is 'n horlosie waarop u die wagtyd volgens die webwerf kan verander. As die alarm afgaan, is daar 'n geluid (gonser) en 2 ligte sal
DIY slim weegskaal met wekker (met Wi-Fi, ESP8266, Arduino IDE en Adafruit.io): 10 stappe (met foto's)
DIY Smart Scale With Alarm Clock (met Wi-Fi, ESP8266, Arduino IDE en Adafruit.io): In my vorige projek het ek 'n slim badkamerskaal met Wi-Fi ontwikkel. Dit kan die gebruiker se gewig meet, plaaslik vertoon en dit na die wolk stuur. U kan meer inligting hieroor kry op die onderstaande skakel: https: //www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Lessenaarversterker met audiovisualisering, binêre klok en FM -ontvanger: 8 stappe (met foto's)
Lessenaarversterker met klankvisualisering, binêre horlosie en FM -ontvanger: ek hou van versterkers en vandag deel ek my lessenaarversterker met 'n lae krag wat ek onlangs gemaak het. Die versterker wat ek ontwerp het, het 'n paar interessante eienskappe. Dit het 'n geïntegreerde binêre klok en kan tyd en datum gee, en dit kan klank visualiseer wat dikwels klank genoem word
Arduino -gebaseerde binêre wekker: 13 stappe (met foto's)
Arduino -gebaseerde binêre wekker: Hey, vandag wil ek u wys hoe u een van my nuutste projekte, my binêre wekker, kan bou. Daar is baie verskillende binêre horlosies op die internet, maar dit kan eintlik die eerste een wees, gemaak van 'n strook kleurvolle adresseerbare LED's
Binêre klok met behulp van Neopixels: 6 stappe (met foto's)
Binêre klok met Neopixels: Hallo mense, ek hou van alles wat met LED verband hou, en ek hou ook daarvan om dit op verskillende interessante maniere te gebruik. Ja, ek weet dat die binêre klok al 'n paar keer hier gedoen is, en elkeen is 'n uitstekende voorbeeld van hoe skep u eie horlosie. Ek is baie lief vir