Мазмұны:

Механикалық жеті сегментті дисплей сағаты: 7 қадам (суреттермен)
Механикалық жеті сегментті дисплей сағаты: 7 қадам (суреттермен)

Бейне: Механикалық жеті сегментті дисплей сағаты: 7 қадам (суреттермен)

Бейне: Механикалық жеті сегментті дисплей сағаты: 7 қадам (суреттермен)
Бейне: Alfa Romeo Tonale 2023 // Жаңа // 45 000 доллар! // ақша 2024, Шілде
Anonim
Механикалық жеті сегментті дисплей сағаты
Механикалық жеті сегментті дисплей сағаты
Механикалық жеті сегментті дисплей сағаты
Механикалық жеті сегментті дисплей сағаты

Бірнеше ай бұрын мен екі санды механикалық 7 сегментті дисплей жасадым, оны кері санау таймеріне айналдырдым. Бұл өте жақсы шықты және көптеген адамдар сағат жасау үшін дисплейде екі есе көбейтуді ұсынды. Мәселе мынада, мен Arduino Mega -де PWM IO -ды бітірдім және екінші немесе үшінші сандарға қол жетімді болмады. Содан кейін маған I2C интерфейсінде жұмыс істейтін PCA9685 16 арналы PWM драйверлерінің бағыты көрсетілді. Бұл Arduino -дағы I2C екі түйреуіші арқылы маған қажет 28 серводы басқаруға мүмкіндік берді. Мен қазір уақытты сақтау үшін DS1302 нақты уақыт модулін және дисплейде қолданылатын 28 серводы басқару үшін 16 арналы екі драйверді қолданатын, барлығы Arduino Uno -мен жұмыс істейтін сағатты құру керек болдым.

Егер сіз осы нұсқаулықты ұнатсаңыз, оған сағат байқауында дауыс беруді қарастырыңыз

Жабдықтар:

Сағатты құру үшін сізге негізгі құралдарға қосымша келесі құралдар қажет:

  • Arduino Uno - мұнда сатып алыңыз
  • DS1302 Сағат модулі - мұнда сатып алыңыз
  • 2 x PCA9685 16Ch Servo драйверлері - мұнда сатып алыңыз
  • 28 x микро сервос - мұнда сатып алыңыз
  • Таспалы кабель - мұнда сатып алыңыз
  • Еркек түйреуіш жолақтары - мұнда сатып алыңыз
  • Әйелдер түйреуіш жолақтары - мұнда сатып алыңыз
  • 3 мм MDF - мұнда сатып алыңыз
  • Қара спрей бояуы - мұнда сатып алыңыз
  • 5В 5А батареяны жою схемасы - мұнда сатып алыңыз
  • 12В қуат көзі - мұнда сатып алыңыз

Бұл жоба үшін сізге 3D басып шығарылған бөлшектер қажет. Егер сізде 3D принтер жоқ болса және сіз оны жасауды ұнататын болсаңыз, оны сатып алу туралы ойлануыңыз керек. Мұнда қолданылатын Creality Ender 3 Pro қол жетімді және бағасы бойынша өте сапалы басып шығарады.

  • Қолданылатын 3D принтер - мұнда сатып алыңыз
  • Филамент - мұнда сатып алыңыз

1 -қадам: Пластикалық компоненттерді 3D басып шығару

Пластикалық компоненттерді 3D басып шығару
Пластикалық компоненттерді 3D басып шығару
Пластикалық компоненттерді 3D басып шығару
Пластикалық компоненттерді 3D басып шығару
Пластикалық компоненттерді 3D басып шығару
Пластикалық компоненттерді 3D басып шығару

Мен 7 сегментті дисплейлерді мүмкіндігінше қарапайым етіп жасадым. Серво сонымен қатар оның үстіндегі сегментті ұстап тұру үшін тірек тірегі болып табылады. Әр сегмент үшін 3D басып шығарылған екі компонент қажет, серваның төменгі жағын ұстап тұратын аралық блок және сервоприводға тікелей жабысатын дисплей сегменті.

3D басып шығару файлдарын жүктеңіз - Механикалық 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 сағат модулі түйреуіштері Arduino 6, 7 және 8 түйреуіштеріне қажет. сәйкесінше

Қуат Arduino -ға 12В қуат көзінен және сервистерге 5V 5A BEC көмегімен жеткізіледі, ол PWM драйверінің жоғарғы жағындағы екі терминалға қосылады. Сізге тек бір серво драйверін қосу қажет, ол 6 сымды таспалы кабель қосылымы арқылы екіншісіне қуат береді.

3 -қадам: Серверлерді жинаңыз

Серверлерді жинаңыз
Серверлерді жинаңыз
Серверлерді жинаңыз
Серверлерді жинаңыз
Серверлерді жинаңыз
Серверлерді жинаңыз

Сегменттерді басып шығарғаннан кейін, артқы жағы мен бүйірін қара шашырату қажет, сонда олар 90 градусқа бұрылған кезде көрінбейді.

Содан кейін сегменттерді серво қолдарына ыстық еріген желіммен жабыстыру керек. Бұл оларды сервоға қолмен сервоға жабыстыруға көмектеседі, осылайша сіз оларды тікелей және тегіс етіп жабыстырғаныңызды тексере аласыз.

Сондай -ақ, әр серво түбіне аралық блокты жабыстыру қажет.

Кішкене дюбель немесе кебаб таяқшасын нүктелердің артына, содан кейін негізгі блоктарға жабыстыру арқылы нүктелерді жинаңыз. Мен бұл таяқтарды қара етіп шаштым, егер олар бұрыштан қаралса, көрінбеуі үшін.

4 -қадам: Орнату және тестілеу

Орнату және тестілеу
Орнату және тестілеу
Орнату және тестілеу
Орнату және тестілеу

Мен барлық сервистерді нөмірледім және олардың санын қадағалау оңай болу үшін әр сымға жаздым. Мен бірлік цифрының жоғарғы сегментінен бастадым және ондық цифрдың ортаңғы сегментіне дейін жұмыс жасадым. Бұл сондай -ақ оларды тақталардағы идентификаторлар 1 -ден 14 -ке дейін емес, 0 -ден 13 -ке дейін есептелетінін есте сақтай отырып, оларды серво басқару тақталарына қосудың реті.

Содан кейін мен сегменттерді үстелге орналастырдым, олардың арасында тестілеу үшін жеткілікті бос орын бар, олар саяхатқа шектеулер мен бағыттар орнатылған кезде екіншісіне ауыспайды. Егер сіз оларды бір -біріне жақын орнатуға тырыссаңыз, бір немесе екеуі бір уақытта дұрыс емес бағытта қозғалуға тырысады, ал екіншісіне соғылады, бұл сегментке, серво білігіне зақым келтіруі мүмкін.

5 -қадам: кодты жүктеу

Кодты жүктеу
Кодты жүктеу
Кодты жүктеу
Кодты жүктеу
Кодты жүктеу
Кодты жүктеу

Код бір қарағанда күрделі болып көрінеді, бірақ қолданылған екі кітапхананың арқасында іс жүзінде қарапайым. Қайталану да көп, себебі жаңартуды қажет ететін 7 сегментті төрт түрлі дисплей бар.

Міне кодтың қысқаша сипаттамасы, толығырақ түсініктеме алу үшін толық нұсқаулықты және кодты жүктеу сілтемесін қараңыз - Механикалық 7 сегментті дисплей сағаты

Біз екі кітапхананы импорттаудан бастаймыз, сағат модулі үшін virtuabotixRTC.h және серво драйверлері үшін Adafruit_PWMServoDriver.h. Adafruit кітапханасын IDE кітапхана менеджері арқылы жүктеуге және орнатуға болады.

Содан кейін біз әр басқару тақтасы үшін тиісті адресі бар объект жасаймыз, біреуі сағаттық цифрлар үшін, екіншісі минуттық цифрлар үшін.

Содан кейін бізде әр серво үшін қосу және өшіру позицияларын сақтауға арналған төрт массив бар. Келесі қадамдарда серверлеріңіздің тік тұрғанына, сөндірілгенде 90 градусқа бұрылғанына және сапарға шықпайтынына көз жеткізу үшін осы сандарға түзетулер енгізу қажет.

Сандық массив әр сегменттің позицияларын сақталатын әрбір цифр үшін сақтайды.

Содан кейін біз сағат модулін орнатып, ағымдағы және өткен жеке сандарды сақтау үшін айнымалылар құрамыз.

Орнату функциясында біз PWM басқару тақталарын іске қосамыз және орнатамыз, қажет болған жағдайда сағат уақытын жаңартамыз. Содан кейін біз дисплейді 8 8: 8 8 -ге орнату үшін цикл арқылы жүгіреміз, осылайша біз барлық сервистің бастапқы орнын білеміз. Бұл серверлерді жоғары қаратылған етіп орнату үшін де қолданылады.

Негізгі циклде біз сағат модулінен жаңартылған уақытты аламыз, оны төрт санға бөлеміз, содан кейін уақыт соңғы тексеруден өзгергенін тексереміз. Егер уақыт өзгерсе, біз дисплейді жаңартамыз, содан кейін алдыңғы сандарды жаңартамыз.

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

6 -қадам: Артқы тақтадағы сағатты жинау

Артқы тақтадағы сағатты құрастыру
Артқы тақтадағы сағатты құрастыру
Артқы тақтадағы сағатты құрастыру
Артқы тақтадағы сағатты құрастыру
Артқы тақтадағы сағатты құрастыру
Артқы тақтадағы сағатты құрастыру

Мен тестілеуді аяқтағаннан кейін, жоғарыда келтірілген орналасуды нұсқаулық ретінде пайдаланып, тақталарды артқы тақтаға жинадым.

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

Мен тақтаны кесіп, орналасуын белгілеп, сандардың орнына цифрларды жапсырдым, сағаттардың бетін жасау үшін.

Содан кейін мен әр сервоға жақын жерде тесіктер бұрғылап, сымдарды тақтаның артқы жағына қарай, олар көрінбейтін етіп бердім.

Мен электрониканы екі жақты таспамен сағаттың артқы жағына орнаттым.

7 -қадам: түпкілікті орнату және жұмыс

Соңғы орнату және жұмыс
Соңғы орнату және жұмыс
Соңғы орнату және жұмыс
Соңғы орнату және жұмыс
Соңғы орнату және жұмыс
Соңғы орнату және жұмыс
Соңғы орнату және жұмыс
Соңғы орнату және жұмыс

Серверлер дайын болғаннан кейін мен сегменттердің орналасуына соңғы түзетулер енгізу үшін барлық серво біліктерін алып тастадым. Сіз 8 8: 8 8 көрсетілуі үшін Arduino-ны осы күйде қосуыңыз керек, содан кейін қуатты ажыратыңыз, бұл сіздің сервоприводтарыңызды сегменттерді тік жаққа қаратып қайта қосуға мүмкіндік беретін етіп қайта орталықтандырады. мүмкіндігінше

Содан кейін сізге Arduino -ны дәйекті түрде қосу керек және сегменттерді төрт массивте қосу және өшіру позициясына түзетулер енгізу қажет болады, осылайша сервос қосылып тұрғанда өте тік болады және өшпегенде 90 градусқа бұрылады. Бұл қадам көп уақытты қажет етеді және шыдамдылықты қажет етеді, бірақ түпкілікті нәтиже оған тұрарлық!

Сағатты 12В қуат көзі мен оған қосылған 5В БЭК көмегімен қосуға болады. Егер қуат өшсе, RTC модуліндегі батарея уақытты сақтайды, осылайша қуат қалпына келтірілгенде сағат автоматты түрде дұрыс уақытқа оралады.

Егер сізге осы нұсқаулық ұнаған болса, оған сағат байқауында дауыс беріңіз және төмендегі түсініктемелер бөлімінде енгізуге болатын жақсартулар мен ұсыныстар туралы маған хабарлаңыз.

Сағат сайысы
Сағат сайысы
Сағат сайысы
Сағат сайысы

Сағат байқауының екінші жүлдесі

Ұсынылған: