Мазмуну:

Механикалык жети сегменттин дисплей сааты: 7 кадам (сүрөттөр менен)
Механикалык жети сегменттин дисплей сааты: 7 кадам (сүрөттөр менен)

Video: Механикалык жети сегменттин дисплей сааты: 7 кадам (сүрөттөр менен)

Video: Механикалык жети сегменттин дисплей сааты: 7 кадам (сүрөттөр менен)
Video: Лучший из ЛУЧШИХ???. Радиоприемник TECSUN PL680 ПОЛНЫЙ ОБЗОР!!! #tecsun 2024, Июль
Anonim
Механикалык жети сегменттин дисплей сааты
Механикалык жети сегменттин дисплей сааты
Механикалык жети сегменттин дисплей сааты
Механикалык жети сегменттин дисплей сааты

Бир нече ай мурун мен эки орундуу механикалык 7 сегменттүү дисплей кургам, аны кайра эсептөө таймерине айландыргам. Бул абдан жакшы чыкты жана бир топ адамдар дисплейде саат жасоо үчүн эки эсе көбөйтүүнү сунушташты. Көйгөй менде Arduino Megaда PWM IO түгөнүп бараткан болчу жана экинчи же үчүнчү сандарга жеткиликтүү эмес болчу. Андан кийин мага I2C интерфейси аркылуу иштеген PCA9685 16 каналдуу PWM драйверлери көрсөтүлдү. Булар мага керек болгон 28 сервону Arduinoдогу I2C эки казыгын колдонуп айдоого мүмкүндүк берди. Ошентип, мен азыр убакытты сактоо үчүн DS1302 реалдуу убакыт модулун колдонуп, дисплейди түзүүдө колдонулган 28 сервону көзөмөлдөө үчүн 16 каналдуу эки драйверди колдонгон саат куруп иштешим керек, бардыгы Arduino Uno менен иштейт.

Эгерде сиз бул Нускаманы жактырсаңыз, анда Сааттар конкурсунда добуш берүүнү карап көрүңүз

Берилиштер:

Саатыңызды куруу үчүн сизге кээ бир негизги инструменттерден тышкары төмөнкү жабдыктар керек болот:

  • Arduino Uno - Бул жерден сатып алыңыз
  • DS1302 Саат модулу - Бул жерден сатып алыңыз
  • 2 x PCA9685 16Ch Servo айдоочулары - Бул жерден сатып алыңыз
  • 28 x Micro Servos - Бул жерден сатып алыңыз
  • Тасма кабели - Бул жерден сатып алыңыз
  • Эркек пин баш тилкелери - Бул жерден сатып алыңыз
  • Ургаачы Pin Header Strips - Бул жерден сатып алыңыз
  • 3mm MDF - Бул жерден сатып алыңыз
  • Black Spray Paint - Бул жерден сатып алыңыз
  • 5V 5A Батареяны жок кылуу схемасы - Бул жерден сатып алыңыз
  • 12V электр менен камсыздоо - Бул жерден сатып алыңыз

Бул долбоор үчүн сизге 3D басылган бөлүктөр да керек болот. Эгерде сизде 3D принтер жок болсо жана сиз аны жасоодон ырахат алсаңыз, анда аны сатып алууну ойлонушуңуз керек. Бул жерде колдонулган Creality Ender 3 Pro жеткиликтүү жана анын баасына абдан жакшы сапаттагы басылмаларды чыгарат.

  • Колдонулган 3D принтер - Бул жерден сатып алыңыз
  • Филамент - Бул жерден сатып алыңыз

1 -кадам: Пластикалык компоненттерди 3D басып чыгаруу

Пластикалык компоненттерди 3D басып чыгаруу
Пластикалык компоненттерди 3D басып чыгаруу
Пластикалык компоненттерди 3D басып чыгаруу
Пластикалык компоненттерди 3D басып чыгаруу
Пластикалык компоненттерди 3D басып чыгаруу
Пластикалык компоненттерди 3D басып чыгаруу

Мен 7 сегменттин дисплейлерин мүмкүн болушунча жөнөкөй кылып түздүм. Серво ошондой эле анын үстүндөгү сегменти кармап туруу үчүн колдоо кашаасы болуп саналат. Ар бир сегмент үчүн 3D басылган эки компонент бар, сервонун астынкы жагын кармоого арналган блок жана дисплей сегменти түздөн -түз серво колуна жабыштырылат.

3D Print Files - Механикалык 7 Сегмент Дисплей Сааты 3D Басма Файлдарын түшүрүңүз

Серво сегменттерин жана чекиттерин ачык түстүү PLA аркылуу басып чыгарыңыз. Мен тунук жашыл түстү колдондум, бирок кызыл, кызгылт сары же сары да жакшы иштеши керек. Сегменттер өчүк абалга бурулганда көрүнбөшү үчүн, мен бөлүүчү блоктор жана чекит таянычтары үчүн кара PLA колдондум.

Эгерде сизде 3D принтер жок болсо, онлайн басып чыгаруу кызматтарынын бирин колдонуп көрүңүз. Жеткиликтүү кызматтар бар, алар компоненттерди басып чыгарат жана бир нече күндүн ичинде эшикке жеткирет.

2 -кадам: Башкаруу такталарыңызды жана зымдарды даярдаңыз

Башкаруу такталарыңызды жана зымдарды даярдаңыз
Башкаруу такталарыңызды жана зымдарды даярдаңыз
Башкаруу такталарыңызды жана зымдарды даярдаңыз
Башкаруу такталарыңызды жана зымдарды даярдаңыз
Башкаруу такталарыңызды жана зымдарды даярдаңыз
Башкаруу такталарыңызды жана зымдарды даярдаңыз
Башкаруу такталарыңызды жана зымдарды даярдаңыз
Башкаруу такталарыңызды жана зымдарды даярдаңыз

28 саат сервосун айдоо үчүн эки PCA9685 16 каналдуу PWM драйверлерин колдонушуңуз керек. Мен серволорду сааттын жана мүнөттүн цифраларына бөлдүм, ар бир жуп цифра бир такта менен айдалат. Ошентип, менде эки сааттык цифралар үчүн серво көзөмөлдөгөн бир такта бар, экинчиси эки мүнөттүк цифралар үчүн серволорду башкарат.

Экөөнү бириктирүү үчүн, 6 зымдык ленталуу кабель туташтыргычын түзүп, биринчи серво башкаруу тактасынын экинчи учуна экинчи баш тилкени ширетүүңүз керек болот. Ошондой эле I2C дарегин экинчи тактада өзгөртүшүңүз керек, ал биринчи жана уникалдуу түрдө айырмаланат.

Ошондой эле, үч тактаны (эки серво тактасы жана саат модулу) Arduino менен туташтыруу үчүн зым байламтасын түзүшүңүз керек болот. Сизге ар бир тактага 5V жана GND керек, ошондой эле Arduino A4 жана A5 пиндериңизге I2C туташуулары керек (Arduino Uno боюнча I2C), жана саат модулу CLK, DAT & RST 6, 7 жана 8 казыктарына Arduino. тиешелүүлүгүнө жараша

Power Arduino түздөн -түз 12V электр булагынан жана 5V 5A BEC аркылуу сервоприёмдор менен камсыздалат, андан кийин PWM драйверинин үстүндөгү эки терминалга туташкан. Сиз бир гана servo драйверин электрге туташтырууңуз керек жана ал 6 зым лента кабели аркылуу экинчисине күч берет.

3 -кадам: Серваларды чогултуу

Серваларды чогулткула
Серваларды чогулткула
Серваларды чогулткула
Серваларды чогулткула
Серваларды чогулткула
Серваларды чогулткула

Сегменттериңизди басып чыгаргандан кийин, 90 градуска бурулганда алар азыраак көрүнүшү үчүн, арткы жана капталдарын кара чачышыңыз керек болот.

Андан кийин сегменттерди серво колуңузга эритилген клей менен жабышыңыз керек. Бул аларды servoго мурунтан эле servoго жабыштырууга жардам берет, ошентип сиз аларды түз жана тегиз чаптап жатканыңызды текшере аласыз.

Ошондой эле ар бир сервонун түбүнө боштук блогун чапташыңыз керек болот.

Чекиттерди кичине дубел же кебаб таякчасын чекиттердин артына, анан базалык блокторго жабыштыруу менен чогултуңуз. Мен бул таяктарды кара түстө чачтым, анткени алар бир бурчтан каралса, азыраак көрүнөт.

4 -кадам: Орнотуу жана тестирлөө

Орнотуу жана тестирлөө
Орнотуу жана тестирлөө
Орнотуу жана тестирлөө
Орнотуу жана тестирлөө

Мен серволордун бардыгын номерлеп, ар бир коргошунга номерди жаздым, ошондо аларды көзөмөлдөө оңой эле. Мен бирдиктердин цифрасындагы жогорку сегменттен башталып, ондуктун ортоңку сегментине чейин иштедим. Бул ошондой эле мен аларды servo башкаруу такталарына туташтырган тартибим, тактайчалардагы идентификаторлор 1ден 14кө чейин эмес, 0дөн 13кө чейин эсептелерин эстен чыгарбоо керек.

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

5 -кадам: Кодду жүктөө

Кодду жүктөө
Кодду жүктөө
Кодду жүктөө
Кодду жүктөө
Кодду жүктөө
Кодду жүктөө

Код бир караганда татаал көрүнөт, бирок бул колдонулган эки китепкананын жардамы менен салыштырмалуу жөнөкөй. Кайталануу дагы көп, анткени 7 сегменттин төрт башка дисплейи жаңыртылышы керек.

Бул жерде коддун кыскача сүрөттөлүшү, толук түшүндүрмө алуу үчүн толук нускаманы жана кодду жүктөө үчүн шилтемени караңыз - Механикалык 7 Сегмент Дисплей Сааты

Биз эки китепкананы импорттоодон баштайбыз, саат модулу үчүн virtuabotixRTC.h жана servo драйверлери үчүн Adafruit_PWMServoDriver.h. Adafruit китепканасы IDEдеги китепкана менеджери аркылуу түздөн -түз жүктөлүп, орнотулушу мүмкүн.

Андан кийин биз ар бир башкаруу тактасы үчүн тиешелүү дарек менен объект түзөбүз, бирөө сааттын цифралары үчүн, экинчиси мүнөттүк цифралар үчүн.

Бизде ар бир серво үчүн күйгүзүү жана өчүрүү позицияларын сактоо үчүн төрт массив бар. Келечектеги кадамдарыңызда бул сандарга өзгөртүүлөрдү киргизишиңиз керек, бул сервистер күйгүзүлгөндө, өчкөндө 90 градуска бурулганына жана саякатка чыкпаганына ынануу үчүн.

Сандык массив көрсөтүлө турган ар бир сан үчүн ар бир сегменттин позицияларын сактайт.

Андан кийин саат модулун орнотуп, учурдагы жана өткөн жеке сандарды сактоо үчүн өзгөрмөлөрдү түзөбүз.

Орнотуу функциясында биз PWM башкаруу такталарын баштайбыз жана орнотобуз, ошондой эле керек болсо сааттын убактысын жаңыртып турабыз. Биз дисплейди 8 8: 8 8ге коюу үчүн бир цикл аркылуу иштейбиз, ошондо биз бардык серволордун баштапкы абалын билебиз. Бул ошондой эле серверлерди орнотуу үчүн колдонулат, ошондо алар баары туура карайт.

Негизги укурукта биз саат модулунан жаңыртылган убакытты алабыз, аны төрт цифрага төгүп, анан убакыттын акыркы текшерүүдөн өзгөргөнүн текшеребиз. Эгерде убакыт өзгөрсө, анда биз дисплейди жаңыртабыз, андан кийин мурунку цифраларды жаңыртабыз.

Жаңыртууну көрсөтүү функциясында биз биринчи кезекте ортоңку сегменттерди жылдырабыз. Бул биринчи жолу жасалат, анткени ортоңку сегменттин жанындагы эки жогорку сегменттин орто сегментти жылдыруудан бир аз башка жакка жылдыруу үчүн талап кылынган логика бар, антпесе ал аларга кирип кетет. Орто сегменттер жылдырылгандан кийин, калган сегменттер туура позицияларга жылат.

6 -кадам: Саатты арткы тактага чогултуу

Саатты арткы тактага чогултуу
Саатты арткы тактага чогултуу
Саатты арткы тактага чогултуу
Саатты арткы тактага чогултуу
Саатты арткы тактага чогултуу
Саатты арткы тактага чогултуу

Мен тестирлөөнү аяктагандан кийин, мен жол көрсөткүч катары жогорудагы макеттин жардамы менен серверлерди арткы тактага чогулттум.

Ак аймак - бул тактанын жалпы өлчөмү, ачык боз - бул ар бир цифраны курчаган аймак, ал жерде серво сегменттери жылат жана кочкул боз аймактын контуру ар бир цифра үчүн тышкы 6 сегменттин борбордук сызыгы болуп саналат.

Мен тактаны кесип, макетин белгилеп, анан цифраларды ордуна коюп, сааттын бетин түздүм.

Андан кийин мен ар бир сервонун жанында тешиктерди тешип, зымдарды тактанын артына чейин жеткирип койдум, андыктан алар азыраак көрүнөт.

Электрониканы эки жактуу скотч менен сааттын арткы жагына орноттум.

7 -кадам: Акыркы орнотуу жана иштетүү

Акыркы орнотуу жана иштетүү
Акыркы орнотуу жана иштетүү
Акыркы орнотуу жана иштетүү
Акыркы орнотуу жана иштетүү
Акыркы орнотуу жана иштетүү
Акыркы орнотуу жана иштетүү
Акыркы орнотуу жана иштетүү
Акыркы орнотуу жана иштетүү

Серволор даяр болгондон кийин, сегменттердин позициясына акыркы өзгөртүүлөрдү киргизүү үчүн мен баардык серво куралдарын алып салдым. Сиз 8 8: 8 8 көрсөтүлүшү үчүн Arduino'yү ушул абалда күйгүзүшүңүз керек, андан кийин кубаттуулукту ажыратыңыз, бул сервопрограммаңыздын бардыгын кайра борборлоштурат, ошондо сиз серво куралдарын сегменттерди тигине жакын каратып коюңуз. болушунча.

Андан кийин сиз Arduino -ну ырааттуу түрдө кубаттап, сегменттериңизди төрт массивдеги күйгүзүү жана өчүрүү позициясына тууралоолорду киргизишиңиз керек, ошондо серволор күйгүзүлгөндө эң сонун вертикалдуу болуп, ашыкча саякат кылбай туруп 90 градуска бурулат. Бул кадам бир топ убакытты талап кылат жана бир аз сабырдуулукту талап кылат, бирок акыркы натыйжа татыктуу!

Саатты 12В электр менен камсыз кылуу жана ага туташкан 5В БЭКти колдонуу менен калтырууга болот. Эгер электр энергиясы өчүп калса, RTC модулундагы батарея убакытты сактап калат, ошондо электр энергиясы калыбына келгенде, саат автоматтык түрдө туура убакытка келет.

Эгерде сиз бул Нускаманы жактырсаңыз, анда саат сынагына добуш бериңиз жана төмөндөгү комментарийлер бөлүмүндө пайда болгон жакшыртууларды же сунуштарды мага билдириңиз.

Сааттар сынагы
Сааттар сынагы
Сааттар сынагы
Сааттар сынагы

Сааттар сынагында Экинчи сыйлык

Сунушталууда: