Съдържание:

Механичен седем сегментен часовник на дисплея: 7 стъпки (със снимки)
Механичен седем сегментен часовник на дисплея: 7 стъпки (със снимки)

Видео: Механичен седем сегментен часовник на дисплея: 7 стъпки (със снимки)

Видео: Механичен седем сегментен часовник на дисплея: 7 стъпки (със снимки)
Видео: "Реликвата" Дъглас Престън Част 1/2 Част 1 от „Пендъргаст“ 2024, Ноември
Anonim
Механичен часовник със седем сегмента на дисплея
Механичен часовник със седем сегмента на дисплея
Механичен часовник със седем сегмента на дисплея
Механичен часовник със седем сегмента на дисплея

Преди няколко месеца изградих двуцифрен механичен 7 -сегментен дисплей, който превърнах в таймер за обратно броене. Излезе доста добре и редица хора предложиха да удвоят дисплея, за да направят часовник. Проблемът беше, че вече изчерпвах PWM IO на Arduino Mega и нямах достатъчно налични за втората или третата цифра. След това ме насочиха към тези 16 -канални PWM драйвери PCA9685, които работят през I2C интерфейс. Това направи възможно да управлявам 28 -те серво, от които се нуждаех, като използвах двата I2C щифта на Arduino. Така че трябва да започна работа по изграждането на часовник, който сега използва модул за часовник в реално време DS1302 за запазване на времето и два 16 -канални серво драйвера за управление на 28 -те серво, използвани за съставяне на дисплея, всички захранвани от Arduino Uno.

Ако ви харесва тази инструкция, моля, помислете за гласуване за нея в състезанието за часовници

Консумативи:

За да изградите часовника си, ще ви трябват следните консумативи в допълнение към някои основни инструменти:

  • Arduino Uno - Купете тук
  • Модул за часовник DS1302 - Купете тук
  • 2 x PCA9685 16Ch серво драйвери - Купете тук
  • 28 x Micro Servos - Купете тук
  • Лентов кабел - Купете тук
  • Мъжки ленти за заглавки - Купете тук
  • Женски ленти за заглавки - Купете тук
  • 3 мм MDF - Купете тук
  • Черна спрей боя - Купете тук
  • 5V 5A верига за премахване на батерията - Купете тук
  • 12V захранване - Купете тук

За този проект ще ви трябват и някои 3D отпечатани части. Ако все още нямате 3D принтер и ви харесва да правите нещо, определено трябва да помислите за закупуването му. Използваният тук Creality Ender 3 Pro е достъпен и произвежда доста качествени разпечатки за цената си.

  • Използва се 3D принтер - Купете тук
  • Нишка - Купете тук

Стъпка 1: 3D печат на пластмасовите компоненти

3D печат на пластмасовите компоненти
3D печат на пластмасовите компоненти
3D печат на пластмасовите компоненти
3D печат на пластмасовите компоненти
3D печат на пластмасовите компоненти
3D печат на пластмасовите компоненти

Проектирах 7 -сегментните дисплеи да бъдат възможно най -прости. Сервото също е опорната скоба за задържане на сегмента над него. За всеки сегмент са необходими два 3D отпечатани компонента, дистанционен блок за поддържане на долната страна на сервото и сегмент на дисплея, който се залепва директно върху серво рамото.

Изтеглете файлове за 3D печат - Механични 7 -сегментни часовници за показване 3D файлове за печат

Отпечатайте серво сегментите и точките, използвайки ярко оцветена PLA. Използвах полупрозрачно зелено, но червено, оранжево или жълто също трябва да работят добре. Използвах черен PLA за дистанционните блокове и опорите за точки, така че да не се виждат, когато сегментите са обърнати в положение изключено.

Ако нямате достъп до 3D принтер, изпробвайте някоя от онлайн услугите за печат. Налични са редица достъпни услуги, които ще отпечатат компонентите и ще ги доставят до вашата врата след няколко дни.

Стъпка 2: Подгответе контролните табла и окабеляването

