Агуулгын хүснэгт:

Механик долоон сегментийн дэлгэцийн цаг: 7 алхам (зурагтай)
Механик долоон сегментийн дэлгэцийн цаг: 7 алхам (зурагтай)

Видео: Механик долоон сегментийн дэлгэцийн цаг: 7 алхам (зурагтай)

Видео: Механик долоон сегментийн дэлгэцийн цаг: 7 алхам (зурагтай)
Видео: 🎶 ДИМАШ "ОПЕРА 2". История выступления и анализ успеха | Dimash "Opera 2" 2024, Долдугаар сарын
Anonim
Механик долоон сегментийн дэлгэцийн цаг
Механик долоон сегментийн дэлгэцийн цаг
Механик долоон сегментийн дэлгэцийн цаг
Механик долоон сегментийн дэлгэцийн цаг

Хэдэн сарын өмнө би хоёр оронтой 7 сегментийн дэлгэц бүтээсэн бөгөөд үүнийг тоолох цаг болгон хувиргасан. Энэ нь маш сайн гарч ирсэн бөгөөд олон хүмүүс цаг гаргахын тулд дэлгэц дээр хоёр дахин нэмэгдүүлэхийг санал болгов. Асуудал нь би Arduino Mega дээрээ ХОУХШ -ийг аль хэдийн дуусгаж байсан бөгөөд хоёр, гурав дахь оронтой тоогоор хангаж чадаагүй юм. Дараа нь I2C интерфэйсээр ажилладаг PCA9685 16 сувгийн ХОУХД -ийн драйверуудын чиглэлийг зааж өгсөн. Эдгээр нь надад хэрэгтэй 28 servo -ийг Arduino дээрх I2C хоёр зүү ашиглан жолоодох боломжтой болгосон. Тиймээс би цаг барихын тулд DS1302 бодит цагийн модулийг ашиглаж, дэлгэцийг бүтээхэд ашигладаг 28 servo -ийг удирдахын тулд 16 сувгийн хоёр servo драйверийг ашигладаг бөгөөд бүгд Arduino Uno -ээр ажилладаг.

Хэрэв танд энэхүү зааварчилгаа таалагдсан бол Цагийн уралдаанд саналаа өгөөрэй

Хангамж:

Цагийг бүтээхийн тулд танд зарим үндсэн хэрэгслүүдээс гадна дараах хангамж хэрэгтэй болно.

  • Arduino Uno - Эндээс худалдаж аваарай
  • DS1302 Цагны модуль - Эндээс худалдаж аваарай
  • 2 x PCA9685 16C Servo драйверууд - Эндээс худалдаж аваарай
  • 28 x Micro Servos - Эндээс худалдаж аваарай
  • Туузан кабель - Эндээс худалдаж аваарай
  • Эр зүү толгойн зурвас - Эндээс худалдаж аваарай
  • Эмэгтэй зүү толгойн зурвас - Эндээс худалдаж аваарай
  • 3 мм БСХС - Эндээс худалдаж аваарай
  • Хар шүршигч будаг - Эндээс худалдаж аваарай
  • 5V 5A батерейг арилгах хэлхээ - Эндээс худалдаж аваарай
  • 12V цахилгаан хангамж - Эндээс худалдаж аваарай

Энэхүү төслийн хувьд танд 3D хэвлэмэл хэсэг хэрэгтэй болно. Хэрэв танд 3D принтер байхгүй байгаа бөгөөд танд ямар нэгэн зүйл хийх дуртай бол үүнийг худалдаж авах талаар бодож үзэх хэрэгтэй. Энд ашиглагддаг Creality Ender 3 Pro нь боломжийн үнэтэй бөгөөд маш сайн чанарын хэвлэмэл үнээр үйлдвэрлэдэг.

  • Ашигласан 3D принтер - Эндээс худалдаж аваарай
  • Филамент - Эндээс худалдаж аваарай

Алхам 1: Хуванцар эд ангиудыг 3D хэвлэх

Хуванцар эд ангиудыг 3D хэвлэх
Хуванцар эд ангиудыг 3D хэвлэх
Хуванцар эд ангиудыг 3D хэвлэх
Хуванцар эд ангиудыг 3D хэвлэх
Хуванцар эд ангиудыг 3D хэвлэх
Хуванцар эд ангиудыг 3D хэвлэх

