Talaan ng mga Nilalaman:

Mekanikal na pitong segment na display na orasan: 7 mga hakbang (na may mga larawan)
Mekanikal na pitong segment na display na orasan: 7 mga hakbang (na may mga larawan)

Video: Mekanikal na pitong segment na display na orasan: 7 mga hakbang (na may mga larawan)

Video: Mekanikal na pitong segment na display na orasan: 7 mga hakbang (na may mga larawan)
Video: DR. VICKI BELO's TRANSFORMATION💖🤩#vickibelo #doctor #transformation #viral #trending 2024, Nobyembre
Anonim
Mekanikal na Pitong Segment sa Display Clock
Mekanikal na Pitong Segment sa Display Clock
Mekanikal na Pitong Segment sa Display Clock
Mekanikal na Pitong Segment sa Display Clock

Ilang buwan na ang nakakaraan ay nagtayo ako ng isang dalawang digit na mekanikal na 7 segment na display na naging isang countdown timer. Lumabas ito nang maayos at maraming tao ang nagmungkahi ng pagdoble sa display upang gumawa ng orasan. Ang problema ay tumatakbo na ako sa labas ng PWM IO sa aking Arduino Mega at walang sapat na magagamit para sa pangalawa o pangatlong digit. Pagkatapos ay itinuro ko ang direksyon ng mga driver ng PCA9685 16 channel PWM na nagpapatakbo sa isang interface ng I2C. Ginawa nitong posible upang himukin ang 28 servos na kailangan ko lahat gamit ang dalawang mga I2C na pin sa isang Arduino. Kaya't nagtatrabaho ako sa pagbuo ng isang orasan na gumagamit ngayon ng isang module ng real time na orasan ng DS1302 upang mapanatili ang oras at dalawang 16 na mga driver ng servo ng channel upang makontrol ang 28 servo na ginamit upang makabuo ng display, lahat ay pinalakas ng isang Arduino Uno.

Kung nasisiyahan ka sa Ituturo na ito, mangyaring isaalang-alang ang pagboto para dito sa Clocks Contest

Mga Pantustos:

Upang maitayo ang iyong orasan, kakailanganin mo ang mga sumusunod na supply bilang karagdagan sa ilang pangunahing mga tool:

  • Arduino Uno - Bilhin Dito
  • DS1302 Clock Module - Bumili Dito
  • 2 x PCA9685 16Ch Servo Drivers - Bilhin Dito
  • 28 x Micro Servos - Bumili Dito
  • Ribbon Cable - Bilhin Dito
  • Mga Pin ng Header ng Pin na Lalaki - Bumili Dito
  • Mga Pin ng Header ng Pin na Babae - Bumili Dito
  • 3mm MDF - Bumili Dito
  • Black Spray Paint - Bilhin Dito
  • 5V 5A Circuit Eliminasyon ng Baterya - Bilhin Dito
  • 12V Power Supply - Bumili Dito

Para sa proyektong ito kakailanganin mo rin ang ilang mga 3D na naka-print na bahagi. Kung wala ka pang isang 3D printer at nasisiyahan ka sa paggawa ng bagay pagkatapos ay tiyak na dapat mong isaalang-alang ang pagbili ng isa. Ang Creality Ender 3 Pro na ginamit dito ay abot-kayang at gumagawa ng magagandang mga kalidad ng kopya para sa presyo nito.

  • Ginamit ang 3D Printer - Bumili Dito
  • Filament - Bumili Dito

Hakbang 1: I-print ng 3D ang Mga Component ng Plastik

3D I-print ang Mga Component na Plastik
3D I-print ang Mga Component na Plastik
3D I-print ang Mga Component na Plastik
3D I-print ang Mga Component na Plastik
3D I-print ang Mga Component na Plastik
3D I-print ang Mga Component na Plastik

Dinisenyo ko ang 7 segment na ipinapakita upang maging simple hangga't maaari. Ang servo ay din ang bracket ng suporta upang hawakan ang segment sa itaas nito. Mayroong dalawang mga naka-print na sangkap ng 3D na kinakailangan para sa bawat segment, isang bloke ng spacer upang suportahan ang ilalim na bahagi ng servo at ang segment ng pagpapakita na direktang nakadikit sa braso ng servo.

I-download ang 3D Print Files - Mekanikal na 7 Segment Display Clock 3D Print Files

I-print ang mga segment ng servo at tuldok gamit ang isang maliwanag na may kulay na PLA. Gumamit ako ng translucent green, ngunit ang pula, orange o dilaw ay dapat ding gumana nang maayos. Gumamit ako ng itim na PLA para sa mga bloke ng spacer at mga suporta sa tuldok upang hindi sila makita kapag ang mga segment ay nakabukas sa posisyon na off.

Kung wala kang access sa isang 3D printer, subukan ang isa sa mga serbisyong online sa pag-print. Mayroong isang bilang ng mga abot-kayang serbisyo na magagamit na mai-print ang mga bahagi at ihahatid ang mga ito sa iyong pintuan sa loob ng ilang araw.

Hakbang 2: Ihanda ang Iyong Mga Control Board at Kable

Ihanda ang Iyong Mga Control Board at Kable
Ihanda ang Iyong Mga Control Board at Kable
Ihanda ang Iyong Mga Control Board at Kable
Ihanda ang Iyong Mga Control Board at Kable
Ihanda ang Iyong Mga Control Board at Kable
Ihanda ang Iyong Mga Control Board at Kable
Ihanda ang Iyong Mga Control Board at Kable
Ihanda ang Iyong Mga Control Board at Kable

Kakailanganin mong gumamit ng dalawang mga driver ng PCA9685 16 channel PWM upang himukin ang iyong 28 servos na orasan. Pinaghiwalay ko ang mga servos sa oras at minuto na mga digit, sa bawat pares ng mga digit na hinihimok ng isang board. Kaya't mayroon akong isang board na kinokontrol ang mga servos para sa dalawang oras na digit at ang pangalawang pagkontrol sa mga servos para sa dalawang minutong digit.

Upang magkadikit ang dalawa, kakailanganin mong gumawa ng isang 6 wire ribbon cable konektor at maghinang ng isang pangalawang header strip papunta sa kabilang dulo ng unang servo control board. Kakailanganin mo ring baguhin ang I2C address sa pangalawang board upang magkakaiba ito sa una at natatanging makikilala.

Kakailanganin mo ring bumuo ng mga harness ng mga kable upang ikonekta ang tatlong mga board (dalawang servo board at ang module ng orasan) sa iyong Arduino. Kakailanganin mo ang 5V at GND sa bawat board pati na rin ang mga koneksyon sa I2C sa iyong Arduino pin A4 at A5 (I2C sa Arduino Uno), at ang mga module ng orasan na pin na CLK, DAT & RST sa mga pin 6, 7 & 8 sa iyong Arduino ayon sa pagkakabanggit.

Ang kapangyarihan ay ibinibigay sa Arduino nang direkta mula sa 12V power supply at sa mga servos gamit ang 5V 5A BEC na pagkatapos ay konektado sa dalawang mga terminal sa tuktok ng driver ng PWM. Kailangan mo lamang ikonekta ang isang driver ng servo sa lakas at magpapakain ito ng lakas sa pangalawa sa pamamagitan ng koneksyon ng 6 wire ribbon cable.

Hakbang 3: Magtipon ng Mga Servos

Magtipon ng mga Servos
Magtipon ng mga Servos
Magtipon ng mga Servos
Magtipon ng mga Servos
Magtipon ng mga Servos
Magtipon ng mga Servos

Sa sandaling nai-print mo ang iyong mga segment kailangan mong i-spray ang likod at mga gilid ng itim upang hindi gaanong nakikita kapag naka-90 degree na sa naka-off na posisyon.

Kailangan mong idikit ang mga segment sa iyong mga braso ng servo na may mainit na natunaw na pandikit. Nakakatulong ito upang ipako ang mga ito sa servo na ang braso ay nasa servo na, sa ganitong paraan maaari mong suriin na nakadikit ka sa kanila nang tuwid at antas.

Kakailanganin mo ring idikit ang isang bloke ng spacer sa ilalim ng bawat servo.

Ipunin ang mga tuldok sa pamamagitan ng pagdidikit ng isang maliit na dowel o kebab stick sa likuran ng mga tuldok at pagkatapos ay sa mga base block. Nag-spray din ako ng mga itim na stick na ito nang sa gayon ay hindi gaanong nakikita kung tiningnan mula sa isang anggulo.

Hakbang 4: I-set Up at Pagsubok

I-set up at Pagsubok
I-set up at Pagsubok
I-set up at Pagsubok
I-set up at Pagsubok

Binilang ko ang lahat ng mga servo at isinulat ang numero sa bawat lead upang mas madaling masubaybayan ang mga ito. Nagsimula ako sa nangungunang segment sa mga digit ng yunit at nagtrabaho hanggang sa gitnang segment sa sampung digit. Ito rin ang pagkakasunud-sunod kung saan isinaksak ko ang mga ito sa mga control board ng servo, na naaalala na ang mga nagpapakilala sa mga board ay binibilang mula 0 hanggang 13 at hindi mula 1 hanggang 14.

Pagkatapos ay itinakda ko ang mga segment sa isang talahanayan na may sapat na puwang sa pagitan ng mga ito para sa pagsubok upang hindi sila lumipat sa isa at iba pa habang kinukuha ang mga limitasyon sa paglalakbay at mga direksyon na na-set up. Kung susubukan mong i-set up ang mga ito nang magkasama magkakaroon ka marahil ng isa o dalawa na subukang lumipat sa maling direksyon o sa paglalakbay sa ilang yugto at pindutin ang isa pa na maaaring makapinsala sa segment, braso ng servo o i-strip ang mga gears sa servo.

Hakbang 5: Pag-upload ng Code

Pag-upload ng Code
Pag-upload ng Code
Pag-upload ng Code
Pag-upload ng Code
Pag-upload ng Code
Pag-upload ng Code

Ang code ay mukhang kumplikado sa unang tingin, ngunit ito ay talagang simpleng salamat sa dalawang aklatan na ginamit. Mayroon ding maraming pag-uulit dahil mayroong apat na magkakaibang 7 segment na nagpapakita na kailangang i-update.

Narito ang isang paglalarawan ng buod ng code, tingnan ang buong gabay para sa isang mas detalyadong paliwanag at isang link upang mai-download ang code - Mekanikal na 7 Segment na Display Clock

Nagsisimula kami sa pamamagitan ng pag-import ng dalawang mga silid-aklatan, virtuabotixRTC.h para sa module ng orasan at Adafruit_PWMServoDriver.h para sa mga driver ng servo. Maaaring mai-download at mai-install nang direkta ang library ng Adafruit sa pamamagitan ng manager ng library sa IDE.

Lumilikha kami pagkatapos ng isang bagay para sa bawat control board na may kaugnayan ang address, isa para sa mga oras na digit at isa para sa mga minutong digit.

Pagkatapos ay mayroon kaming apat na mga array upang maiimbak ang mga posisyon ng on at off para sa bawat servo. Kakailanganin mong gumawa ng mga pagsasaayos sa mga numerong ito sa mga darating na hakbang upang matiyak na ang iyong mga servo ay patayo kapag naka-on, naka-90 degree kapag naka-off at hindi labis na naglalakbay.

Ang isang digit na array ay nag-iimbak ng mga posisyon ng bawat segment para sa bawat digit na maipakita.

Pagkatapos ay i-set up namin ang module ng orasan at lumikha ng mga variable upang maiimbak ang kasalukuyan at nakaraang indibidwal na mga digit.

Sa pag-andar ng pag-setup sinisimulan namin at i-set up ang mga control board ng PWM pati na rin i-update ang oras ng orasan kung kinakailangan. Pagkatapos ay tatakbo kami sa pamamagitan ng isang loop upang itakda ang display sa 8 8: 8 8 upang malaman namin ang panimulang posisyon ng lahat ng mga servos. Ginagamit din ito upang i-set up ang mga servo upang maayos silang nakaharap sa paitaas.

Sa pangunahing loop makuha namin ang na-update na oras mula sa module ng orasan, natapon ito sa apat na mga digit at pagkatapos ay suriin kung nagbago ang oras mula sa huling tseke. Kung nagbago ang oras pagkatapos ay i-update namin ang display at pagkatapos ay i-update ang nakaraang mga digit.

Sa pag-andar ng display sa pag-update, inililipat muna namin ang gitnang mga segment. Ginagawa muna ito sapagkat mayroong ilang lohika na kinakailangan upang ilipat ang dalawang nangungunang mga segment na katabi ng gitnang segment sa labas ng paraan nang kaunti bago ilipat ang gitnang segment, kung hindi man ay mauntog ito sa kanila. Kapag ang gitnang mga segment ay inilipat pagkatapos ang natitirang mga segment ay inililipat ang mga tamang posisyon.

Hakbang 6: Pag-iipon ng Clock sa Back Board

Pag-iipon ng Clock sa Back Board
Pag-iipon ng Clock sa Back Board
Pag-iipon ng Clock sa Back Board
Pag-iipon ng Clock sa Back Board
Pag-iipon ng Clock sa Back Board
Pag-iipon ng Clock sa Back Board

Kapag natapos na ako sa pagsubok, pinagsama-sama ko ang mga servos sa likod ng board gamit ang layout sa itaas bilang isang gabay.

Ang puting lugar ay ang pangkalahatang laki ng board, ang mas magaan na kulay-abo ay ang lugar na nakapalibot sa bawat digit kung saan lumilipat ang mga segment ng servo at ang balangkas sa madilim na kulay-abo na lugar ay ang gitnang linya para sa panlabas na 6 na mga segment para sa bawat digit.

Pinutol ko ang board, minarkahan ang layout at pagkatapos ay nakadikit ang mga digit sa lugar upang mabuo ang mukha ng orasan.

Pagkatapos ay nag-drill ako ng mga butas malapit sa bawat servo at pinakain ang mga wires hanggang sa likuran ng board upang hindi gaanong makita.

Inilagay ko ang electronics sa likuran ng orasan gamit ang dobleng panig na tape.

Hakbang 7: Pangwakas na Pag-setup at Pagpapatakbo

Pangwakas na Pag-setup at Pagpapatakbo
Pangwakas na Pag-setup at Pagpapatakbo
Pangwakas na Pag-setup at Pagpapatakbo
Pangwakas na Pag-setup at Pagpapatakbo
Pangwakas na Pag-setup at Pagpapatakbo
Pangwakas na Pag-setup at Pagpapatakbo
Pangwakas na Pag-setup at Pagpapatakbo
Pangwakas na Pag-setup at Pagpapatakbo

Kapag handa na ang lahat ng servo, tinanggal ko ang lahat ng mga arm ng servo para sa huling pagsasaayos sa mga posisyon ng mga segment. Dapat mong palakasin ang Arduino sa estado na ito upang ang 8 8: 8 8 ay ipinakita at pagkatapos ay idiskonekta ang kuryente, isinasentro muli ang lahat ng iyong mga servo upang maibalik mo ang mga braso ng servo sa mga segment na nakaharap na malapit sa patayo hangga't maaari.

Pagkatapos ay kakailanganin mong sunud-sunod na palakasin ang iyong Arduino at magsagawa ng mga pagsasaayos sa iyong segment sa at off na posisyon sa iyong apat na mga array upang ang mga servo ay perpektong patayo kapag naka-on at lumiliko sa 90 degree kapag off nang walang paglalakbay. Ang hakbang na ito ay medyo matagal at nangangailangan ng kaunting pasensya ngunit ang wakas na resulta ay sulit!

Ang orasan ay maaaring iwanang pinapatakbo gamit ang 12V power supply at 5V BEC na konektado dito. Kung bumaba ang kuryente, ang baterya sa module ng RTC ay magpapanatili ng oras upang kapag naibalik ang kuryente, awtomatikong nagre-reset ang orasan sa tamang oras.

Kung nasiyahan ka sa Ituturo na ito, mangyaring iboto ito sa paligsahan sa Orasan at ipaalam sa akin ang anumang mga pagpapabuti o mungkahi na maaari mong maisip sa seksyon ng mga komento sa ibaba.

Mga Paligsahan sa Orasan
Mga Paligsahan sa Orasan
Mga Paligsahan sa Orasan
Mga Paligsahan sa Orasan

Pangalawang Gantimpala sa Clocks Contest

Inirerekumendang: