Съдържание:

Двоичен настолен часовник: 9 стъпки (със снимки)
Двоичен настолен часовник: 9 стъпки (със снимки)

Видео: Двоичен настолен часовник: 9 стъпки (със снимки)

Видео: Двоичен настолен часовник: 9 стъпки (със снимки)
Видео: Детето ми се храни само със зеленчуци 2024, Юли
Anonim
Двоичен настолен часовник
Двоичен настолен часовник
Двоичен настолен часовник
Двоичен настолен часовник
Двоичен настолен часовник
Двоичен настолен часовник

Двоичните часовници са страхотни и изключително за човека, който знае бинарните (езика на цифровите устройства). Ако сте технически човек, този странен часовник е за вас. Така че, направете си сами и пазете времето си в тайна!

В интернет ще намерите много бинарни часовници от различни видове. Дори можете да си купите двоичен часовник от онлайн магазин като amazon.com. Но този часовник е различен от всички и тук използвах да играя мрамор, за да му придам елегантен вид.

Преди да слезете, моля, гледайте демонстрационния видеоклип.

Стъпка 1: Сметка на материалите

Сметка на материалите
Сметка на материалите
Сметка на материалите
Сметка на материалите
Сметка на материалите
Сметка на материалите

Хардуерни компоненти

1. Arduino Pro Micro (купувайте от aliexpress.com): Това е основното сърце на часовника и отчита времето от RTC и дава инструкции за съответното задвижване на светодиодите. Можете да използвате Arduino Nano дори Arduino Uno вместо Pro Micro, ако размерът няма значение за вас.

2. DS3231 RTC модул (закупете от aliexpress.com): DS3231 RTC следи времето дори когато захранването се изключи. Въпреки че могат да се използват други RTC като DS1307, DS3231 е по -точен.

3. MAX7219CNG LED драйвер IC (купете от aliexpress.com): Arduino има ограничен брой пинове. Така че, ако искате да управлявате тонове светодиоди, без да губите щифтове на Arduino, MAX7219 е спасителят. Той взема серийни данни и може да управлява 64 светодиода независимо.

4. 20 PCS Blue LED, 5mm (buy from aliexpress.com): Blue даде най -добрия резултат за мен. Можете да опитате с други цветове.

5. 20 броя игра на мрамор (купете от aliexpress.com): Използва се играещ мрамор със стандартен размер. Мраморът трябва да е прозрачен, за да пропуска светлина.

6. Резистор 10K: Използва се за управление на сегментния ток на IC MAX7219. Вижте листа с данни, за да знаете точната стойност за различен ток на сегмента.

7. Проводи

8. Прототипна платка за печатни платки (купете от aliexpress.com): Използвах прототипна печатна платка за IC MAX7219 IC с IC база. Можете също така да проектирате своя персонализирана печатна платка.

Хардуерни инструменти

1. CNC 3018 PRO Лазерно гравиращо дърво CNC фрезова машина (купете от aliexpress.com): Тази машина DIY CNG се използва за дърворезба за мрамор и светодиоди. Това е отлична машина с ниска цена за всеки производител и любител.

2. Поялна станция (закупете такава от aliexpress.com): За проекта е необходимо известно запояване, а доброто поялник е задължителен инструмент за производителя. 60W е добър избор за запояване „направи си сам“.

3. Тел за рязане (купувайте от aliexpress.com)

4. Фреза с титаниево покритие от карбиден край за CNC (купете от aliexpress.com): Можете също да опитате с бита, предоставен с машината. В този случай трябва да направите някои промени в дизайна.

Стъпка 2: Гравиране и дърворезба

Гравиране и резба
Гравиране и резба
Гравиране и резба
Гравиране и резба
Гравиране и резба
Гравиране и резба

Взех парче дърво от 165х145Х18,8 мм от мек клен за поставяне на светодиодите на часовника. В горната част на всеки светодиод ще поставя мрамор и размерът на стандартен игрален мрамор е 15,5 мм в диаметър. И така, направих 15,7 мм дупки с дълбочина 7 мм. В центъра на отвора направих 5 мм бормашина за поставяне на светодиода. Целият текст е направен с дълбочина 2 мм. Можете да увеличите или намалите дълбочината по ваш избор. Можете също да опитате лазерно гравиране на текста.

Пълният дизайн е направен от Easel от Inventables. Easel е уеб базирана софтуерна платформа, която ви позволява да проектирате и изрязвате от една проста програма и повечето от функциите са безплатни за използване. Трябваше само да влезете в системата, като създадете акаунт или използвате Gmail.

Easel Pro е базиран на членство облачен софтуер, който се основава на безплатния софтуер Easel на Inventables. Easel и Easel Pro минимизират бариерите, свързани със сложния софтуер за производство на CAD и CAM продукти, което улеснява потребителите да произвеждат физически продукти.

С помощта на Easel можете да експортирате дизайнерския файл във формат G-code или директно да настроите вашия CNC от средата Easel и да изпратите командата до CNC. В този случай трябва да инсталирате драйвера за Easel. Можете също да импортирате предварително създаден G-код в Easel IDE и да промените. Включих файла за проектиране тук. Можете лесно да промените дизайна според вашия избор с помощта на статива.

Стъпка 3: Шлайфане и нанасяне на лак

Шлайфане и нанасяне на лак
Шлайфане и нанасяне на лак
Шлайфане и нанасяне на лак
Шлайфане и нанасяне на лак
Шлайфане и нанасяне на лак
Шлайфане и нанасяне на лак
Шлайфане и нанасяне на лак
Шлайфане и нанасяне на лак

Лакът може да осигури красив завършек на дървени проекти и картини. Преди да нанесете лак върху дърво, изпепелете парчето си и почистете работното си пространство. Шлифоването дава гладък вид и подготвя дървото за лакиране. Нанесете лака на няколко тънки слоя, като оставите всеки да изсъхне добре, преди да преминете към следващия. За да лакирате картина, оставете я да изсъхне напълно и след това внимателно намажете лака. Един слой е достатъчен за много картини, но можете да добавите допълнителен слой, стига първо да оставите предишния да изсъхне добре.

Преди да нанесете лака, трябва да отстраните всички несъвършенства и петна преди нанасянето на лака. За да направите това Използвайте шкурка от 100 песъчинки за недовършени парчета и работете със зърното на дървото. Пяскайте внимателно, докато парчето стане гладко. След почистване на парчето дърво нанесете лака в добре проветриво помещение.

Лакът спасява дървесината от прах и влага от околната среда, но може да повлияе на цвета на дървото.

Стъпка 4: Изграждане на веригата

Осъществяване на веригата
Осъществяване на веригата
Осъществяване на веригата
Осъществяване на веригата
Осъществяване на веригата
Осъществяване на веригата
Осъществяване на веригата
Осъществяване на веригата

Основният компонент на часовника е платка за микроконтролер Arduino Pro Mini и RTC модул DS3231. Връзката на Arduino Pro Mini и RTC модула е много проста. Трябва да свържете SDA щифт на RTC модула към SDA щифта на Arduino и SCL пина на RTC модула към SCL щифта на Arduino. Щитовете SDA и SCL всъщност са A4 и A5 щифт съответно на Arduino. Също така трябва да направите обща земна връзка между модулите Arduino и RTC. Използвах джъмперни проводници за свързване.

Връзката между Arduino и DS3231 RTC:

Arduino DS3231
SCL (A5) SCL
SDA (A4) SDA
5V VCC
GND GND

За показване на час, минута и секунда двоичен часовник изисква 20 светодиода. Ако искате да покажете дата, това изисква повече. Платката Arduino има ограничение за GPIO щифтовете. И така, използвах MAX7219CNG LED драйвер IC за задвижване на тонове светодиоди, използвайки само три щифта на платката Arduino.

IC драйверът MAX7219 е в състояние да управлява 64 отделни светодиода, като използва само 3 проводника за комуникация с Arduino, и нещо повече, можем да свържем множество драйвери и матрици с маргаритка и все още да използваме същите 3 проводника.

64 -те светодиода се задвижват от 16 изходни извода на IC. Въпросът сега е как е възможно това. Е, максималният брой светодиоди, които светят едновременно, всъщност е осем. Светодиодите са подредени като набор от редове и колони 8 × 8. Така MAX7219 активира всяка колона за много кратък период от време и в същото време управлява всеки ред. Така че чрез бързо превключване през колоните и редовете човешкото око ще забележи само непрекъсната светлина.

VCC и GND на MAX7219 отиват към 5V и GND щифтовете на Arduino, а трите други щифта, DIN, CLK и CS отиват към всеки цифров щифт на платката Arduino. Ако искаме да свържем повече от един модул, просто свързваме изходните щифтове на предишната платка за пробив към входните щифтове на новия модул. Всъщност тези щифтове са еднакви, с изключение на това, че щифтът DOUT на предишната платка отива към DIN щифта на новата платка.

Връзката между Arduino и MAX7219CNG:

Arduino MAX7219
D12 DIN
D11 CLK
D10 Заредете
GND GND

Стъпка 5: Качване на програмата

Качване на програмата
Качване на програмата

Цялата програма е написана в среда Arduino. За скицата бяха използвани две външни библиотеки. Едната е за RTC модула, а другата е за MAX7219 IC. Изтеглете библиотеките от връзката и добавете към IED на Arduino, преди да компилирате програмата.

Качването на програма в Arduino Pro Mini е малко сложно. Разгледайте урока, ако никога преди не използвате Arduino Pro Mini:

/*

GIT: https://github.com/jarzebski/Arduino-DS3231> GIT: https://github.com/jarzebski/Arduino-DS3231> */#включете "Wire.h" #include "DS3231.h" #include "LedControl.h" /* Сега имаме нужда от LedControl, с който да работим. ***** Тези пинови номера вероятно няма да работят с вашия хардуер ***** пин 12 е свързан към DataIn пин 11 е свързан към 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, false); / * Задайте яркостта на средни стойности */ lc.setIntensity (0, 15); / * и изчистете дисплея */ lc.clearDisplay (0); //lc.setLed(0, ред, колона, вярно); // 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; } if (menu == 0) {dt = clock.getDateTime (); часове = dt.hour; минути = dt.minute; секунди = dt.second; ако (часове> 12) часове = часове - 12; ако (часове == 0) часове = 1; hours_one = часове%10; hours_ten = часа/10; минути_ един = минути%10; minutes_ten = минути/10; seconds_one = секунди%10; seconds_ten = секунди/10; lc.setRow (0, 0, номер [секунди_ един]); lc.setRow (0, 1, номер [секунди_край]); lc.setRow (0, 2, номер [минути_ един]); lc.setRow (0, 3, номер [минути_часа]); lc.setRow (0, 4, номер [часове_ един]); lc.setRow (0, 5, номер [часове_десети]); } if (menu == 1) {if (digitalRead (6) == 0) {delay (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, номер [минути_часа]); } if (меню == 3) {clock.setDateTime (2020, 4, 13, часове, минути, 01); меню = 0; } //lc.setLed(0, ред, колона, невярно); //lc.setLed(0, ред, колона, вярно); //lc.setColumn(0, col, B10100000); //lc.setRow(0, 4, B11111111); //lc.setRow(0, ред, (байт) 0); //lc.setColumn(0, col, (байт) 0); // За водещ нулев поглед към DS3231_dateformat пример // Serial.print ("Сурови данни:"); // 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, трябва да свържете катоден щифт на led към цифров щифт на IC и аноден щифт на led към сегментен щифт на IC. И така, нашите щифтове на колони трябва да бъдат свързани към сегментните щифтове, а щифтовете на редовете трябва да бъдат свързани към щифта с цифри на MAX7219.

Трябва да свържете резистор между щифт ISET и VCC на IC MAX7219 и този резистор контролира тока на сегментните щифтове. Използвах 10K резистор, за да поддържам 20mA във всеки сегментен щифт.

Стъпка 7: Свързване на светодиоди

Свързване на светодиоди
Свързване на светодиоди
Свързване на светодиоди
Свързване на светодиоди
Свързване на светодиоди
Свързване на светодиоди

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

В тази конфигурация не се изисква резистор, тъй като MAX7219 ще се погрижи за тока. Ваше задължение е да изберете правилната стойност за резистора ISET и да издърпате щифта ISET с този резистор. Преди да поставите и свържете светодиодите, ще ви предложа да проверите всеки светодиод. Защото поставянето на лош светодиод ще убие много време. В следващата стъпка ще свържем проводниците на реда и колоната към MAX ic.

Стъпка 8: Свързване на печатна платка със светодиодите

Свързваща печатна платка със светодиодите
Свързваща печатна платка със светодиодите
Свързваща печатна платка със светодиодите
Свързваща печатна платка със светодиодите
Свързваща печатна платка със светодиодите
Свързваща печатна платка със светодиодите

Нашата платка, включително RTC, Arduino и MAX7219, е готова за дълго време и също така подготвихме LED матрицата в предишния етап. Сега трябва да свържем всички неща според схемата. Първо, трябва да свържем проводниците на реда и колоната към MAX7219IC. Връзката беше спомената в схемата. За да стане по -ясно, следвайте таблицата по -долу.

LED матрица 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: Поставяне на мраморите

Поставяне на мраморите
Поставяне на мраморите
Поставяне на мраморите
Поставяне на мраморите
Поставяне на мраморите
Поставяне на мраморите

Това е последният етап от нашия проект. Цялото свързване на веригата е завършено. Сега трябва да поставите мрамора в горната част на дървения часовник. За поставяне на мраморите използвах горещо лепило. За целта използвайте прозрачно бяло лепило. Нанасях горещо лепило във всяка дупка от горната страна и отгоре на светодиодите леко поставях мрамора във всяка дупка. Равномерното добавяне на лепило ще увеличи блясъка на светодиода. Използвах СИН LED за часовника си. Това ми даде най -добрия резултат.

Дайте захранване на часовника. Ако показва време, поздравления !!!

Ти успя!

Наслади се!

Направи го Glow Contest
Направи го Glow Contest
Направи го Glow Contest
Направи го Glow Contest

Вицешампион в конкурса Make it Glow

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