Sadržaj:
- Pribor
- Korak 1: Spojite krug
- Korak 2: Priprema dijela zujalice
- Korak 3: Priprema LED ploče
- Korak 4: Priprema prekidača (zapravo tipka)
- Korak 5: Priprema LED trake
- Korak 6: Priprema osjetnika kapaciteta
- Korak 7: Priprema izvora napajanja
- Korak 8: Povežite ih s Arduinom
- Korak 9: Ograđivanje
- Korak 10: Vrijeme programiranja
- Korak 11: Korektivni mehanizam
- Korak 12: Kako koristiti sve funkcije
- Korak 13: Zaključak
- Korak 14: Ažuriranje: Nakon tjedan dana korištenja
Video: Arduino binarni alarm DIY: 14 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
Opet je to klasični binarni sat! Ali ovaj put s još više dodatnih funkcija! U ovom uputstvu pokazat ću vam kako izgraditi binarni budilnik sa Arduinom koji vam može pokazati ne samo vrijeme, već i datum, mjesec, čak i s mjeračem vremena i alarmnim funkcijama koje se mogu koristiti i kao noćna svjetiljka! Bez odlaganja krenimo!
Napomena: Ovaj projekt ne koristi RTC modul, pa točnost ovisi o ploči koju ste koristili. Uključio sam korektivni mehanizam koji će ispraviti vremenski pomak u određenom vremenskom razdoblju, ali morat ćete eksperimentirati kako biste pronašli ispravnu vrijednost za određeno razdoblje (više o tome u nastavku), pa čak i s korektivnim mehanizmom i dalje će se mijenjati dugo vremena (u usporedbi s bez njega). Ako je netko zainteresiran, slobodno implementirajte uporabu RTC modula u ovaj projekt
Pribor
LED 5 mm (bilo koje boje, koristio sam 13 bijelih LED dioda s jednom RGB LED indikatorom) --- 14 kom
Arduino Nano (drugi mogu raditi) --- 1 kom
Mikroprekidač --- 1 kom
Mali komad aluminijske folije
Ploča za montažu (za kućište, ali slobodno dizajnirajte sami)
Komad bijelog papira (ili bilo koje druge boje)
Neki plastični film (onaj koji se koristi kao naslovnica knjige)
Hrpa žica
Zujalica --- 1 kom
NPN tranzistor --- 1kom
Otpornici 6k8 --- 14 kom, 500R --- 1 kom, 20R (10Rx2) --- 1 kom, 4k7 --- 1 kom
Napajanje za projekt (koristio sam li-on bateriju)
5050 LED traka i klizni prekidač (opcionalno)
Korak 1: Spojite krug
Podijelit ću ovaj korak na:
1) Dio zujalice
2) LED ploča
3) Prekidač (pritisni gumb)
4) LED traka
5) Senzor kapaciteta
6) Napajanje
7) Spojite ih sve na Arduino
Većinu vremena ovo je samo korak "slijedite shematski". Stoga pogledajte gornju shemu ili je čak preuzmite i ispišite!
Korak 2: Priprema dijela zujalice
Ako ste već koristili zujalicu s Arduinom, znat ćete da ako ga spojimo izravno na Arduino neće biti dovoljno glasan. Dakle, trebamo pojačalo. Za konstrukciju pojačala potreban nam je NPN tranzistor (u osnovi će raditi svaki NPN, koristio sam S9013 jer sam ga dobio iz starog projekta) i neki otpornik za ograničavanje struje. Za početak prvo identificirajte kolektor, emiter i bazu tranzistora. Malo googlanja s podatkovnom tablicom poslužit će za to. Zatim lemite kolektor tranzistora na negativni terminal zujalice. Na pozitivnom terminalu zujalice samo smo mu lemili komad žice kako bismo ga kasnije mogli lemiti na naš Arduino. Nakon toga, lemite otpornik 500R (ili bilo koju sličnu vrijednost otpornika) na bazu tranzistora i od otpornika, lemite drugi komad žice za buduću uporabu. Na kraju, lemite dva 10R otpornika uzastopno s odašiljačem tranzistora i spojite drugu žicu s otpornika.
Zaista, pogledajte shemu.
p/s: Još uvijek ne znam kako odabrati otpornik za tranzistor u vrijeme pisanja ovoga. Vrijednost koju sam koristio odabrana je empirijski.
Korak 3: Priprema LED ploče
Uključite LED diode i otpornik u odgovarajuću ploču za izradu prototipa i lemite. To je to. Slijedite shemu. U slučaju da vas zanima razmak koji sam koristio, razmaknute 3 rupe za svaki stupac i dvije rupe za svaki red (pogledajte sliku). A LED indikator? Uključio sam ga nasumično.
Nakon lemljenja LED dioda i otpornika na ploču, spojite sve pozitivne priključke LED dioda zajedno. Zatim lemite žice jednu po jednu na svaki otpornik na negativnim stezaljkama LED -a kako bismo ih kasnije mogli lemiti na Arduino.
NAPOMENA: Ovaj korak bi vas mogao zbuniti. Upamtite, umjesto povezivanja svih uzemljenja, povezujemo sve pozitivne terminale zajedno i negativni terminal s pojedinačnim pinom na Arduinu. Stoga za uzemljenje koristimo Arduino GPIO pin, a ne Vcc. U slučaju da ste ga slučajno spojili unatrag, ne brinite. Možete promijeniti sve HIGH do LOW i LOW do HIGH u funkciji ledcontrol.
Korak 4: Priprema prekidača (zapravo tipka)
Za prekidač (nazvat ću ga prekidačem jer sam koristio mikroprekidač, ali znate da je to gumb), potreban nam je 4k7 padajući otpornik i, naravno, sam prekidač. Ah, ne zaboravite pripremiti neke žice. Započnite lemljenjem otpornika i komada žice na zajedničko uzemljenje (COM) mikro prekidača. Zatim lemite još jedan komad žice na normalno otvoren (NO) mikro prekidača. Na kraju, pričvrstite drugu žicu na otpornik. Učvrstite ga vrućim ljepilom.
Kutak znanja: Zašto nam je potreban padajući otpornik?
"Ako odvojite digitalni I/O pin od svega, LED dioda može treptati neredovito. To je zato što je ulaz" plutajući " - to jest, nasumično će se vratiti ili VISOKO ili NISKO. Zato vam je potreban potez ili pull-down otpornik u krugu. " - Izvor: Arduino web mjesto
Korak 5: Priprema LED trake
LED traka je za bočnu svjetiljku u krevetu, koja je opcionalna. Samo spojite LED traku i klizni prekidač zajedno u nizu, ništa posebno.
Korak 6: Priprema osjetnika kapaciteta
U redu, pogledajte sliku. U osnovi ćemo samo pričvrstiti žicu na mali komad aluminijske folije (jer se aluminijska folija ne može lemiti), a zatim je zalijepiti na mali komad montažne ploče. Ljubazni podsjetnik, pazite da aluminijsku foliju ne zalijepite u potpunosti. Ostavite dio toga izloženog za izravan kontakt.
Korak 7: Priprema izvora napajanja
Budući da sam za napajanje koristio li-on bateriju, potreban mi je modul TP4056 za punjenje i zaštitu, te pretvarač za pretvaranje napona u 9v. Ako ste odlučili upotrijebiti 9V zidni adapter, možda će vam trebati istosmjerna utičnica ili ga jednostavno izravno spojite. Imajte na umu da je vrijednost otpornika za pojačalo dizajna za 9V, a ako želite koristiti drugi napon, možda ćete morati promijeniti otpornik.
Korak 8: Povežite ih s Arduinom
Slijedite shemu! Slijedite shemu! Slijedite shemu!
Nemojte spajati pogrešan pin ili će stvari postati čudne.
Korak 9: Ograđivanje
Dimenzija mog dizajna je 6,5 cm*6,5 cm*8 cm, tako da je malo glomazan. Sastoji se od prednjeg prozora za LED zaslon i gornjeg prozora za noćnu svjetiljku. Za moj dizajn, pogledajte slike.
Korak 10: Vrijeme programiranja
Preuzmite moju skicu ispod i prenesite je na svoj Arduino. Ako ne znate kako to učiniti, nemojte se truditi raditi ovaj projekt! Ne, samo se šalim, evo dobrog vodiča o tome: Prenesite skicu na arduino
Zatim otvorite serijski monitor i trebali biste vidjeti da prikazuje trenutno vrijeme. Evo kako to učiniti za postavljanje vremena.
Za postavljanje sata: h, XX - gdje je xx trenutni sat
Za postavljanje minuta: min, XX - xx je trenutna minuta
Za postavljanje sekunde: s, XX
Za postavljanje datuma: d, XX
Za postavljanje mjeseca: pon, XX
Kada se gornji komentar izvrši, trebao bi vam vratiti vrijednost koju ste upravo postavili. (Na primjer, kada postavite sat sa h, 15, on bi trebao vratiti sat: 15 na serijskom monitoru.
Za osjetnik kapaciteta, možda ćete ga morati kalibrirati prije nego što počne raditi. Da biste to učinili, dvaput pritisnite mikro prekidač i pogledajte serijski monitor. Trebao bi ispisati hrpu brojeva. Sada stavite prst na osjetnik kapacitivnosti i pogledajte zabilježite raspon broja. Zatim izmijenite varijablu "captrigger". Recimo da dobijete 20-30 kada pritisnete, a zatim postavite captrigger na 20.
Skica koristi biblioteku ADCTouch, provjerite jeste li je instalirali.
Korak 11: Korektivni mehanizam
Vremenski period za korektivni mehanizam u mom kodu postavljen je na onaj koji je za mene točan. Ako vrijeme još uvijek nije točno, morate promijeniti vrijednost varijable "corrdur"
Corrdur je sada zadnjim ažuriranjem zadan na 0.
Vrijednost corrdura znači koliko milisekundi je potrebno za usporavanje jedne sekunde
Da biste saznali vrijednost corrdura, upotrijebite formulu:
2000/(y-x)/x)
gdje je x = stvarno trajanje proteklog vremena i y = trajanje proteklog sata, oboje u sekundama
Da biste pronašli vrijednost x i y, morate napraviti mali eksperiment.
Postavite vrijeme sata na stvarno vrijeme i zabilježite početno vrijeme (stvarno početno vrijeme i početno vrijeme sata trebaju biti isti). Nakon nekog vremena (nekoliko sati) zabilježite konačno stvarno vrijeme i konačno vrijeme sata.
x = stvarno konačno vrijeme-početno vrijeme i y = konačno vrijeme početno vrijeme
Zatim promijenite vrijednost corrdura u kodu i ponovo ga učitajte u Arduino.
Zatim ponovite test i ovaj put se formula promijenila u:
2000/((2/z)+(y-x/x))
Gdje su x i y ista stvar kao i prije, dok je z trenutna vrijednost kordura.
Ponovno učitajte i ponavljajte test sve dok vam ne bude dovoljno precizan.
U slučaju da se vaš sat i dalje ubrzava, čak je i corrdur postavljen na 0 (znači da nema korektivnog mehanizma), morate promijeniti drugi ++ u drugi-- u dijelu koda u korektivnom mehanizmu (komentirao sam ga), postavite corrdur na 0, onda pronađite br. milisekunde potrebno je za ubrzanje jedne sekunde.
Korak 12: Kako koristiti sve funkcije
Način rada možete promijeniti pritiskom na mikroprekidač.
U prvom načinu rada jednostavno prikazuje vrijeme. Ako indikatorska lampica treperi jednom u sekundi, alarm je isključen. Ako je 2 puta u sekundi, alarm je uključen. Alarm možete odgoditi na 10 minuta u prvom načinu rada pritiskom na osjetnik kapacitivnosti.
U drugom načinu rada prikazuje datum. Pritiskom na kapacitivni senzor ne radite ništa.
U trećem načinu rada možete postaviti mjerač vremena. Pritiskom na osjetnik kapacitivnosti uključit će se mjerač vremena i trebali biste vidjeti da je indikatorska lampica počela treptati. Senzor kapaciteta također se koristi za postavljanje vremena mjerača vremena. Raspon mjerača vremena je od 1 minute do 59 minuta.
U četvrtom načinu rada možete podesiti sat alarma pomoću senzora kapaciteta
U petom načinu rada možete postaviti alarmnu minutu pomoću kapacitivnog senzora.
U šestom načinu rada pritiskom na osjetnik kapacitivnosti minuta će se vratiti na 30, a druga na 0 bez promjene sata. To znači da sve dok vam sat ne hoda više od 30 minuta, možete ga ponovno kalibrirati pomoću ovog načina rada.
Sedmi način rada je način rada "ne radi ništa" u slučaju da se kapacitivni osjetnik pokvari tijekom punjenja.
Oh, da biste odbacili alarm, samo pritisnite mikro prekidač. (NAJNOVIJE AŽURIRANJE ZA UKLJUČIVANJE SNIMKE ALARMA)
Pa, što kažete na čitanje sata? To je lako! Čitanje binarnog sata - Wikihow Možda ćete se isprva osjećati čudno, ali naviknut ćete se na to!
Korak 13: Zaključak
Zašto sam započeo ovaj projekt. U početku je to zato što imam stari digitalni sat koji leži i želim ga pretvoriti u budilicu. Nažalost, pokazalo se da je stari sat pokvaren. Pa sam pomislio zašto ne izgraditi jedan koristeći Arduino? Uz malo google pretraživanja, pronašao sam ovaj projekt binarnog sata bez RTC -a na uputstvu Cello62. Međutim, nema željenu značajku budilice, pa uzimam kôd i sam ga mijenjam. I projekt se rađa. Štoviše, nedavno sam vidio natjecanje u satu koje se izvodilo po instrukcijama, što mi je dalo još više motiva za to. U svakom slučaju, ovo je još uvijek moj prvi projekt koji koristi Arduino, pa hrpa mogućih poboljšanja.
Buduće poboljšanje:
1) Upotrijebite RTC
2) Bežično postavite alarm ili vrijeme ili mjerač vremena!
3) Na koju god značajku pomislim
Korak 14: Ažuriranje: Nakon tjedan dana korištenja
Osim očitog problema - vremenskog pomaka, sljedeći koji bih rekao je potrošnja energije. Prvo, pojačavam napon do 9v, koji će linearni regulator u Arduinu smanjiti. Linearni regulator je vrlo neučinkovit. Sat traje samo JEDAN DAN. To znači da ga moram puniti svaki dan. To nije najveći posao sve dok ne shvatite da je cijeli sustav samo oko 50% učinkovit. S obzirom da mi je baterija 2000mAh, mogao bih izračunati potrošnju energije svaki dan.
Potrošena snaga = (7,4Wh*10%)+(7,4Wh*90%*50%) = 4,07Wh dnevno
To je 1.486kWh godišnje! To se može upotrijebiti za kuhanje 283 g vode (od 25 C do 100 C)? Ali u svakom slučaju, poboljšat ću učinkovitost sata. Način da to učinite je da uopće ne koristite linearni regulator. To znači da moramo prilagoditi pretvarač pojačanja za izlaz 5V izravno u 5V pin na Arduinu. Zatim, kako bih dodatno smanjio potrošnju energije, moram ukloniti dvije ugrađene LED diode (pin13 i napajanje) jer će trošiti 0,95Wh dnevno. Nažalost, nemam pojma o SMD lemljenju pa je jedini način da to učinim presjecanje tračnice na ploči. Nakon toga moram ukloniti otpornik emitera na zujalici i noćnu svjetiljku (LED traka ne radi na 5V). No znači li to da se morate odreći te nevjerojatne značajke? Ne! Ovdje imate dva izbora: Upotrijebite normalnu LED diodu od 5 mm ili 5 LED traku. No, već sam se osjećao umorno radeći ovaj projekt cijeli prošli tjedan pa sam odlučio odustati od ove mogućnosti. Međutim, izvorno sam koristio prekidač za svjetlosnu značajku za uključivanje ili isključivanje ploče sata radi daljnje uštede energije, ali LED dioda na kraju treperi kad je isključim. Greška je postala značajka? Ne znam (bilo tko zna, molim vas da mi kaže dolje).
Na kraju izmjene, sat sada traje više od 2 dana!
Sljedeće imam manje ozbiljan problem sa satom. Tijekom punjenja senzor kapaciteta bi poludio, pa dodajem još jedan način rada koji ne radi ništa.
Što se tiče vremenskog pomaka, budući da je vrlo nezgodno svakodnevno se priključivati na računalo kako bi ga resetirali, dodao sam još jedan način rada koji će postaviti minutu na 30, a sekundu na 0. To znači da biste je mogli resetirati pola sata kasnije!
Preporučeni:
Mikro binarni sat: 10 koraka (sa slikama)
Mikro binarni sat: Nakon što je prethodno stvorio Instructable (Binary DVM), koji koristi ograničeno područje prikaza pomoću binarnog programa. Bio je to samo mali korak nakon što je prethodno napravljen glavni kodni modul za decimalnu u binarnu pretvorbu do stvaranja binarnog sata, ali t
BigBit binarni zaslon sata: 9 koraka (sa slikama)
BigBit binarni zaslon sata: U prethodnom Instructable (Microbit Binary Clock), projekt je bio idealan kao prijenosni stolni uređaj jer je zaslon bio prilično mali. Stoga se činilo prikladnim da bi sljedeća verzija trebala biti verzija na policu ili na zid, ali mnogo veća
Vrhunski binarni sat: 12 koraka (sa slikama)
Ultimativni binarni sat: Nedavno sam se upoznao s konceptom binarnih satova i počeo istraživati kako bih provjerio mogu li sebi izraditi jedan. Međutim, nisam uspio pronaći postojeći dizajn koji bi bio i funkcionalan i moderan u isto vrijeme. Pa sam odlučio
Arduino binarni brojač s 3 znamenke: 8 koraka (sa slikama)
Arduino binarni brojač s 3 znamenke: Ovaj projekt je brojač 1-999 koji koristi 4-LED za svaku znamenku, dok je njegov kontrolni pin anoda ostavljajući slobodne katode za međusobno povezivanje u odgovarajući red LED-ova i otpornik između ovog i Arduino pina . Uobičajene anode će
Arduino binarni sat - 3D ispis: 5 koraka (sa slikama)
Arduino binarni sat - 3D ispis: Već neko vrijeme gledam binarne satove za svoj uredski stol, međutim oni su prilično skupi i / ili nemaju veliku količinu značajki. Pa sam odlučio da ću umjesto toga napraviti jedan. Jedna stvar koju treba uzeti u obzir pri izradi sata, Arduino / Atmega328