Sadržaj:

Arduino binarni alarm DIY: 14 koraka (sa slikama)
Arduino binarni alarm DIY: 14 koraka (sa slikama)

Video: Arduino binarni alarm DIY: 14 koraka (sa slikama)

Video: Arduino binarni alarm DIY: 14 koraka (sa slikama)
Video: Control 32 Servo over Wi-Fi using ESP32 and PCA9685 via desktop or mobile phone V5 2024, Srpanj
Anonim
Arduino binarni budilnik, uradi sam
Arduino binarni budilnik, uradi sam
Arduino binarni budilnik, uradi sam
Arduino binarni budilnik, uradi sam
Arduino binarni budilnik, uradi sam
Arduino binarni budilnik, uradi sam

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

Spojite krug!
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

Priprema dijela zujalice
Priprema dijela zujalice
Priprema dijela zujalice
Priprema dijela zujalice
Priprema dijela zujalice
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

Priprema LED ploče
Priprema LED ploče
Priprema LED ploče
Priprema LED ploče
Priprema LED ploče
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)

Priprema prekidača (zapravo tipka)
Priprema prekidača (zapravo tipka)
Priprema prekidača (zapravo tipka)
Priprema prekidača (zapravo tipka)
Priprema prekidača (zapravo tipka)
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

Priprema LED trake
Priprema LED trake
Priprema LED trake
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

Priprema osjetnika kapacitivnosti
Priprema osjetnika kapacitivnosti
Priprema osjetnika kapacitivnosti
Priprema osjetnika kapacitivnosti
Priprema osjetnika kapacitivnosti
Priprema osjetnika kapacitivnosti
Priprema osjetnika kapacitivnosti
Priprema osjetnika kapacitivnosti

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

Priprema izvora napajanja
Priprema izvora napajanja
Priprema izvora napajanja
Priprema izvora napajanja
Priprema izvora napajanja
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

Povezujući ih s Arduinom
Povezujući ih s Arduinom
Povezujući ih s Arduinom
Povezujući ih s Arduinom
Povezujući ih s Arduinom
Povezujući ih s Arduinom

Slijedite shemu! Slijedite shemu! Slijedite shemu!

Nemojte spajati pogrešan pin ili će stvari postati čudne.

Korak 9: Ograđivanje

Kućište
Kućište
Kućište
Kućište
Kućište
Kućište
Kućište
Kućište

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

Image
Image
Vrijeme programiranja!
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

Image
Image

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

Zaključak
Zaključak
Zaključak
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

Ažuriranje: Nakon tjedan dana korištenja
Ažuriranje: Nakon tjedan dana korištenja
Ažuriranje: Nakon tjedan dana korištenja
Ažuriranje: Nakon tjedan dana korištenja
Ažuriranje: Nakon tjedan dana korištenja
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: