72 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

Как сделать своими руками светящиеся настенные электронные часы на Ардуино с большими цифрами

В этой пошаговой инструкции расскажу как сделать настенные часы своими руками.

  • Большие цифры (каждая цифра примерно равна размеру листа формата А4).
  • Тонкие стенки (можно вставить в рамку для картины).
  • Автоматическая регулировка в зависимости от яркости освещения в комнате.
  • Выделенная кнопка переключения летнего времени.

Шаг 1: Необходимые материалы

Что я использовал для настенных электронных часов с большими цифрами.

  • Arduino nano V3.0 (к сожалению, поскольку я не могу позволить себе оригинальный ардуино, я использовал китайский клон) — 150 рублей.
  • Цифровой модуль измерения интенсивности света Фоторезистор для Arduino — 60 рублей.
  • DS3231 AT24C32 IIC-модуль памяти для точного времени для Arduino — 60 рублей.
  • DC-DC преобразователь LM2596, Выходная мощность 1.23В-30В — 50 рублей.
  • 4 метра WS2811 светодиодной ленты 30 диодов / м — 700 рублей. (один WS2811 контролирует 3 светодиодных чипа)

Общая стоимость электроники: 900 рублей.

  • Термоусадочная трубка — 400 рублей (33м в ассортименте)
  • 20 шт. 5 x 7 см печатная плата — 200 рублей.
  • 3 шт. Микропереключатель — 60 рублей.
  • Припой — 50 рублей
  • Флюс — 50 рублей.
  • Кабель UTP (неэкранированная витая пара)
  • ЖК-шрифт (http://www.dafont.com/lcd-lcd-mono.font) — бесплатно.
  • Картон — бесплатно в супермаркете.
  • Полистирольная панель — 100 рублей.

А также различные инструменты.

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

  1. Скачайте и установите шрифт для часов
  2. Откройте Word или другую программу, и создайте шаблон, как на первом фото.
  • Размер шрифта

    800,

  • Шрифт белого цвета с черным контуром,
  • Серые полосы там, где будут светодиодные ленты

Напечатайте шаблон и вырежьте полосы канцелярским ножом (как на втором фото)

Шаг 3: Подготовка — режем картон и светодиодную ленту

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

Если ваши светодиодные полосы поставляются с разъемами на каждом конце (как у меня), отсоедините разъем и разрежьте их по 3 штуки.

Шаг 4: Крепим светодиодную ленту

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

Это не обязательно, но я использовал карандаш, чтобы отметить, где должны быть размещены светодиодные полосы.

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

Шаг 5: Паяем светодиодную ленту

Теперь начинается долгий процесс пайки.

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

Цвета, которые я выбрал:

  • Синий для земли
  • Зеленый для data
  • Красный для +12В

Шаг 6: Установка Ардуино на печатной плате

Я попытался сделать эскиз в Fritzing, но не смог найти все детали

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

Шаг 7: Проверка LED

Прежде чем загружать код (к которому я не имею никакого отношения), не забудьте установить библиотеку FastLED.

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

Шаг 8: Запрограммируйте часы

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

Код хорошо прокомментирован, поэтому с ним не должно возникнуть никаких проблем.

Все сообщения отладки также прокомментированы.

Чтобы изменить используемый цвет, вы должны изменить переменную в строке 22 (int ledColor = 0x0000FF; // Используемый цвет (в шестнадцатеричном формате)). Вы можете найти список цветов в нижней части этой страницы

Если ссылка не работает, вот зеркало.

Шаг 9: Делаем формы для цифр из полистирола

  1. Вырежьте все сегменты по шаблонам, сделанным вначале.
  2. Сформируйте каждую цифру в полистироле, используя скальпель (очень жесткий) или горячий резак.
  3. На фото можно увидеть, как это сделал я.
  4. Если у вас нет гитарной струны, подойдет практически любой тонкий стальной провод.
  5. Для питания горячего резака я использовал 12-вольтовый блок питания.
  6. Также есть фото с готовым вырезом (извините, что забыл снимать в процессе).

Шаг 8: Приклейте цифры и установите рассеиватель

Когда все 4 цифры и точки будут готовы, приклейте их на картон со светодиодной лентой (я использовал двусторонний скотч)

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

В самом конце я вставил светящиеся электронные настенные часы в большую картинную рамку.

Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.

Делаем электронные часы на Ардуино своими руками

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

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

Соединение всех электронных компонентов проводится на специальной контактной («беспаячной») макетной плате, что исключает риск получения ожогов, порезов и других травм — поэтому заниматься с конструктором Arduino можно и вместе с детьми. А наглядный способ представления принципиальной схемы поможет не ошибиться при сборке устройства.

Шаг 1. Список компонентов

Чтобы собрать простые часы на светодиодных матрицах вам потребуется всего несколько дешёвых компонентов:

  • платформа Arduino. Подойдут самые простые модели — Arduino Nano или Micro;
  • контактная макетная плата;
  • соединительные провода для макетной платы;
  • модуль часов реального времени Adafruit DS3231;
  • светодиодный матричный модуль 32×8 MAX7219;
  • две кнопки.

Также понадобится персональный компьютер и USB—mini-USB кабель для загрузки программы управления в память Arduino IDE. Вот и всё — паяльник, щипцы для снятия изоляции, монтажные ножи и прочие профессиональные инструменты не нужны: все операции выполняются руками. Разве что в некоторых случаях удобнее использовать пинцет, но можно обойтись и без него.

Детали для сборки электронных часов на Arduino

Шаг 2. Сборка электронной схемы

Схема электронных часов с индикацией на светодиодах с применением Arduino даже для неопытных радиолюбителей покажется довольно простой. Для сборки требуется всего несколько проводников. Таблица подключений:

Модуль Arduino → светодиодная матрица 32×8 MAX7219

Модуль Arduino → часы реального времени Adafruit DS3231

Модуль Arduino → кнопки

Второй вывод кнопок соединяется с землёй GND.

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

Схема электрических подключений макетной платы

Два ряда (1 и 4) с обеих сторон замкнуты горизонтально — обычно они используются как линия питания +5V и земля GND. Все внутренние контакты (2 и 3) замкнуты вертикально. При этом монтажная плата как вертикально, так и горизонтально разделена на две независимые друг от друга симметричные части. Это позволяет, например, собрать два разных устройства на одной плате.

Схема электронных часов с индикацией на светодиодах, а также расположение элементов на монтажной плате представлена на иллюстрации:

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

Внешний вид собранного устройства

Шаг 3. Прошивка Arduino

После того как сборка и проверка схемы завершена, можно приступать к загрузке управляющей программы (или «прошивки») в память Arduino.

Интерфейс среды разработки Arduino IDE

Для этого нужно установить бесплатную официальную среду разработки — Arduino IDE [https://www.arduino.cc/en/Main/Software]. Также вам потребуется исходный код проекта, который вы можете скачать ниже в архиве со всеми библиотеками и скетчем, а если вам нужен просто скетч — его можно скопировать отдельно:

Теперь для завершения работы над устройством потребуется выполнить лишь ряд простых операций:

  1. подсоедините Arduino к USB-порту компьютера. Если модуль подключается впервые, то необходимо будет дождаться определения устройства операционной системой и установки драйвера;
  2. скопируйте содержимое папки libraries из архива в одноимённую папку в каталоге Arduino IDE;
  3. запустите средство разработки Arduino IDE;
  4. настройте тип Arduino в соответствии с имеющимся у вас модулем. Так, если вы используете Arduino Nano, в меню необходимо выбрать Tools -> Board: “Arduino Nano”. Также убедитесь в том, что модель процессора соответствует микроконтроллеру на вашей плате:

Выбор модели Arduino в среде Arduino IDE

  • откройте исходный код (файл clock_8x32.ino): File -> Open. Arduino IDE предложит вам автоматически создать отдельную директорию под проект — ответьте утвердительно;
  • загрузите программу в память Arduino: Sketch -> Upload.
  • Компиляция программного кода и дальнейшая загрузка в память микроконтроллера займёт некоторое время, обычно не более одной минуты. Об успешном завершении операции будет сообщено в консоли Arduino IDE. После чего остаётся лишь перезагрузить Arduino с помощью кнопки Reset на устройстве — простые часы на светодиодных матрицах готовы!

    Готовые часы на Arduino

    Настройка часов осуществляется с помощью двух кнопок. Устройство поддерживает 12- и 24-часовой формат вывода времени, показ даты и дня недели, отображение времени с секундами и без. Также имеется возможность менять яркость свечения светодиодов.

    Вариант корпуса для светодиодных часов

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

    Большие часы на адресных светодиодах WS2812B

    Перейти к странице

    ViVant

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

    Как-то раз на просторах зарубежного интернета я нашел вот такой проект часов на базе светодиодной ленты WS2812B: Big, Auto Dim, Room Clock, и мне захотелось его повторить. Часы устроены как семи сегментный циферблат и работают на RTC модуле DS3231 . Часы умеют показывать температуру, имеют кнопки для настройки и перевода на зимнее время и обратно, позже я добавил датчик влажности DHT11. Температура уже вместе с влажностью считывалась с этого датчика и выводилась раз в минуту. Хоть и в модуле часов есть температурный датчик, но похоже он показывал температуру не корректно из-за самонагрева (ИМХО).



    Когда все было собрано, повозившись с библиотеками, все заработало. И тут возникло одно большое НО: положения яркости в только в двух позициях меня не устраивало. Тем более на границе значений происходило мерцание. Установка яркости на статичном значении меня тоже не очень устраивала ибо днем при установленном тусклом свете ничего не было видно, а ночью даже со значениями близким к минимуму можно было осветить всю Москву. Поинтересовавшись как в других проектах с этим справляется Alex было решено заменить такой код настройки яркости.

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

    И тут все заработало, моей радости не было придела, пока не наступила ночь. Появилась проблема с отключением ленты при полной темноте. Иногда это было только на минуту, а иногда на целую ночь. Еще есть проблема со слабим мерцанием светодиодов если освещения в комнате было мало (например когда работал телик), но это было редко и длилось это одну минуту.

    Что касается кода вот сылка на GitHub. Кое-что я перевел для лучшего понимания.

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

    Thug Robot

    Thug Robot

    ViVant

    Рисуя схему допустил ошибку. Да, на фоторезисте используется резистор на 10 кОм. Схему перезалил.

    Промониторив значения на выходе фоторезистора заметил, что при слабом освещении происходили скачки этих самых значений.

    Перебрав пару способов, получилось убрать мерцание и отключение ленты. Мерцание я поборол добавив в код строчку с округлением значения кратному 10, а полное отключение разрешилось добавлением единицы к значению яркости. Ибо иногда на выходе функции получалось 0. Хотя как там получался ноль я не представляю, потому что из-за наличия функций map и constrain, этого происходить не должно. Хоть и это, наверное, костыли, но это работает.

    Доброй ночи, решил я сделать тоже часы на WS2812B и Arduino, перепробовал несколько скетчей из сети, но ни один так и не смог запустить. Потом нашел этот форум и здешние не запускаются. Спаял по схеме, но поставил по 1 светодиоду на сегмент, направление как у автора.
    Подскажите, пожалуйста, что в скетче еще надо изменить помимо #define NUM_LEDS на свое количество светодиодов, в byte digits[13][28] = в строках цифр ставлю значения для одного светодиода, а вот в // 1*7*4 +2 количество светодиодов в ленте здесь мне поставить 1*7*4 или 4*7*1?
    Ну, и все же, если я ничего не изменю в скетче, а использую под количество светодиодов автора, хоть что-то должно светиться? У меня при запуске ничего не светится вообще, компилируется и загружается, правда пишет:
    C:Program Files (x86)ArduinolibrariesFastLED/FastLED.h:17:21: note: #pragma message: FastLED version 3.001.005

    # pragma message «FastLED version 3.001.005»
    но это ж вроде не ошибка?

    ViVant

    Доброй ночи, решил я сделать тоже часы на WS2812B и Arduino, перепробовал несколько скетчей из сети, но ни один так и не смог запустить. Потом нашел этот форум и здешние не запускаются. Спаял по схеме, но поставил по 1 светодиоду на сегмент, направление как у автора.
    Подскажите, пожалуйста, что в скетче еще надо изменить помимо #define NUM_LEDS на свое количество светодиодов, в byte digits[13][28] = в строках цифр ставлю значения для одного светодиода, а вот в // 1*7*4 +2 количество светодиодов в ленте здесь мне поставить 1*7*4 или 4*7*1?
    Ну, и все же, если я ничего не изменю в скетче, а использую под количество светодиодов автора, хоть что-то должно светиться? У меня при запуске ничего не светится вообще, компилируется и загружается, правда пишет:
    C:Program Files (x86)ArduinolibrariesFastLED/FastLED.h:17:21: note: #pragma message: FastLED version 3.001.005

    # pragma message «FastLED version 3.001.005»
    но это ж вроде не ошибка?

    Светодиодные часы своими руками на ардуино (Arduino) WS2812 управляемых (адресных)

    После очередной модернизации своего 3D принтера . Кстати статья и видео по модернизации Anet 8A скоро выложу.

    И так о чем это я. Ах да. И вот решил я напечатать плоские и большие детали. Именно они у меня отрывались от стала 3D принтера. Даже бывало отрывало вместе со скотчем.

    Нашел я модель светодиодных часов . Скачать модель можно со страницы автора .

    Для проекта желательно взять плату Arduino Nano , и модуль часов DS3231.

    Сборка часов на Arduino и адресных светодиодах WS2812:

    1. Печатаем все детали на 3D принтере.

    2. Приклеиваем светодиодную ленту на 2 пластины и спаиваем их зигзагом.

    3. Устанавливаем решетки поверх ленты. Получим вот такой результат.

    4. Укладываем все в корпус часов и крепим все на винтики М3.

    5. Ставим крепление для ножек и крепим ножки.

    6. Подключаем электронику по схеме.

    7. Загружаем прошивку в Arduino. Автор использует Arduino Pro Mini, я решил использовать Arduino NANO v2 (ATmega168).

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

    В итоги у часов получились вот такие возможности:

    1. Настройка цвета циферблата.

    2. Изменение яркости 10 режимов.

    3. Вывод текущей даты в виде бегущей строки.

    4. Сохранение всех настроек в энергонезависимую память. При выключении часы сохраняются все настройки.

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

    6. Прошивка уменьшаться на Arduino Nano V2.0 (ATmega168) . При увеличение функционала часов необходимо использовать Arduino Nano V3.0 (ATmega328) .

    В связи с тем что я использовал Arduino Nano V2.0 (ATmega168), дальше расширять функционал не получится. Нет свободной памяти. Но если поставить Arduino Nano V3.0 (ATmega328) в которой памяти в 2 раза больше . Соответственно функционал можно расширят:

    1. Сделать авто регулировку яркости. Поставив фото резистор.

    2. Поставить спикер и написать настройку будильника.

    3. К функциям будильника можно сделать стробоскоп. Мигать просто белым или как полицейская сирена одна сторона синим другая красным.

    4. Поменять Arduino Nano на NodeMCU и сделать управление часами через смартфон. Вывести погоду, курс валюты. Грубо говорят сделать информер. Но так как дисплей часов не очень большой. Большая информация будет не очень читабельная.

    У автора корпуса есть доработанные версии часов. Например подставка сделана уже побольше и часы более устойчивые. Также сделаны накладки которые закрывают провода с задней стороны.

    Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.

    Читать еще:  Тестер для проверки полярности светодиодов формата SMD
    Ссылка на основную публикацию
    Статьи c упоминанием слов:
    Adblock
    detector