Цифровые часы совместимые с ардуино своими руками

Урок 19. RTC часы с будильником

В предыдущем уроке 18, мы подключили Trema RTC часы реального времени с Trema кнопками и LCD I2C дисплеем к arduino Uno, написали скетч, для установки времени при помощи кнопок.

Теперь расширим функционал получившихся часов, добавив к ним функцию будильника. А код, который будет выполняться при срабатывании будильника выведем в отдельную функцию «Func_alarm_action()», чтоб Вы смогли легко его найти и изменить. Например, при срабатывании будильника, открывать жалюзи, включать свет или музыку, включить через реле тостер или кофе-машину и т.д.

Нам понадобится:

Для реализации проекта нам необходимо установить библиотеки:

  • Библиотека iarduino_RTC (для подключения RTC часов реального времени DS1302, DS1307, DS3231)
  • Библиотека LiquidCrystal_I2C_V112 (для подключения дисплеев LCD1602 по шине I2C)

О том как устанавливать библиотеки, Вы можете ознакомиться на странице Wiki — Установка библиотек в Arduino IDE.

Видео:

Схема подключения:

Подключение модулей RTC и LCD, данного урока, осуществляется к аппаратным выводам SDA, и SCL.

RTC модуль Trema на базе чипа DS1307 / LCD дисплей на базе чипа LCD1602Arduino Uno
GND GND
Vcc +5V
SDA (Serial DAta) A4
SCL (Serial CLock) A5

Подключение кнопок: кнопка «SET» к выводу 2, кнопка «UP» к выводу 3 и копка «DOWN» к выводу 4.

Зуммер подключаем к выводу 5, а светодиод к выводу 13 (дублируя встроенный в arduino).

Алгоритм работы кнопок следующий:

  • В режиме вывода даты/времени/будильника (обычный режим):
    • Кратковременное нажатие на кнопку SET переключает режимы вывода: даты/времени/будильника
    • Удержание кнопки SET переводит часы в режим установки даты/времени/будильника (зависит от того, каким был режим вывода)
    • Кнопки UP и DOWN, в режиме вывода будильника, активируют/деактивируют будильник.Если будильник активен, то в правом верхнем углу экрана появляется значок будильника.
  • В режиме установки даты/времени/будильника:
    • Кратковременное нажатие на кнопку SET — переход между устанавливаемыми параметрами (сек, мин, час, дни, мес, год, д.н.)
    • Удержание кнопки SET выводит часы из режима установки
    • Каждое нажатие на кнопку UP увеличивает значение устанавливаемого параметра даты или времени
    • Каждое нажатие на кнопку DOWN уменьшает значение устанавливаемого параметра даты или времени
  • Во время работы сигнализации будильника:
    • Удержание любой кнопки в течении 1 секунды, отключает сигнализацию (без выполнения их действий, в любом режиме)

Код программы:

Работа кнопок, вывод и установка времени, описывались в уроке 18, в этом уроке рассмотрим работу будильника:

В начале кода добавляем две константы: PIN_alarm_TONE и PIN_alarm_LED, указывающие номера выводов зуммера и светодиода.
А также добавляем четыре переменные: VAR_alarm_MIN, VAR_alarm_HOUR, VAR_alarm_FLAG1 и VAR_alarm_FLAG2.

  • VAR_alarm_MIN — переменная в которой хранится значение минут, при котором сработает будильник (по умолчанию 0 минут)
  • VAR_alarm_HOUR — переменная в которой хранится значение часов, при котором сработает будильник (по умолчанию 0 часов)
  • VAR_alarm_FLAG1 — флаг разрешения работы будильника, false — не активен, true — активен (по умолчанию true — активен)
  • VAR_alarm_FLAG2 — флаг указывающий на то, что будильник сработал «сигнализация» (по умолчанию false — не сработал)

Последняя переменная которую мы добавили — MAS_alarm_SYM, она содержит изображение символа будильника для вывода на дисплей.

В функции loop, после вывода информации на дисплей, добавляем проверку: не пора ли включить будильник?

void loop(){ if(millis()%1000==0){ // если прошла 1 секунда … …
// проверка будильника if(VAR_alarm_FLAG1){ // если будильник включён if(time.seconds==00){ // если в текущем времени 0 секунд if(time.minutes==VAR_alarm_MIN){ // если совпали минуты if(time.Hours==VAR_alarm_HOUR){ // если совпали часы VAR_alarm_FLAG2=true; // устанавливаем флаг разрешающий совершение действий будильника (сигнализация) } } } }else{VAR_alarm_FLAG2=false;} // если будильник выключен, то сбрасываем флаг разрешающий совершение действий будильника (сигнализация) if(VAR_alarm_FLAG2){Func_alarm_action();}// запускаем действия будильника } Func_buttons_control(); // передаём управление кнопкам
}

  • если будильник включён (установлен флаг VAR_alarm_FLAG1)
  • если в текущем времени 0 секунд (time.seconds==00)
  • если количество минут текущего времени (time.minutes) равно количеству минут установленных в будильнике (VAR_alarm_MIN)
  • если количество часов текущего времени (time.Hours) равно количеству часов установленных в будильнике (VAR_alarm_HOUR)то устанавливаем флаг VAR_alarm_FLAG2 (указывающий на то, что будильник сработал)
  • если установлен флаг VAR_alarm_FLAG2, то запускаем действия будильника (действия описаны в функции Func_alarm_action)Так как проверка будильника и запуск функции Func_alarm_action() находится внутри условия if(millis()%1000==0){…}, то действия будильника будут выполняться один раз в секунду.

Теперь всё готово для создания полного кода:

// Подключаем библиотеки:
#include // подключаем библиотеку для работы с шиной I2C
#include // подключаем библиотеку для работы с LCD дисплеем
#include // подключаем библиотеку для работы с RTC модулем
LiquidCrystal_I2C lcd(0x27,16,2); // объявляем переменную для работы с LCD дисплеем, указывая параметры дисплея (адрес I2C = 0x27, количество столбцов = 16, количество строк = 2)
iarduino_RTC time(RTC_DS1307); // объявляем переменную для работы с RTC модулем, указывая название модуля
// Объявляем переменные и константы:
const uint8_t PIN_button_SET = 2; // указываем номер вывода arduino, к которому подключена кнопка SET
const uint8_t PIN_button_UP = 3; // указываем номер вывода arduino, к которому подключена кнопка UP
const uint8_t PIN_button_DOWN = 4; // указываем номер вывода arduino, к которому подключена кнопка DOWN
const uint8_t PIN_alarm_TONE = 5; // указываем номер вывода arduino, к которому подключён зуммер будильника
const uint8_t PIN_alarm_LED = 13; // указываем номер вывода arduino, к которому подключён светодиод uint8_t VAR_mode_SHOW = 1; // режим вывода: 1-время 2-дата 3-время_будильника uint8_t VAR_mode_SET = 0; // режим установки времени: 0-нет 1-сек 2-мин 3-час 4-день 5-мес 6-год 7-день_недели 8-мин_будильника 9-час_будильника uint8_t VAR_alarm_MIN = 0; // будильник минуты uint8_t VAR_alarm_HOUR = 0; // будильник часы bool VAR_alarm_FLAG1 = true; // будильник разрешение работы bool VAR_alarm_FLAG2 = false; // будильник совершение действий (сигнализация) byte MAS_alarm_SYM[8]={B00000,B01110,B10101,B10111,B10001,B01110,B00000,B00000}; // символ будильника для отображения на дисплее
void setup() { pinMode(PIN_button_SET, INPUT); // устанавливаем режим работы вывода PIN_button_SET, как «вход» pinMode(PIN_button_UP, INPUT); // устанавливаем режим работы вывода PIN_button_UP, как «вход» pinMode(PIN_button_DOWN, INPUT); // устанавливаем режим работы вывода PIN_button_DOWN, как «вход» pinMode(PIN_alarm_TONE, OUTPUT); // устанавливаем режим работы вывода PIN_alarm_TONE, как «выход» pinMode(PIN_alarm_LED, OUTPUT); // устанавливаем режим работы вывода PIN_alarm_LED, как «выход» digitalWrite(PIN_alarm_TONE, LOW); // устанавливаем уровень логического «0» на выводе PIN_alarm_TONE digitalWrite(PIN_alarm_LED, LOW); // устанавливаем уровень логического «0» на выводе PIN_alarm_LED delay(300); // ждем 300мс time.begin(); // инициируем RTC модуль lcd.init(); // инициируем LCD дисплей lcd.backlight(); // включаем подсветку LCD дисплея lcd.createChar(1, MAS_alarm_SYM); // загружаем символ будильника под номером 1
}
void loop(){ if(millis()%1000==0){ // если прошла 1 секунда if(VAR_mode_SET==0){ // если дата/время/будильник выводятся, а не устанавливаются lcd.setCursor(0, 0); // устанавливаем курсор в позицию: столбец 0, строка 0 lcd.print(«iArduino.ru»); // выводим текст «iArduino.ru» lcd.setCursor(15, 0); // устанавливаем курсор в позицию: столбец 15, строка 0 lcd.print(VAR_alarm_FLAG1?»1″:» «); // выводим значёк будильника }else{ // если дата/время/будильник устанавливаются, а не выводятся lcd.setCursor(0, 0); // устанавливаем курсор в позицию: столбец 0, строка 0 if(VAR_mode_SHOW==1){lcd.print(«Set time:» );} if(VAR_mode_SHOW==2){lcd.print(«Set date:» );} if(VAR_mode_SHOW==3){lcd.print(«Set alarm:»);} } if(VAR_mode_SHOW==1){ // если установлен режим вывода времени lcd.setCursor(0, 1); // устанавливаем курсор в позицию: столбец 0, строка 1 lcd.print(time.gettime(«H:i:s»)); // выводим время } if(VAR_mode_SHOW==2){ // если установлен режим вывода даты lcd.setCursor(0, 1); // устанавливаем курсор в позицию: столбец 0, строка 1 lcd.print(time.gettime(«d-m-Y D»)); // выводим дату } if(VAR_mode_SHOW==3){ // если установлен режим вывода будильника lcd.setCursor(0, 1); // устанавливаем курсор в позицию: столбец 0, строка 1 if(VAR_mode_SET==0){lcd.print(«Alarm «);} time.gettime(); // обновляем значение переменной time.seconds, для «мигания» устанавливаемым параметром будильника if(VAR_mode_SET==9&&time.seconds%2){lcd.print(» «);}else{if(VAR_alarm_HOUR

Источник: https://lesson.iarduino.ru/page/urok-19-rtc-chasy-s-budilnikom/

Часы на ардуино с модулем реального времени

Решил сделать самодельные электронные часы на светодиодной ленте на ардуино с модулем реального времени, фото изготовления и подробное описание прилагается.

Использованы материалы:

  • — Диодная лента на микросхемах ws2811 (RGB, питание 12в) 5 метров — 700 рублей;
  • — ардуино нано — 200 рублей;
  • — датчик освещенности — 28 рублей;
  • — модуль реального времени RTC DS1307 AT24C32 — 37 рублей;
  • — преобразователь питания LM2596 — 41 рубль;
  • — блок питания 12 в 1А ;
  • — датчик температуры DALLAS DS18B20 — 48 рублей;
  • — кусок макетной платы, две таковые кнопки, провода.
  • — картон жесткий.
  • — ватман (2 шт).
  • — двусторонний скотч (3М).
  • — обычный скотч.
  • — листы вспененного полиэтилена (взял из защитных упаковок оборудования).

Далее изготовление часов на ардуино.

1. Установка шрифта в MS Officce, и печать символа 8 на весь размер листа А4. Я сделал это в Visio. Внутренние полосы — границы для разметки под куски диодной ленты. Внешние границы — контуры цифр.

2. Нанесение границ кусков диодной ленты на картон

3. По следующему шаблону делаем разметку на вспененном полиэтилене, толщина 15 мм, и далее по разметке вырезаем.

Для резки использовал самодельный станок из трех деревяшек, листа ДСП и натянутой вертикально нихромовой проволоки. Запитал регулируемым блоком питания.

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

Далее приклеил контуры цифр к картонке с диодной лентой. Вверху датчик освещенности.

Далее сделал из ватмана внешний корпус, хотел сделать из фанеры, деревянных реек и тонированного стекла или акрила — но пока ни времени ни возможности нет.

Основную схему вынес в отдельную коробочку, так как такой корпус хлипковат.

В итоге к часам подходит кабель, в котором:

  • +12В — на питание диодной ленты;
  • +5В — на питание модуля освещенности;
  • 0 — общий провод (минус);
  • выход данных с ардуино на диодную ленту;
  • выход сигнала с датчика освещенности на ардуино;

Схема подключения ардуино.

Преобразователь питания, ардуино нано и модуль часов реального времени.

Плата коммутации с кнопками коррекции.

Алгоритм работы следующий: Часы показывают время, дату и температуру в помещении: первые 15 секунд — время, затем 3 секунды — дату, еще 3 секунды — температуру, затем снова время. С 45-й секунды вновь дата 3 секунды, температура 3 секунды и снова время.

Когда в помещении светло — яркость отображения высокая, когда темно — снижается до минимального.

Источник: http://led-lampu.ru/chasy-na-arduino-s-modulem-realnogo-vremeni.html

Большие ЖК часы на ардуино — DRIVE2

Давно хотел сделать электронные часы на диодной ленте, и вот как-то наткнулся в инете на статью и сразу захотел реализовать — подкупила относительная простота и малое количество проводов — накосячить будет сложно.

Там же, в статье, указаны необходимые компоненты с ссылками на алиэкспресс, по которым я все сразу и заказал и стал изучать тему в ожидании посылки.

Как оказалось, слегка поторопился, некоторые элементы можно было заменить, об этом ниже, в недочетах

Компоненты электроники:

— Диодная лента на микросхемах ws2811 (RGB, питание 12в) 5 метров — 700 рублей;— ардуино нано — 200 рублей;— датчик освещенности — 28 рублей;— модуль реального времени RTC DS1307 AT24C32 — 37 рублей;— преобразователь питания LM2596 — 41 рубль;— блок питания 12 в 1А — нашел в закромах;— датчик температуры DALLAS DS18B20 — 48 рублей;

Читайте также:  Esr-тестер: что это такое и как он облегчает жизнь - arduino+

— кусок макетной платы, две таковые кнопки, провода — нашел в закромах.

Для изготовления часов понадобилось так же:— картон жесткий (изначально хотел фанеру)— ватман (2 шт)— двусторонний скотч (3М)— обычный скотч

— листы вспененного полиэтилена (взял из защитных упаковок оборудования)

Изготовление часов.
1. Установка шрифта в MS Officce, и печать символа 8 на весь размер листа А4. Я сделал это в Visio

Полный размер

Внутренние полосы — границы для разметки под куски диодной ленты. Внешние границы — контуры цифр.

2. Нанесение границ кусков диодной ленты на картон

Полный размер

Прикладываем, фиксируем и обводим внутренние контуры. И так четыре символа

3. По следующему шаблону делаем разметку на вспененном полиэтилене, толщина 15 мм, и далее по разметке вырезаем.

Полный размер

фото процесса не сохранилось, общий итог примерно такой

Для резки использовал самодельный станок из трех деревяшек, листа ДСП и натянутой вертикально нихромовой проволоки. Запитал регулируемым блоком питания.

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

5. Далее приклеил контуры цифр к картонке с диодной лентой:

Полный размер

примерно так))). Вверху справа датчик освещенности

