Përmbajtje:

Orë alarmi binare Arduino DIY: 14 hapa (me fotografi)
Orë alarmi binare Arduino DIY: 14 hapa (me fotografi)

Video: Orë alarmi binare Arduino DIY: 14 hapa (me fotografi)

Video: Orë alarmi binare Arduino DIY: 14 hapa (me fotografi)
Video: Урок 99. Создание цифровых часов Arduino с использованием ЖК-дисплея DS3231 и семисегментного дисплея. 2024, Korrik
Anonim
Orë alarmi binare Arduino DIY
Orë alarmi binare Arduino DIY
Orë alarmi binare Arduino DIY
Orë alarmi binare Arduino DIY
Orë alarmi binare Arduino DIY
Orë alarmi binare Arduino DIY

Againshtë përsëri ora klasike binare! Por këtë herë me funksion edhe më shumë shtesë! Në këtë udhëzues, unë do t'ju tregoj se si të ndërtoni një orë alarmi binare me Arduino që mund t'ju tregojë jo vetëm kohën, por datën, muajin, madje edhe me funksionet e kohëmatësit dhe alarmit, të cilat gjithashtu mund të përdoren si llambë shtrati! Pa zhurmë të mëtejshme le të fillojmë!

Shënim: Ky projekt nuk përdor një modul RTC, kështu që saktësia varet nga bordi që keni përdorur. Unë kam përfshirë një mekanizëm korrigjues që do të korrigjojë zhvendosjen e kohës gjatë një periudhe të caktuar kohore, por ju do të duhet të eksperimentoni për të gjetur vlerën e saktë për periudhën kohore (Më shumë për këtë më poshtë), dhe madje edhe me mekanizmin korrigjues ai ende do të zhvendoset për një kohë të gjatë (kur krahasohet me pa një). Nëse dikush është i interesuar mos ngurroni të zbatoni përdorimin e modulit RTC në këtë projekt

Furnizimet

LED 5 mm (e çdo ngjyre, kam përdorur 13 LED të bardhë me një LED RGB si tregues) --- 14 copë

Arduino Nano (të tjerët mund të punojnë) --- 1 copë

Mikro-çelës --- 1 pc

Copë e vogël letre alumini

Bordi i montimit (për rrethim, por mos ngurroni të krijoni tuajën)

Copë letre të bardhë (ose ndonjë ngjyrë tjetër)

Disa filma plastikë (ai që përdoret si kopertinë e librit)

Tufa tela

Buzzer --- 1pc

NPN transistor --- 1pc

Rezistenca 6k8 --- 14 copë, 500R --- 1 copë, 20R (10Rx2) --- 1 copë, 4k7 --- 1pc

Furnizimi me energji për projektin (kam përdorur bateri li-on)

Rrip LED 5050 dhe një ndërprerës rrëshqitës (opsional)

Hapi 1: Lidhni qarkun

Lidhni qarkun!
Lidhni qarkun!

Unë do ta ndaj këtë hap në:

1) Pjesa e ziles

2) Paneli LED

3) Çelësi (butoni i shtypjes)

4) Shirit LED

5) Sensori i kapacitetit

6) Furnizimi me energji elektrike

7) Lidhini të gjithë me Arduino

Shumicën e kohës, ky është vetëm një hap "ndiq skematik". Pra, shikoni skemën e mësipërme ose madje shkarkoni dhe printoni!

Hapi 2: Përgatitja e Pjesës së Buzzer

Përgatitja e Pjesës së Buzzer
Përgatitja e Pjesës së Buzzer
Përgatitja e Pjesës së Buzzer
Përgatitja e Pjesës së Buzzer
Përgatitja e Pjesës së Buzzer
Përgatitja e Pjesës së Buzzer