Би 7 сегментийн дэлгэцийг аль болох энгийн байдлаар зохион бүтээсэн. Серво нь мөн дээрх сегментийг барих дэмжлэгийн хаалт юм. Сегмент бүрт 3D хэвлэмэл хоёр бүрэлдэхүүн хэсэг шаардлагатай бөгөөд энэ нь servo -ийн доод талыг дэмжих зайны блок ба servo гар дээр шууд наалддаг дэлгэцийн хэсэг юм.

3D хэвлэх файлуудыг татаж авах - Механик 7 сегментийн дэлгэцийн цаг 3D хэвлэх файлууд

Хурц өнгийн PLA ашиглан servo сегмент ба цэгүүдийг хэвлэ. Би тунгалаг ногоон хэрэглэдэг байсан ч улаан, улбар шар эсвэл шар нь сайн ажиллах ёстой. Би сегментийг унтраах байрлалд эргүүлэхэд харагдахгүй байхаар тусгаарлагчийн блок, цэгийн тулгуурт хар PLA ашигласан.

Хэрэв танд 3D принтер байхгүй бол онлайн хэвлэх үйлчилгээний нэгийг туршиж үзээрэй. Бүрэлдэхүүн хэсгүүдийг хэвлээд хэдхэн хоногийн дотор хаалгандаа хүргэх хэд хэдэн боломжийн үйлчилгээ байдаг.

Алхам 2: Хяналтын самбар, утсаа бэлтгэ

Хяналтын самбар, утаснуудаа бэлдээрэй
Хяналтын самбар, утаснуудаа бэлдээрэй
Хяналтын самбар, утаснуудаа бэлдээрэй
Хяналтын самбар, утаснуудаа бэлдээрэй
Хяналтын самбар, утаснуудаа бэлдээрэй
Хяналтын самбар, утаснуудаа бэлдээрэй
Хяналтын самбар, утаснуудаа бэлдээрэй
Хяналтын самбар, утаснуудаа бэлдээрэй

28 цагийн servo жолоодохын тулд та PCA9685 16 сувгийн PWM хоёр драйвер ашиглах шаардлагатай болно. Би servo -г цаг, минутын цифр болгон хуваасан бөгөөд хос орон бүрийг нэг самбараар удирддаг. Тиймээс би нэг цагийн самбарыг хоёр цагийн цифрээр, хоёр дахь цифрээр servos -ийг хянадаг.

Хоёуланг нь гинжлэхийн тулд та 6 утастай тууз кабелийн холбогчийг хийж, эхний servo хяналтын самбарын нөгөө үзүүрт хоёр дахь толгойн туузыг гагнах хэрэгтэй болно. Та мөн I2C хаягийг хоёр дахь самбар дээр өөрчлөх хэрэгтэй бөгөөд ингэснээр энэ нь эхнийхээс ялгаатай бөгөөд өвөрмөц байдлаар танигдах боломжтой болно.

Гурван самбар (хоёр servo самбар ба цагны модуль) -ийг Arduino -той холбохын тулд та утас бэхэлгээ хийх хэрэгтэй болно. Танд самбар бүрт 5V ба GND, Arduino A4 ба A5 (I2C Arduino Uno дээр) I2C холболт, CLK, DAT & RST цагны модулийг Arduino дээрх 6, 7, 8 -р зүүгээр холбох шаардлагатай болно. тус тус

Arduino -д 12V тэжээлийн эх үүсвэрээс 5V 5A BEC ашиглан шууд дамжуулдаг бөгөөд дараа нь ХОУХ -ны драйверын дээд талд байрлах хоёр терминал руу холбогддог. Та зөвхөн нэг servo драйверийг тэжээлд холбох хэрэгтэй бөгөөд энэ нь 6 утастай тууз кабелийн холболтоор хоёр дахь тэжээлээ тэжээх болно.

Алхам 3: Сервүүдийг угсарна уу

Серво угсрах
Серво угсрах
Серво угсрах
Серво угсрах
Серво угсрах
Серво угсрах

Та сегментүүдээ хэвлэсний дараа арын болон хажуу талыг нь хар шүрших ёстой бөгөөд ингэснээр 90 градусын унтраах байрлал руу эргүүлэхэд тэдгээр нь харагдахгүй болно.

Дараа нь та сегментүүдийг servo гар дээрээ халуун хайлсан цавуугаар нааж өгөх хэрэгтэй. Энэ нь тэдгээрийг servo дээр аль хэдийн servo дээр байрлуулахад тусалдаг бөгөөд ингэснээр та тэдгээрийг шулуун, тэгшхэн наасан эсэхийг шалгаж болно.

Та бас servo бүрийн ёроолд тусгаарлагч блок нааж өгөх хэрэгтэй болно.

Жижигхэн алчуур эсвэл kebab савааг цэгүүдийн ар талд, дараа нь суурийн блок руу нааж цэгүүдийг угсарна. Би эдгээр савхыг хараар цацсан бөгөөд ингэснээр өнцгөөс нь харах юм бол харагдахгүй болно.

Алхам 4: Тохируулах, турших

Тохируулах ба турших
Тохируулах ба турших
Тохируулах ба турших
Тохируулах ба турших

Би бүх servo -уудыг дугаарлаж, хөтөч тус бүр дээр дугаарыг бичсэн бөгөөд ингэснээр тэдгээрийг хянах нь илүү хялбар байв. Би нэгжийн цифрийн дээд сегментээс эхэлж, аравтын оронтой дунд сегмент хүртэл ажиллав. Энэ бол миний servo хяналтын самбар руу залгах дараалал бөгөөд самбар дээрх таних тэмдгүүд нь 1 -ээс 14 хүртэл биш 0 -ээс 13 хүртэл тоологддог гэдгийг санаарай.

Дараа нь би сегментүүдийг хооронд нь туршихад хангалттай зайтай ширээн дээр тавьснаар аяллын хязгаар, чиглэлийг тогтоохдоо нөгөө рүү шилжихгүй. Хэрэв та тэдгээрийг хооронд нь ойрхон байрлуулахыг оролдвол нэг эсвэл хоёр удаа буруу чиглэлд эсвэл хэт давах гэж оролдож, нөгөө хэсгийг нь цохих бөгөөд энэ нь сегмент, servo гар эсвэл арааны араагаа гэмтээж болзошгүй юм.

Алхам 5: Кодыг байршуулах

Кодыг байршуулж байна
Кодыг байршуулж байна
Кодыг байршуулж байна
Кодыг байршуулж байна
Кодыг байршуулж байна
Кодыг байршуулж байна

Код нь анх харахад төвөгтэй мэт боловч ашигласан хоёр номын сангийн ачаар харьцангуй энгийн юм. 7 сегментийн дөрвөн өөр дэлгэцийг шинэчлэх шаардлагатай байгаа тул маш олон давталт байдаг.

Энд кодын товч тодорхойлолт байгаа бөгөөд илүү дэлгэрэнгүй тайлбарыг авахын тулд гарын авлагыг бүрэн уншиж, кодыг татаж авах линкийг үзнэ үү - Механик 7 сегментийн дэлгэцийн цаг

Бид цагны модульд зориулсан virtuabotixRTC.h, servo драйверуудад зориулсан Adafruit_PWMServoDriver.h гэсэн хоёр номын санг импортлохоос эхэлнэ. Adafruit номын санг IDE дахь номын сангийн менежерээр дамжуулан шууд татаж аваад суулгаж болно.

Дараа нь бид хяналтын самбар бүрийн хувьд холбогдох хаягийг агуулсан объектыг үүсгэж, нэгийг нь цагийн цифр, нэгийг нь минутын оронтой тоогоор бичнэ.

Дараа нь бид servo бүрийн асаах, унтраах байрлалыг хадгалах дөрвөн массивтай болно. Таны тоонууд асаалттай үед босоо, унтрах үед 90 градус эргэж, аяллаа хэтрүүлэхгүй байхын тулд эдгээр алхмуудыг хийх шаардлагатай болно.

Цифр массив нь харуулах цифр бүрийн сегмент бүрийн байрлалыг хадгалдаг.

Дараа нь бид цагийн модулийг тохируулж, одоогийн болон өнгөрсөн үеийн цифрүүдийг хадгалах хувьсагчдыг бий болгодог.

Тохиргооны функц дээр бид ХОУХ -ны хяналтын самбарыг эхлүүлж, тохируулж, шаардлагатай бол цагийн хуваарийг шинэчилдэг. Дараа нь бид давталтаар дамжуулж дэлгэцийг 8 8: 8 8 болгож тохируулахын тулд бүх servo -ийн эхлэх байрлалыг мэдэж болно. Энэ нь servo -ийг тохируулахын тулд ашигладаг бөгөөд ингэснээр тэд бүгд дээшээ харсан байна.

Үндсэн гогцоонд бид цагны модулийн шинэчлэгдсэн цагийг авч, дөрвөн оронтой тоогоор асгаж, дараа нь сүүлийн шалгалтаас цаг өөрчлөгдсөн эсэхийг шалгана. Хэрэв цаг өөрчлөгдсөн бол дэлгэцийг шинэчилж, дараа нь өмнөх цифрүүдийг шинэчилнэ.

Шинэчлэх дэлгэцийн функц дээр бид эхлээд дунд сегментүүдийг хөдөлгөдөг. Дунд сегментийг зөөхөөс өмнө дунд хэсгийн хажуугийн хоёр дээд сегментийг бага зэрэг холдуулахын тулд логик шаардлагатай тул үүнийг хийх ёстой, эс тэгвээс тэдгээр нь мөргөлдөх болно. Дунд сегментүүдийг хөдөлгөсний дараа үлдсэн хэсгүүдийг зөв байрлалд шилжүүлнэ.

Алхам 6: Арын самбар дээрх цагийг угсрах

Арын самбар дээрх цагийг угсрах
Арын самбар дээрх цагийг угсрах
Арын самбар дээрх цагийг угсрах
Арын самбар дээрх цагийг угсрах
Арын самбар дээрх цагийг угсрах
Арын самбар дээрх цагийг угсрах

Туршилтыг хийж дуусаад дээрх загварыг гарын авлага болгон арын самбар дээр угсарлаа.

Цагаан талбар нь самбарын нийт хэмжээ, цайвар саарал нь servo сегментүүд рүү шилжих цифр бүрийн эргэн тойрон дахь хэсэг бөгөөд хар саарал талбайн тойм нь цифр тус бүрийн гадна талын 6 сегментийн төв шугам юм.

Би самбарыг хайчилж, байрлалыг нь тэмдэглээд дараа нь цифрийг нааж, цагийн нүүрийг засав.

Дараа нь би servo бүрийн ойролцоо цооног өрөмдөж, утсыг самбарын арын хэсэгт дамжуулж өгсөн бөгөөд ингэснээр тэдгээр нь харагдахгүй байв.

Би цахилгаан хэрэгслийг хоёр талт соронзон хальсны тусламжтайгаар цагийн зүүний ард суулгасан.

Алхам 7: Эцсийн тохиргоо ба ажиллагаа

Эцсийн тохиргоо ба ажиллагаа
Эцсийн тохиргоо ба ажиллагаа
Эцсийн тохиргоо ба ажиллагаа
Эцсийн тохиргоо ба ажиллагаа
Эцсийн тохиргоо ба ажиллагаа
Эцсийн тохиргоо ба ажиллагаа
Эцсийн тохиргоо ба ажиллагаа
Эцсийн тохиргоо ба ажиллагаа

Сервүүд бүгд бэлэн болмогц сегментүүдийн байрлалыг эцсийн тохируулахын тулд би бүх servo гарыг арилгасан. Та Arduino-г энэ төлөвт асаах хэрэгтэй бөгөөд ингэснээр 8 8: 8 8 дэлгэц дээр гарч, дараа нь тэжээлээ салгавал бүх servo-уудаа дахин төвлөрүүлснээр сегментүүдийг босоо чиглэлд ойрхон харуулаад буцааж тавина. Аль болох.

Дараа нь та Arduino -г дараалан асааж, дөрвөн массивын сегментийг асаах, унтраах байрлалдаа тохируулга хийх хэрэгтэй бөгөөд ингэснээр servo -ийг асаахад төгс босоо байрлуулж, хэт аялахгүйгээр унтрах үед 90 градус эргүүлэх хэрэгтэй болно. Энэ алхам нь маш их цаг хугацаа шаарддаг бөгөөд тэвчээр шаарддаг боловч эцсийн үр дүн нь үнэ цэнэтэй юм!

Цагийг 12V цахилгаан хангамж, түүнтэй холбогдсон 5V BEC ашиглан асааж болно. Хэрэв цахилгаан тасарвал RTC модулийн батерей нь цагийг хадгалах тул хүчийг сэргээх үед цаг автоматаар зөв цагтаа орно.

Хэрэв танд энэхүү зааварчилгаа таалагдсан бол Цагийн уралдаанд саналаа өгөөрэй, доорхи сэтгэгдлүүдийн хэсэгт ямар нэгэн сайжруулалт, санал гаргаж болохыг надад мэдэгдээрэй.

Цагны уралдаан
Цагны уралдаан
Цагны уралдаан
Цагны уралдаан

Цагийн уралдааны хоёрдугаар шагнал

Зөвлөмж болгож буй: