Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Už ste si niekedy priali, aby bol obed dlhší, ale nevedeli ste, kde nájsť tých pár minút navyše? No už si nepraj!
Vďaka veľkému pokroku v technológii hodiniek vám predstavujem hodiny, ktoré sa každý deň o 11:00 zrýchlia o 20% a každý deň o 11:48 sa spomalia o 20%, čím si doprajete obed ďalších dvanásť minút navyše. Dvanásť minút sa nemusí zdať veľa, ale aby sme to uviedli na správnu mieru, je to plná ďalšia hodina obeda, ktorú získate každý týždeň.
Krok 1: Choďte si vybaviť veci
Budete potrebovať:
(x1) Štandardné nástenné hodiny (x1) Adafruit DS1307 Hodiny v reálnom čase (x1) Arduino Uno (s čipom DIP ATMEGA328) (x1) Extra čip ATMEGA328 s nainštalovaným bootloaderom Arduino (pozri posledný krok) (x2) Tranzistory BC547 NPN (x2) BC557 PNP tranzistory (x1) 28 -pinová zásuvka (x1) 16 MHz kryštál + (x2) 20pf kondenzátory (x1) 1K odpor (x1) 7805 regulátor (x1) 4 -pinová zásuvka (x1) 9V batéria (x1) 9V batéria
(Upozorňujeme, že niektoré odkazy na tejto stránke obsahujú odkazy na pobočky spoločnosti Amazon. To nemení cenu žiadneho z položiek na predaj, ale zarobím malú províziu, ak kliknete na ktorýkoľvek z týchto odkazov a niečo kúpite. Ja reinvestujte tieto peniaze do materiálov a nástrojov pre budúce projekty. Ak by ste chceli alternatívny návrh na dodávateľa ktorejkoľvek z dielov, dajte mi prosím vedieť.)
Krok 2: Odstráňte pohyb
Odstráňte pohyb hodín z tela hodín. Bude to vyžadovať odstránenie prednej sklenenej plochy z hodín, ako aj z ručičiek hodín. Buďte jemní, aby ste nič nepokazili. Neskôr budete musieť všetko znova zložiť.
Krok 3: Hacknite hnutie
Hodinový strojček má vo vnútri krokový motor s jednou cievkou. Základná teória tu je, že chceme cievku odpojiť od časovacieho obvodu hodín a potom k cievke pripojiť drôty, aby sme ju mohli ovládať sami. S týmto vedomím otvorte hodinový strojček a poznačte si mentálne, kde je všetko (alebo odfoťte). Rozdeľte pohyb, kým nebude doska plošných spojov voľná. Nájdite kontakty na doske plošných spojov, kde je umiestnený motor. Všimnite si, že tieto dva kontakty majú stopy, ktoré idú na čip (skrytý pod čiernou škvrnou). Cieľom je použiť žiletku alebo nôž na poškriabanie týchto stôp, kým nebude viditeľne prerušené spojenie s čipom. Pre istotu som tiež odrezal časovací kryštál, čím bol obvod viac -menej zbytočný. Nakoniec som na každý z motorových terminálov pripájal asi 6 palcový drôt. Keď bolo toto všetko hotové, celé som to dal dohromady. V prípade, že by som pohodlne prevliekol vodiče a nenašlo sa žiadne miesto, potreboval by som to aby som išiel poriadne spolu, tak som nakoniec vyrezal malý otvor, cez ktorý prešli drôty.
Krok 4: Znova zostavte hodiny
Akonáhle je váš pohyb dobrý a nabouraný, ale hodiny zase spolu. Dôležité: Uistite sa, že hodinová, minútová a sekundová ručička sú zoradené o 12:00. Nerobil som to prvýkrát a rýchlo som zistil, že hodiny sa nebudú zobrazovať správne, pokiaľ nebudú všetky ruky zarovnané.
Krok 5: Súprava RTC
Ak ste to ešte neurobili, ale spoločne s vašou súpravou hodín v reálnom čase Adafruit DS1307. Tu je niekoľko pokynov na dokončenie práce. Tiež, keď ste pri tom, nastavte čas na tabuli RTC. Pokiaľ nevyberiete batériu, mali by ste to urobiť iba raz (najmenej nasledujúcich 5 rokov, kým batéria nevybije). Na stránke Ladyada môžete získať podrobné informácie o nastavení času.
Krok 6: Vybudujte obvod
Obvod je veľmi jednoduchý. V zásade tomu deti v dnešnej dobe hovoria „hackduino“, zásuvka pre dosku RTC a hrubý H-mostík na ovládanie motora.
Krok 7: Naprogramujte čip
Na to, aby váš kód fungoval, budete musieť nainštalovať knižnicu RTClib. Pokyny, ako to urobiť, sú na stránke Ladyada. Stiahnite si lunchtime_clock.zip, rozbaľte ho a potom nahrajte kód lunchtime_clock.pde na svoj čip. Ak sa vám nechce sťahovať súbor, tu je kód: // Lunchtime Clock // od Randyho Sarafana // // Spomalí o 20% pri 11 a zrýchli o 20% o 11:48, kým nenarazí na 1./ / Po zvyšok času idú hodiny normálnou rýchlosťou // // S týmto kódom si robte, čo chcete. Uistite sa, že čokoľvek robíte, je to úžasné. // #include #include "RTClib.h" RTC_DS1307 RTC; int clockpin = 9; int clockpin1 = 10; void setup () {Serial.begin (57600); Wire.begin (); RTC.begin (); } void loop () {DateTime now = RTC.now (); TurnTurnTurn (1000); if (now.hour () == 11) {for (int i = 0; i <1800; i ++) {TurnTurnTurn (800); } for (int i = 0; i <1800; i ++) {TurnTurnTurn (1200); }}} int TurnTurnTurn (int TimeToWait) {analogWrite (clockpin, 0); analogWrite (clockpin1, 124); // nastaví hodnotu (rozsah od 0 do 255) delay (TimeToWait); analogWrite (clockpin, 124); analogWrite (clockpin1, 0); oneskorenie (TimeToWait); }
Krok 8: Dajte to všetko dohromady
Po naprogramovaní preneste svoj čip ATMEGA168 z Arduina na dosku s plošnými spojmi. Zapojte dosku RTC do zásuvky. Pred zapnutím skontrolujte, či sú kolíky správne zarovnané. Pripojte obvodovú dosku a batériu k zadnej časti hodín. Na to, aby som si to urobil „na vlastnú päsť“na poslednú chvíľu, použil som na to horúce lepidlo a gafferskú pásku. Ideálny by bol samolepiaci suchý zips.
Krok 9: Synchronizujte hodiny
Vložte do Arduina nový čip ATMEGA168. Pripojte Arduino ešte raz k doske RTC.
Spustite ukážkový kód zo stránky Ladyada. Otvorte sériový monitor. Tu zobrazený čas je čas, do ktorého sa chystáte synchronizovať hodiny.
Zistil som, že je najľahšie nastaviť tretie hodiny (hodiny môjho počítača) tak, aby boli dokonale synchronizované s doskou RTC. Potom som vypol Arduino, preniesol dosku RTC späť do svojho obvodu a nastavil hodiny na obed o minútu neskôr, ako je čas môjho počítača. V pravý okamih, keď sa v počítači zmenila minúta, som zapol obedové hodiny, aby som dosiahol synchronicitu.
Hodiny na obed fungujú veľmi dobre a doteraz prekonali moje očakávania.
Považovali ste to za užitočné, zábavné alebo zábavné? Ak chcete vidieť moje najnovšie projekty, sledujte @madeineuphoria.