Nëse keni përdorur zile me Arduino më parë, do ta dini që nëse e lidhim drejtpërdrejt me Arduino nuk do të jetë aq e zhurmshme sa duhet. Kështu që ne kemi nevojë për një përforcues. Për të ndërtuar amplifikatorin, ne kemi nevojë për një transistor NPN (në thelb çdo NPN do të funksionojë, kam përdorur S9013 sepse e kam marrë nga projekti i vjetër), dhe disa rezistorë për të kufizuar rrymën. Për të filluar, së pari identifikoni kolektorin, emetuesin dhe bazën e tranzistorit. Pak kërkim në google i fletës së të dhënave do të funksionojë për këtë. Pastaj, lidhni kolektorin e tranzistorit në terminalin negativ të ziles. Në terminalin pozitiv të ziles, ne vetëm i bashkojmë një copë teli atij, në mënyrë që ta lidhim atë më vonë me Arduino -n tonë. Pas kësaj, lidhni rezistencën 500R (ose ndonjë vlerë të ngjashme të rezistencës) në bazën e tranzistorit dhe nga rezistenca, lidhni një copë teli tjetër për përdorim në të ardhmen. Së fundi, lidhni dy rezistencat 10R në seri me emetuesin e tranzistorit dhe lidhni një tel tjetër nga rezistorët.

Vërtetë, referojuni skematikës.

p/s: Unë ende nuk e di se si të zgjedh rezistencë për transistor në kohën kur e shkruaj këtë. Vlera që kam përdorur zgjidhet në mënyrë empirike.

Hapi 3: Përgatitja e panelit LED

Përgatitja e panelit LED
Përgatitja e panelit LED
Përgatitja e panelit LED
Përgatitja e panelit LED
Përgatitja e panelit LED
Përgatitja e panelit LED

Lidhni LED -të dhe rezistencën në tabelën e prototipit në përputhje me rrethanat dhe bashkojini. Kjo eshte. Ndiqni skemën. Në rast se jeni të interesuar për hapësirën që kam përdorur, 3 vrima larg për secilën kolonë dhe dy vrima larg për secilën rresht (referojuni figurës). Dhe LED tregues? Unë e mbyll atë rastësisht.

Pas bashkimit të LED -ve dhe rezistencës në tabelë, lidhni të gjithë terminalet pozitivë të LED -ve së bashku. Pastaj, lidhni telat një nga një në secilën prej rezistencës në terminalet negative të LED -ve, kështu që ne mund t'i lidhim ato në Arduino më vonë.

SH NOTNIM: Ju mund të hutoheni këtë hap. Mbani mend që në vend që të lidhni të gjithë tokën së bashku, ne lidhim të gjithë terminalin pozitiv së bashku dhe terminalin negativ me pinin individual në Arduino. Kështu ne po përdorim pinin Arduino GPIO si tokë, jo Vcc. Në rast se e lidhni aksidentalisht prapa, mos u shqetësoni. Ju mund të modifikoni të gjithë LART to në LOW dhe LOW në HIGH në funksionin ledcontrol.

Hapi 4: Përgatitja e ndërprerësit (butoni në të vërtetë)

Përgatitja e ndërprerësit (butoni në të vërtetë)
Përgatitja e ndërprerësit (butoni në të vërtetë)
Përgatitja e ndërprerësit (butoni në të vërtetë)
Përgatitja e ndërprerësit (butoni në të vërtetë)
Përgatitja e ndërprerësit (butoni në të vërtetë)
Përgatitja e ndërprerësit (butoni në të vërtetë)

Për ndërprerësin (do ta quaj ndërprerës sepse kam përdorur mikro-çelës, por ju e dini që është buton), ne kemi nevojë për një rezistencë tërheqëse 4k7 dhe natyrisht, vetë ndërprerësin. Ah, mos harroni të përgatitni disa tela. Filloni duke bashkuar rezistencën dhe një copë teli në tokën e përbashkët (COM) të mikroçelsit. Pastaj, lidhni një copë teli tjetër të hapur normalisht (JO) të mikroçelsit. Së fundi, lidhni një tel tjetër në rezistencë. Sigurojeni atë me një zam të nxehtë.

Këndi i njohurive: Pse kemi nevojë për një rezistencë tërheqëse?

"Nëse e shkëputni kunjin dixhital të hyrjes/daljes nga gjithçka, LED mund të pulsojë në mënyrë të çrregullt. Kjo ndodh sepse hyrja është" lundruese " - domethënë, rastësisht do të kthehet LART HIGH ose E ULT. Kjo është arsyeja pse keni nevojë për një tërheqje ose rezistencë tërheqëse në qark. " - Burimi: Arduino webisite

Hapi 5: Përgatitja e shiritit LED

Përgatitja e shiritit LED
Përgatitja e shiritit LED
Përgatitja e shiritit LED
Përgatitja e shiritit LED

Shiriti LED është për llambën anësore të shtratit, e cila është opsionale. Thjesht lidhni shiritin LED dhe çelësin rrëshqitës së bashku në seri, asgjë e veçantë.

