Оглавление:

Бинарные настольные часы: 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 отслеживает время даже при отключении питания. Хотя можно использовать другие часы реального времени, такие как DS1307, DS3231 более точен.

3. Микросхема драйвера светодиода MAX7219CNG (купить на aliexpress.com): Arduino имеет ограниченное количество контактов. Итак, если вы хотите управлять множеством светодиодов, не тратя впустую пины Arduino, MAX7219 - ваш помощник. Он принимает последовательные данные и может независимо управлять 64 светодиодами.

4. Синий светодиод, 20 шт., 5 мм (купить на aliexpress.com): Синий дал мне лучший результат. Можно попробовать с другими цветами.

5. Игровой мрамор на 20 ПК (купить на aliexpress.com): Использовался игровой мрамор стандартного размера. Мрамор должен быть прозрачным, чтобы пропускать свет.

6. Резистор 10K: используется для управления током сегмента микросхемы MAX7219. См. Таблицу, чтобы узнать точное значение для различных сегментов тока.

7. Провода

8. Прототип печатной платы (купить на aliexpress.com): Я использовал прототип печатной платы для микросхемы MAX7219 с базой. Вы также можете разработать свою собственную печатную плату.

Аппаратные средства

1. CNC 3018 PRO Laser Engraver Wood CNC Router Machine (купить на aliexpress.com): Станок Theis DIY CNG использовался для резьбы по дереву для мрамора и светодиодов. Это отличная машина по невысокой цене для любого производителя и любителя.

2. Паяльная станция (купите на aliexpress.com): для проекта требуется некоторая пайка, а хороший паяльник - обязательный инструмент для производителя. 60 Вт - хороший выбор для пайки своими руками.

3. Кусачки (купить на aliexpress.com)

4. Торцевая фреза из карбида с титановым покрытием для ЧПУ (купить на aliexpress.com). Вы также можете попробовать сверло, поставляемое с станком. В этом случае вам следует внести некоторые изменения в дизайн.

Шаг 2: гравировка и резьба

Гравировка и резьба
Гравировка и резьба
Гравировка и резьба
Гравировка и резьба
Гравировка и резьба
Гравировка и резьба

Я взял кусок мягкого клена размером 165X145X18,8 мм для размещения светодиодов часов. Вверху каждого светодиода я помещаю шарик, размер стандартного игрового шарика составляет 15,5 мм в диаметре. Итак, я сделал отверстия 15,7 мм глубиной 7 мм. В центре отверстия сделал 5-миллиметровое сверло для установки светодиода. Весь текст был выполнен глубиной 2 мм. Вы можете увеличить или уменьшить глубину по вашему выбору. Вы также можете попробовать лазерную гравировку текста.

Полный дизайн был сделан Easel из Inventables. Easel - это программная веб-платформа, которая позволяет проектировать и вырезать из одной простой программы, при этом большинство функций можно использовать бесплатно. Вам нужно только войти в систему, создав учетную запись или используя Gmail.

Easel Pro - это облачное программное обеспечение на основе членства, основанное на бесплатном программном обеспечении Easel от Inventables. Easel и Easel Pro сводят к минимуму барьеры, связанные со сложным программным обеспечением для производства продуктов CAD и CAM, что упрощает пользователям производство физических продуктов.

Используя Easel, вы можете экспортировать файл проекта в формат G-кода или напрямую настроить ЧПУ из среды Easel и отправить команду в ЧПУ. В этом случае вам необходимо установить драйвер для мольберта. Вы также можете импортировать ранее созданный G-код в Easel IDE и изменить. Я включил сюда файл дизайна. Вы можете легко изменить дизайн по вашему выбору с помощью Easel.

Шаг 3: шлифование и нанесение лака

Шлифовка и нанесение лака
Шлифовка и нанесение лака
Шлифовка и нанесение лака
Шлифовка и нанесение лака
Шлифовка и нанесение лака
Шлифовка и нанесение лака
Шлифовка и нанесение лака
Шлифовка и нанесение лака

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

Перед нанесением лака необходимо удалить все дефекты и пятна перед нанесением лака. Для этого используйте наждачную бумагу с зернистостью 100 для незавершенных деталей и работайте с текстурой дерева. Аккуратно отшлифуйте, пока изделие не станет гладким. После очистки деревянной детали нанесите лак в хорошо проветриваемом помещении.

Лак защищает древесину от пыли и влаги окружающей среды, но может повлиять на цвет древесины.

Шаг 4: Изготовление схемы

Создание схемы
Создание схемы
Создание схемы
Создание схемы
Создание схемы
Создание схемы
Создание схемы
Создание схемы

Основным компонентом часов является плата микроконтроллера Arduino Pro Mini и модуль DS3231 RTC. Подключение Arduino Pro Mini и модуля RTC очень простое. Вам необходимо подключить вывод SDA модуля RTC к выводу SDA на Arduino, а вывод SCL модуля RTC - к выводу SCL на Arduino. Контакты SDA и SCL на самом деле являются контактами A4 и A5 Arduino соответственно. Вам также необходимо сделать общее заземление между модулями Arduino и RTC. Я использовал перемычки для подключения.

Связь между Arduino и DS3231 RTC:

Ардуино DS3231
SCL (A5) SCL
ПДД (A4) ПДД
VCC
GND GND

Для отображения часа, минуты и секунды двоичным часам требовалось 20 светодиодов. Если вы хотите показать дату, требуется больше. Плата Arduino имеет ограничение контактов GPIO. Итак, я использовал микросхему драйвера светодиодов MAX7219CNG для управления тоннами светодиодов, используя всего три контакта на плате Arduino.

Микросхема драйвера MAX7219 способна управлять 64 отдельными светодиодами, используя только 3 провода для связи с Arduino, и, более того, мы можем последовательно подключить несколько драйверов и матриц и по-прежнему использовать те же 3 провода.

64 светодиода управляются 16 выходными контактами ИС. Вопрос теперь в том, как это возможно. Что ж, максимальное количество светодиодов, которые загораются одновременно, на самом деле восемь. Светодиоды расположены в виде набора 8 × 8 строк и столбцов. Таким образом, MAX7219 активирует каждый столбец на очень короткий период времени и одновременно управляет каждой строкой. Таким образом, при быстром переключении между столбцами и строками человеческий глаз будет замечать только непрерывный свет.

VCC и GND MAX7219 идут к контактам 5V и GND Arduino, а три других контакта, DIN, CLK и CS, идут к любому цифровому контакту платы Arduino. Если мы хотим подключить более одного модуля, мы просто подключаем выходные контакты предыдущей коммутационной платы к входным контактам нового модуля. На самом деле все эти выводы одинаковы, за исключением того, что вывод DOUT предыдущей платы идет на вывод DIN новой платы.

Связь между Arduino и MAX7219CNG:

Ардуино MAX7219
D12 DIN
D11 CLK
D10 НАГРУЗКА
GND GND

Шаг 5: Загрузка программы

Загрузка программы
Загрузка программы

Вся программа написана в среде Arduino. Для скетча использовались две внешние библиотеки. Один предназначен для модуля RTC, а другой - для микросхемы MAX7219. Скачайте библиотеки по ссылке и добавьте в 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, контакт 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, row, col, true); // 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 menu = 0, вверх, вниз; int hours_one; int hours_ten; int minutes_one; int minutes_ten; int seconds_one; int seconds_ten; void loop () {если (digitalRead (5) == 0) {задержка (300); меню ++; если (меню> 3) меню = 0; } если (меню == 0) {dt = clock.getDateTime (); часы = dt.hour; минуты = dt.minute; секунды = dt.second; если (часы> 12) часы = часы - 12; если (часы == 0) часы = 1; hours_one = часы% 10; hours_ten = часов / 10; minutes_one = минут% 10; минут_тен = минут / 10; seconds_one = секунд% 10; секунд_тен = секунд / 10; lc.setRow (0, 0, число [секунды_one]); lc.setRow (0, 1, число [секунд_десять]); lc.setRow (0, 2, число [несколько_ минут]); lc.setRow (0, 3, число [десять_ минут]); lc.setRow (0, 4, число [hours_one]); lc.setRow (0, 5, число [часы_день]); } если (меню == 1) {если (digitalRead (6) == 0) {задержка (300); часы ++; если (часы> = 24) часы = 0; } если (digitalRead (7) == 0) {задержка (300); часы--; если (часы = 60) минут = 0; } если (digitalRead (7) == 0) {задержка (300); минут--; если (минут <0) минут = 0; } minutes_one = минут% 10; минут_тен = минут / 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 (menu == 3) {clock.setDateTime (2020, 4, 13, часы, минуты, 01); меню = 0; } //lc.setLed(0, row, col, false); //lc.setLed(0, row, col, true); //lc.setColumn(0, col, B10100000); //lc.setRow(0, 4, B11111111); //lc.setRow(0, row, (byte) 0); //lc.setColumn(0, col, (byte) 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 и VCC микросхемы MAX7219, и этот резистор контролирует ток на выводах сегмента. Я использовал резистор 10 кОм, чтобы поддерживать 20 мА на каждом выводе сегмента.

Шаг 7: Подключение светодиодов

Подключение светодиодов
Подключение светодиодов
Подключение светодиодов
Подключение светодиодов
Подключение светодиодов
Подключение светодиодов

На этом этапе я подключил все светодиоды в матричном формате строка-столбец. Мне нужно было использовать дополнительные перемычки для подключения светодиодов, но вы можете выполнить подключение без помощи дополнительных проводов, если провода светодиодов достаточно длинные, чтобы соприкасаться друг с другом.

В этой конфигурации резистор не требуется, потому что MAX7219 позаботится о токе. Ваша задача - выбрать правильное значение для резистора ISET и подтянуть вывод ISET с этим резистором. Перед размещением и подключением светодиодов я предлагаю вам проверить каждый светодиод. Потому что установка плохого светодиода убьет много времени. На следующем этапе мы подключим провода строк и столбцов к MAX ic.

Шаг 8: Подключение печатной платы со светодиодами

Подключение печатной платы со светодиодами
Подключение печатной платы со светодиодами
Подключение печатной платы со светодиодами
Подключение печатной платы со светодиодами
Подключение печатной платы со светодиодами
Подключение печатной платы со светодиодами

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

Светодиодная матрица MAX7219CNG
ROW0 DIGIT0
ROW1 ЦИФРА 1
ROW2 ЦИФРА 2
ROW3 ЦИФРА 3
COLUMN0 SEGA
COLUMN1 SEGB
COLUMN2 SEGC
COLUMN3 SEGD
COLUMN4 SEGE
COLUMN5 SEGF

ROW0-> Самый верхний ряд

COLUMN0 -> Крайний правый столбец (SS COLUMN)

После подключения вам необходимо зафиксировать плату PCB и Arduino деревянным элементом, чтобы избежать разрыва соединения. Я использовал горячий клей для фиксации всех цепей на месте. Во избежание короткого замыкания используйте большое количество клея, чтобы скрыть паяное соединение в нижней части печатной платы.

Чтобы часы можно было использовать, вам нужно оставить возможность корректировать время, когда это необходимо. Я добавил три кнопочных переключателя для регулировки времени. Один для изменения параметра и два для увеличения и уменьшения часа и минуты. Кнопки расположены в правом верхнем углу, чтобы к ним было легко получить доступ.

Шаг 9: Размещение шариков

Размещение шариков
Размещение шариков
Размещение шариков
Размещение шариков
Размещение шариков
Размещение шариков

Это заключительный этап нашего проекта. Вся схема подключения завершена. Теперь вам нужно разместить мрамор на верхней стороне деревянных часов. Для размещения шариков я использовал горячий клей. Используйте для этого прозрачный белый клей-карандаш. Я нанес горячий клей в каждое отверстие сверху и поверх светодиодов аккуратно поместил шарик в каждое отверстие. Равномерное добавление клея увеличит свечение светодиода. Я использовал СИНИЙ светодиод для своих часов. Это дало мне лучший результат.

Дайте энергию часам. Если время показывает, то Поздравляю !!!

Ты сделал это!

Наслаждаться!

Конкурс Make it Glow
Конкурс Make it Glow
Конкурс Make it Glow
Конкурс Make it Glow

Финалист конкурса Make it Glow

Рекомендуемые: