Sadržaj:
- Supplies
- Korak 1: Spojite krug
- Korak 2: Priprema dijela zujalice
- Korak 3: Priprema LED ploče
- Korak 4: Priprema prekidača (zapravo taster)
- Korak 5: Priprema LED trake
- Korak 6: Priprema senzora 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 jedne sedmice upotrebe
Video: Arduino binarni budilnik, uradi sam: 14 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
Opet 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 sa mjeračem vremena i alarmnim funkcijama koje se mogu koristiti i kao noćna svjetiljka! Bez odlaganja krenimo!
Napomena: Ovaj projekat ne koristi RTC modul, pa tačnost zavisi od ploče koju ste koristili. Uključio sam korektivni mehanizam koji će ispraviti vremenski pomak u određenom vremenskom periodu, ali morat ćete eksperimentirati kako biste pronašli ispravnu vrijednost za određeni vremenski period (više o tome u nastavku), pa čak i s korektivnim mehanizmom i dalje će se mijenjati dugo vremena (u poređenju sa bez njega). Ako nekoga zanima, slobodno implementirajte upotrebu RTC modula u ovaj projekt
Supplies
LED 5 mm (bilo koje boje, koristio sam 13 bijelih LED sa 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)
Gomila žica
Zujalica --- 1 kom
NPN tranzistor --- 1kom
Otpornici 6k8 --- 14 kom, 500R --- 1 kom, 20R (10Rx2) --- 1 kom, 4k7 --- 1kom
Napajanje za projekat (koristio sam li-on bateriju)
5050 LED traka i klizni prekidač (opcionalno)
Korak 1: Spojite krug
Ovaj korak ću podijeliti na:
1) Dio zujalice
2) LED panel
3) Prekidač (dugme za pritiskanje)
4) LED traka
5) Senzor kapaciteta
6) Napajanje
7) Spojite ih sve na Arduino
Većinu vremena ovo je samo korak "slijedite shematski". Zato 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. Zato nam treba 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 sa podatkovnom tablicom će uspjeti za ovo. 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 upotrebu. 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
U skladu s tim uključite LED diode i otpornik u ploču za izradu prototipa i lemite. To je to. Slijedite shemu. U slučaju da vas zanima razmak koji sam koristio, 3 rupe odvojene za svaku kolonu 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 ga slučajno povežete unatrag, ne brinite. Možete promijeniti sve HIGH do LOW i LOW do HIGH u LEDcontrol funkciji.
Korak 4: Priprema prekidača (zapravo taster)
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. Počnite lemljenjem otpornika i komada žice na zajedničko uzemljenje (COM) mikroprekidač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.
Ugao znanja: Zašto nam je potreban padajući otpornik?
"Ako odvojite digitalni U/I 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 potrebno povlačenje ili povlačni otpornik u krugu. " - Izvor: Arduino web mjesto
Korak 5: Priprema LED trake
LED traka je za bočnu lampu kreveta, koja je opcionalna. Samo spojite LED traku i klizni prekidač zajedno u seriju, ništa posebno.
Korak 6: Priprema senzora kapaciteta
Ok pogledajte sliku. U osnovi ćemo samo pričvrstiti žicu na mali komad aluminijske folije (jer se aluminijska folija ne može zalemiti), a zatim je zalijepiti na mali komad montažne ploče. Ljubazni podsjetnik, pazite da aluminijsku foliju ne zalijepite u potpunosti. Ostavite dio izloženog radi direktnog kontakta.
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 koristiti zidni adapter od 9V, možda će vam trebati DC utičnica ili ga jednostavno spojite izravno. Imajte na umu da je vrijednost otpornika za pojačalo dizajnirana 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 ekran i gornjeg prozora za noćnu lampu. 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: Otpremi skicu na arduino
Zatim otvorite serijski monitor i trebali biste vidjeti da prikazuje trenutno vrijeme. Evo kako to učiniti da postavite vrijeme.
Za postavljanje sata: h, XX - gdje je xx trenutni sat
Za postavljanje minuta: min, XX - xx je trenutni minut
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 senzor 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. Trebalo bi ispisati gomilu brojeva. Sada stavite prst na senzor 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 tačan. Ako vrijeme još uvijek nije točno, morate promijeniti vrijednost varijable "corrdur"
Corrdur je sada zadnja nadogradnja na 0 u posljednjem ažuriranju.
Vrijednost corrdura znači koliko milisekundi je potrebno da se uspori jedna sekunda
Da biste saznali vrijednost korrdura, 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.
Ponovo 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 mikro prekidač.
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 senzor 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 tajmera. Raspon tajmera 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 alarmni minut pomoću kapacitivnog senzora.
U šestom načinu rada, pritiskom na osjetnik kapacitivnosti minute će se vratiti na 30, a drugi na 0 bez promjene sata. To znači da sve dok vam sat ne hoda više od 30 minuta, možete ga ponovo 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 senzor pokvari tijekom punjenja.
Oh, da biste odbacili alarm, samo pritisnite mikro prekidač. (NAJNOVIJE AŽURIRANJE ZA UKLJUČIVANJE SNIMKE ALARMA)
Pa, šta kažeš 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 projekat. U početku je to zato što imam stari digitalni sat koji leži i želim ga pretvoriti u budilicu. Nažalost, ispostavilo se da je stari sat pokvaren. Pa sam pomislio zašto ne napraviti jedan koristeći Arduino? Uz malo google pretraživanja, pronašao sam ovaj projekat binarnog sata bez RTC -a na uputstvu Cello62. Međutim, nema željenu funkciju budilnika, pa uzimam kôd i sam ga mijenjam. I projekat je rođen. Štaviše, nedavno sam video kako se takmičenje u satovima izvodi na 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) Koristite RTC
2) Bežično podesite alarm ili vrijeme ili mjerač vremena!
3) Na koju god funkciju mislim
Korak 14: Ažuriranje: Nakon jedne sedmice upotrebe
Osim očitog problema - vremenskog pomaka, sljedeći koji bih rekao je potrošnja energije. Prvo, pojačavam napon do 9v, koji će tada biti smanjen linearnim regulatorom u Arduinu. Linearni regulator je vrlo neefikasan. 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 sistem samo oko 50% efikasan. 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šaću efikasnost 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 šine na ploči. Nakon toga moram ukloniti otpornik emitera na zujalici i noćnu lampu (LED traka ne radi na 5V). No, znači li to da se morate odreći te nevjerojatne osobine? Ne! Ovdje imate dva izbora: Upotrijebite normalnu LED diodu od 5 mm ili 5 LED traku. Ali za mene, već sam se osjećao umorno radeći ovaj projekt cijelu prošlu sedmicu, pa sam odlučio odustati od ove funkcije. Međutim, prvobitno sam koristio prekidač za svjetlosnu funkciju za uključivanje ili isključivanje ploče sata radi daljnje uštede energije, ali LED dioda na kraju treperi kad ga isključim. Greška je postala funkcija? Ne znam (ako neko zna, molim vas da mi kaže dole).
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 pomaka vremena, 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čuje se:
Kako napraviti budilnik uradi sam sa štitom LCD tastature: 5 koraka
Kako napraviti budilnik uradi sam sa štitom za LCD tastaturu: Zdravo svima! U ovom uputstvu ću vam pokazati kako napraviti budilnik pomoću Arduino ploče. Za izradu ovog sata koristio sam Arduino UNO, štitnik LCD tastature, zujalicu od 5V i kratkospojnike. Na ekranu možete vidjeti vrijeme i podesiti vrijeme
Pametni budilnik: pametni budilnik napravljen od Raspberry Pi: 10 koraka (sa slikama)
Pametni budilnik: pametni budilnik napravljen od Raspberry Pi: Jeste li ikada poželjeli pametni sat? Ako je tako, ovo je rješenje za vas! Napravio sam Smart Alarm Clock, ovo je sat s kojim možete promijeniti vrijeme alarma prema web stranici. Kad se alarm oglasi, oglasit će se zvuk (zujalica) i 2 svjetla će
Nadogradite "uradi sam" lonac za zalijevanje sa WiFi -em u alarmni uređaj za otkrivanje kretnji za otkrivanje pokreta "Uradi sam": 17 koraka
Nadogradite "uradi sam" lonac za zalijevanje sa WiFi -jem u aparat za alarme za otkrivanje kretnji za otkrivanje pokreta "Uradi sam": U ovom članku pokazat ćemo vam kako nadograditi svoj lonac za samolijevanje s vlastitim WiFi -jem u DIY lonac za samolijevanje s WiFi -jem i alarmom za detekciju kretanja. niste pročitali članak o tome kako izgraditi lonac za samostalno zalijevanje s WiFi -jem, možete fin
Uradi sam svjetlosni budilnik: 7 koraka
DIY svjetlosni budilnik: Jeste li ikada poželjeli isprobati jedan od onih otmjenih budilnika koji oponaša izlazak sunca da vas probudi? Želite li dodati malo svjetla u boji u svoju sobu? Želite li sve to kontrolirati s bilo kojeg uređaja s internetskim preglednikom? Zatim provjerite ovaj alarm
Binarni budilnik na bazi Arduina: 13 koraka (sa slikama)
Arduino bazirani binarni budilnik: Hej, danas bih vam želio pokazati kako izgraditi jedan od mojih najnovijih projekata, moj binarni budilnik. Na internetu postoji gomila različitih binarnih satova, ali ovo bi zapravo mogao biti prvi, napravljen od trake šarenih adresabilnih LED dioda