Hapi 6: Përgatitja e sensorit të kapacitetit

Përgatitja e sensorit të kapacitetit
Përgatitja e sensorit të kapacitetit
Përgatitja e sensorit të kapacitetit
Përgatitja e sensorit të kapacitetit
Përgatitja e sensorit të kapacitetit
Përgatitja e sensorit të kapacitetit
Përgatitja e sensorit të kapacitetit
Përgatitja e sensorit të kapacitetit

Ok referojuni figurës. Në thelb ne thjesht do ta lidhim tela në një pjesë të vogël të fletës së aluminit (sepse fleta e aluminit nuk mund të ngjitet) pastaj ngjiteni atë në një pjesë të vogël të bordit të montimit. Kujtues i mirë, sigurohuni që të mos e ngjisni plotësisht fletën e aluminit. Lëreni një pjesë të ekspozuar për kontakt të drejtpërdrejtë.

Hapi 7: Përgatitja e furnizimit me energji elektrike

Përgatitja e Furnizimit me Energji
Përgatitja e Furnizimit me Energji
Përgatitja e furnizimit me energji elektrike
Përgatitja e furnizimit me energji elektrike
Përgatitja e Furnizimit me Energji
Përgatitja e Furnizimit me Energji

Meqenëse kam përdorur baterinë li-on si furnizim me energji, më duhet një modul TP4056 për karikim dhe mbrojtje dhe një konvertues nxitës për të kthyer tensionin në 9v. Nëse keni vendosur të përdorni përshtatës muri 9V, atëherë mund t'ju duhet një prizë DC, ose thjesht lidheni atë drejtpërdrejt. Vini re se vlera e rezistencës për amplifikatorin është dizajni për 9V dhe nëse doni të përdorni tension tjetër, mund t'ju duhet të ndryshoni rezistencën.

Hapi 8: Lidhini ato me Arduino

Lidhja e tyre me Arduino
Lidhja e tyre me Arduino
Lidhja e tyre me Arduino
Lidhja e tyre me Arduino
Lidhja e tyre me Arduino
Lidhja e tyre me Arduino

Ndiqni skemën! Ndiqni skemën! Ndiqni skemën!

Mos e lidhni kunjin e gabuar, përndryshe gjërat do të bëhen të çuditshme.

Hapi 9: Mbyllja

Rrethim
Rrethim
Rrethim
Rrethim
Rrethim
Rrethim
Rrethim
Rrethim

Dimensioni i dizajnit tim është 6.5cm*6.5cm*8cm, kështu që është pak i rëndë. Ai përbëhet nga një dritare e përparme për ekran LED dhe dritare e sipërme për llambën e shtratit. Për modelin tim, referojuni fotografive.

Hapi 10: Koha e Programimit

Image
Image
Koha e programimit!
Koha e programimit!

Shkarkoni skicën time më poshtë dhe ngarkoni në Arduino tuaj. Nëse nuk dini si ta bëni këtë, mos u shqetësoni ta bëni këtë projekt! Po thjesht po bëj shaka, këtu është një mësim i mirë për të: Ngarko skicë në arduino

Pastaj hapni monitorin serik dhe duhet ta shihni që del në kohën aktuale. Për të caktuar kohën, ja si ta bëni këtë.

Për të vendosur orën: h, XX - ku xx është ora aktuale

Për të vendosur minutën: min, XX - xx është minuta aktuale

Për të vendosur të dytën: s, XX

Për të caktuar datën: d, XX

Për të caktuar muajin: e hënë, XX

Kur ekzekutohet komenti i mësipërm, ai duhet t'ju kthejë vlerën që sapo keni vendosur. (Për shembull kur vendosni orën me h, 15, ajo duhet të kthehet Ora: 15 në monitorin serik.

Për sensorin e kapacitetit, mund t'ju duhet ta kalibroni para se të funksionojë. Për ta bërë këtë, shtypni dy herë mikro-çelësin dhe shikoni monitorin serik. Duhet të nxjerrë një bandë numrash. Tani vendosni gishtin në sensorin e kapacitetit dhe shikoni mbani shënim diapazonin e numrit. Tjetra, modifikoni ndryshoren "captrigger". Le të themi që ju merrni 20-30 kur shtypeni, pastaj vendosni kapësen në 20.

Skica përdorni bibliotekën ADCTouch, sigurohuni që ta keni instaluar.

Hapi 11: Mekanizmi korrigjues

Periudha kohore për mekanizmin korrigjues në kodin tim është vendosur në atë që është e saktë për mua. Nëse koha nuk është ende e saktë, duhet të ndryshoni vlerën e ndryshores "corrdur"

Korrigjimi tani është parazgjedhur në 0 në përditësimin e fundit.

Vlera e korrdur do të thotë sa milisekonda duhen për të ngadalësuar një sekondë

Për të zbuluar vlerën e korrdur, përdorni formulën:

2000/(y-x)/x)

ku x = kohëzgjatja aktuale e kohës së kaluar dhe y = kohëzgjatja e kohës së kaluar të orës, të dyja në sekondë

Për të gjetur vlerën e x dhe y, duhet të bëni një eksperiment të vogël.

Vendosni kohën e orës në kohën aktuale dhe regjistroni kohën fillestare (koha fillestare aktuale dhe ora fillestare e orës duhet të jenë të njëjta). Pas një kohe (disa orë), regjistroni kohën përfundimtare aktuale dhe orën kohën përfundimtare.

x = koha aktuale përfundimtare-koha fillestare dhe y = ora përfundimtare-koha fillestare

Pastaj ndryshoni vlerën e corrdur në kod dhe ringarkoni në Arduino.

Pastaj përsëritni testin dhe këtë herë formula ndryshoi në:

2000/((2/z)+(y-x/x))

Aty ku x dhe y është e njëjta gjë si më parë, ndërsa z është vlera aktuale korrur.

Ngarko përsëri dhe bëj testin pa pushim derisa të jetë mjaft i saktë për ty.

Në rast se ora juaj akoma po përshpejtohet, edhe corrdur është vendosur në 0 (do të thotë asnjë mekanizëm korrigjues), ju duhet të ndryshoni të dytin ++ në të dytin- në mekanizmin korrigjues pjesë të kodit (e komentova), vendosni korrdur në 0, pastaj gjeni nr. e milisekondës duhet për të shpejtuar një sekondë.

Hapi 12: Si të përdorni të gjitha funksionet

Image
Image

Mund ta ndryshoni modalitetin duke shtypur mikro-çelësin.

Në modalitetin e parë, thjesht shfaq kohën. Nëse drita treguese ndizet 1 herë në sekondë, alarmi është i fikur. Nëse 2 herë në sekondë, alarmi është ndezur. Mund ta shtyni alarmin për 10 minuta në modalitetin e parë duke shtypur sensorin e kapacitetit.

Në modalitetin e dytë, ai shfaq datën. Presioni i sensorit të kapacitetit nuk bën asgjë.

Në modalitetin e tretë, mund të vendosni kohëmatësin. Shtypja e sensorit të kapacitetit do të ndezë kohëmatësin dhe duhet të shihni që drita treguese filloi të ndizet. Sensori i kapacitetit përdoret gjithashtu për të vendosur kohën e kohëmatësit. Gama e kohëmatësit është 1 minutë deri në 59 minuta.

Në modalitetin e katërt, mund të vendosni orën e alarmit duke përdorur sensorin e kapacitetit

Në modalitetin e pestë, mund të vendosni minutën e alarmit duke përdorur sensorin e kapacitetit.

Në modalitetin e gjashtë, shtypja e sensorit të kapacitetit do të rivendosë minutën në 30 dhe e dyta në 0 pa ndryshuar orën. Kjo do të thotë për sa kohë që ora juaj nuk zhvendoset mbi 30 minuta, mund ta kalibroni atë duke përdorur këtë mënyrë.

Mënyra e shtatë është modaliteti "mos bëj asgjë" në rast se sensori i kapacitetit fiket kur karikohet.

Oh, për të hequr alarmin, thjesht shtypni çelësin mikro. (PPRDITSIMI I FUNDIT P TOR T IN PRFSHIR SNOLOZIMIN E ALARMIT)

Epo, si të lexoni orën? Është e lehtë! Leximi i orës binare - Wikihow Ju mund të ndiheni të çuditshëm në fillim, por do të mësoheni me të!

Hapi 13: Përfundim

Përfundim
Përfundim
Përfundim
Përfundim

Pse e fillova këtë projekt. Fillimisht është sepse kam një orë dixhitale të vjetër që shtrihet përreth dhe dua ta kthej në një orë me zile. Fatkeqësisht, ora e vjetër rezulton të jetë e prishur. Kështu që unë isha si të mos ndërtoja një duke përdorur Arduino? Me pak kërkim në google, e gjeta këtë projekt binar të orës pa RTC të udhëzueshëm nga Cello62. Sidoqoftë, nuk ka veçorinë e alarmit që dua, kështu që marr kodin dhe e modifikoj vetë. Dhe projekti lind. Për më tepër, pashë konkursin e orës që funksiononte me udhëzime kohët e fundit, gjë që më dha edhe më shumë motiv për ta bërë këtë. Gjithsesi, ky është ende projekti im i parë duke përdorur Arduino, kështu që një mori përmirësimesh të mundshme.

Përmirësimi i ardhshëm:

1) Përdorni RTC

2) Vendosni alarmin ose kohën ose kohëmatësin me valë!

3) Për çfarëdo tipari që mendoj

Hapi 14: Përditëso: Pas një jave përdorimi

Përditësim: Pas një jave përdorimi
Përditësim: Pas një jave përdorimi
Përditësim: Pas një jave përdorimi
Përditësim: Pas një jave përdorimi
Përditësim: Pas një jave përdorimi
Përditësim: Pas një jave përdorimi

Përveç problemit të dukshëm - zhvendosja e kohës, tjetra do të thoja është konsumi i energjisë. Së pari, unë e ngre tensionin në 9v, i cili më pas do të ulet nga rregullatori linear në Arduino. Rregullatori linear është shumë joefikas. Ora zgjat vetëm një ditë. Kjo do të thotë që unë duhet ta rimbush atë çdo ditë. Kjo nuk është marrëveshja më e madhe derisa të kuptoni se i gjithë sistemi është vetëm rreth 50% efikas. Duke pasur parasysh që bateria ime është 2000mAh, do të isha në gjendje të llogarisja fuqinë e humbur çdo ditë.

Energji e humbur = (7.4Wh*10%)+(7.4Wh*90%*50%) = 4.07Wh në ditë

Kjo është 1.486kWh në vit! Që mund të përdoret për të vluar, 283g ujë (nga 25 C në 100 C)? Por gjithsesi, unë do të përmirësoj efikasitetin e orës. Mënyra për ta bërë këtë është të mos përdorni fare rregullatorin linear. Kjo do të thotë që ne duhet të rregullojmë konvertuesin e nxitjes në daljen 5V direkt në pin 5V në Arduino. Tjetra, për të minimizuar fuqinë e humbur edhe më tej, më duhet të heq të dy LED në bord (pin13 dhe fuqia), pasi ato do të humbasin 0.95Wh në ditë. Fatkeqësisht, unë jam krejtësisht noob në bashkimin SMD, kështu që mënyra e vetme për ta bërë këtë është prerja e hekurudhës në tabelë. Pas kësaj, më duhet të heq rezistencën e emetuesit në zile dhe llambën e shtratit (shiriti LED nuk punon në 5V). Por a do të thotë kjo se duhet të heqësh dorë nga ajo veçori mahnitëse? Jo! Ju keni dy zgjedhje këtu: Përdorni diodën normale LED 5 mm, ose përdorni shirit LED 5V. Por për mua, unë tashmë u ndjeva i lodhur për të bërë këtë projekt për të gjithë javën e kaluar, kështu që vendosa të heq dorë nga kjo veçori. Sidoqoftë, unë e përdorja çelësin fillimisht për funksionin e dritës për ndezjen ose fikjen e panelit të orës për të kursyer më tej energji, por përfundoj që LED të ndizet kur e fik. Bug bëhet tipar? Nuk e di (kush e di ju lutem më tregoni më poshtë).

Në fund të modifikimit, ora tani zgjat më shumë se 2 ditë!

Më tej kam një problem më pak serioz me orën. Gjatë karikimit, sensori i kapacitetit do të çmendet, kështu që unë shtoj një mënyrë tjetër që nuk bën asgjë.

Sa i përket zhvendosjes së kohës, meqenëse është shumë e papërshtatshme të futesh në kompjuter çdo ditë për ta rivendosur atë, kam shtuar një mënyrë tjetër e cila do të caktojë minutën në 30 dhe të dytën në 0. Kjo do të thotë që ju mund ta rivendosni atë në gjysmë të çdo ore!

Recommended: