Kazalo:

Mehanska sedem segmentna ura za prikaz: 7 korakov (s slikami)
Mehanska sedem segmentna ura za prikaz: 7 korakov (s slikami)

Video: Mehanska sedem segmentna ura za prikaz: 7 korakov (s slikami)

Video: Mehanska sedem segmentna ura za prikaz: 7 korakov (s slikami)
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, Julij
Anonim
Mehanska sedem segmentna ura za prikaz
Mehanska sedem segmentna ura za prikaz
Mehanska sedem segmentna ura za prikaz
Mehanska sedem segmentna ura za prikaz

Pred nekaj meseci sem izdelal dvomestni mehanski 7 -segmentni zaslon, ki sem ga spremenil v odštevalnik časa. Izkazalo se je zelo dobro in veliko ljudi je predlagalo, da se na zaslonu podvoji, da bi naredili uro. Težava je bila v tem, da mi je na Arduino Mega že zmanjkalo PWM IO in nisem imel na voljo dovolj za drugo ali tretjo številko. Nato sem bil usmerjen v smer teh 16 -kanalnih gonilnikov PWM PCA9685, ki delujejo prek vmesnika I2C. To je omogočilo vožnjo s 28 servomotorji, ki sem jih potreboval, z uporabo dveh I2C zatičev na Arduinu. Tako sem se lotil izdelave ure, ki zdaj uporablja modul ure realnega časa DS1302 za ohranjanje časa in dva 16 -kanalna gonilnika za krmiljenje 28 servomotorjev, ki se uporabljajo za sestavo zaslona, vse pa poganja Arduino Uno.

Če vam je ta Instructable všeč, razmislite o glasovanju zanj na natečaju za ure

Zaloge:

Za izdelavo ure boste poleg osnovnih orodij potrebovali še naslednje materiale:

  • Arduino Uno - Kupite tukaj
  • Modul ure DS1302 - Kupite tukaj
  • 2 x servo gonilnika PCA9685 16Ch - kupite tukaj
  • 28 x mikro servomotorji - kupite tukaj
  • Tračni kabel - kupite tukaj
  • Moški zatiči z zatiči - kupite tukaj
  • Ženski trakovi z zatiči - kupite tukaj
  • 3 mm MDF - Kupite tukaj
  • Črna barva v razpršilu - Kupite tukaj
  • Vezje za odstranjevanje baterij 5V 5A - Kupite tukaj
  • 12V napajalnik - kupite tukaj

Za ta projekt boste potrebovali tudi nekaj 3D tiskanih delov. Če še nimate 3D tiskalnika in uživate v izdelavi, potem vsekakor razmislite o nakupu. Tukaj uporabljeni Creality Ender 3 Pro je cenovno ugoden in za svojo ceno proizvaja precej kakovostne tiske.

  • Rabljen 3D tiskalnik - kupite tukaj
  • Filament - Kupite tukaj

Korak: 3D -tiskanje plastičnih komponent

3D tiskanje plastičnih komponent
3D tiskanje plastičnih komponent
3D tiskanje plastičnih komponent
3D tiskanje plastičnih komponent
3D tiskanje plastičnih komponent
3D tiskanje plastičnih komponent

7 -segmentne zaslone sem zasnoval čim bolj preprosto. Servo je tudi podporni nosilec za držanje segmenta nad njim. Za vsak segment sta potrebni dve 3D -tiskani komponenti, distančni blok, ki podpira spodnjo stran servo, in segment zaslona, ki se prilepi neposredno na servo roko.

Prenesite datoteke 3D tiskanja - Mehanske 7 -segmentne prikazovalne ure 3D datoteke za tiskanje

Natisnite servo segmente in pike s svetlo obarvanim PLA. Uporabil sem prosojno zeleno, vendar bi morala delovati tudi rdeča, oranžna ali rumena. Za distančnike in nosilce pik sem uporabil črni PLA, tako da niso vidni, ko so segmenti obrnjeni v položaj za izklop.

Če nimate dostopa do 3D tiskalnika, preizkusite eno od spletnih storitev tiskanja. Na voljo so številne ugodne storitve, ki bodo komponente natisnile in vam jih v nekaj dneh dostavile na vrata.

2. korak: Pripravite nadzorne plošče in ožičenje

Pripravite nadzorne plošče in ožičenje
Pripravite nadzorne plošče in ožičenje
Pripravite nadzorne plošče in ožičenje
Pripravite nadzorne plošče in ožičenje
Pripravite nadzorne plošče in ožičenje
Pripravite nadzorne plošče in ožičenje
Pripravite nadzorne plošče in ožičenje
Pripravite nadzorne plošče in ožičenje

Za pogon 28 -urnih servomotorjev boste morali uporabiti dva 16 -kanalna gonilnika PWM PCA9685. Servomotorje sem razdelil na številke ur in minut, pri čemer je vsak par števk poganjala ena plošča. Tako imam eno ploščo, ki nadzoruje servomotorje za dve uri, drugo pa krmilje servomotorjev za dve minuti.

Za povezovanje obeh povezav boste morali sestaviti 6 -žilni konektor s tračnim kablom in na drugi konec prve servo krmilne plošče spajkati drugi trak glave. Prav tako boste morali spremeniti naslov I2C na drugi plošči, tako da se razlikuje od prvega in ga je mogoče edinstveno prepoznati.

Prav tako boste morali sestaviti kabelski snop, da povežete tri plošče (dve servo plošči in modul ure) na vaš Arduino. Za vsako ploščo boste potrebovali 5V in GND ter povezave I2C z vašimi Arduino zatiči A4 in A5 (I2C na Arduino Uno) in zatiči modula ure CLK, DAT & RST na zatiče 6, 7 in 8 na vašem Arduinu oz.

Napajanje se napaja v Arduino neposredno iz 12V napajanja in na servomotorje s pomočjo 5V 5A BEC, ki je nato priključen na dva priključka na vrhu gonilnika PWM. Na napajanje morate priključiti samo en servo gonilnik, ki bo napajal drugega preko 6 -žilnega trakovnega kabla.

3. korak: Sestavite servomotorje

Sestavite servomotorje
Sestavite servomotorje
Sestavite servomotorje
Sestavite servomotorje
Sestavite servomotorje
Sestavite servomotorje

Ko natisnete svoje segmente, boste morali hrbet in stranice črniti, tako da bodo manj vidni, ko so obrnjeni za 90 stopinj v položaj za izklop.

Segmente morate nato z lepilom za vroče taljenje lepiti na servo roke. Pomaga pri lepljenju na servo z roko, ki je že na servo, na ta način lahko preverite, ali jih lepite ravno in ravno.

Prav tako morate na dno vsakega servomotorja prilepiti distančni blok.

Pike sestavite tako, da na zadnji del pik prilepite majhen moznik ali kebab, nato pa v osnovne bloke. Tudi te palice sem poškropil črno, tako da so manj vidne, če jih gledamo iz kota.

4. korak: Nastavitev in testiranje

Nastavitev in testiranje
Nastavitev in testiranje
Nastavitev in testiranje
Nastavitev in testiranje

Oštevilčil sem vse servomotorje in na vsako žico zapisal številko, da sem jih lažje spremljal. Začel sem z zgornjim segmentom pri števki enot in delal okoli srednjega segmenta pri številki deset. To je tudi vrstni red, v katerem sem jih priključil na servo krmilne plošče, pri čemer se spomnim, da identifikatorji na ploščah štejejo od 0 do 13 in ne od 1 do 14.

Segmente sem nato postavil na mizo z dovolj prostora med njimi za preskušanje, da se med premikanjem omejitev in smeri potovanja niso premaknili v eno in drugo. Če jih poskušate približati skupaj, se bosta verjetno na eni stopnji enega ali dva poskušala premakniti v napačno smer ali čez vožnjo in udarila v drugo, kar lahko poškoduje segment, servo roko ali odstrani prestave na servo.

5. korak: nalaganje kode

Nalaganje kode
Nalaganje kode
Nalaganje kode
Nalaganje kode
Nalaganje kode
Nalaganje kode

Koda je na prvi pogled videti zapletena, vendar je zaradi dveh uporabljenih knjižnic dejansko razmeroma preprosta. Veliko se ponavlja tudi zato, ker je treba posodobiti štiri različne 7 -segmentne zaslone.

Tukaj je povzetek opisa kode, za podrobnejšo razlago in povezavo za prenos kode si oglejte celoten vodnik - Mehanska 7 -segmentna prikazna ura

Začnemo z uvozom dveh knjižnic, virtuabotixRTC.h za modul ure in Adafruit_PWMServoDriver.h za servo gonilnike. Knjižnico Adafruit lahko prenesete in namestite neposredno prek upravitelja knjižnice v IDE.

Nato za vsako nadzorno ploščo ustvarimo predmet z ustreznim naslovom, enega za številke ur in enega za minute.

Nato imamo štiri nize za shranjevanje vklopnih in izklopnih položajev za vsak servo. V naslednjih korakih boste morali te številke prilagoditi, da se prepričate, da so servomotorji pokonci, ko so vklopljeni, obrnjeni za 90 stopinj, ko so izklopljeni, in ne pretiravajte med potovanjem.

Niz številk shrani položaje vsakega segmenta za vsako prikazano številko.

Nato nastavimo modul ure in ustvarimo spremenljivke za shranjevanje trenutnih in preteklih posameznih številk.

V nastavitveni funkciji zaženemo in nastavimo nadzorne plošče PWM ter po potrebi posodobimo uro. Nato tečemo skozi zanko, da nastavimo zaslon na 8 8: 8 8, tako da poznamo začetni položaj vseh servomotorjev. To se uporablja tudi za nastavitev servomotorjev, tako da so vsi pravilno obrnjeni navzgor.

V glavni zanki dobimo posodobljen čas iz modula ure, ga razlijemo v štiri števke in nato preverimo, ali se je čas spremenil od zadnjega preverjanja. Če se je čas spremenil, posodobimo zaslon in nato posodobimo prejšnje številke.

V funkciji prikaza posodobitev najprej premaknemo srednje segmente. To se naredi najprej, ker je potrebno nekaj logike, da se dva zgornja segmenta, ki mejijo na srednji segment, premaknejo malo stran, preden premaknete srednji segment, sicer se bosta zaletela vanje. Ko se srednji odseki premaknejo, se preostali odseki premaknejo v pravilne položaje.

6. korak: Sestavljanje ure na zadnji plošči

Sestavljanje ure na zadnji plošči
Sestavljanje ure na zadnji plošči
Sestavljanje ure na zadnji plošči
Sestavljanje ure na zadnji plošči
Sestavljanje ure na zadnji plošči
Sestavljanje ure na zadnji plošči

Ko sem končal s testiranjem, sem servomontaže sestavil na zadnjo ploščo z uporabo zgornje postavitve kot vodila.

Belo območje je celotna velikost plošče, svetlejša siva je območje, ki obdaja vsako številko, kamor se premaknejo servo segmenti, obris na temno sivi površini pa je osrednja črta za zunanjih 6 segmentov za vsako številko.

Odrezala sem ploščo, označila postavitev in nato prilepila števke, da sem sestavila uro.

Nato sem izvrtal luknje blizu vsakega servomotorja in žice napeljal do zadnje strani plošče, tako da so manj vidne.

Elektroniko sem pritrdil na zadnjo stran ure z dvostranskim trakom.

7. korak: Končna nastavitev in delovanje

Končna nastavitev in delovanje
Končna nastavitev in delovanje
Končna nastavitev in delovanje
Končna nastavitev in delovanje
Končna nastavitev in delovanje
Končna nastavitev in delovanje
Končna nastavitev in delovanje
Končna nastavitev in delovanje

Ko so bili servomotorji pripravljeni, sem odstranil vse servo ročice za končno prilagoditev položajev segmentov. V tem stanju morate vklopiti Arduino, tako da se prikaže 8 8: 8 8, nato pa izklopite napajanje, to znova centrira vse vaše servomotorje, tako da lahko ročice servo postavite nazaj tako, da so segmenti obrnjeni čim bližje navpični kolikor je mogoče.

Nato boste morali zaporedno vklopiti svoj Arduino in prilagoditi položaje vklopa in izklopa svojega segmenta v štirih nizih, tako da bodo servomotorji pri vklopu popolnoma navpični in se bodo med izklopom obrnili za 90 stopinj. Ta korak je dolgotrajen in zahteva nekaj potrpljenja, vendar je končni rezultat vreden tega!

Uro lahko pustite pri napajanju z 12V napajalnikom in 5V BEC priključenim nanj. Če se napajanje zniža, bo baterija na modulu RTC ohranila čas, tako da se ura ob ponovni vzpostavitvi napajanja samodejno ponastavi na pravilen čas.

Če vam je bil ta Instructable všeč, ga glasujte na natečaju Ura in mi sporočite vse izboljšave ali predloge, ki jih lahko predstavite v spodnjem razdelku za komentarje.

Natečaj za ure
Natečaj za ure
Natečaj za ure
Natečaj za ure

Druga nagrada na natečaju za ure

Priporočena: