Satura rādītājs:

Mehāniskais septiņu segmentu displeja pulkstenis: 7 soļi (ar attēliem)
Mehāniskais septiņu segmentu displeja pulkstenis: 7 soļi (ar attēliem)

Video: Mehāniskais septiņu segmentu displeja pulkstenis: 7 soļi (ar attēliem)

Video: Mehāniskais septiņu segmentu displeja pulkstenis: 7 soļi (ar attēliem)
Video: How to use TM1637 4 digits seven segment display with Arduino 2024, Novembris
Anonim
Mehāniskais septiņu segmentu displeja pulkstenis
Mehāniskais septiņu segmentu displeja pulkstenis
Mehāniskais septiņu segmentu displeja pulkstenis
Mehāniskais septiņu segmentu displeja pulkstenis

Pirms pāris mēnešiem es izveidoju divciparu mehānisku 7 segmentu displeju, kuru pārvērsu par atpakaļskaitīšanas taimeri. Tas iznāca diezgan labi, un vairāki cilvēki ieteica dubultot displeju, lai izveidotu pulksteni. Problēma bija tāda, ka manā Arduino Mega ierīcē jau bija beigusies PWM IO, un man nebija pietiekami daudz iespēju otrajam vai trešajam ciparam. Tad es biju norādīts šo PCA9685 16 kanālu PWM draiveru virzienā, kas darbojas, izmantojot I2C saskarni. Tas ļāva vadīt visus nepieciešamos 28 servos, izmantojot divas I2C tapas Arduino. Tāpēc es ķēros pie pulksteņa veidošanas, kas tagad izmanto DS1302 reālā laika pulksteņa moduli, lai saglabātu laiku, un diviem 16 kanālu servo draiveriem, lai kontrolētu 28 servus, kas izmantoti displeja veidošanai, un to visu darbina Arduino Uno.

Ja jums patīk šī pamācība, lūdzu, apsveriet iespēju balsot par to pulksteņu konkursā

Piegādes:

Lai izveidotu savu pulksteni, papildus dažiem pamata rīkiem jums būs nepieciešami šādi piederumi:

  • Arduino Uno - pērciet šeit
  • DS1302 pulksteņa modulis - pērciet šeit
  • 2 x PCA9685 16Ch servo draiveri - pērciet šeit
  • 28 x mikro servos - pērciet šeit
  • Lentes kabelis - pērciet šeit
  • Vīriešu tapas galvenes sloksnes - pērciet šeit
  • Sieviešu tapas galvenes sloksnes - pērciet šeit
  • 3 mm MDF - pērciet šeit
  • Melna aerosola krāsa - pērciet šeit
  • 5V 5A akumulatora likvidēšanas ķēde - pērciet šeit
  • 12 V barošanas avots - pērciet šeit

Šim projektam jums būs nepieciešamas arī dažas 3D drukātas detaļas. Ja jums vēl nav 3D printera un jums patīk to izgatavot, noteikti apsveriet tā iegādi. Šeit izmantotais Creality Ender 3 Pro ir par pieņemamu cenu un par savu cenu ražo diezgan labas kvalitātes izdrukas.

  • Izmantots 3D printeris - pērciet šeit
  • Kvēldiegs - pērciet šeit

1. darbība: 3D drukājiet plastmasas detaļas

3D drukājiet plastmasas detaļas
3D drukājiet plastmasas detaļas
3D drukājiet plastmasas detaļas
3D drukājiet plastmasas detaļas
3D drukājiet plastmasas detaļas
3D drukājiet plastmasas detaļas

Es izveidoju 7 segmentu displejus pēc iespējas vienkāršākus. Servo ir arī atbalsta kronšteins, lai noturētu segmentu virs tā. Katram segmentam ir nepieciešami divi 3D drukāti komponenti, starplikas bloks, lai atbalstītu servo apakšējo pusi, un displeja segments, kas tiek pielīmēts tieši pie servo sviras.

Lejupielādējiet 3D drukas failus - mehāniskie 7 segmentu displeja pulksteņa 3D drukas faili

Drukājiet servo segmentus un punktus, izmantojot spilgtas krāsas PLA. Es izmantoju caurspīdīgu zaļu, bet arī sarkanai, oranžai vai dzeltenai vajadzētu labi darboties. Es izmantoju melnu PLA starplikas blokiem un punktu balstiem, lai tie nebūtu redzami, kad segmenti ir pagriezti izslēgtā stāvoklī.

Ja jums nav piekļuves 3D printerim, izmēģiniet kādu no tiešsaistes drukāšanas pakalpojumiem. Ir pieejami vairāki pakalpojumi par pieņemamu cenu, kas izdrukās komponentus un dažu dienu laikā nogādās tos līdz jūsu durvīm.

2. darbība. Sagatavojiet vadības paneļus un vadus

Sagatavojiet vadības paneļus un vadus
Sagatavojiet vadības paneļus un vadus
Sagatavojiet vadības paneļus un vadus
Sagatavojiet vadības paneļus un vadus
Sagatavojiet vadības paneļus un vadus
Sagatavojiet vadības paneļus un vadus
Sagatavojiet vadības paneļus un vadus
Sagatavojiet vadības paneļus un vadus

Jums būs jāizmanto divi PCA9685 16 kanālu PWM draiveri, lai vadītu savus 28 pulksteņa servos. Es sadalīju servos stundas un minūtes ciparus, un katru ciparu pāri vadīja viena tāfele. Tātad man ir viena tāfele, kas kontrolē servos divu stundu ciparus, bet otra - divu minūšu ciparu servos.

Lai abus savienotu ķēdē, jums jāizveido 6 vadu lentes kabeļa savienotājs un jāpielodē otrā galvenes sloksne uz pirmā servo vadības paneļa otrā gala. Jums būs jāmaina arī otrā paneļa I2C adrese, lai tā atšķirtos no pirmās un būtu unikāli identificējama.

Lai savienotu trīs plāksnes (divas servoplates un pulksteņa moduli) ar savu Arduino, jums būs jāizveido arī elektroinstalācija. Jums būs nepieciešams 5V un GND katrai plāksnei, kā arī I2C savienojumi ar jūsu Arduino tapām A4 un A5 (I2C uz Arduino Uno), un pulksteņa moduļa tapas CLK, DAT & RST uz jūsu Arduino tapām 6, 7 un 8 attiecīgi.

Strāva tiek piegādāta Arduino tieši no 12 V barošanas avota un servos, izmantojot 5V 5A BEC, kas pēc tam tiek savienots ar diviem spailēm PWM draivera augšpusē. Elektroenerģijai ir jāpievieno tikai viens servo draiveris, un tas piegādās strāvu otrajam, izmantojot 6 vadu lentes kabeļa savienojumu.

3. darbība: salieciet servos

Salieciet servos
Salieciet servos
Salieciet servos
Salieciet servos
Salieciet servos
Salieciet servos

Kad esat izdrukājis savus segmentus, jums jāizsmidzina aizmugure un malas melnā krāsā, lai tās būtu mazāk redzamas, ja tās ir pagrieztas par 90 grādiem izslēgtā stāvoklī.

Pēc tam jums ir jāpielīmē segmenti uz jūsu servo rokām ar karsta kausējuma līmi. Tas palīdz pielīmēt tos uz servo ar roku, kas jau atrodas uz servo, tādā veidā jūs varat pārbaudīt, vai līmējat tos taisni un līdzeni.

Jums būs arī jāpielīmē starplikas bloks katra servo apakšā.

Salieciet punktus, pielīmējot nelielu dībeli vai kebaba nūju punktu aizmugurē un pēc tam pamatblokos. Es arī šīs nūjas izsmidzināju melnas, lai tās būtu mazāk redzamas, ja skatītos no leņķa.

4. darbība: iestatīšana un pārbaude

Iestatīšana un pārbaude
Iestatīšana un pārbaude
Iestatīšana un pārbaude
Iestatīšana un pārbaude

Es saskaitīju visus servos un ierakstīju numuru katrā vadā, lai būtu vieglāk tos izsekot. Es sāku ar vienību ciparu augšējo segmentu un strādāju pie vidējā segmenta ar desmitiem ciparu. Tādā secībā es pievienoju tos servo vadības paneļiem, atceroties, ka uz paneļiem esošie identifikatori skaitās no 0 līdz 13, nevis no 1 līdz 14.

Pēc tam es sakārtoju segmentus uz galda, lai starp tiem būtu pietiekami daudz vietas testēšanai, lai tie netiktu pārvietoti vienā un otrā, vienlaikus iestatot pārvietošanās ierobežojumus un norādes. Ja mēģināsit tos uzstādīt tuvu viens otram, iespējams, ka viens vai divi mēģinās kādā brīdī pārvietoties nepareizā virzienā vai pārvietoties, un sasniegsiet citu, kas var sabojāt segmentu, servo rokturi vai atdalīt servopārvades pārnesumus.

5. darbība: koda augšupielāde

Koda augšupielāde
Koda augšupielāde
Koda augšupielāde
Koda augšupielāde
Koda augšupielāde
Koda augšupielāde

Kods no pirmā acu uzmetiena šķiet sarežģīts, taču patiesībā tas ir salīdzinoši vienkāršs, pateicoties divām izmantotajām bibliotēkām. Ir arī daudz atkārtojumu, jo ir jāatjaunina četri dažādi 7 segmentu displeji.

Šeit ir koda kopsavilkuma apraksts, skatiet pilnu rokasgrāmatu, lai iegūtu sīkāku skaidrojumu un saiti koda lejupielādei - mehāniskais 7 segmentu displeja pulkstenis

Sākumā importējam divas bibliotēkas, virtuabotixRTC.h pulksteņa modulim un Adafruit_PWMServoDriver.h servo draiveriem. Adafruit bibliotēku var lejupielādēt un instalēt tieši caur bibliotēkas pārvaldnieku IDE.

Pēc tam mēs izveidojam objektu katrai vadības pults ar attiecīgo adresi, vienu stundu cipariem un vienu minūtes cipariem.

Pēc tam mums ir četri masīvi, lai saglabātu katra servo ieslēgšanas un izslēgšanas pozīcijas. Turpmākajos soļos jums būs jāpielāgo šie skaitļi, lai pārliecinātos, ka servosistēmas ir ieslēgtas vertikālā stāvoklī, izslēgtas - pagrieztas par 90 grādiem un nepārvietojas.

Ciparu masīvs saglabā katra segmenta pozīcijas katram parādāmajam ciparam.

Pēc tam mēs izveidojam pulksteņa moduli un izveidojam mainīgos, lai saglabātu pašreizējos un iepriekšējos atsevišķos ciparus.

Iestatīšanas funkcijā mēs sākam un uzstādām PWM vadības paneļus, kā arī, ja nepieciešams, atjauninām pulksteņa laiku. Pēc tam mēs veicam cilpu, lai displejā iestatītu 8 8: 8 8, lai mēs zinātu visu servo sākuma stāvokli. To izmanto arī, lai servos uzstādītu tā, lai tie visi būtu pareizi vērsti uz augšu.

Galvenajā cilpā mēs iegūstam atjaunināto laiku no pulksteņa moduļa, izlēja to četros ciparos un pēc tam pārbaudām, vai laiks nav mainījies no pēdējās pārbaudes. Ja laiks ir mainījies, mēs atjauninām displeju un pēc tam atjauninām iepriekšējos ciparus.

Atjaunināšanas displeja funkcijā vispirms pārvietojam vidējos segmentus. Vispirms tas tiek darīts, jo ir vajadzīga kāda loģika, lai pirms vidējā segmenta pārvietošanas nedaudz novirzītu divus augšējos segmentus, kas atrodas blakus vidējam segmentam, pretējā gadījumā tas sasitīs ar tiem. Kad vidējie segmenti ir pārvietoti, pārējie segmenti tiek pārvietoti pareizajās pozīcijās.

6. darbība: pulksteņa salikšana aizmugurējā panelī

Pulksteņa salikšana aizmugurējā panelī
Pulksteņa salikšana aizmugurējā panelī
Pulksteņa salikšana aizmugurējā panelī
Pulksteņa salikšana aizmugurējā panelī
Pulksteņa salikšana aizmugurējā panelī
Pulksteņa salikšana aizmugurējā panelī

Kad biju pabeidzis testēšanu, es samontēju servos uz aizmugurējā dēļa, izmantojot iepriekš minēto izkārtojumu.

Baltais laukums ir kopējais tāfeles izmērs, gaišāk pelēks ir apgabals, kas ieskauj katru ciparu, kurā iekļūst servo segmenti, un kontūra tumši pelēkajā zonā ir centra līnija ārējiem 6 segmentiem katram ciparam.

Es nogriezu tāfeli, iezīmēju izkārtojumu un pēc tam pielīmēju ciparus, lai veidotu pulksteņa rādītāju.

Pēc tam es izurbju caurumus pie katra servo un vadīju vadus līdz tāfeles aizmugurei, lai tie būtu mazāk redzami.

Es uzstādīju elektroniku pulksteņa aizmugurē ar divpusēju lenti.

7. darbība: galīgā iestatīšana un darbība

Galīgā iestatīšana un darbība
Galīgā iestatīšana un darbība
Galīgā iestatīšana un darbība
Galīgā iestatīšana un darbība
Galīgā iestatīšana un darbība
Galīgā iestatīšana un darbība
Galīgā iestatīšana un darbība
Galīgā iestatīšana un darbība

Kad servos bija visi gatavi, es noņemu visas servo sviras, lai galīgi pielāgotu segmentu pozīcijas. Jums vajadzētu ieslēgt Arduino šādā stāvoklī, lai tiktu parādīts 8 8: 8 8, un pēc tam atvienojiet strāvu, tas atkārtoti centrē visus jūsu servos, lai jūs varētu atkal uzlikt servo sviras ar segmentiem, kas ir tik tuvu vertikālai pēc iespējas.

Pēc tam jums vajadzēs secīgi ieslēgt Arduino un pielāgot segmenta ieslēgšanas un izslēgšanas pozīcijas četros masīvos, lai ieslēgšanas gadījumā servos būtu pilnīgi vertikāli un izslēgšanas laikā jāpārvēršas par 90 grādiem. Šis solis ir diezgan laikietilpīgs un prasa nedaudz pacietības, bet gala rezultāts ir tā vērts!

Pulksteni var atstāt no strāvas, izmantojot 12 V barošanas avotu un tam pievienotu 5 V BEC. Ja strāvas padeve samazinās, RTC moduļa akumulators saglabās laiku, lai pēc barošanas atjaunošanas pulkstenis automātiski atiestatītos uz pareizo laiku.

Ja jums patika šī pamācība, lūdzu, balsojiet par to pulksteņa konkursā un paziņojiet man par jebkādiem uzlabojumiem vai ieteikumiem, ko varat nākt klajā komentāru sadaļā.

Pulksteņu konkurss
Pulksteņu konkurss
Pulksteņu konkurss
Pulksteņu konkurss

Otrā balva pulksteņu konkursā

Ieteicams: