Мазмұны:
- 1 -қадам: материалдар туралы есеп
- 2 -қадам: Ою және ою
- 3 -қадам: лакпен сүрту және жағу
- 4 -қадам: схеманы құру
- 5 -қадам: Бағдарламаны жүктеу
- 6 -қадам: жарықдиодты шамдарды орналастыру
- 7 -қадам: Жарық диодтарын қосу
- 8 -қадам: схеманы светодиодтармен қосу
- 9 -қадам: мәрмәрді қою
Бейне: Екілік үстел сағаты: 9 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Екілік сағаттар керемет және тек екілік білетін адамға арналған (цифрлық құрылғылардың тілі). Егер сіз техник жігіт болсаңыз, бұл таңғажайып сағат сізге арналған. Сондықтан, уақытты құпия сақтап, өзіңіз жасаңыз!
Интернетте сіз әр түрлі типтегі екілік сағаттарды таба аласыз. Сіз тіпті екілік сағатты amazon.com сияқты интернет -дүкеннен сатып ала аласыз. Бірақ бұл сағат бәрінен ерекшеленеді, мен мұнда талғампаз көрініс беру үшін мәрмәр ойнадым.
Төменге түспес бұрын демо бейнені қараңыз.
1 -қадам: материалдар туралы есеп
Аппараттық компоненттер
1. Arduino Pro Micro (aliexpress.com сайтынан сатып алыңыз): Бұл сағаттың негізгі жүрегі және RTC -тен уақытты оқиды және сәйкесінше жарық диодты жүргізуге нұсқау береді. Егер сіз үшін өлшем маңызды болмаса, Arduino Nano -ны Pro Micro орнына қолдануға болады.
2. DS3231 RTC модулі (aliexpress.com сайтынан сатып алыңыз): DS3231 RTC қуат өшкенде де уақытты бақылап отырады. DS1307 сияқты басқа RTC қолдануға болады, бірақ DS3231 дәлірек.
3. MAX7219CNG жарықдиодты драйвер IC (aliexpress.com сайтынан сатып алыңыз): Arduino -да түйреуіштердің саны шектеулі. Сонымен, егер сіз Arduino түйреуіштерін ысырап етпестен жарықдиодты жарықтандыруды қажет етсеңіз, MAX7219 - бұл құтқарушы. Ол сериялық деректерді алады және 64 жарықдиодты дербес басқара алады.
4. 20 дана көк жарық диодты, 5мм (aliexpress.com сайтынан сатып алыңыз): көк түс маған ең жақсы нәтиже берді. Басқа түстермен қолдануға болады.
5. 20 PCS мәрмәр ойыны (aliexpress.com сайтынан сатып алыңыз): стандартты өлшемдегі мәрмәр қолданылды. Жарық беру үшін мәрмәр мөлдір болуы керек.
6. Резистор 10К: MAX7219 IC сегменттік токын басқару үшін қолданылады. Әр түрлі сегменттік токтың нақты мәнін білу үшін мәліметтер кестесін қараңыз.
7. Сымдар
8. ПХД прототипі тақтасы (aliexpress.com сайтынан сатып алыңыз): Мен IC базасы бар MAX7219 IC үшін ПХД прототипін қолдандым. Сіз сондай -ақ өзіңіздің жеке ПХД тақтасын жасай аласыз.
Аппараттық құралдар
1. CNC 3018 PRO лазерлік граверлік ағаш CNC маршрутизаторы (aliexpress.com сайтынан сатып алыңыз): Theis DIY CNG машинасы мәрмәр мен жарықдиодты ағашқа ою үшін қолданылған. Бұл кез келген өндіруші мен әуесқой үшін бағасы төмен тамаша машина.
2. Дәнекерлеу станциясы (aliexpress.com сайтынан сатып алыңыз): Жоба үшін кейбір дәнекерлеу қажет, ал жақсы дәнекерлеу үтік өндіруші үшін міндетті құрал болып табылады. 60W - бұл DIY дәнекерлеу үшін жақсы таңдау.
3. Сым кескіш (aliexpress.com сайтынан сатып алыңыз)
4. CNC үшін титанмен қапталған карбидті фрезерлік кескіш (aliexpress.com сайтынан сатып алыңыз): Сіз сондай -ақ машинамен қамтамасыз етілген битті қолдана аласыз. Бұл жағдайда дизайнды өзгерту керек.
2 -қадам: Ою және ою
Мен сағатты жарықдиодты орналастыру үшін 165X145X18,8 мм жұмсақ үйеңкі ағаш бөлігін алдым. Әр светодиодтың үстіне мен мәрмәр қоямын, ал стандартты мәрмәр диаметрі 15,5 мм. Сонымен, мен тереңдігі 7 мм болатын 15,7 мм тесіктер жасадым. Шұңқырдың ортасында мен светодиодты орналастыру үшін 5 мм бұрғы жасадым. Барлық мәтін 2 мм тереңдікте жасалған. Сіз таңдау тереңдігін арттыра немесе төмендете аласыз. Сондай -ақ, мәтінді лазермен ойып көріңіз.
Толық дизайнды Inventables компаниясының Easel компаниясы жасаған. Easel-бұл қарапайым, бір бағдарламадан жобалауға және кесуге мүмкіндік беретін веб-бағдарламалық қамтамасыз ету платформасы және көптеген мүмкіндіктерді пайдалану тегін. Сізге жүйеге тіркелгі жасау немесе Gmail арқылы кіру қажет болды.
Easel Pro-бұл мүшелікке негізделген бұлтты бағдарламалық жасақтама, ол Inventables тегін Easel бағдарламалық жасақтамасына негізделген. Easel және Easel Pro CAD және CAM өнімдерін шығарудың күрделі бағдарламалық жасақтамасымен байланысты кедергілерді азайтады, бұл пайдаланушыларға физикалық өнімдер шығаруды жеңілдетеді.
Easel көмегімен сіз дизайн файлын G-код форматында экспорттауға немесе CNC-ті Easel ортасынан тікелей орнатуға және CNC командасын жіберуге болады. Бұл жағдайда сізге Easel драйверін орнату қажет. Сондай-ақ, бұрын жасалған G-кодты Easel IDE-ге импорттауға және өзгертуге болады. Мен мұнда дизайн файлын қостым. Сіз Easel көмегімен дизайнды өз қалауыңыз бойынша оңай өзгерте аласыз.
3 -қадам: лакпен сүрту және жағу
Лак ағаштан жасалған жобалар мен суреттердің әдемі аяқталуын қамтамасыз ете алады. Ағашқа лак қолданбас бұрын, кесекті тегістеп, жұмыс орнын тазалаңыз. Тегістеу тегіс көрініс береді және ағашты лакқа дайындайды. Лакты бірнеше жұқа қабаттарға жағыңыз, келесіге өтпес бұрын олардың әрқайсысын мұқият құрғатыңыз. Кескіндемені лакпен бояу үшін оны толық құрғатыңыз, содан кейін лакпен мұқият сүртіңіз. Көптеген суреттерге бір пальто жеткілікті, бірақ сіз алдыңғы қабатты мұқият құрғатуға мүмкіндік бергенше, сіз қосымша қабатты қоса аласыз.
Лак қолданар алдында лак жағар алдында барлық кемшіліктер мен дақтарды кетіру керек. Мұны істеу үшін аяқталмаған бөлшектер үшін 100 түйіршікті зімпараны қолданыңыз және ағаштың дәнімен жұмыс жасаңыз. Кесек тегіс болғанша ақырын құммен жағыңыз. Ағаш бөлігін тазалағаннан кейін лак жақсы желдетілетін жерде қолданылады.
Лак ағашты қоршаған ортаның шаңы мен ылғалынан сақтайды, бірақ бұл ағаштың түсіне әсер етуі мүмкін.
4 -қадам: схеманы құру
Сағаттың негізгі компоненті - Arduino Pro Mini микроконтроллер тақтасы және DS3231 RTC модулі. Arduino Pro Mini мен RTC модулінің қосылуы өте қарапайым. RTC модулінің SDA түйреуішін Arduino -ның SDA түйреуішіне және RTC модулінің SCL түйреуішіне Arduino -ның SCL түйреуішіне қосу керек. SDA және SCL түйреуіштері тиісінше A4 және A5 түйреуіштері Arduino. Сондай -ақ, Arduino мен RTC модульдері арасында жалпыға ортақ байланыс орнату қажет. Байланыстыру үшін мен секіргіш сымдарды қолдандым.
Arduino мен DS3231 RTC арасындағы байланыс:
Ардуино | DS3231 |
---|---|
SCL (A5) | SCL |
SDA (A4) | SDA |
5В | VCC |
GND | GND |
Сағат, минут және секундты көрсету үшін екілік сағаттарға 20 жарық диоды қажет. Егер сіз күнді көрсеткіңіз келсе, ол көбірек қажет. Arduino тақтасында GPIO түйреуіштерінің шектеулері бар. Сонымен, мен MAX7219CNG жарықдиодты драйверді IC -ті Arduino тақтасының тек үш түйреуішін қолдана отырып, көптеген жарықдиодты жарықдиодты жүргізу үшін қолдандым.
MAX7219 драйвері IC 64 светодиодты басқара алады, Arduino -мен байланыс үшін тек 3 сымды қолданады, сонымен қатар біз көптеген драйверлер мен матрицаларды тізбектей аламыз және сол 3 сымды қолдана аламыз.
64 жарықдиодты шамдар IC -дің 16 шығыс түйреуіштерімен басқарылады. Енді бұл қалай мүмкін деген сұрақ туындайды. Жарық диодтарының максималды саны бір уақытта жанады - сегіз. Светодиодтар 8 × 8 жолдар мен бағандар жиынтығы ретінде орналастырылған. Сонымен MAX7219 әр бағанды өте қысқа уақыт ішінде іске қосады және сонымен қатар әр жолды қозғайды. Сондықтан бағандар мен қатарларды тез ауыстыру арқылы адам көзі үздіксіз жарықты ғана байқайды.
MAX7219 VCC және GND Arduino 5V және GND түйреуіштеріне, басқа үш түйін DIN, CLK және CS Arduino тақтасының кез келген цифрлық түйреуішіне өтеді. Егер біз бірнеше модульді қосқымыз келсе, алдыңғы модульдің шығыс түйреуіштерін жаңа модульдің кіріс түйреуіштеріне қосамыз. Іс жүзінде бұл түйреуіштер бірдей, тек алдыңғы тақтаның DOUT түйреуі жаңа тақтаның DIN түйреуішіне түседі.
Arduino мен MAX7219CNG арасындағы байланыс:
Ардуино | MAX7219 |
---|---|
D12 | DIN |
D11 | CLK |
D10 | ЖҮКТЕУ |
GND | GND |
5 -қадам: Бағдарламаны жүктеу
Барлық бағдарлама Arduino ортасында жазылған. Эскиз үшін екі сыртқы кітапхана пайдаланылды. Біреуі RTC модуліне арналған, екіншісі MAX7219 IC үшін. Кітапханаларды сілтемеден жүктеп алып, бағдарламаны құрастырмас бұрын Arduino IED -ке қосыңыз.
Arduino Pro Mini -ге бағдарлама жүктеу біршама қиын. Егер сіз бұрын Arduino Pro Mini -ді ешқашан қолданбасаңыз, оқулықты қараңыз:
/*
GIT: https://github.com/jarzebski/Arduino-DS3231> GIT: https://github.com/jarzebski/Arduino-DS3231> */#include «Wire.h» #include «DS3231.h» #include «LedControl.h» /* Енді жұмыс істеу үшін бізге LedControl қажет. ***** Бұл түйреуіш сандар сіздің аппараттық құралдарыңызбен жұмыс істемеуі мүмкін ***** 12 -түйін DataIn -ге қосылады, CLK -пин -10 -ға қосылады, LOAD -қа қосылады Бізде тек MAX72XX бар. */ DS3231 сағаты; RTCDateTime dt; LedControl lc = LedControl (12, 11, 10, 1); int секунд, минут, сағат; байт нөмірі [10] = {B00000000, B01000000, B00100000, B01100000, B00010000, B01010000, B00110000, B01110000, B00001000, B01001000}; void setup () {//Serial.begin(9600); / * MAX72XX іске қосылған кезде қуатты үнемдеу режимінде, біз ояту қоңырауын шалуымыз керек */ lc.shutdown (0, жалған); / * Жарықтықты орташа мәнге қойыңыз */ lc.setIntensity (0, 15); / * және дисплейді тазарту */ lc.clearDisplay (0); //lc.setLed(0, жол, col, шын); // lc.setRow (0, 0, B11111111); // lc.setRow (0, 1, B11111111); // lc.setRow (0, 2, B11111111); // lc.setRow (0, 3, B11111111); // lc.setRow (0, 4, B11111111); // lc.setRow (0, 5, B11111111); // lc.setColumn (0, 2, B11111111); // lc.setColumn (0, 3, B11111111); // lc.setColumn (0, 4, B11111111); // lc.setColumn (0, 5, B11111111); // DS3231 clock.begin () инициализациялау; // Эскизді құрастыру уақытын орнату //clock.setDateTime(_DATE_, _TIME_); pinMode (5, INPUT_PULLUP); pinMode (6, INPUT_PULLUP); pinMode (7, INPUT_PULLUP); } int мәзірі = 0, жоғары, төмен; int hours_one; int hours_ten; int minutes_one; int minutes_ten; int seconds_one; int seconds_ten; void loop () {if (digitalRead (5) == 0) {delay (300); мәзір ++; егер (мәзір> 3) меню = 0; } егер (мәзір == 0) {dt = clock.getDateTime (); сағат = dt.hour; минут = dt.minute; секунд = dt.секунд; егер (сағат> 12) сағат = сағат - 12; егер (сағат == 0) сағат = 1; hours_one = сағат%10; hours_ten = сағат/10; minutes_one = минут%10; minutes_ten = минут/10; seconds_one = секунд%10; seconds_ten = секунд/10; lc.setRow (0, 0, сан [seconds_one]); lc.setRow (0, 1, сан [seconds_ten]); lc.setRow (0, 2, сан [минуттар_бірі]); lc.setRow (0, 3, саны [minutes_ten]); lc.setRow (0, 4, саны [hours_one]); lc.setRow (0, 5, саны [hours_ten]); } if (мәзір == 1) {if (digitalRead (6) == 0) {кешіктіру (300); сағат ++; егер (сағат> = 24) сағат = 0; } if (digitalRead (7) == 0) {delay (300); сағат-; егер (сағат = 60) минут = 0; } if (digitalRead (7) == 0) {delay (300); минут-; егер (минут <0) минут = 0; } минут_бірі = минут%10; minutes_ten = минут/10; lc.setRow (0, 4, B00000000); lc.setRow (0, 5, B00000000); lc.setRow (0, 1, B00000000); lc.setRow (0, 0, B00000000); lc.setRow (0, 2, сан [минуттар_бірі]); lc.setRow (0, 3, саны [minutes_ten]); } if (мәзір == 3) {clock.setDateTime (2020, 4, 13, сағат, минут, 01); мәзір = 0; } //lc.setLed(0, жол, col, жалған); //lc.setLed(0, жол, col, шын); //lc.setColumn (0, col, B10100000); //lc.setRow(0, 4, B11111111); //lc.setRow(0, жол, (байт) 0); //lc.setColumn(0, col, (байт) 0); // DS3231_dateformat мысалында нөлді қарау үшін // Serial.print («Raw data:»); // Serial.print (dt. year); Serial.print («-»); // Serial.print (dt.month); Serial.print («-»); // Serial.print (dt.day); Serial.print («»); // Serial.print (dt.hour); Serial.print («:»); // Serial.print (dt.minute); Serial.print («:»); // Serial.print (dt.second); Serial.println («»); // // кешіктіру (1000); }
6 -қадам: жарықдиодты шамдарды орналастыру
Бұл кезеңде мен барлық светодиодтарды ағаш тақтайшаның тесіктеріне қоямын. Светодиодтардың қосылуы схемада көрсетілген. Біз светодиоды жүргізу үшін MAX7219 жарықдиодты драйверін қолданатын болсақ, барлық светодиодтар матрицалық түрде қосылуы керек. Сонымен, мен барлық бағандағы барлық светодиодтардың анодтық түйреуіштерін және схемаға сәйкес әр қатардың барлық катодтық түйреуіштерін біріктірдім. Енді біздің бағаналы түйреуіштер светодиодтардың анодтық түйреуіштері, ал жолдық түйреуіштер - светодиодтардың катодты түйреуіштері.
Светодиодтарды MAX7219 көмегімен жүргізу үшін сымның цифрлық түйреуішіне сымның катодты түйреуішін және СК -дің анодтық түйреуішін СК сегментінің түйреуішіне жалғау қажет. Сонымен, біздің бағаналы түйреуіштер сегмент түйреуіштеріне, ал жол түйреуіштері MAX7219 цифрлық түйреуішіне қосылуы керек.
ISET түйреуіші мен MAX7219 IC VCC арасындағы резисторды қосу керек, бұл резистор сегментті түйреуіштердің токтарын басқарады. Мен әр сегменттің түйреуішінде 20 мА ұстап тұру үшін 10K резисторды қолдандым.
7 -қадам: Жарық диодтарын қосу
Бұл кезеңде мен барлық светодиодтарды қатарлы бағаналы матрицалық форматта жалғадым. Светодиодтарды қосу үшін маған қосымша секіргіш сымдарды қолдану керек болды, бірақ егер светодиодтардың сымдары бір -біріне тиіп тұратындай ұзын болса, сіз қосымша сымдардың көмегінсіз қосылым жасай аласыз.
Бұл конфигурацияда резистор қажет емес, себебі MAX7219 токты реттейді. Сіздің міндетіңіз - ISET резисторының дұрыс мәнін таңдау және осы резистор арқылы ISET түйреуішін тарту. Жарықдиодты орналастыру мен қосудан бұрын мен әр жарық диодты тексеруді ұсынамын. Себебі нашар жарықдиодты орнату көп уақытты өлтіреді. Келесі қадамда біз жол мен баған сымдарын MAX ic -ке қосамыз.
8 -қадам: схеманы светодиодтармен қосу
Біздің RTC, Arduino және MAX7219 кіретін электронды тақтамыз ұзақ уақыт бойы дайын, сонымен қатар біз LED матрицасын алдыңғы кезеңде дайындадық. Енді біз барлық заттарды схемаға сәйкес қосуымыз керек. Алдымен біз жол мен баған сымдарын MAX7219IC -ке қосуымыз керек. Байланыс схемада айтылды. Түсінікті болу үшін төмендегі кестені орындаңыз.
Жарықдиодты матрица | MAX7219CNG |
---|---|
ROW0 | DIGIT0 |
ROW1 | DIGIT1 |
ROW2 | DIGIT2 |
ROW3 | DIGIT3 |
БАҒАН 0 | SEGA |
БАҒАН1 | SEGB |
БАҒАН 2 | SEGC |
БАҒАН 3 | SEGD |
БАҒАН 4 | SEGE |
БАҒАН 5 | SEGF |
ROW0-> Ең жоғарғы қатар
COLUMN0 -> Ең оң жақ баған (SS COLUMN)
Байланысты орнатқаннан кейін, байланыстың үзілмеуі үшін ПХД тақтасы мен Arduino -ны ағаш бөлікпен бекіту керек. Мен барлық тізбектерді орнында бекіту үшін ыстық желім қолдандым. Қысқа тұйықталуды болдырмау үшін ПХД -ның төменгі жағындағы дәнекерлеу түйінін жасыру үшін көп мөлшерде желім қолданыңыз.
Сағатты пайдалану үшін қажет болған жағдайда уақытты реттеу опциясын сақтау қажет. Мен уақытты реттеу үшін үш түйме қосқышты қостым. Біреуі опцияны өзгертуге, екеуі сағат пен минутты ұлғайту мен төмендетуге арналған. Түймелер оң жақ жоғарғы бұрышта орналасқан, осылайша оларға оңай қол жеткізуге болады.
9 -қадам: мәрмәрді қою
Бұл біздің жобаның соңғы кезеңі. Барлық тізбекті қосылу аяқталды. Енді сіз мәрмәрді ағаш сағаттың жоғарғы жағына қоюыңыз керек. Мрамор қою үшін мен ыстық желімді қолдандым. Ол үшін ақ түсті мөлдір желімді таяқшаны қолданыңыз. Мен жоғарыдан әр тесікке ыстық желім жағып, светодиодтардың үстіне мәрмәрді әр тесікке ақырын қойдым. Желімді біркелкі қосу светодиодтың жарқылын арттырады. Мен өз сағатым үшін КӨК жарықдиодты қолдандым. Бұл маған ең жақсы нәтиже берді.
Сағатқа қуат беріңіз. Егер уақыт көрсетілсе, онда құттықтаймын !!!
Сіз жасадыңыз!
Ләззат алыңыз!
«Жарқырайды» конкурсында екінші орын
Ұсынылған:
DIY Arduino екілік дабыл сағаты: 14 қадам (суреттермен)
DIY Arduino екілік дабыл сағаты: бұл классикалық екілік сағат! Бірақ бұл жолы қосымша функциямен! Бұл нұсқаулықта мен сізге Arduino -мен екілік оятқышты қалай құруға болатынын көрсетемін, ол сізге тек уақытты ғана емес, сонымен қатар күнді, айды, тіпті таймер мен дабылды қызықты көрсете алады
Екілік жарықдиодты мәрмәр сағаты: 6 қадам (суреттермен)
Екілік жарықдиодты мәрмәр сағаты: Енді менде барлығы екілік сағаты бар деп ойлаймын, міне менің нұсқам. Маған ұнағаны - бұл жоба ағаш өңдеуді, бағдарламалауды, оқуды, электрониканы және, мүмкін, кішкене көркем шығармашылықты біріктірді. Ол уақытты, айды, күнді, күнді көрсетеді
5 $ PCB күнтізбесі екілік сағаты бар: 7 қадам (суреттермен)
5 $ PCB күнтізбесі екілік сағатпен: Сәлеметсіз бе! Мен бұл ПХД күнтізбесі мен екілік сағатты Eagle CAD көмегімен жасадым. Мен ATMEGA328P MCU (Arduino -дан) және 9x9 жарықдиодты матрицаны қолдандым. Менің тақтаның өлшемдері 8см x 10см (3.14 дюйм 3.34 дюйм). Бұл өте кішкентай, бірақ бірінші: Eagle CAD тегін нұсқасы 80 см^2 рұқсат береді
Дыбыстық визуализация, екілік сағат және FM қабылдағышы бар үстел күшейткіші: 8 қадам (суреттермен)
Дыбыстық визуализация, екілік сағат және FM қабылдағышы бар үстел күшейткіші: маған күшейткіштер ұнайды, мен бүгін жақында жасаған қуаты төмен үстел күшейткішімен бөлісемін. Мен жасаған күшейткіштің бірнеше қызықты ерекшеліктері бар. Оның қосарланған екілік сағаты бар, ол уақыт пен күнді бере алады және аудио деп аталатын дыбысты бейнелей алады
Arduino екілік сағаты - 3D басып шығару: 5 қадам (суреттермен)
Arduino екілік сағаты - 3D басып шығару: Мен кеңсе үстелінде екілік сағаттарды ұзақ уақыт бойы қарап жүрдім, бірақ олар өте қымбат және / немесе көптеген мүмкіндіктерге ие емес. Мен оның орнына біреуін жасаймын деп шештім. Сағат жасау кезінде ескеру керек бір мәселе, Arduino / Atmega328