Как сделать стильные и функциональные часы на Arduino. Какие компоненты понадобятся для сборки. Пошаговое руководство по созданию часов с LED-дисплеем. Как запрограммировать Arduino для работы часов. Какие дополнительные функции можно добавить в самодельные часы.
Необходимые компоненты для сборки часов на Arduino
Для создания часов на Arduino потребуются следующие компоненты:
- Плата Arduino (рекомендуется Arduino Nano или Arduino Uno)
- LED-дисплей или матрица (например, на чипе MAX7219)
- Модуль часов реального времени DS3231
- Кнопки для настройки времени (2-3 штуки)
- Резисторы и провода для соединения
- Корпус для часов (можно напечатать на 3D-принтере)
- Источник питания (батарейки или блок питания)
Выбор конкретных компонентов зависит от желаемого дизайна и функционала часов. Для начинающих рекомендуется использовать готовые модули, которые легко подключаются к Arduino.
Пошаговая инструкция по сборке часов
Процесс создания часов на Arduino состоит из следующих основных этапов:
- Подключение компонентов к плате Arduino согласно схеме
- Программирование микроконтроллера
- Сборка корпуса и монтаж компонентов
- Настройка и тестирование часов
Рассмотрим каждый этап подробнее.
Шаг 1: Подключение компонентов
Соедините компоненты с платой Arduino следующим образом:
- Подключите LED-дисплей по интерфейсу SPI или I2C
- Соедините модуль DS3231 по шине I2C (пины SDA и SCL)
- Подключите кнопки к цифровым входам Arduino через подтягивающие резисторы
Убедитесь, что все соединения выполнены правильно и надежно. От этого зависит корректная работа часов.
Шаг 2: Программирование Arduino
Для программирования часов понадобится среда Arduino IDE. Скачайте и установите необходимые библиотеки:
- RTClib — для работы с модулем реального времени
- LedControl — для управления LED-матрицей
Напишите скетч, реализующий основные функции часов:
- Получение времени с модуля DS3231
- Вывод времени на дисплей
- Обработка нажатий кнопок для настройки
Загрузите готовый скетч на плату Arduino. При необходимости отладьте программу.
Шаг 3: Сборка корпуса
Соберите все компоненты в корпусе часов:
- Закрепите плату Arduino и модули внутри корпуса
- Установите дисплей на лицевую панель
- Закрепите кнопки в удобном для нажатия месте
- Подключите источник питания
Убедитесь, что все детали надежно зафиксированы и провода не мешают друг другу.
Шаг 4: Настройка и тестирование
Проведите финальную настройку и тестирование часов:
- Установите точное время с помощью кнопок
- Проверьте корректность отображения времени на дисплее
- При необходимости откалибруйте точность хода
После успешного тестирования ваши самодельные часы на Arduino готовы к использованию!
Дополнительные функции для часов на Arduino
Чтобы сделать часы более функциональными, можно добавить следующие возможности:
- Отображение даты и дня недели
- Будильник с настраиваемым сигналом
- Измерение температуры и влажности
- Автоматическая регулировка яркости дисплея
- Синхронизация времени по Wi-Fi или GPS
Для реализации дополнительных функций может потребоваться подключение новых модулей и доработка программного кода.
Преимущества самодельных часов на Arduino
Создание часов на Arduino своими руками имеет ряд преимуществ:
- Полный контроль над дизайном и функционалом устройства
- Возможность легкой модификации и добавления новых функций
- Более низкая стоимость по сравнению с готовыми моделями
- Получение практических навыков работы с электроникой
- Уникальность изделия, созданного своими руками
Самодельные часы на Arduino станут отличным украшением интерьера и предметом гордости любого радиолюбителя.
Часто задаваемые вопросы о часах на Arduino
Вот ответы на некоторые популярные вопросы о создании часов на Arduino:
Какую плату Arduino лучше использовать для часов?
Для большинства проектов часов подойдет Arduino Nano или Arduino Uno. Они обладают достаточной производительностью и имеют необходимые интерфейсы для подключения дисплея и модуля RTC.
Как обеспечить точный ход часов?
Для точного хода рекомендуется использовать модуль часов реального времени, например DS3231. Он имеет встроенный кварцевый генератор и обеспечивает высокую точность.
Можно ли сделать часы с питанием от батареек?
Да, часы на Arduino можно сделать автономными. Используйте батарейный отсек или аккумулятор подходящей емкости. Для экономии энергии применяйте режимы энергосбережения Arduino.
Какой дисплей лучше использовать для часов?
Выбор дисплея зависит от желаемого дизайна. Популярные варианты:
- 7-сегментные LED-индикаторы
- Матричные LED-дисплеи
- OLED-дисплеи
- LCD-экраны
Для начинающих удобнее использовать готовые модули с драйверами.
Как настроить яркость дисплея часов?
Яркость можно регулировать программно через ШИМ-выход Arduino. Также можно добавить фоторезистор для автоматической подстройки яркости в зависимости от освещенности.
Заключение
Создание часов на Arduino — увлекательный проект для любителей электроники. Следуя пошаговой инструкции, даже начинающий сможет собрать функциональные и стильные часы своими руками. Экспериментируйте с дизайном и функционалом, чтобы создать по-настоящему уникальное устройство!
делаем своими руками компактные часы
На нашем сайте было написано уже много уроков по созданию различных часов на основе Ардуино и микроконтроллеров — и самые недорогие часы, и цифровые часы на ATMega328, и даже самые стильные электронные часы. Сегодня мы сделаем современные, компактные и удобные наручные часы на основе платы Sparkfun Pro Micro и дисплея ST7789.
Шаг 1. Комплектующие
Для того, чтобы сделать компактные наручные часы на основе Ардуино или аналогов нам понадобятся следующий набор комплектующих:
Плата Arduino
На этот раз мы используем плату Sparkfun Pro Micro 3.3 V 8 MHz.
Дисплей
Используем ST7789 1.3″ IPS LCD.
Литий-полимерный аккумулятор
Возьмем для часов 301420 LiPo.
Зарядник LiPo
Используем плату для зарядки LiPo 15 х 15 мм.
Чип RTC
На этот раз мы используем DS3231M, это встроенный кварцевый генератор, никаких дополнительных компонентов не требуется.
Батарея RTC
Необязательно, только если вы хотите сохранить время, даже если батарея LiPo разряжена. MS412FE — это крошечная перезаряжаемая батарея емкостью 1 мАч, согласно спецификации RTC, 1 мАч может сохранять время в течение многих дней.
Ремешок для часов
Самый простой и недорогой вариант — заказать ремешок для часов из ткани шириной 20 мм.
Дополнительно
Дополнительно могут пригодиться, например, диод 1N5822, четыре 6 мм винта M2, лента из медной фольги и несколько проводов.
Шаг 2. Фиксируем плату и дисплей
Используйте небольшой кусок прозрачного пластика как на фото выше, чтобы скрепить вместе Pro Micro и дисплей.
Шаг 3. Подключаем землю
Прочитайте технические характеристики ЖК-дисплея, предоставленные вашим поставщиком.
Отрежьте немного ленты из медной фольги, соедините все выводы GND (земля) и отрицательные выводы дисплея и закрепите на пластине FPC. Затем паяем контакты с медной фольгой.
Шаг 4. Питание
Подсоедините выводы GND платы к медной фольге. Подключите контакты Vcc к выводу Vcc дисплея.
Шаг 5. Подключаем выводы дисплея
Вот краткое описание всех соединений:
LCD -> Arduino LED+ -> GPIO 10 SDA -> GPIO 16(MOSI) SCL -> GPIO 15(SCLK) RST -> GPIO 18(A0) DC -> GPIO 19(A1) CS -> GPIO 20(A2)
Шаг 6. Удаляем индикатор питания
Индикатор питания всегда включен и потребляет более 1 мА непрерывно, поэтому лучше его убрать. Нужно распаять и аккуратно снять светодиод.
Шаг 7. Подключаем LiPo батарею
Вот краткое описание всех соединений:
Плата зарядки +ve -> Pro Micro J1 коннектор рядом с USB сокетом (5V) Плата зарядки -ve -> Pro Micro GND пин Плата зарядки Батарея +ve -> LiPo +ve -> 1N5822 диод -> Pro Micro Raw Pin Плата зарядки Батарея -ve -> LiPo -ve
Большинство плат зарядки LiPo лучше использовать в качестве входа 5В. Тем не менее, плата Pro Micro не обеспечивает вывод USB 5В. К счастью, разъем J1 рядом с USB-разъемом на самом деле подключен к контакту USB 5В. Внимание! Не паяйте 2 разъема вместе.
Шаг 8. Подключаем RTC
DS3231M очень маленький и требует подключения к крошечной батарее, будьте терпеливы и соедините все вместе:
DS3231M pin 2 (Vcc) -> плата Vcc DS3231M pin 5 (GND) -> плата GND, MS412FE RTC батарея -ve DS3231M pin 6 (VBAT) -> MS412FE RTC батарея +ve DS3231M pin 7 (SDA) -> плата GPIO 2 (SDA) DS3231M pin 8 (SCL) -> плата GPIO 3 (SCL)
Шаг 9. Подключаем датчик движения
Мы можем использовать 2 датчика вибрации в качестве датчика движения, чтобы активировать «пробуждение» платы. Однако в часах нет места для установки двух 5-миллиметровых датчиков вибрации. Мы пытались заменить на один 3 мм датчик вибрации и тестировали несколько дней. Но это приводит к неверному пробуждению часов и батарея разряжается в течение дня.
Шаг 10. Программируем
Если вы этого еще не сделали — скачайте и установите Arduino IDE.
Добавить поддержку Sparkfun Pro Micro
Следуйте инструкциям по установке, чтобы добавить поддержку плат Sparkfun: https://github.com/sparkfun/Arduino_Boards
После установки поддержки не забудьте выбрать правильную плату в Arduino IDE:
Сервис -> Плата -> SparkFun Pro Micro (Tools -> Board -> SparkFun Pro Micro)
Сервис -> Процессор -> ATmega32U4 (3,3 В, 8 МГц) (Tools -> Processor -> ATmega32U4 (3.3V, 8MHz))
Библиотека Adafruit RTClib
Используйте Arduino IDE Library Manager для установки RTClib: https://www.arduino.cc/en/guide/libraries
Библиотека Arduino GFX
Добавьте библиотеку Arduino_GFX в Arduino IDE: https://github.com/moononournation/Arduino_GFX.git
Если вы никогда этого не делали, то просто добавьте библиотеку из GitHub, — нажмите зеленую кнопку «Клонировать или скачать», а затем «Скачать ZIP». Далее в Arduino IDE выберите меню: Эскиз -> Включить библиотеку -> Добавить библиотеку .ZIP … -> выберите загруженный файл ZIP (англ.: Sketch -> Include Library -> Add .ZIP Library… -> ZIP).
Библиотека LowPower
Добавьте библиотеку Arduino_GFX в Arduino IDE: https://github.com/rocketscream/Low-Power.git
Установка такая же, как описано выше.
Основной код часов Arduino — Watch Core
Основной код наших часов Ардуино можно скачать по ссылке: https://github.com/moononournation/ArduinoWatch.git. Также вы можете скачать ZIP-архив часов ниже:
Пожалуйста, используйте Arduino IDE, скомпилируйте и загрузите RTClibSetRTC.ino, чтобы инициализировать время в RTC. А затем скомпилируйте и загрузите Arduino_Watch.ino.
Шаг 11. Печатаем корпус на 3D-принтере
Скачать схему и проект корпуса можно по ссылке: https://www.thingiverse.com/thing:3799868
Шаг 12. Итоговый результат
Теперь вы можете показать то, что вы сделали своим друзьям! Кроме того, вы также можете:
- запрограммировать и создать свой собственный циферблат;
- добавить больше датчиков или компонентов, чтобы они стали, например, умными часами;
- создать свой собственный корпус для часов.
Наверх ↑
Простые часы на Arduino и матричном индикаторе
Приветствую дорогие самоделкины! Совсем недавно познакомился с одной очень интересной штукой микроконтроллером – который меня сильно заинтересовал, и тогда показавшись чем-то волшебным и непостижимым. Но я решил начать их изучение, почитав немного литературы, насмотревшись видеороликов в YouTube других пользователей, а также повторив парочку чужих конструкций, задумал спроектировать свое несложное, но в то же время полезное устройство, которым бы можно было пользоваться каждый день, и которое бы смог повторить любой начинающий радиолюбитель. Посмотрел свои запасы, и нашел матричный светодиодный индикатор на драйвере MAX7219, и вот подумал, с этого могут получится неплохие красивые часы.
Признаюсь, идея на такое применение этого типа дисплея не моя, подобных проектов в интернете полно, но всё же. Основными требованиями были простота конструкции и доступность компонентов. Чтобы максимально упростить конструкцию решил в качестве мозгов применить платформу Arduino Nano, и готовый модули часов реального времени на точном чипе DS3231, а также для отображения температуры окружающей среды применил цифровой датчик температуры DS18B20.
В течении недели на макетной плате был собран прототип устройства, написана и отлажена прошивка, а также составлена схема устройства.
Остаточно схема начала выглядеть так:
В последствии при наладке устройства оказалось, что яркость дисплея даже в дневное время достаточно велика, не говоря уже об ночном, поэтому было решено добавить автоматическую регулировку яркости дисплея в зависимости от окружающего освещения, для чего я применил фоторезистор. Теперь днём яркость дисплея составляет около 80%, что позволяет продлить срок службы индикатора не перегревая светодиоды, и не режет глаза, а ночью около 10%, чего хватает для комфортного отображения. Также были добавлены кнопки для настройки времени и даты.
Итак, в последней версии часы умеют:
• настраивать время и дату с кнопок
• раз в минуту отображать окружающую температуру (только плюсовую).
• При нажатии на определенные кнопки отображать кроме времени еще дату, или температуру
• Автоматически регулировать яркость дисплея (четыре уровня яркости)
Дабы не собирать схему навесным монтажом, и для увеличения механической прочности конструкции решил развести печатную плату в программе Sprint layout.
До этого времени я постоянно делал платы методом ЛУТа, но в этот раз я решил попробовать сделать с помощью фоторезиста, и результатом был полностью доволен.
Подробнее о фоторезистивном изготовлении платы полно материала в сети Интернет.
Далее залудив плату в сплаве Розе, я установил все модули и компоненты кроме Arduino на свои посадочные места и запаял так как Arduino в свою очередь сначала нужно запрограммировать, а потом запаять. После пайки обязательно необходимо отмыть флюс с платы.
Процесс прошивки стандартный для данного типа плат Arduino, который я очень коротко опишу:
• Нужно открыть файл прошивки в программе Arduino IDE
• В меню Инструменты – плата выбрать плату Arduino Nano
• В меню Инструменты – порт выбрать свой COM порт к которому подключена Arduino
Далее нужно прошить контроллер нажав кнопку Загрузка.
Подробнее об прошивке плат Arduino и причины возникновения разных ошибок смотрите в интернете.
После успешной прошивки Arduino необходимо запаять на плату на свое место согласно распиновке. Запаянные компоненты на плате выглядят так:
Далее нужно правильно установить индикатор, а именно — если смотреть на плату со стороны деталей, как показано на рисунке ниже, контакт Din должен быть справа.
После соединения половинок должен получится вот такой «бутерброд»
Если все собрано и прошито правильно часы должны заработать сразу после подключения питания. В качестве источника питания необходимо применять блок питания с выходным напряжением в 5В. Ток потребления часов в режиме максимальной яркости не более 200мА, что позволяет в качестве источника питания применить USB порт компьютера. Я применил отдельный сетевой блок питания на 5В с током в 1А.
Для подключения блока питания я установил стандартный для этого разъем 5мм*2мм
Далее следует настроить время и дату, специальными кнопками:
Для этого необходимо на две секунды зажать копку «Настройка» после чего начнут мигать цифры отображающие часы, кнопками «Вверх» и «Вниз» выставить необходимое время, после чего кратковременно еще раз нажать кнопку «Настройка», и начнут мигать минуты, которые выставляются аналогично, и после окончательной настройки снова на две секунды зажать кнопку «Настройка», для перевода в режим отображения. Для установки даты необходимо в режиме показа времени кратковременно нажать кнопку «Настройка», после чего отобразится дата и еще на две секунды зажать кнопку «Настройка», после чего начнёт мигать дата, которую можно установить кнопками «Вверх» и «Вниз» по аналогии с установкой времени. В итоге получились неплохие часы, которые под силу собрать практически каждому. Часы работают стабильно, ход времени очень точен. В процессе прошивка для них ещё будет обновляться, и исправляться, так что следите…
Все необходимые для сборки часов материалы Вы можете скачать с Гугл диска.
Простые часы на Arduino Uno [Амперка / Вики]
Что потребуется
Видеоинструкция
Как собрать
Скетч
Прошейте контроллер скетчем через Arduino IDE.
- simple-clock.ino
// Подключаем библиотеку для работы с дисплеем #include <QuadDisplay2.h> // создаём объект класса QuadDisplay и передаём номер пина CS QuadDisplay qd(10); // создаем объекты класса bute для хранения текущего значения Часов, Минут, Секунд int hours = 0; int minutes = 0; int seconds = 0; // создаем объект класса long для хранения счетчика long lastTime = 0; void setup() { // инициализация дисплея qd.begin(); // инициализируем время setTime(__TIMESTAMP__); } void loop() { // как только разница между текущим временем и временем записанным в lastTime становится больше 1000 миллисекунд... while(millis()-lastTime > 1000) { //...обновляем lastTime и добавляем к счетчику Секунд +1 lastTime = millis(); seconds++; // как только счетчик секунд достигнет 60, обнуляем его и добавляем к счетчику Минут +1... if (seconds >= 60) { seconds = 0; minutes++; } // ...тоже самое для Часов... if (minutes >= 60) { minutes = 0; hours++; } // ... и обнуляем счетчик Часов в конце дня if (hours >= 24) { hours = 0; } } // выводим время на дисплей qd.displayScore(hours, minutes, true); } // функция записи текущего времени в переменные void setTime(const char* compileTimeStamp) { hours = ((compileTimeStamp[11] - '0') * 10 + (compileTimeStamp[12] - '0')); minutes = ((compileTimeStamp[14] - '0') * 10 + (compileTimeStamp[15] - '0')); seconds = ((compileTimeStamp[17] - '0') * 10 + (compileTimeStamp[18] - '0')); }
Где скачать необходимые библиотеки и как их установить?
У моего модуля QuadDisplay всего три ноги и расположены они слева. Можно ли использовать его в этом проекте?
У вас предыдущая версия модуля. Она снята с производства пару лет назад. С этим скетчем, библиотекой и схемой сборки модуль работать не будет.
OLED часы (термометр) на arduino и DS3231 – RobotChip
/*
Тестирование производилось на Arduino IDE 1.8.0
Дата тестирования 17.02.2017г.
*/
#include <OLED_I2C.h> // Подключение библиотеки OLED_I2C
#include <DS3231.h> // Подключение библиотеки DS3231
OLED myOLED(SDA, SCL, 8);
DS3231 rtc(SDA, SCL);
extern uint8_t MegaNumbers[]; // Подключение больших шрифтов
extern uint8_t SmallFont[]; // Подключение маленьких шрифтов
int x = 0; // Создаем переменную «х»
void setup()
{
myOLED.begin(); // Инициализация Oled дисплея
rtc.begin(); // Инициализация RS3231
}
void loop()
{
if (x >= 10) {temp(); // Если «x», больше или равно 10, выполняем цикл «temp»
x=0;} // Обнулить «x»
else {clock();} // Если «x», меньше 10, выполняем цикл «clock»
x++; // Увеличить «x» на 1
}
void clock() // Цикл считывания и отображения времени
{
myOLED.clrScr(); // Очищаем экран
myOLED.setFont(SmallFont); // Включаем маленький шрифт
myOLED.print(rtc.getDOWStr(), CENTER, 0); // Отображение дня недели
String stringOne = rtc.getTimeStr();
myOLED.setFont(MegaNumbers); // Включаем большой шрифт
myOLED.print(stringOne.substring(0,2), 4, 12); // Отображение часов
myOLED.print(«/», 51, 12); // Отображение двоеточие
myOLED.print(stringOne.substring(3,5), 75, 12); // Отображение минут
myOLED.setFont(SmallFont); // Включаем маленький шрифт
myOLED.print(rtc.getDateStr(), CENTER, 57); // Отображение даты
myOLED.update(); // Обновляем информацию на дисплее
delay(500); // Пауза
myOLED.setFont(MegaNumbers); // Включаем большой шрифт
myOLED.print(«-«, 51, 12); // Убираем двоеточие
myOLED.update(); // Обновляем информацию на дисплее
delay(500); // Пауза
}
void temp() // Цикл считывания и отображения температуры
{
myOLED.clrScr(); // Очищаем экран
myOLED.setFont(MegaNumbers); // Включаем большой шрифт
myOLED.print(String(rtc.getTemp() , 1), CENTER, 12);
myOLED.setFont(SmallFont); // Включаем маленький шрифт
myOLED.print(«Temperature», CENTER, 57); // Отображение надписи
myOLED.update(); // Обновляем информацию на дисплее
delay(2000); // Пауза
}
Сегодня я буду делать замечательное устройство, которое приковывает взгляд людей своим магическим светодиодным свечением, это – часы, но не обычные, а часы-пропеллер на Arduino NANO. Линейка светодиодов вращаясь по кругу с высокой скоростью вырисовывает циферблат аналоговых часов с ходящими по ним стрелками. Кроме такого отображения они могут показывать любую другую информацию, например, цифровые часы с датой и различными надписями. Я думаю, что подобные часы-пропеллер должен сделать для себя каждый гик-радиолюбитель так как это легко, а результат просто впечатляющий!
Часы пропеллер на Arduino NANO своими руками
Что понадобится чтобы сделать вращающиеся часы:
- Arduino NANO;
- Яркие красные светодиоды – 11 шт;
- Яркие зелёные светодиоды – 5 шт;
- Синий светодиод – 1 шт;
- Резисторы 330 Ом – 16 шт;
- Резистор 2,2 кОм – 1 шт;
- Резистор 10 кОм – 1шт;
- Датчик Холла W130;
- Макетная плата;
- Небольшой неодимовый магнит;
- Двигатель от кассетного магнитофона;
- Аккумулятор – 3,7 В, 240 мА/ч.
Как сделать часы-пропеллер, пошаговая инструкция:
Шаг 1
Часы-пропеллер будем собирать по такой схеме:
Часы-пропеллер схема
Часы пропеллер на Arduino NANO своими руками
Отрежем от макетной платы полоску, на ней будет размещаться вся схема часов-пропеллера вместе с аккумулятором и Ардуино.
Часы пропеллер на Arduino NANO своими руками
Размещаем в линию светодиоды на макетной плате, катоды светодиодов будут спаиваться вместе, поэтому загибаем их к верху в одном направлении, а анод в бок, к каждому из этих анодов будет припаян ограничивающий ток резистор на 330 Ом.
Часы пропеллер на Arduino NANO своими руками
Часы пропеллер на Arduino NANO своими руками
Часы пропеллер на Arduino NANO своими руками
На фото пока нет самого крайнего синего светодиода, который будет сигнализатором, что на часы подано питание и который будет вырисовывать внешнюю красивую синюю рамку. Так что можете сразу его впаять, я это сделал позже, ему также понадобится резистор, на этот раз 2,2 кОм.
Шаг 2
На другом конце платы припаиваем коннекторы под плату Ардуино, чтобы плата могла в любое время без проблем быть извлечена из схемы часов. Плата не должна располагаться на самом конце мекетной платы, должно оставаться немного места для противовеса, который установим чуть позже. Вставляем плату Arduino на своё место.
Часы пропеллер на Arduino NANO своими руками
Шаг 3
Соединяем проводниками ножки Ардуины со светодиодами согласно схемы.
Часы пропеллер на Arduino NANO своими руками
Часы пропеллер на Arduino NANO своими руками
Теперь подключим датчик Холла.
Часы пропеллер на Arduino NANO своими руками
Часы пропеллер на Arduino NANO своими руками
Припаиваем два пина для джампера который будет подключать питание от аккумулятора, чуть позже к этим контактам я подпаяю микропереключатель, и также два пина под подключение аккумулятора, который будет съёмным. Аккумулятор я притянул к передней части Ардуино с помощью резинки.
Часы пропеллер на Arduino NANO своими руками
Часы пропеллер на Arduino NANO своими руками
Шаг 4
Между платой Arduino и светодиодами я просверлил отверстие. Взял сверло по диаметру вала двигателя надел на неё ролик который стоял на двигателе от кассетного магнитофона, продел свело через отверстие в плате и приклеил этот ролик к макетной плате. Затем взял ещё один точно такой же ролик и надел на сверло (чтобы ролики стояли ровно по оси) с другой стороны платы и также залил термоклеем.
Часы пропеллер на Arduino NANO своими руками
Часы пропеллер на Arduino NANO своими руками
Часы пропеллер на Arduino NANO своими руками
Часы пропеллер на Arduino NANO своими руками
Также термоклеем я зафиксировал проводники снизу платы в нескольких местах.
Часы пропеллер на Arduino NANO своими руками
Шаг 5
Всё, теперь можем заливать счетч часов-пропеллера в Ардуино, его Вы можете скачать отсюда.
Шаг 6
На скорую руку сделал корпус из косков ДСП и фанеры, покрасил переднюю панель в чёрный цвет, по центру сделал отверстие для вала двигателя, который был прикреплён сзади.
Часы пропеллер на Arduino NANO своими руками
Часы пропеллер на Arduino NANO своими руками
Часы пропеллер на Arduino NANO своими руками
Также на обратном от светодиоде конце платы, возле Ардуино просверлил отверстие под болтик, на который я накрутил 3 гайки, чтобы был противовес и можно было сбалансировать стороны платы, чтобы не было большого перевеса какой-либо из сторон.
Шаг 7
Надеваем на вал двигателя нашу плату. Теперь нужно приклеить неодимовый магнит в верхней части, в том месте где будет проходить датчик Холла.
Часы пропеллер на Arduino NANO своими руками
Теперь начинаем плавно подавать напряжение, чтобы часы отрегулировать таким образом, чтобы отметка 12 часов была точно вверху.
Часы пропеллер на Arduino NANO своими руками
Шаг 8
Когда я убедился, что всё работает отлично, я припаял синий светодиод «состояния часов» и также подпаял выключатель питания.
Часы пропеллер на Arduino NANO своими руками
Часы пропеллер на Arduino NANO своими руками
Часы пропеллер на Arduino NANO своими руками
Всё, самодельные часы-пропеллер готовы! Чтобы их включить надо сначала переключить выключатель на плате во включенное состояние, при этом загорится синий крайний светодиод, а затем уже подаём питание на двигатель, настраивая на лабораторном БП необходимое напряжение, чтобы циферблат выровнялся.
Часы пропеллер на Arduino NANO своими руками
Часы пропеллер на Arduino NANO своими руками
Внизу Вы видите аналоговые часы совмещённые с цифровыми и дополнительной надписью, это моя экспериментальная прошивка. Надеюсь Вам понравилась данная самоделка и Вы повторите её, так как она не сложная на самом деле.
Часы пропеллер на Arduino NANO своими руками
После очередной модернизации своего 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 и сделать управление часами через смартфон. Вывести погоду, курс валюты. Грубо говорят сделать информер. Но так как дисплей часов не очень большой. Большая информация будет не очень читабельная.
У автора корпуса есть доработанные версии часов. Например подставка сделана уже побольше и часы более устойчивые. Также сделаны накладки которые закрывают провода с задней стороны.
Больше
фото по проекту сотрите тут:
Светодиодные часы своими руками на ардуино (Arduino) WS2312
Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.
Всем Пока-Пока. И до встречи в следующем проекте.
Понравилась статья? Поделитесь ею с друзьями:
Файлы для скачивания
Clock_v1.ino | 10 Kb | 261 | Скачать Вы можете скачать файл. |
Разработка часов на Arduino достаточно увлекательная и интересная тема. На моём сайте вы найдете большое количество различных проектов часов, в том числе и проект часов на Arduino с дисплеем Nextion.
В данном проекте будем дорабатывать часы на Arduino с сенсорным дисплеем Nextion. Напечатаем новый корпус на 3D принтере и добавим возможность воспроизведения MP3 файлов с карты памяти.
Первая версия часов с сенсорным дисплеем.
Предыдущая версия часов получилась неплохой, но были недостатки. Один из недостатков заключался в том, что часы обладали минимальным набором функций: вывод даты и времени, температуры, влажности в помещении. Но больше всего не понравился моим подписчикам на YouTube корпус. Он был сделан из банки из-под чипсов и имел ряд недочетов. Подписчики на канале предложили переделать корпус, и напечатать его на 3D принтере, что я и сделал.
Для того, чтобы собрать часы на Arduino с дисплеем Nextion нам понадобится:
1. Arduino Nano V3.0 (ATmega328). Версия Arduino Nano V2.0 (ATmega168) не подойдет, так как для текущего функционала недостаточно памяти.
2. Дисплей Nextion 2,8 дюйма. Можно и другого размера.
3. Датчик температуры и влажности SHT3x (SHT31) .
4. Часы реального времени (RTC) DS3231, я использовал версию mini.
5. Разъем 5.5 мм, для подключения питания часов.
6. MP3-плеер DFPlayer Mini.
7. Динамик 3Вт. 4Ом.
8. Провода для соединения элементов.
9. Пластик для печати корпуса.
10. Винты, гайки и шайбы М3.
11. Краска для покраски корпуса. Можно и не красить.
Эти комплектующие пригодятся при сборе часов с сенсорным дисплеем. Возможно, упустил и расписал не все, что использовал. Если есть замечания или предложения, пишите в комментарии.
Схема подключения самодельных часов и плеера.
С комплектующими определились. Сейчас можно все собрать. Для тестирования работы часов я собрал электронику на макетной плате вот по такой схеме.
Перед тем, как установить все в корпус, необходимо запрограммировать Arduino. Это связано с тем, что мы будем использовать аппаратные пины RX TX. На плате это pin 0 и 1. Если мы подключим к ним дисплей, то прошить Ардуино не получится, будет выводить ошибку. Вот почему так важно перед сборкой загрузить скетч в Arduino NANO.
Скетч часов на Arduino с дисплеем Nextion.
Скетч часов на Arduino с дисплеем Nextion можно скачать внизу статьи, в разделе материалы для скачивания. Там же вы найдете все необходимые библиотеки.
В коде менять ни чего не нужно, достаточно правильно установить все библиотеки и загрузить код в Arduino.
Если у вас возникнут трудности, задавайте вопросы на форуме, там быстрее увижу и отвечу вам.
Корпус для часов Nextion.
После того, как забраковали мой первый корпус для часов, я решил не расстраиваться, а сделать 3D Model в программе Fusion 360.
Модель, к сожалению, утеряна, так как у меня сломался жёсткий диск. Остался только код для печати на 3D принтере пластиком PLA, соплом 0,4 мм.Код можно скачать в разделе материалы для скачивания.
Корпус удался не с первого раза.
Первая модель получилась достаточно маленькая и компактная, но устанавливать элементы было бы достаточно сложно. А порой даже невозможно. Для установки дисплея мне пришлось подточить крепления задней крышки.
Долго мучиться я не стал с подгонкой всех элементов и сделал вторую версию. Но тут ждал меня ещё один небольшой казус. При распечатке выпал нагреватель и пластик перестал нагреваться до нужной температуры, что привело к расслоению верхних слоев детали.
Третий вариант получился более удачный. Я решил его зачистить и покрасить. В итоге получился вот такой красивый белый корпус.
Сборка часов с сенсорным дисплеем.
После того, как Arduino запрограммирована, можно приступить к установке электроники в корпус. Поэтапно устанавливаем все элементы: датчик температуры и влажности, модуль MP3 плеера, динамик, его устанавливаю на заднюю крышку с помощью крепежного кольца.
Дисплей Nextion закрепляю с помощью винтов M3, предварительно подложив по три шайбы между корпусом и дисплеем. Это необходимо для того, чтобы корпус и дисплей были на одном уровне. Устанавливаем разъём питания на заднюю крышку. После чего зданию крышку устанавливаем на место, и закрепляем ее с помощью двух винтов.
Часы готовы и теперь их можно проверить.
Обзор готовых часов плеера на Ардуино с дисплеем.
Часы готовы и пора проверить их работоспособность. Предлагаю рассмотреть, что уже умеет данная самоделка?
Функции и возможности самодельных часов на Ардуино:
- Вывод даты и времени;
- Вывод температуры и влажности;
- Настройка даты и времени;
- Время не сбрасывается при отключении питания;
- Воспроизведение музыки с карты памяти;
- Настраиваемые плейлисты.
- Воспроизведение композиций из выбранного плейлиста.
- Воспроизведение случайной композиции.
- Настройка громкости.
Более наглядно о возможностях данной самоделки вы сможете посмотреть в видео.
Вывод.
Возможности Arduino NANO достаточно обширные и реализовать на данной отладочной плате можно различные самоделки. Я планировал добавить еще пару функций, но памяти уже не достаточно и ардуинка начинает подвисать, если посылать большое количество команд с дисплея. Поэтому следующая версия часов с дисплеем Nextion будет на ESP32.
Если есть вопросы, проблемы, предложения и пожелания, пишите их в комментариях. Комментарий можно написать без регистрации на сайте.
Не забывайте подписываться на мой YouTube канал, вступать в группу Вконтакте, в группу на Facebook.
И всем пока-пока.
До встречи в новом проекте.
Понравилась статья? Поделитесь ею с друзьями:
Файлы для скачивания
Скетч Clock-v1.3.zip | 5 Kb | 83 | Скачать Вы можете скачать файл. | |
Часы-1.3.HMI.zip | 154 Kb | 73 | Скачать Вы можете скачать файл. | |
Часы-1.3.tft.zip | 155 Kb | 71 | Скачать Вы можете скачать файл. | |
gcode, PLA, соплом 0,4 мм.zip | 1797 Kb | 63 | Скачать Вы можете скачать файл. |
- Почему GitHub?
Особенности →
- Обзор кода
- Управление проектами
- Интеграции
- Действия
- Пакеты
- Безопасность
- Управление командой
- Хостинг
- Мобильный
- Отзывы клиентов →
- Безопасность →
- команда
- предприятие
- Проводить исследования
- Исследуйте GitHub →
учиться и внести свой вклад
- Темы
- Коллекции
- Тенденции
- Learning Lab
- Руководства с открытым исходным кодом
Общайтесь с другими
Щит регистрации данных для Arduino NANO
новый для Arduino NANO Shield. Вы можете быстро приступить к работе — сохраняете данные в файлы на любой SD-карте, отформатированной в FAT16 или FAT32, для чтения любой программой построения графиков, электронных таблиц или анализа.
Включенные часы реального времени ставят все ваши данные вместе с текущим временем, чтобы вы точно знали, что произошло, когда!
Пожалуйста, обратите внимание, что этот предмет не поставляется с Arduino NANO (вам понадобится один со щитом) или SD-картой.Это не с батареей RTC.
Интерфейс SD-карты работает с картами формата FAT16 или FAT32. Схема переключения уровня 3.3 В предотвращает повреждение вашей SD-карты
Часы реального времени (RTC) поддерживают текущее время, даже когда Arduino отключен. Резервная батарея длится годами
Включенные библиотеки и примеры кода для SD и RTC означают, что вы можете быстро начать работу
Область прототипирования для пайки разъемов, схем или датчиков.
Встроенный регулятор 3, является одновременно надежным опорным напряжением, а также надежно работает SD карты, которые требуют много энергии для запуска
Работает с Arduino NANO или MICRO
Примечание: это не включает батарею
В пакет включено:
1 х Nano Data Logging Shield для Arduino
,
Arduino — Библиотеки
Справочник Язык | Библиотеки | Сравнение изменения
Библиотеки
Среда Arduino может быть расширена за счет использования библиотек, как и большинство платформ программирования. Библиотеки предоставляют дополнительную функциональность для использования в эскизах, например, работа с оборудованием или манипулирование данными. Чтобы использовать библиотеку в эскизе, выберите ее из « Эскиз»> «Импортировать библиотеку ».
Ряд библиотек поставляется с IDE, но вы также можете загрузить или создать свою собственную.Посмотрите эти инструкции для деталей об установке библиотек. Также есть учебник по написанию ваших собственных библиотек. См. Руководство по стилю API для получения информации о создании хорошего API в стиле Arduino для вашей библиотеки.
Стандартные библиотеки
- EEPROM — чтение и запись в «постоянное» хранилище
- Ethernet — для подключения к Интернету с использованием Arduino Ethernet Shield, Arduino Ethernet Shield 2 и Arduino Leonardo ETH
- Firmata — для связи с приложениями на компьютере по стандартному последовательному протоколу.
- GSM — для подключения к сети GSM / GRPS со щитом GSM.
- LiquidCrystal — для управления жидкокристаллическими дисплеями (ЖК-дисплеями)
- SD — для чтения и записи SD-карт
- Servo — для управления серводвигателями
- SPI — для связи с устройствами, использующими шину последовательного периферийного интерфейса (SPI)
- SoftwareSerial — для последовательной связи на любых цифровых выводах. Версия 1.0 и позже Arduino включают библиотеку NewSoftSerial Микала Харта как SoftwareSerial.
- Stepper — для управления шаговыми двигателями
- TFT — для рисования текста, изображений и фигур на экране Arduino TFT
- WiFi — для подключения к интернету с помощью Arduino WiFi Shield
- Wire — двухпроводной интерфейс (TWI / I2C) для отправки и получения данных через сеть устройств или датчиков.
Библиотеки Matrix и Sprite больше не являются частью основного дистрибутива.
101 только библиотеки
- CurieBLE — Взаимодействие со смартфонами и планшетами с Bluetooth Low Energy (BLE).
- CurieIMU — Управление бортовым акселерометром и гироскопом.
- CurieTimerOne — Позволяет использовать функции таймера.
- CurieTime — Позволяет контролировать и использовать внутренние RTC (часы реального времени)
Должны только библиотеки
- Аудио — Воспроизведение аудиофайлов с SD-карты.
библиотеки Due, Zero и MKR1000
- USBHost — общение с периферийными устройствами USB, такими как мыши и клавиатуры.
- Планировщик — Управление несколькими неблокирующими задачами.
Ноль и все библиотеки MKR на базе SAMD21
- AudioFrequencyMeter — сэмплируйте аудиосигнал и верните его частоту
- AudioZero — воспроизведение аудио файлов с SD-карты
- RTC — часы реального времени для планирования событий
- ArduinoSound — простой способ воспроизведения и анализа аудиоданных
- I2S — Чтобы использовать протокол I2S на SAMD21
WiFi 101 и MKR1000 Библиотека
- WiFi101 — библиотека для использования только с Wifi shield 101
- WiFi101OTA — беспроводные обновления на MKR1000
MKR WiFi 1010, MKR VIDOR 4000, Arduino NANO 33 IoT и Arduino UNO WiFi Rev.2
- WiFi NINA — библиотека для использования модуля WiFi Nina вышеперечисленных плат.
Arduino Nano 33 BLE, Nano 33 BLE Sense, NANO 33 IoT, Uno WiFi Rev 2, MKR WiFi 1010.
- ArduinoBLE — библиотека для использования функций BLE вышеперечисленных плат.
Arduino Nano 33 IoT и UNO WiFi Rev. 2
- ArduinoLSM6DS3 — библиотека для использования 6-осевого IMU LSM6DS3, доступная в Arduino Nano 33 IoT и Arduino UNO WiFi Rev. 2.
Arduino Nano 33 BLE и BLE Sense
- ArduinoLSM9DS1 — библиотека для использования 9-осевого IMU LSM9DS1, доступная на Arduino Nano 33 BLE и Arduino Nano 33 BLE Sense.
Arduino Nano 33 BLE Sense
- PDM — библиотека для использования цифрового микрофона MP34DT05, наша библиотека PDM может использоваться также с нашей библиотекой ArduinoSound.
- ArduinoAPDS9960 — библиотека для использования датчика жеста APDS9960; он чувствует жест, цвет, освещение и близость окружения.
- ArduinoLPS22HB — библиотека для использования барометра и датчика температуры LPS22; это ультракомпактный датчик, который функционирует как цифровой выходной барометр.
- ArduinoHTS221 — библиотека для использования датчика относительной влажности HTS221; это ультракомпактный датчик, в котором используется планарная конденсаторная структура из полимерного диэлектрика, способная обнаруживать изменения относительной влажности, возвращаемые в виде цифрового выхода на последовательный интерфейс.
MKR Только для транспортных средств Библиотека
MKR FOX 1200 только библиотека
- SigFox — библиотека для использования только с MKRFOX1200
MKR WAN 1300 только библиотека
- MKRWAN — библиотека для использования только с MKR WAN 1300
MKR Только GSM 1400 Библиотека
- MKRGSM — библиотека для использования только с MKR GSM 1400
MKR NB 1500 только Библиотека
- MKRNB — библиотека для использования только с MKR NB 1500
Эта библиотека позволяет вам общаться с устройствами I2C / TWI. На платах Arduino с разметкой R3 (разводка 1.0) SDA (линия передачи данных) и SCL (линия синхронизации) находятся на разъемах выводов рядом с выводом AREF. Arduino Due имеет два интерфейса I2C / TWI: SDA1 и SCL1 находятся рядом с выводом AREF, а дополнительный — на контактах 20 и 21. В качестве ссылки в таблице ниже показано расположение TWI-выводов на различных платах Arduino.
По состоянию на Arduino 1.0, библиотека наследует от функций Stream, что делает ее совместимой с другими библиотеками чтения / записи. Из-за этого send () и receive () были заменены read () и write (). ПримечаниеСуществуют как 7-, так и 8-битные версии адресов I2C. 7 бит идентифицируют устройство, а восьмой бит определяет, записывается оно или читается с него. Библиотека Wire использует 7-битные адреса. Если у вас есть таблица данных или пример кода, который использует 8-битный адрес, вы должны отбросить младший бит (т.е.е. сдвиньте значение на один бит вправо), получая адрес от 0 до 127. Однако адреса от 0 до 7 не используются, поскольку они зарезервированы, поэтому первый адрес, который можно использовать, равен 8. Обратите внимание, что при подключении контактов SDA / SCL необходим подтягивающий резистор. Пожалуйста, обратитесь к примерам для получения дополнительной информации. На плате MEGA 2560 имеются подтягивающие резисторы на контактах 20 — 21 на борту. Для использования этой библиотеки Примеры
См. ТакжеПоследняя редакция 2019/12/24 по SM | Функции |