Далее сделал из ватмана внешний корпус, хотел сделать из фанеры, деревянных реек и тонированного стекла или акрила — но пока ни времени ни возможности нет.

ЭлектроникаОсновную схему вынес в отдельную коробочку, так как такой корпус хлипковат. В итоге к часам подходит кабель, в котором:+12В — на питание диодной ленты;+5В — на питание модуля освещенности;0 — общий провод (минус);выход данных с ардуино на диодную ленту;

выход сигнала с датчика освещенности на ардуино;

Схема соединений:

На деле все получилось не так красиво, но вроде работает:

Полный размер

Преобразователь питания, ардуино нано и модуль часов реального времени

Полный размер

плата коммутации с кнопками коррекции

Алгоритм работы:Часы показывают время, дату и температуру в помещении: первые 15 секунд — время, затем 3 секунды — дату, еще 3 секунды — температуру, затем снова время. С 45-й секунды вновь дата 3 секунды, температура 3 секунды и снова время.

Когда в помещении светло — яркость отображения высокая, когда темно — снижается до минимального.

Скетч
yadi.sk/d/apVZ5DBw3XYTZoСписок скетчей:1. clock_date (02.01.2017) — отображает время, дату и температуру, слегка подтормаживает при смене показаний2. clock_temp (09.09.2017) — отображает время и температуру, смена каждые 5 секунд3.

new_clock (04.01.2017) — отображает просто время, анимированная смена цвета каждую минуту4. new_clock_без кнопок (09.09.2017) — то же, что и п. 3, только убрал кнопки корректировки времени5. clock_temp_animation (09.09.2017) — скетч из п.

2 с анимацией как в п.3.

6. clock_temp_x2_animation (25.11.2017) — скетч из п.5 с двумя датчиками температуры: 5 секунд время, 2 секунды — температура внутри, 2 секунды — температура снаружи (наружный отображает отрицательную температуру)

в скетче возможны ошибки — переделывал много раз

для корректировки времени в архиве отдельный скетч, иначе выставить дату проблематично

Недочеты1. Модуль реального времени не очень точный, за месяц уходят примерно на 1 минуту. Сейчас заказал другой — DS3231.2.

Часы получились большие, если взять другую диодную ленту (один диод на пиксель, питание 5 В, ws2812) размер можно подобрать другой, изменив в скетче общее количество диодов и матрицу символов.3.

В пасмурную погоду часы начинают мерцать — нужно точнее подобрать границу «темно/светло», настраивая датчик освещенности.P.S.

: Последние доработки:— заменил модуль часов реального времени на DS3231 — ходят очень точно;— перенес всю электронику в сами часы, теперь все выглядит аккуратнее, единственное — сбоку просвечивают все индикаторы этих модулей (зеленые, синие и красные) — полностью заглушить свечение не получилось, а выпаивать как-то боязно — все очень мелкое;

— дополнил часы вторым датчиком температуры, который вывел на улицу — очень удобно;

Источники
instructables.info/bolshi…ennyie-chasyi-na-arduino/
arduino.ru/forum/programm…e/pomogite-dopilit-sketch

Источник: https://www.drive2.ru/b/2982605/next

Часы с LED-индикаторами на Arduino | Каталог самоделок

После создания множества прототипов Arduino на макетной плате, я решил сделать что-то полезное, то, что можно использовать дома.

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

Одним из критериев, который помог быстрее насобирать необходимые компоненты, стала доступность деталей в местных магазинах и от производителей из Китая, Малайзии.

Arduino часы реального времени (RTC) на 7-сегментных индикаторах

При сборке часов, появилось несколько вариантов настройки на них точного времени. Первый: устанавливать время на Arduino, держа его все время под питанием. Но такой метод не очень целесообразный, так как каждый раз, когда понадобиться установить время, надо будет пустить питание на Arduino.

Вторым вариантом была идея подключения 7-сегментных LED-индикаторов к GPS модулю.

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

Я взял свой карманный навигатор Garmin GPS 60 C, подключил его в последовательный разъем к Arduino и загрузил несколько библиотек GPS, получив таким образом сигнал очень точного времени.

Проблема GPS метода оказалась в том, что, поскольку я живу центре города, то каменные джунгли непроглядными высотками окружают мой дом, и понадобилось бы поставить внешнюю GPS антенну снаружи окна, чтобы получить GPS сигнал с чистого неба. Без спутникового покрытия, никакое устройство GPS не в состоянии получить сигнал с синхронизацией по времени. Или часы должны быть на окне, либо надо было вынести GPS-антенну и проложить 7-метровый кабель до них.

Третий способ настройки часов оказался наилучшим. Заключается он в работе Arduino совместно с DS1307 часами реального времени (RTC). Питание на них идет от таблеточной 3-вольтовой батарейки, которая сохраняет настройки, когда устройство выключено и во время отсоединения микроконтроллера.

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

Необходимыми деталями являются:

  1. плата Arduino для макетирования и загрузки скетча в микроконтроллер;
  2. микроконтроллер ATmega328P для работы часов;
  3. четыре красных 7-сегментных LED-индикатора (или другие, более холодного цвета, которые найдете на местном рынке);
  4. часы реального времени DS1307;
  5. кварцевый резонатор на 32,768 кГц;
  6. держатель для батарейки таблеточного размера CR2025 или CR2032;
  7. четыре микросхемы 74HC595 сдвигающего регистра для управления 7-сегментными LED-индикаторами;
  8. резисторы 220 Ом по 0.25 Вт;
  9. однорядные штыревые разъёмы;
  10. гнезда для интегральных микросхем (IC);
  11. соединительные провода.

Если нет навыков в изготовлении печатных плат, то рекомендую использовать паечную макетную плату (текстолитовая пластинка с множеством отверстий для закрепления на ней пайкой компонентов, которую ошибочно называют монтажной платой) и припаять на неё все IC гнезда микросхем и штыревые разъёмы. Благодаря таким быстроразъемным контактам все 7-сегментные LED-индикаторы и интегральные микросхемы могут быть легко заменены при необходимости.

Поскольку размер макетной платы весьма ограничен, то удалось разместить на ней только 35-миллиметровые LED-индикаторы, ведь должно было ещё остаться место для держателя таблеточной батарейки.

Хотелось бы поставить гораздо большие 7-сегментные индикаторы, но более крупным из них надо повышенное напряжение, свыше 5 В, и уже потребовалось таки усложнить схему двойными цепями питания.

Иметь дело со стабилизатором на два выходных напряжения не хочется, лучше сосредоточиться на более простой версии цифровых часов.

Разделительные керамические конденсаторы 100 нФ на ножке питания Vcc каждого регистра 74HC595 добавлены, чтобы предотвратить любые проблемы с низкочастотными помехами.

Собираемые цифровые часы используют только 5 пинов Arduino:

  • 3 цифровых выхода для сдвигающих регистров 74HC595;
  • 2 аналоговых выхода для часов реального времени, подключенных с использованием соединения I2C.

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

Вот некоторые идеи доработки часов:

  1. Чередование отображения на индикаторах часов/минут и минут/секунд;
  2. Проигрывание мелодии каждый час;
  3. Установка датчика LM35, и использование часов в качестве термометра;
  4. Функция утреннего будильника;
  5. Даже управление другими электрическими приборами с помощью электромеханического реле, включающегося в соответствии с определёнными по времени событиями или показаниями подключенных датчиков.

Так как четыре индикатора довольно большие и яркие, их можно использовать также для отображения буквенной информации.

Загрузка скетча на цифровые часы

После того, как я припаял первую цифру 7 сегментного LED-индикатора с общим катодом к сдвигающему регистру 74HC595, открылась первая проблема.

Я использовал только один резистор 220 Ом, соединенный с общим катодом LED-индикатора, чтобы сберечь резисторы, и обнаружил, что когда включается число 8, то все сегменты загораются очень тускло. Это нормально для прототипа, но не годится для действующих цифровых часов.

Было бы очень неприятно иметь часы с по-разному светящимися цифрами. Так что пришлось разорвать отдельные провода и раздобыть побольше резисторов на 220 Ом, чтобы подключить их к каждому из семи сегментов LED-индикатора.

Подключение 7-сегментных индикаторов к регистрам 74HC595

Вторая проблема была в том, что я забыл выделить место для двух светодиодов диаметром 5 мм, в качестве мигающего двоеточия индикатора секунд. А индикатор третьей цифры уже был припаян.

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

Вот несколько фотографий собранного, работающего устройства. Теперь мне всего лишь нужно что-то вроде акрила, чтобы закрепить макетную плату и скрыть часы Arduino в общем корпусе.

Arduino часы со светодиодным индикатором секунд голубого цвета

Arduino часы со снятыми 7-сегментными LED-индикаторами

Вид сзади часов с выносной платой Arduino

Эти часы запитаны от выносной платы Arduino в версии с FTDI кабелем и гнездом DC постоянного тока.

Arduino часы с датчиком DHT11

Сборка Arduino часов завершена после установки DHT11 датчика влажности и температуры.

Источник: https://volt-index.ru/high-tech/chasyi-s-led-indikatorami-na-arduino.html

Большие настенные часы с автояркостью на Arduino — Инструкции

Понадобилось как-то сделать большие настенные часы с автоматической яркостью.

Такие часы отлично подойдут для больших помещений, например холл офиса или большая квартира.

Сделать такие большие настенные часы не представляет серьёзных сложностей при помощи данной инструкции.

Для оценки размера часов можно принять тот факт, что один сегмент часов будет размером с бумагу формата А4, что позволит легко использовать рамки для фотографий соответствующего размера.

Читайте также:  Управление движением робота с одного джойстика

Шаг 1. Составные части больших настенных часов

Провода, припой, паяльник, лента светодиоднаяArduino NanoDC-DC преобразователь LM2596
4 метра светодиодной ленты WS2811датчик светачасы реального времени DS3231
микропереключатели

Что я использовал для этого проекта :

Электроника :

Итого стоимость электроники : 17.78 доллара.

Дополнительно :

  1. Термоусадочная трубка
  2. Макетные платы под пайку
  3. 3микропереключателя
  4. Припой
  5. Флюс
  6. UTP кабель (расплетался на провода и использовался для внутренниз соединений, можно взять МГТФ или другой)
  7. LCD шрифт (http://www.dafont.com/lcd-lcd-mono.font)
  8. Картон
  9. Лист полистирола, можно заменить другим видом пластика который будет под рукой.

Разные инструменты.

Шаг 2. Подготовка — шаблон цифр

печатаем шаблонвырезаем сегменты

  1. Скачайте и установите шрифт на LCD  (http://www.dafont.com/lcd-lcd-mono.

    font)

  2. Откройте ворд или другой текстовый редактор и создайте шаблон как на картинке со следующими параметрами:
    • размер шрифта ~800,
    • белый шрифт с черными контурами,
    • серые прямоугольники по размеру светодиодной ленты
  3. Отпечатайте шаблон и вырежьте ножом серые прямоугольники (второе фото.

Шаг 3. Режем картон и светодиодные ленты

Истпользуя наш шаблон для цифр вырезаем картон по размерам (не забудьте оставить место для точек между часами и минутами).

Если ваша лента светодиодов идет с коннекторами отпаяйте коннекторы и порежьте ленту по три светодиода.

Шаг 4. Прикрепляем ленты

Переведенные контурыприкрепленные ленты

Используя обведенный шаблон крепим ленты к картону как показано на рисунке.

Шаг 5. Паяем светодиодные ленты

Порядок пайки одной цифрыобщий вид запаянных лент

Теперь начнем долгую процедуру пайки.

Придерживайтесь порядка пайки, показанного на картинке. Паять следует с левой середины цифры, затем вверх, назад, вниз и направо. Потом переход к новой цифре. Для средних точек я использовал еденичные отрезки ленты, прикрывая серединки кусочками изоленты.

Я использовал следующие цвета для проводов

  • Синий для земли
  • Зеленый для данных
  • Красный для Vcc (12v)

Шаг 6. Соединяем ардуино и модули на макетной плате

Таблица соединенийОбщий вид на макетке

На таблице схема соединений проводов и модулей, на следующем фото общий вид на беспаечной макетной плате.

Шаг 7. Тестируем светодиодную ленту

Прежде чем загружать приведенный ниже скетч в ардуино не забудьте включить библиотеку FastLED.

Если все настроено как надо светодиоды начнут циклически менять свой цвет. Если что то пошло не так проверьте правильность соединений.

Сам скетч можно скачать тут.

Шаг 8. Программируем часы

Немного повозившись, мне удалось получить часы, полностью удовлетворяющие моим потребностям. Я уверен что вам удастся сделать лучше моего.

Код хорошо прокоментирован и вам не составит труда в нём разобраться, сообщения отладки так-же прокоментированы очень хорошо.

Если вам нужно поменять используемый цвет настенных часов вам необходимо поменять переменную на строчке 22 ( int ledColor = 0x0000FF; // Color used (in hex)). Вы можете найти список цветов и их коды в hex на странице : https://github.com/FastLED/FastLED/wiki/Pixel-refe…

Если у вас возникли проблемы при загрузке, используйте зеркало :http://bit.ly/1Qjtgg0

Мой итоговый скетч можно скачать тут.

Шаг 9. Делаем цифры используя полистирол

Основание резакаРабочий орган резакаОбщий вид резака
Результат работы резака

Разрежьте каждый сегмент в шаблоне, напечатаетанного в начале.
Полистирол можно разрезать острым ножом, что довольно трудно, либо нехитрым приспособлением из нихромовой проволоки или гитарной струны и нескольких отрезков ОСБ-плиты.

Вы можете видеть, как это сделал я  в изображениях выше.

Для того, чтобы запитать резак я использовал 12v  блок питания.

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

Шаг 10. Приклеиваем цифры и закрываем всё рассеивателем. Итоговые большие настенные часы

Свечение днемСвечение ночью

После вырезания всех четырех цифр и точек настенных часов приклеиваем их всех на картон вместе со светодиодными лентами (для упрощения процесса я использовал двустороннюю клейкую ленту)

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

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

Эти часы получились очень эффектными и притягивающими взгляд. Я думаю что такие большие настенные часы отлично украсят множество помещений.

Источник: https://instructables.info/bolshie-nastennyie-chasyi-na-arduino/

Часы реального времени на RTC модулях Ардуино DS1302, DS1307, DS3231

Во многих проектах Ардуино требуется отслеживать и фиксировать время наступления тех или иных событий.

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

В этой статье мы поговорим о наиболее часто встречающихся модулях RTC DS1307, DS1302, DS3231, которые можно использовать с платой Arduino.

Модули часов реального времени в проектах Arduino

Модуль часов представляет собой небольшую плату, содержащей, как правило, одну из микросхем DS1307, DS1302, DS3231.Кроме этого, на плате практически можно найти механизм установки батарейки питания.

Такие платы часто  применяется для учета времени, даты, дня недели и других хронометрических параметров. Модули работают от автономного питания – батареек, аккумуляторов, и продолжают проводить отсчет, даже если на Ардуино отключилось питание.

Наиболее распространенными моделями часов являются DS1302, DS1307, DS3231. Они основаны на подключаемом к Arduino модуле RTC (часы реального времени).

Часы ведут отсчет в единицах, которые удобны обычному человеку – минуты, часы, дни недели и другие, в отличие от обычных счетчиков и тактовых генераторов, которые считывают «тики».

В Ардуино имеется специальная функция millis(), которая также может считывать различные временные интервалы. Но основным недостатком этой функции является сбрасывание в ноль при включении таймера.

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

Электронная схема включает в себя микросхему, источник питания, кварцевый резонатор и резисторы. Кварцевый резонатор работает на частоте 32768 Гц, которая является удобной для обычного двоичного счетчика. В схеме DS3231 имеется встроенный кварц и термостабилизация, которые позволяют получить значения высокой точности.

Сравнение популярных модулей RTC DS1302, DS1307, DS3231

В этой таблице мы привели список наиболее популярных модулей и их основные характеристики.

Название Частота Точность Поддерживаемые протоколы
DS1307 1 Гц, 4.096 кГц, 8.192 кГц, 32.768 кГц Зависит от кварца – обычно значение достигает 2,5 секунды в сутки, добиться точности выше 1 секунды в сутки невозможно. Также точность зависит от температуры. I2C
DS1302 32.768 кГц 5 секунд в сутки I2C, SPI
DS3231 Два выхода – первый на 32.768 кГц, второй – программируемый от 1 Гц до 8.192 кГц ±2 ppm при температурах от 0С до 40С.±3,5 ppm при температурах от -40С до 85С.Точность измерения температуры – ±3С I2C

Модуль DS1307

DS1307 – это модуль, который используется для отсчета времени. Он собран на основе микросхемы DS1307ZN, питание поступает от литиевой батарейки для реализации автономной работы в течение длительного промежутка времени.

Батарея на плате крепится на обратной стороне. На модуле имеется микросхема AT24C32 — это энергонезависимая память EEPROM на 32 Кбайт. Обе микросхемы связаны между собой шиной I2C.

DS1307 обладает низким энергопотреблением и содержит часы и календарь по 2100 год.

Модуль обладает следующими параметрами:

  • Питание – 5В;
  • Диапазон рабочих температур от -40С до 85С;
  • 56 байт памяти;
  • Литиевая батарейка LIR2032;
  • Реализует 12-ти и 24-х часовые режимы;
  • Поддержка интерфейса I2C.

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

Взаимодействие с другими устройствами и обмен с ними информацией производится с помощью интерфейса I2C с контактов SCL и SDA.

В схеме установлены резисторы, которые позволяют обеспечивать необходимый уровень сигнала. Также на плате имеется специальное место для крепления датчика температуры DS18B20.

Контакты распределены в 2 группы, шаг 2,54 мм. В первой группе контактов находятся следующие выводы:

  • DS – вывод для датчика DS18B20;
  • SCL – линия тактирования;
  • SDA – линия данных;
  • VCC – 5В;
  • GND.

Во второй группе контактов находятся:

  • SQ – 1 МГц;
  • DS ;
  • SCL;
  • SDA;
  • VCC;
  • GND;
  • BAT – вход для литиевой батареи.

Для подключения к плате Ардуино нужны сама плата (в данном случае рассматривается Arduino Uno), модуль часов реального времени RTC DS1307, провода и USB кабель.

Чтобы подключить контроллер к Ардуино, используются 4 пина – VCC, земля, SCL, SDA.. VCC с часов подключается к 5В на Ардуино, земля с часов – к земле с Ардуино, SDA – А4, SCL – А5.

Для начала работы с модулем часов нужно установить библиотеки DS1307RTC, TimeLib и Wire. Можно использовать для работы и RTCLib.

Проверка RTC модуля

При запуске первого кода программа будет считывать данные с модуля раз в секунду.

Сначала можно посмотреть, как поведет себя программа, если достать из модуля батарейку и заменить на другую, пока плата Ардуино не присоединена к компьютеру.

Нужно подождать несколько секунд и вытащить батарею, в итоге часы перезагрузятся. Затем нужно выбрать пример в меню Examples→RTClib→ds1307. Важно правильно поставить скорость передачи на 57600 bps.

При открытии окна серийного монитора должны появиться следующие строки:

Будет показывать время 0:0:0. Это связано с тем, что в часах пропадает питание, и отсчет времени прекратится. По этой причине нельзя вытаскивать батарею во время работы модуля.

Чтобы провести настройку времени на модуле, нужно в скетче найти строку

RTC.adjust(DateTime(__DATE__, __TIME__));

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

Настройка произведена корректно и дополнительно перенастраивать часы реального времени не придется.

Считывание времени. Как только модуль настроен, можно отправлять запросы на получение времени. Для этого используется функция now(), возвращающая объект DateTime, который содержит информацию о времени и дате. Существует ряд библиотек, которые используются для считывания времени.

Например, RTC.year() и RTC.hour() – они отдельно получают информацию о годе и часе. При работе с ними может возникнуть проблема: например, запрос на вывод времени будет сделан в 1:19:59.

Прежде чем показать время 1:20:00, часы выведут время 1:19:00, то есть, по сути, будет потеряна одна минута. Поэтому эти библиотеки целесообразно использовать в случаях, когда считывание происходит нечасто – раз в несколько дней.

Существуют и другие функции для вызова времени, но  если нужно уменьшить или избежать погрешностей, лучше использовать now() и из нее уже вытаскивать необходимые показания.

Пример проекта с i2C модулем часов и дисплеем

Проект представляет собой обычные часы, на индикатор будет выведено точное время, а двоеточие между цифрами будет мигать с интервалом раз в одну секунду.

Для реализации проекта потребуются плата Arduino Uno, цифровой индикатор, часы реального времени (в данном случае вышеописанный модуль ds1307), шилд для подключения (в данном случае используется Troyka Shield), батарейка для часов и провода.

В проекте используется простой четырехразрядный индикатор на микросхеме TM1637. Устройство обладает двухпроводным интерфейсом и обеспечивает 8 уровней яркости монитора. Используется только для показа времени в формате часы:минуты.

Индикатор прост в использовании и легко подключается. Его выгодно применять для проектов, когда не требуется поминутная или почасовая проверка данных.

Для получения более полной информации о времени и дате используются жидкокристаллические мониторы.

Модуль часов подключается к контактам SCL/SDA, которые относятся к шине I2C. Также нужно подключить землю и питание. К Ардуино подключается так же, как описан выше: SDA – A4, SCL – A5, земля с модуля к земле с Ардуино, VCC -5V.

Индикатор подключается просто – выводы с него CLK и DIO подключаются к любым цифровым пинам на плате.

Скетч. Для написания кода используется функция setup, которая позволяет инициализировать часы и индикатор, записать время компиляции. Вывод времени на экран будет выполнен с помощью loop.

#include #include «TM1637.h» #include «DS1307.h» //нужно включить все необходимые библиотеки для работы с часами и дисплеем. char compileTime[] = __TIME__; //время компиляции. #define DISPLAY_CLK_PIN 10 #define DISPLAY_DIO_PIN 11 //номера с выходов Ардуино, к которым присоединяется экран; void setup() { display.set(); display.init(); //подключение и настройка экрана. clock.begin(); //включение часов. byte hour = getInt(compileTime, 0); byte minute = getInt(compileTime, 2); byte second = getInt(compileTime, 4); //получение времени. clock.fillByHMS(hour, minute, second); //подготовка для записывания в модуль времени. clock.setTime(); //происходит запись полученной информации во внутреннюю память, начало считывания времени. } void loop() { int8_t timeDisp[4]; //отображение на каждом из четырех разрядов. clock.getTime();//запрос на получение времени. timeDisp[0] = clock.hour / 10; timeDisp[1] = clock.hour % 10; timeDisp[2] = clock.minute / 10; timeDisp[3] = clock.minute % 10; //различные операции для получения десятков, единиц часов, минут и так далее. display.display(timeDisp); //вывод времени на индикатор display.point(clock.second % 2 ? POINT_ON : POINT_OFF);//включение и выключение двоеточия через секунду. } char getInt(const char* string, int startIndex) { return int(string[startIndex] — '0') * 10 + int(string[startIndex+1]) — '0'; //действия для корректной записи времени в двухзначное целое число. В ином случае на экране будет отображена просто пара символов. }

После этого скетч нужно загрузить и на мониторе будет показано время.

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

В функции setup каждый раз будет рассчитываться время, которое прошло с 00:00:00 до начала компиляции.

Этот хэш будет сравниваться с тем, что хранятся в EEPROM, которые сохраняются при отключении питания.

Для записи и чтения времени в энергонезависимую память или из нее нужно добавить функции EEPROMWriteInt и EEPROMReadInt. Они нужны для проверки совпадения/несовпадения хэша с хэшем, записанным в EEPROM.

Можно усовершенствовать проект. Если использовать жидкокристаллический монитор, можно сделать проект, который будет отображать дату и время на экране. Подключение всех элементов показано на рисунке.

В результате в коде нужно будет указать новую библиотеку (для жидкокристаллических экранов это LiquidCrystal), и добавить в функцию loop() строки для получения даты.

Алгоритм работы следующий:

  • Подключение всех компонентов;
  • Загрузка скетча;
  • Проверка – на экране монитора должны меняться ежесекундно время и дата. Если на экране указано неправильное время, нужно добавить в скетч функцию RTC.write (tmElements_t tm). Проблемы с неправильно указанным временем связаны с тем, что модуль часов сбрасывает дату и время на 00:00:00 01/01/2000 при выключении.
  • Функция write позволяет получить дату и время с компьютера, после чего на экране будут указаны верные параметры.

Заключение

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

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

В этой статье мы рассмотрели типичные сценарии использования и варианты подключения наиболее популярных видов модулей.

Источник: https://ArduinoMaster.ru/datchiki-arduino/arduino-chasy-rtc-ds1307-ds1302-ds3231/

Светодиодные часы на Arduino

xncD145 10-02-2016, 15:11 18 833 Arduino / Часы
Такие часы очень оригинально будут смотреться на стене, они имеют в наличии светодиодные стрелки имитирующие стрелочные часы, LED часы по центру и красивую фоновую RGB-подсветку. Выполнение такой самоделки сложно назвать простым, но потраченное время и силы не будут упущены зря.

Материалы для корпуса:

— Чёрные акриловые пластины 300х300х3 мм 3шт- Прозрачная акриловая подсветка 300х300х3 мм 1шт- Средство полировки акриловых пластин- Клей- Распорные втулки 15 мм с резьбой м3 20 шт- Винты м3 с шайбами 20 шт- Картинная рамка 300х300 мм 1шт

Электронные материалы:

— Сдвиговый регистр CD74HC595 8шт- LED драйвер TLC5940 1шт- Часы реального времени (RTC) DS1307 1шт- Линейный регулятор LM317 1шт- Биполярный транзистор BD139 8шт- Электролитический конденсатор 1 мкФ 2шт- Конденсатор 0.1 мкФ 1шт- Резисторы 120 Ом 60шт- Резисторы 10 кОм 9шт- Резистор 2 кОм 1шт- Резисторы 1 кОм 9шт- Резистор 330 Ом 1шт- Светодиоды 480шт- 4-х разрядный светодиодный цифровой индикатор (с общими анодами) 1шт- Светодиодная RGB-лента (с общим анодом) 1шт (длинной под окружность циферблата)

— Модуль Arduino Mega ADK (Rev3) 1шт

— Батарея питания 12 В 1шт

Шаг первый. Изготовление корпуса.

Для начала в акриловые пластины разрезают и просверливают по чертежу. Далее , происходит склеивание корпусной передней чёрной пластины с соединительной частью (прозрачной), и с пластиной под светодиоды.

Шаг второй. Окончание работы над корпусом.

Для лучшей устойчивости автор приклеивает одну акриловую пластину к задней части картинной рамки, стекло с рамки при этом предварительно вынимается и больше не понадобится.

Четыре втулки 15 мм прикручивают к пластине как на фото. Теперь, появилась возможность приклеить втулки от рамки к передней пластине. Потом эти приклеенные втулки выкручиваются для использования в будущем.

Шаг третий. Вставка светодиодов.

В первую очередь светодиоды вставляют в первый ряд отверстий ( на 1 ряд ушло 60 светодиодов). Катоды спаиваются между собой вокруг пластины с помощью медного провода 0,8мм, а аноды отгибаются в сторону.

Эта процедура повторяется для 7 остальных рядов. Теперь когда аноды расположились в один столбец, они тоже спаиваются между собой. Таким образом, получилась матрица из 8 рядов и 60 столбцов.

Шаг четвёртый.

Припаивание кабелей к матрице.

Для этого шага используются 8-проводные кабельные разъёмы один из них припаяли к катодам на матрице. Восемь таких разъёмов были припаяны к 60 столбцам анодов.

Поскольку автор использовал 8-проводные разъёмы, он получил кабель с 64 проводами, это значит что 4 осталось, они были замотаны изолентой.

Также автор рекомендует использовать семь 8-проводных и взять один 4-проводной разъем для того, чтобы получилось ровно 60.

Шаг пятый. Прикрепление индикатора.

В акриловой пластине в виде диска делают отверстие и приклеивают индикатор с заранее припаянными проводами для удобства.

Шаг шестой. Плата.

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

Шаг седьмой. Сборка часов.

Дальше происходит установка всех деталей в корпус согласно схеме, прикреплённой ниже. В часы автор установил заряжаемый аккумулятор 1000мА/ч чтобы они могли работать без внешнего кабеля. На Arduino устанавливают программный код, прикреплённый внизу статьи. Так, устанавливаются библиотеки для модуля часов реального времени и LED драйвер TLC5940, которые также прикреплены под статьёй. Схема с хорошим разрешением: diagram.rar [1.82 Mb] (скачиваний: 269)Такие часы, можно по желанию модернизировать сделав автоматический контроль яркости с помощью фоторезистора, или же регулировать яркость вручную с помощью потенциометра 10 кОм. Есть пространство для установки кнопки и с её помощью можно будет переключаться между разными программами. Вдобавок есть возможность поставить светодиодную ленту, которая будет подсвечивать пластиковую прозрачную часть передней панели.

Видео с частичной сборкой и примером работы часов

clock.zip [7.92 Kb] (скачиваний: 312)
led.zip [69.46 Kb] (скачиваний: 292)
led-mega-clock-arduino.zip [6.46 Kb] (скачиваний: 310)

Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

Идея

Описание

Исполнение

Итоговая оценка: 9.0

Источник: https://USamodelkina.ru/6955-svetodiodnye-chasy-na-arduino.html

Arduino: светодиодные часы с синхронизацией времени

Захотелось к себе в комнату повесить цифровые часы на стену. Покупать готовые было не интересно, хотелось собрать что-нибудь самому. Встал вопрос об отображении цифр. Было два варианта: либо покупать семисегментные индикаторы, либо паять матрицу из светодиодов.

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

В статье фотоотчёт по изготовлению таких часов и схемы с исходным кодом.

Итак, вот она, светодиодная лента:

Питается от постоянного тока 12 вольт. Лента состоит из соединённых между собой светодиодов размещённых на полимерной основе, с обратной стороны — самоклейка.
Ленту можно резать! И это самое главное. Места реза обозначены меткой и имеют с двух сторон контакты для пайки. Каждое такое звено состоит из трёх светодиодов и резистора, соединённых последовательно.

Звенья же соединяются вместе параллельно. Таким образом, каждое звено питается от напряжения 12 вольт. Длина отрезка ленты равна 5 сантиметрам.Ленты есть разные по мощности. Соответственно, если нужны часы для уличного применения, то необходимо брать помощнее. Для домашнего — самые тусклые, иначе в комнате будет светло как днём (не шучу).

Список того, что нам понадобится для сборки часов:

  • корпус;
  • 29 отрезков светодиодной ленты;
  • Arduino;
  • RTC (часы реального времени) на микросхеме DS1307;
  • Ethernet-shield Wiznet W5100;
  • 4 микросхемы PCF8574;
  • 4 микросхемы ULN2003A;
  • 2 резистора по 1.5 кОм;
  • 1 резистор на 3 кОм;
  • npn-транзистор, любой на напряжение питания 12 вольт и более;
  • блок питания 12 вольт;
  • макетная плата (либо можете вытравить свою), монтажные провода;
  • синяя изолента

    Источник: https://19dx.ru/2014/07/arduino-svetodiodnye-chasy-s-sinhronizaciej-vremeni/

Ссылка на основную публикацию