Obsah:
- Zásoby
- Krok 1: Připojte obvod
- Krok 2: Příprava části bzučáku
- Krok 3: Příprava panelu LED
- Krok 4: Příprava přepínače (tlačítko ve skutečnosti)
- Krok 5: Příprava LED pásku
- Krok 6: Příprava kapacitního senzoru
- Krok 7: Příprava napájecího zdroje
- Krok 8: Připojte je k Arduinu
- Krok 9: Příloha
- Krok 10: Čas programování
- Krok 11: Opravný mechanismus
- Krok 12: Jak používat všechny funkce
- Krok 13: Závěr
- Krok 14: Aktualizace: Po jednom týdnu používání
Video: DIY Arduino binární budík: 14 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:20
Jsou to opět klasické binární hodiny! Ale tentokrát s ještě více doplňkovými funkcemi! V tomto pokynu vám ukážu, jak vytvořit binární budík s Arduinem, který vám může ukázat nejen čas, ale datum, měsíc, dokonce i s funkcí časovače a budíku, které lze také použít jako noční lampu! Bez dalších okolků můžeme začít!
Poznámka: Tento projekt nevyužívá modul RTC, takže přesnost závisí na desce, kterou jste použili. Zahrnul jsem nápravný mechanismus, který bude opravovat posun času v určitém časovém období, ale budete muset experimentovat, abyste našli správnou hodnotu pro časové období (Více o tom níže), a dokonce i s nápravným mechanismem se bude stále unášet po dlouhou dobu (ve srovnání s bez jednoho). Pokud má někdo zájem, neváhejte implementovat použití modulu RTC v tomto projektu
Zásoby
5mm LED (jakékoli barvy, použil jsem 13 bílých LED s jednou RGB LED jako indikátorem) --- 14 ks
Arduino Nano (ostatní mohou fungovat) --- 1 ks
Mikrospínač --- 1 ks
Malý kousek hliníkové fólie
Montážní deska (pro skříň, ale můžete si navrhnout vlastní)
Kus bílého papíru (nebo jiné barvy)
Nějaká plastová fólie (ta použitá jako obálka knihy)
Svazek drátů
Bzučák --- 1ks
NPN tranzistor --- 1ks
Rezistory 6k8 --- 14 ks, 500R --- 1 ks, 20R (10Rx2) --- 1 ks, 4k7 --- 1ks
Napájení projektu (použil jsem li-on baterii)
5050 LED pásek a posuvný spínač (volitelně)
Krok 1: Připojte obvod
Tento krok rozdělím na:
1) Část bzučáku
2) Panel LED
3) Přepínač (tlačítko)
4) LED pásek
5) Kapacitní snímač
6) Napájení
7) Připojte je všechny k Arduinu
Většinou se jedná pouze o krok „následujte schematicky“. Podívejte se tedy na výše uvedené schéma nebo si jej dokonce stáhněte a vytiskněte!
Krok 2: Příprava části bzučáku
Pokud jste s Arduino používali bzučák dříve, budete vědět, že pokud jej připojíme přímo k Arduinu, nebude dostatečně hlasitý. Potřebujeme tedy zesilovač. Ke konstrukci zesilovače potřebujeme tranzistor NPN (v zásadě bude fungovat jakýkoli NPN, použil jsem S9013, protože jsem ho dostal ze starého projektu) a nějaký odpor k omezení proudu. Pro začátek nejprve identifikujte kolektor, emitor a základnu tranzistoru. K tomu bude stačit trochu googlování datového listu. Poté připájejte kolektor tranzistoru k zápornému pólu bzučáku. Na kladný konec bzučáku k němu jen připájíme kousek drátu, abychom jej mohli později připájet k našemu Arduinu. Poté připájejte odpor 500R (nebo jakoukoli podobnou hodnotu odporu) k základně tranzistoru a z rezistoru připájejte další kus drátu pro budoucí použití. Nakonec připájejte dva rezistory 10R v sérii k emitoru tranzistoru a připojte další vodič z odporů.
Opravdu, podívejte se na schéma.
p/s: V době psaní tohoto článku pořád nevím, jak vybrat odpor pro tranzistor. Hodnota, kterou jsem použil, je vybrána empiricky.
Krok 3: Příprava panelu LED
Podle toho zapojte diody LED a odpor do desky prototypu a připájejte. A je to. Postupujte podle schématu. Pokud vás zajímají rozestupy, které jsem použil, 3 otvory od sebe pro každý sloupec a dva otvory od sebe pro každý řádek (viz obrázek). A kontrolka LED? Zapojil jsem to náhodně.
Po připájení LED a rezistoru k desce spojte všechny kladné svorky LED dohromady. Poté pájejte vodiče jeden po druhém na každý odpor na záporných svorkách LED, abychom je mohli později připájet k Arduinu.
POZNÁMKA: Tento krok vás může zmást. Pamatujte, místo toho, abychom spojili veškerou zem, spojíme všechny kladné svorky dohromady a záporné svorky k jednotlivému kolíku na Arduinu. Jako zem proto používáme pin Arduino GPIO, nikoli Vcc. V případě, že jej omylem připojíte zpět, nedělejte si starosti. Ve funkci ledcontrol můžete upravit všechny hodnoty HIGH až LOW a LOW až HIGH.
Krok 4: Příprava přepínače (tlačítko ve skutečnosti)
Pro přepínač (budu tomu říkat přepínač, protože jsem použil mikrospínač, ale víte, že je to tlačítko) potřebujeme stahovací odpor 4k7 a samozřejmě samotný spínač. Ach, nezapomeňte připravit nějaké dráty. Začněte pájením odporu a kousku drátu na společnou zem (COM) mikrospínače. Poté připájejte další kus drátu k normálně otevřenému (NO) mikrospínače. Nakonec k rezistoru připojte další vodič. Zajistěte horkým lepidlem.
Koutek znalostí: Proč potřebujeme stahovací odpor?
"Pokud odpojíte digitální I/O pin od všeho, LED může blikat nepravidelně. Důvodem je, že vstup je" plovoucí " - to znamená, že se náhodně vrátí buď HIGH nebo LOW. Proto potřebujete pull -up nebo stahovací odpor v obvodu. “- Zdroj: webová stránka Arduino
Krok 5: Příprava LED pásku
LED pásek je pro boční lampu, která je volitelná. Stačí zapojit LED pásek a posuvný spínač do série, nic zvláštního.
Krok 6: Příprava kapacitního senzoru
Dobře, podívejte se na obrázek. V zásadě se chystáme připojit drát k malému kousku hliníkové fólie (protože hliníkovou fólii nelze pájet) a poté ji nalepit na malý kousek montážní desky. Laskavá připomínka, ujistěte se, že hliníkovou fólii úplně nepropásnete. Ponechte část vystavenou přímému kontaktu.
Krok 7: Příprava napájecího zdroje
Vzhledem k tomu, že jsem jako napájecí zdroj používal li-on baterii, potřebuji modul TP4056 pro nabíjení a ochranu a konvertor boost pro převod napětí na 9v. Pokud jste se rozhodli použít 9V nástěnný adaptér, možná budete potřebovat DC konektor, nebo jej přímo připojit. Všimněte si, že hodnota odporu pro zesilovač je navržena pro 9V a pokud chcete použít jiné napětí, možná budete muset změnit odpor.
Krok 8: Připojte je k Arduinu
Postupujte podle schématu! Postupujte podle schématu! Postupujte podle schématu!
Nepřipojujte špatný kolík, jinak to bude divné.
Krok 9: Příloha
Rozměr mého návrhu je 6,5 cm*6,5 cm*8 cm, takže je trochu objemný. Skládá se z předního okna pro LED displej a horního okna pro noční lampu. Můj návrh viz obrázky.
Krok 10: Čas programování
Stáhněte si níže moji skicu a nahrajte ji do svého Arduina. Pokud nevíte, jak to udělat, neobtěžujte se dělat tento projekt! Ne, dělám si srandu, tady je k tomu dobrý návod: Nahrajte skicu do arduina
Poté otevřete sériový monitor a měli byste vidět, jak vydává aktuální čas. Chcete -li nastavit čas, postupujte takto.
Nastavení hodiny: h, XX - kde xx je aktuální hodina
Chcete -li nastavit minutu: min, XX - xx je aktuální minuta
Chcete -li nastavit druhé: s, XX
Nastavení data: d, XX
Nastavení měsíce: po, XX
Když je proveden výše uvedený komentář, měl by vám vrátit hodnotu, kterou jste právě nastavili. (Například když nastavíte hodinu s h, 15, měla by se vrátit Hour: 15 na sériovém monitoru.
U kapacitního senzoru bude možná nutné jej kalibrovat, než bude fungovat. Chcete-li to provést, dvakrát stiskněte mikrospínač a podívejte se na sériový monitor. Mělo by vygenerovat spoustu čísel. Nyní přiložte prst na kapacitní senzor a podívejte se, jak si všimněte rozsahu čísla. Dále upravte proměnnou „captrigger“. Řekněme, že po stisknutí získáte 20-30, poté nastavte captrigger na 20.
Skica používá knihovnu ADCTouch, ujistěte se, že jste ji nainstalovali.
Krok 11: Opravný mechanismus
Časové období pro nápravný mechanismus v mém kódu je nastaveno na čas, který je pro mě přesný. Pokud čas stále není přesný, musíte změnit hodnotu proměnné „corrdur“
Corrdur je nyní v poslední aktualizaci výchozí na 0.
Hodnota corrdur znamená, kolik milisekund trvá zpomalení jedné sekundy
Chcete -li zjistit hodnotu kordu, použijte vzorec:
2000/(r-x)/x)
kde x = skutečná doba uplynulého času a y = doba uplynulého času hodin, obojí za sekundu
Chcete -li zjistit hodnotu x a y, musíte udělat malý experiment.
Nastavte čas hodin na skutečný čas a zaznamenejte počáteční čas (skutečný počáteční čas a počáteční čas hodin by měl být stejný). Po chvíli (několik hodin) zaznamenejte konečný skutečný čas a konečný čas hodin.
x = skutečný konečný čas-počáteční čas a y = hodiny konečný čas-počáteční čas
Poté změňte hodnotu corrdur v kódu a znovu načtěte do Arduina.
Potom opakujte test a tentokrát se vzorec změnil na:
2000/((2/z)+(y-x/x))
Kde xay je stejná věc jako dříve, zatímco z je aktuální hodnota kordu.
Nahrajte znovu a proveďte test znovu a znovu, dokud nebude pro vás dostatečně přesný.
V případě, že se vaše hodiny stále zrychlují, i když je corrdur nastaven na 0 (to znamená žádný opravný mechanismus), musíte změnit druhé ++ na druhé- v části opravného mechanismu kódu (komentoval jsem to), nastavit corrdur na 0, pak najdi č. milisekundy trvá zrychlení jedné sekundy.
Krok 12: Jak používat všechny funkce
Režim můžete změnit stisknutím mikrospínače.
V prvním režimu jednoduše zobrazuje čas. Pokud kontrolka bliká 1krát za sekundu, alarm je vypnutý. Pokud 2krát za sekundu, alarm je zapnutý. V prvním režimu můžete alarm odložit na 10 minut stisknutím kapacitního senzoru.
V druhém režimu zobrazuje datum. Lisování kapacitního senzoru nedělá nic.
Ve třetím režimu můžete nastavit časovač. Stisknutím kapacitního senzoru se zapne časovač a měli byste vidět blikající kontrolku. Kapacitní senzor slouží také k nastavení času časovače. Rozsah časovače je 1 minuta až 59 minut.
Ve čtvrtém režimu můžete nastavit hodinu budíku pomocí kapacitního senzoru
V pátém režimu můžete nastavit minutu alarmu pomocí kapacitního senzoru.
V šestém režimu se stisknutím kapacitního senzoru resetuje minuta na 30 a sekunda na 0 bez změny hodiny. To znamená, že dokud se vaše hodiny neposunou o více než 30 minut, můžete je v tomto režimu znovu kalibrovat.
Sedmý režim je režim nedělat nic v případě, že se kapacitní snímač při nabíjení porouchá.
Chcete-li alarm vypnout, stiskněte mikrospínač. (NEJNOVĚJŠÍ AKTUALIZACE SOUČÁSTÍ ALARMU SNOOZE)
A co číst hodiny? Je to snadné! Čtení binárních hodin - Wikihow Zpočátku se můžete cítit divně, ale zvyknete si na to!
Krok 13: Závěr
Proč jsem zahájil tento projekt. Zpočátku je to proto, že mám staré digitální hodinky, které leží kolem a chci z nich udělat budík. Bohužel se ukázalo, že staré hodinky jsou rozbité. Takže jsem byl rád, proč nevybudovat jeden pomocí Arduina? S trochou vyhledávání na Google jsem našel tento projekt binárních hodin bez RTC na instruct od Cello62. Nemá však funkci budíku, kterou chci, a tak kód vezmu a upravím sám. A projekt je na světě. Navíc jsem nedávno viděl, jak hodinová soutěž běží podle pokynů, což mi dalo ještě větší motivaci to udělat. Každopádně je to stále můj první projekt využívající Arduino, takže spousta možných vylepšení.
Budoucí vylepšení:
1) Použijte RTC
2) Nastavte budík nebo čas nebo časovač bezdrátově!
3) Na jakoukoli funkci myslím
Krok 14: Aktualizace: Po jednom týdnu používání
Kromě zjevného problému - posunu času, další, který bych řekl, je spotřeba energie. Nejprve vůbec zvýším napětí na 9 V, které pak bude snižovat lineární regulátor v Arduinu. Lineární regulátor je velmi neefektivní. Hodiny trvají pouze JEDEN DEN. To znamená, že ho musím nabíjet každý den. To není největší problém, dokud si neuvědomíte, že celý systém je účinný jen asi z 50%. Vzhledem k tomu, že moje baterie je 2 000 mAh, byl bych schopen vypočítat plýtvání energií každý den.
Ztráta energie = (7,4 Wh*10%)+(7,4 Wh*90%*50%) = 4,07 Wh za den
To je 1,486 kWh za rok! Lze z toho vařit 283 g vody (od 25 C do 100 C)? Ale každopádně budu zlepšovat účinnost hodin. Způsob, jak toho dosáhnout, je nepoužívat lineární regulátor vůbec. To znamená, že musíme upravit posilovač převodu na výstup 5V přímo do 5V pinu na Arduinu. Dále, abych ještě více minimalizoval plýtvání energií, musím odstranit dvě LED na desce (pin13 a napájení), protože budou ztrácet 0,95 Wh za den. Bohužel jsem v pájení SMD naprosto bezradný, takže jediný způsob, jak to udělat, je odříznout kolejnici na desce. Poté musím odstranit rezistor emitoru na bzučáku a noční lampě (LED pás nefunguje při 5V). Znamená to však, že se musíte této úžasné funkce vzdát? Ne! Máte zde dvě možnosti: Použijte normální 5mm LED diodu nebo použijte 5V LED pásek. Ale pro mě jsem se už cítil unavený tím, že jsem celý minulý týden dělal tento projekt, a tak jsem se rozhodl této funkce vzdát. Použil jsem však spínač původně pro funkci osvětlení pro zapnutí nebo vypnutí panelu hodin k další úspoře energie, ale nakonec LED bliká, když jej vypnu. Stala se chyba funkcí? Nevím (někdo ví, prosím, řekněte mi níže).
Na konci úpravy nyní hodiny trvají déle než 2 dny!
Dále mám méně vážný problém s hodinami. Během nabíjení by se kapacitní senzor zbláznil, takže přidávám další režim, který nedělá nic.
Pokud jde o posun času, protože je velmi nepohodlné připojovat se k počítači každý den, abych jej resetoval, přidal jsem další režim, který nastaví minutu na 30 a sekundu na 0. To znamená, že byste jej mohli resetovat o půl druhé každou hodinu!
Doporučuje:
Inteligentní budík: inteligentní budík vyrobený z Raspberry Pi: 10 kroků (s obrázky)
Chytrý budík: Chytrý budík vyrobený z Raspberry Pi: Chtěli jste někdy chytré hodiny? Pokud ano, toto je řešení pro vás! Vytvořil jsem inteligentní budík, toto jsou hodiny, u kterých můžete podle času na webu změnit čas budíku. Když se spustí alarm, ozve se zvuk (bzučák) a 2 kontrolky
Slap budík s Arduino: 13 kroků (s obrázky)
Slap Alarm Clock With Arduino: Nevím, jak vy, ale jednoduchý budík mě nedokáže probudit. Potřebuji k probuzení světlo, zvuk a dokonce i měkké plácnutí. Žádný budík mě neláká, a tak jsem se rozhodl udělat ze sebe takového, který by mě hodil vzbudit. I když se zdá, že budík
3místný binární čítač Arduino: 8 kroků (s obrázky)
3místný binární čítač Arduino: Tento projekt je čítač 1-999 s použitím 4 LED pro každou číslici, zatímco jeho ovládací kolík je anoda ponecháním volných katod pro propojení s odpovídající řadou LED a odporem mezi tímto a Arduino pinem . Společné anody budou
Binární hodiny Arduino - 3D tisk: 5 kroků (s obrázky)
Arduino Binary Clock - 3D Printed: Už nějakou dobu se dívám na binární hodiny pro svůj kancelářský stůl, ale jsou docela drahé a / nebo nemají obrovské množství funkcí. Rozhodl jsem se tedy, že místo toho jeden vyrobím. Jeden bod, který je třeba vzít v úvahu při výrobě hodin, Arduino / Atmega328
Binární budík založený na Arduinu: 13 kroků (s obrázky)
Binární budík založený na Arduinu: Hej, dnes bych vám chtěl ukázat, jak postavit jeden z mých nejnovějších projektů, můj binární budík. Na internetu je spousta různých binárních hodin, ale toto může být ve skutečnosti první, vyrobený z pásu barevných adresovatelných LED