Съдържание:
- Стъпка 1: 3D печат на пластмасовите компоненти
- Стъпка 2: Подгответе контролните табла и окабеляването
- Стъпка 3: Сглобете сервомоторите
- Стъпка 4: Настройка и тестване
- Стъпка 5: Качване на кода
- Стъпка 6: Сглобяване на часовника на задната дъска
- Стъпка 7: Окончателна настройка и работа
Видео: Механичен седем сегментен часовник на дисплея: 7 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:49
Преди няколко месеца изградих двуцифрен механичен 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 печат на пластмасовите компоненти
Проектирах 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 модула ще запази времето, така че при възстановяване на захранването часовникът автоматично се връща към правилното време.
Ако ви хареса тази инструкция, моля, гласувайте за нея в конкурса Часовник и ме уведомете за подобрения или предложения, които можете да предложите в секцията за коментари по -долу.
Втора награда в конкурса за часовници
Препоръчано:
7 сегментен часовник - издание за малки принтери: 9 стъпки (със снимки)
7 -сегментен часовник - Издание за малки принтери: Още един 7 -сегментен часовник. xDA Въпреки че трябва да кажа, че не изглежда толкова лудо, когато гледам профила си на Instructables. Вероятно ще стане още по -дразнещо в момента, в който погледнете моя профил на различни неща
Edge-осветлен седем сегментен часовник: 16 стъпки (със снимки)
Edge-Lit Seven Segment Clock Display: Седем сегментни дисплея съществуват повече от век (https://en.wikipedia.org/wiki/Seven-segment_display) и оформят познатата форма на цифрите в цифровите часовници, таблата с инструменти и много други цифрови дисплеи. Те са били отново
Рециклиран PVC седем сегментен дисплей: 5 стъпки (със снимки)
Рециклиран седемсегментен дисплей от PVC: планирах да направя цифров часовник, който мога да вися на стената си от известно време, но продължавах да го слагам, защото просто не исках да купувам акрил, затова използвах някои останали PVC кабелни канали и Трябва да кажа, че резултатите не са в леглото, така че нека
Положение на моторната предавка със седем сегментен дисплей: 4 стъпки
Положение на мотоциклетната предавка със седемсегментен дисплей: Този проект включва декодиране на редица входове (в случая 7) за показване като числови стойности на седемсегментен дисплей (SSD), използвайки нещо, наречено двоично кодирана десетична (BCD), диодна матрица и микрочип, наречен BCD4511 (или CD4511). Имах
Температура на дисплея на P10 LED модул на дисплея, използващ Arduino: 3 стъпки (със снимки)
Показване на температурата на P10 LED модул на дисплея с помощта на Arduino: В предишния урок беше казано как да се показва текст на Dot Matrix LED Display P10 модул с помощта на Arduino и DMD конектор, което можете да проверите тук. В този урок ще дадем прост урок за проекти, като използваме модул P10 като дисплей