Подгответе контролните табла и окабеляването
Подгответе контролните табла и окабеляването
Подгответе контролните табла и окабеляването
Подгответе контролните табла и окабеляването
Подгответе контролните табла и окабеляването
Подгответе контролните табла и окабеляването
Подгответе контролните табла и окабеляването
Подгответе контролните табла и окабеляването

Ще трябва да използвате два PCA9685 16 -канални PWM драйвера, за да управлявате 28 -те си сервомотора. Разделих сервомоторите на цифрите за час и минута, като всяка двойка цифри се задвижва от една дъска. Така че имам една платка, която контролира сервомоторите за двучасовите цифри, а втората контролира сервомоторите за двуминутните цифри.

За да свържете двете заедно, ще трябва да направите 6 -жичен конектор за лентов кабел и да запоите втора лента за заглавки към другия край на първата сервоуправляема платка. Също така ще трябва да промените I2C адреса на втората дъска, така че да е различен от първия и да се идентифицира уникално.

Също така ще трябва да съставите кабелния сноп, за да свържете трите платки (две серво платки и часовника) към вашия Arduino. Ще ви трябват 5V и GND към всяка платка, както и I2C връзките към вашите Arduino щифтове A4 и A5 (I2C на Arduino Uno), и щифтовете на модула за часовник CLK, DAT & RST до пинове 6, 7 и 8 на вашия Arduino съответно.

Захранването се подава към Arduino директно от 12V захранването и към сервомоторите, като се използва 5V 5A BEC, който след това е свързан към двата терминала в горната част на ШИМ драйвера. Трябва само да свържете един серво драйвер към захранването и той ще захрани захранването към втория чрез 6 -жичната лентова връзка.

Стъпка 3: Сглобете сервомоторите

Сглобете сервомоторите
Сглобете сервомоторите
Сглобете сервомоторите
Сглобете сервомоторите
Сглобете сервомоторите
Сглобете сервомоторите

След като отпечатате сегментите си, ще трябва да напръскате гърба и страните в черно, така че да са по -малко видими, когато са завъртени на 90 градуса в положение изключено.

След това трябва да залепите сегментите върху серво рамото си с топло лепило. Помага да ги залепите върху сервото, като ръката вече е на серво, по този начин можете да проверите дали ги залепвате прави и равни.

Също така ще трябва да залепите дистанционен блок върху дъното на всяко серво.

Съберете точките, като залепите малък дюбел или кебап пръчка в задната част на точките и след това в основните блокове. Напръсках и тези пръчици в черно, така че да са по -малко видими, ако се гледат от ъгъл.

Стъпка 4: Настройка и тестване

Настройка и тестване
Настройка и тестване
Настройка и тестване
Настройка и тестване

Номерирах всички сервоустройства и записах номера на всеки проводник, за да е по -лесно да ги проследя. Започнах с най -горния сегмент на цифрата на единиците и работех до средния сегмент върху цифрата на десетките. Това е и редът, по който ги включих в серво контролните платки, като помня, че идентификаторите на платките се броят от 0 до 13, а не от 1 до 14.

След това поставих сегментите на маса с достатъчно пространство между тях за тестване, така че да не се преместват в едно и друго, докато настройвам ограниченията и указанията за пътуване. Ако се опитате да ги настроите близо един до друг, вероятно ще имате един или двама опита да се движите в грешна посока или да се движите на определен етап и да ударите друг, който може да повреди сегмента, серво рамото или да свали зъбните колела на серво.

Стъпка 5: Качване на кода

Качване на кода
Качване на кода
Качване на кода
Качване на кода
Качване на кода
Качване на кода

Кодът изглежда сложен на пръв поглед, но всъщност е сравнително прост благодарение на двете използвани библиотеки. Има и много повторения, защото има четири различни 7 -сегментни дисплея, които трябва да бъдат актуализирани.

Ето обобщено описание на кода, разгледайте пълното ръководство за по -подробно обяснение и връзка за изтегляне на кода - Механичен 7 -сегментен часовник за показване

Започваме с импортиране на две библиотеки, virtuabotixRTC.h за часовника и Adafruit_PWMServoDriver.h за серво драйверите. Библиотеката Adafruit може да бъде изтеглена и инсталирана директно чрез мениджъра на библиотеката в IDE.

След това създаваме обект за всяка контролна платка със съответния адрес, един за часовите цифри и един за минутните цифри.

След това имаме четири масива за съхраняване на позициите за включване и изключване за всяко серво. В следващите стъпки ще трябва да коригирате тези числа, за да се уверите, че вашите сервоустройства са изправени, когато са включени, завъртени на 90 градуса, когато са изключени, и не прекалявайте с пътуването.

Цифров масив съхранява позициите на всеки сегмент за всяка цифра, която да се показва.

След това настройваме часовника и създаваме променливи за съхраняване на текущите и миналите отделни цифри.

Във функцията за настройка стартираме и настройваме PWM контролните платки, както и актуализираме часа, ако е необходимо. След това преминаваме през цикъл, за да настроим дисплея на 8 8: 8 8, така че да знаем началната позиция на всички серво. Това се използва и за настройка на сервомоторите така, че всички да са обърнати нагоре правилно.

В основния цикъл получаваме актуализираното време от часовника, разпръскваме го в четирите цифри и след това проверяваме дали времето се е променило от последната проверка. Ако времето се е променило, актуализираме дисплея и след това актуализираме предишните цифри.

В функцията за показване на актуализация първо преместваме средните сегменти. Това се прави първо, защото е необходима някаква логика, за да се преместят двата горни сегмента в съседство със средния сегмент малко от пътя, преди да се премести средния сегмент, в противен случай той ще се блъсне в тях. След като средните сегменти се преместят, останалите сегменти се преместват в правилните позиции.

Стъпка 6: Сглобяване на часовника на задната дъска

Сглобяване на часовника на задната дъска
Сглобяване на часовника на задната дъска
Сглобяване на часовника на задната дъска
Сглобяване на часовника на задната дъска
Сглобяване на часовника на задната дъска
Сглобяване на часовника на задната дъска

След като приключих с тестването, сглобих сервомоторите на задната платка, използвайки горното оформление като ръководство.

Бялата област е общият размер на дъската, по -светлото сиво е областта около всяка цифра, където се движат серво сегментите, а очертанията в тъмно сивата зона са централната линия за външните 6 сегмента за всяка цифра.

Изрязах дъската, маркирах оформлението и след това залепих цифрите на място, за да съставя циферблата.

След това пробих дупки близо до всяко серво и прокарах проводниците до задната част на платката, така че да са по -малко видими.

Монтирах електрониката на гърба на часовника с двустранна лента.

Стъпка 7: Окончателна настройка и работа

Окончателна настройка и работа
Окончателна настройка и работа
Окончателна настройка и работа
Окончателна настройка и работа
Окончателна настройка и работа
Окончателна настройка и работа
Окончателна настройка и работа
Окончателна настройка и работа

След като сервомоторите бяха готови, премахнах всички серво рамена за окончателни настройки на позициите на сегментите. Трябва да включите Arduino в това състояние, така че 8 8: 8 8 да се покаже и след това да изключите захранването, това отново центрира всичките ви серво, за да можете да поставите отново серво рамото със сегментите, обърнати възможно най-близо до вертикално колкото е възможно.

След това ще трябва последователно да включите вашия Arduino и да коригирате позициите си за включване и изключване на сегмента в четирите ви масива, така че сервомоторите да са идеално вертикални при включване и да се завъртат на 90 градуса, когато са изключени, без да пътувате прекалено много. Тази стъпка отнема много време и изисква малко търпение, но крайният резултат си заслужава!

Часовникът може да бъде оставен захранван с помощта на 12V захранване и 5V BEC, свързани към него. Ако захранването спадне, батерията на RTC модула ще запази времето, така че при възстановяване на захранването часовникът автоматично се връща към правилното време.

Ако ви хареса тази инструкция, моля, гласувайте за нея в конкурса Часовник и ме уведомете за подобрения или предложения, които можете да предложите в секцията за коментари по -долу.

Конкурс за часовници
Конкурс за часовници
Конкурс за часовници
Конкурс за часовници

Втора награда в конкурса за часовници

Препоръчано: