Obsah:

Mechanické sedemsegmentové zobrazovacie hodiny: 7 krokov (s obrázkami)
Mechanické sedemsegmentové zobrazovacie hodiny: 7 krokov (s obrázkami)

Video: Mechanické sedemsegmentové zobrazovacie hodiny: 7 krokov (s obrázkami)

Video: Mechanické sedemsegmentové zobrazovacie hodiny: 7 krokov (s obrázkami)
Video: Механические принципы, основная часть 17 2024, November
Anonim
Mechanické sedemsegmentové zobrazovacie hodiny
Mechanické sedemsegmentové zobrazovacie hodiny
Mechanické sedemsegmentové zobrazovacie hodiny
Mechanické sedemsegmentové zobrazovacie hodiny

Pred niekoľkými mesiacmi som postavil dvojciferný mechanický 7 -segmentový displej, ktorý som zmenil na odpočítavanie. Vyšlo to celkom dobre a niekoľko ľudí navrhlo zdvojnásobiť displej a vyrobiť si hodiny. Problém bol v tom, že mi už dochádzalo PWM IO na mojom Arduino Mega a nemal som k dispozícii dostatok pre druhú alebo tretiu číslicu. Potom som bol nasmerovaný v smere týchto 16 -kanálových ovládačov PWM PCA9685, ktoré fungujú cez rozhranie I2C. Vďaka tomu bolo možné poháňať všetkých 28 serv, ktoré som potreboval, pomocou dvoch pinov I2C na Arduine. Pustil som sa do práce na budovaní hodín, ktoré teraz používajú hodinový modul DS1302 na udržiavanie času a dva 16 -kanálové servo ovládače na ovládanie 28 serv, ktoré sa používajú na zostavenie displeja, všetky poháňané Arduino Uno.

Ak sa vám tento návod páči, zvážte jeho hlasovanie v súťaži o hodiny

Zásoby:

Na stavbu hodín budete okrem niektorých základných nástrojov potrebovať aj nasledujúce zásoby:

  • Arduino Uno - Kúpte tu
  • Hodinový modul DS1302 - kúpte tu
  • 2 x 16 -servopohony PCA9685 16Ch - kúpte tu
  • 28 x mikro servo - kúpte tu
  • Plochý kábel - kúpte tu
  • Pruhové hlavičkové pásky - kúpte tu
  • Ženské pásiky s hlavičkami - kúpte tu
  • 3 mm MDF - kúpte tu
  • Čierna farba v spreji - kúpte tu
  • Obvod na elimináciu batérie 5V 5A - kúpte tu
  • Napájanie 12 V - kúpte tu

Na tento projekt budete potrebovať aj 3D tlačené diely. Ak ešte nemáte 3D tlačiareň a baví vás vyrábať veci, určite by ste mali zvážiť jej kúpu. Tu použitý Creality Ender 3 Pro je cenovo dostupný a za svoju cenu vytvára výtlačky v celkom dobrej kvalite.

  • Použitá 3D tlačiareň - kúpte si tu
  • Vlákno - kúpte tu

Krok 1: 3D tlač plastových komponentov

3D tlač plastových komponentov
3D tlač plastových komponentov
3D tlač plastových komponentov
3D tlač plastových komponentov
3D tlač plastových komponentov
3D tlač plastových komponentov

Sedemsegmentové displeje som navrhol tak, aby boli čo najjednoduchšie. Servo je tiež držiak, ktorý drží segment nad ním. Pre každý segment sú potrebné dve 3D tlačené komponenty, dištančný blok na podopretie spodnej strany serva a segment displeja, ktorý sa prilepí priamo na rameno serva.

Stiahnite si súbory 3D tlače - mechanické súbory so 7 segmentovým zobrazovaním s hodinami 3D tlače

Vytlačte segmenty a bodky serva pomocou pestrofarebného PLA. Použil som priesvitnú zelenú, ale červená, oranžová alebo žltá by mala fungovať tiež. Na dištančné bloky a bodové podpery som použil čierne PLA, aby neboli viditeľné, keď sú segmenty otočené do vypnutej polohy.

Ak nemáte prístup k 3D tlačiarni, vyskúšajte niektorú zo služieb online tlače. K dispozícii je množstvo cenovo dostupných služieb, ktoré komponenty vytlačia a doručia vám ich za pár dní až k vám domov.

Krok 2: Pripravte si riadiace dosky a zapojenie

Pripravte si ovládacie dosky a zapojenie
Pripravte si ovládacie dosky a zapojenie
Pripravte si ovládacie dosky a zapojenie
Pripravte si ovládacie dosky a zapojenie
Pripravte si ovládacie dosky a zapojenie
Pripravte si ovládacie dosky a zapojenie
Pripravte si ovládacie dosky a zapojenie
Pripravte si ovládacie dosky a zapojenie

Na pohon svojich 28 hodinových serva budete potrebovať dva 16 -kanálové ovládače PWM PCA9685. Servá som rozdelil na číslice hodiny a minúty, pričom každú dvojicu číslic poháňa jedna doska. Takže mám jednu dosku ovládajúcu serva pre dvojhodinové číslice a druhú ovládajúcu serva pre dvojminútové číslice.

Aby ste ich spojili, budete musieť vytvoriť 6 -žilový konektor plochého kábla a na druhý koniec prvej riadiacej dosky serva spájkovať druhú lištu zbernice. Budete tiež musieť zmeniť adresu I2C na druhej doske, aby sa líšila od prvej a bola jednoznačne identifikovateľná.

Budete tiež musieť vytvoriť káblový zväzok na pripojenie troch dosiek (dvoch dosiek servopohonu a modulu hodín) k vášmu Arduinu. Na každej doske budete potrebovať 5V a GND, ako aj I2C pripojenia k vašim pinom Arduino A4 a A5 (I2C na Arduino Uno) a kolíky hodinového modulu CLK, DAT & RST na piny 6, 7 a 8 na vašom Arduino resp.

Napájanie je dodávané do Arduina priamo z 12 V napájacieho zdroja a do serva pomocou 5V 5A BEC, ktorý je potom pripojený k dvom svorkám v hornej časti ovládača PWM. Na napájanie potrebujete pripojiť iba jeden servopohon, ktorý bude napájať druhý pomocou 6 -žilového kábla.

Krok 3: Zostavte serva

Zostavte servá
Zostavte servá
Zostavte servá
Zostavte servá
Zostavte servá
Zostavte servá

Po vytlačení segmentov budete musieť nastriekať zadnú stranu a boky na čierno, aby boli menej viditeľné, keď sú otočené o 90 stupňov do vypnutej polohy.

Potom musíte segmenty prilepiť tavným lepidlom na ramená serva. Pomáha ich prilepiť na servo s rukou, ktorá je už na servo, takže si môžete skontrolovať, či ich lepíte rovno a vodorovne.

Budete tiež musieť prilepiť dištančný blok na spodok každého serva.

Zostavte body tak, že do zadnej časti bodov a potom do základných blokov prilepíte malú hmoždinku alebo kebab. Tieto tyčinky som tiež nastriekol na čierno, aby boli pri pohľade z uhla menej viditeľné.

Krok 4: Nastavenie a testovanie

Nastavenie a testovanie
Nastavenie a testovanie
Nastavenie a testovanie
Nastavenie a testovanie

Očísloval som všetky servá a zapísal ich na každé vedenie, aby bolo jednoduchšie ich sledovať. Začal som horným segmentom na číslici jednotiek a prešiel som k strednému segmentu na desiatkach číslic. To je tiež poradie, v akom som ich zapojil do riadiacich dosiek serva, pričom som si pamätal, že identifikátory na doskách sa počítajú od 0 do 13 a nie od 1 do 14.

Potom som segmenty položil na stôl s dostatočným priestorom na testovanie, aby sa pri nastavovaní cestovných limitov a smerov nepresunuli do jedného alebo druhého. Ak sa ich pokúsite nastaviť tesne vedľa seba, pravdepodobne sa v jednej fáze pokúsite jeden alebo dva pohnúť zlým smerom alebo cez cestu a naraziť do ďalšej, čo môže poškodiť segment, rameno serva alebo odstrániť prevody na servo.

Krok 5: Odovzdanie kódu

Odovzdanie kódu
Odovzdanie kódu
Odovzdanie kódu
Odovzdanie kódu
Odovzdanie kódu
Odovzdanie kódu

Kód vyzerá na prvý pohľad komplikovane, ale v skutočnosti je vďaka dvom použitým knižniciam pomerne jednoduchý. Tiež sa veľa opakuje, pretože je potrebné aktualizovať štyri rôzne 7 segmentové displeje.

Tu je súhrnný popis kódu, podrobnejšie vysvetlenie nájdete v úplnom sprievodcovi a odkaz na stiahnutie kódu - Mechanické 7 -segmentové hodiny s displejom

Začneme importom dvoch knižníc, virtuabotixRTC.h pre modul hodín a Adafruit_PWMServoDriver.h pre ovládače serva. Knižnicu Adafruit je možné stiahnuť a nainštalovať priamo prostredníctvom správcu knižnice v IDE.

Potom vytvoríme objekt pre každú riadiacu dosku s príslušnou adresou, jedna pre číslice hodín a jedna pre minúty.

Potom máme štyri polia na uloženie pozícií zapnutia a vypnutia pre každé servo. V nasledujúcich krokoch budete musieť tieto čísla upraviť, aby ste sa uistili, že sú vaše serva vo zvislej polohe, keď sú zapnuté, vypnuté o 90 stupňov a neprekračujú vzdialenosť.

Číselné pole ukladá polohy každého segmentu pre každú číslicu, ktorá sa má zobraziť.

Potom nastavíme modul hodín a vytvoríme premenné na ukladanie aktuálnych a minulých jednotlivých číslic.

Vo funkcii nastavenia spustíme a nastavíme riadiace dosky PWM a v prípade potreby aktualizujeme čas. Potom prejdeme slučkou a nastavíme displej na 8 8: 8 8, aby sme poznali počiatočnú polohu všetkých serv. Toto sa používa aj na nastavenie servov tak, aby všetky smerovali správne hore.

V hlavnej slučke dostaneme aktualizovaný čas z hodinového modulu, vylial ho do štyroch číslic a potom skontrolujeme, či sa čas nezmenil od poslednej kontroly. Ak sa čas zmenil, aktualizujeme displej a potom aktualizujeme predchádzajúce číslice.

Vo funkcii aktualizácie zobrazenia najskôr presunieme stredné segmenty. To sa robí najskôr, pretože je potrebná určitá logika, aby sa dva horné segmenty susediace so stredným segmentom trochu posunuli z cesty pred posunutím stredného segmentu, inak do nich narazí. Akonáhle sa stredné segmenty posunú, zostávajúce segmenty sa posunú do správnych polôh.

Krok 6: Zostavenie hodín na zadnú dosku

Zostavenie hodín na zadnej doske
Zostavenie hodín na zadnej doske
Zostavenie hodín na zadnej doske
Zostavenie hodín na zadnej doske
Zostavenie hodín na zadnej doske
Zostavenie hodín na zadnej doske

Akonáhle som skončil s testovaním, zostavil som servá na zadnú dosku podľa vyššie uvedeného rozloženia ako vodítka.

Biela plocha predstavuje celkovú veľkosť dosky, svetlejšia je oblasť obklopujúca každú číslicu, do ktorej sa presúvajú segmenty serva, a obrys v tmavošedej oblasti je stredovou čiarou pre vonkajších 6 segmentov pre každú číslicu.

Vystrihol som dosku, označil rozloženie a potom prilepil číslice na miesto, aby tvorili ciferník.

Potom som vyvŕtal otvory v blízkosti každého serva a priviedol drôty k zadnej časti dosky, aby boli menej viditeľné.

Elektroniku som namontoval na zadnú časť hodín pomocou obojstrannej pásky.

Krok 7: Konečné nastavenie a prevádzka

Konečné nastavenie a prevádzka
Konečné nastavenie a prevádzka
Konečné nastavenie a prevádzka
Konečné nastavenie a prevádzka
Konečné nastavenie a prevádzka
Konečné nastavenie a prevádzka
Konečné nastavenie a prevádzka
Konečné nastavenie a prevádzka

Hneď ako boli servá pripravené, odstránil som všetky ramená serva, aby som mohol vykonať posledné úpravy polôh segmentov. V tomto stave by ste mali zapnúť Arduino, aby sa zobrazilo 8 8: 8 8, a potom odpojiť napájanie, čím sa vycentrujú všetky vaše serva, aby ste mohli opäť nasadiť ramená serva so segmentmi otočenými čo najbližšie k vertikále ako sa dá.

Potom budete musieť postupne zapnúť Arduino a vykonať úpravy pozícií zapnutia a vypnutia segmentu vo vašich štyroch poliach tak, aby boli serva pri zapnutí dokonale zvislé a bez vypnutia sa otočili o 90 stupňov, keď sú vypnuté. Tento krok je časovo náročný a vyžaduje si trpezlivosť, ale konečný výsledok stojí za to!

Hodiny je možné nechať napájať pomocou napájania 12 V a pripojeného 5 V BEC. Ak dôjde k výpadku napájania, batéria v module RTC udrží čas, takže pri obnovení napájania sa hodiny automaticky vynulujú na správny čas.

Ak sa vám tento pokyn páčil, hlasujte zaň v súťaži o hodiny a dajte mi vedieť o akýchkoľvek vylepšeniach alebo návrhoch, s ktorými môžete prísť v nižšie uvedenej sekcii komentárov.

Hodinová súťaž
Hodinová súťaž
Hodinová súťaž
Hodinová súťaž

Druhá cena v súťaži o hodiny

Odporúča: