Анимированные RGB настенные часы на Arduino Nano и Bluetooth
Компоненты и материалы
| Arduino Nano R3 | ×1 |
| Bluetooth-модуль HC-06 | ×1 |
| RTC DS3231 | ×1 |
| RGB LED-лента (адресуемая) | ×1 |
| 3D-печатаемые детали | ×1 комплект |
Инструменты
- Паяльник
- 3D-принтер
О проекте
Продолжение серии часов (Infinity Mirror Clock, 7-Segment Digital Clock). Новые часы — красивые настенные с RGB-подсветкой и анимациями. Управление через простое Android-приложение (APK в разделе схем). Arduino Nano выбран для компактности.
Часы показывают время цветными индикаторами: часы — на внутреннем кольце (12 LED), минуты и секунды — на внешнем (60 LED). Каждому элементу можно задать свой цвет. Режимы анимации: радуга, teatro chase, color wipe, rainbow cycle.
Схема подключения
- DS3231 — I2C (A4/A5)
- HC-06 — UART (D0/D1) или SoftwareSerial
- RGB-лента (основная) — D6, второе кольцо — D7
- Питание 5В от USB или внешнего БП
Код Arduino (основные моменты)
#include
#include
#define PIN 6 // основная лента (60 LED)
#define PIN2 7 // внутреннее кольцо (12 LED)
#define NUMPIXELS 60
DS3231 rtc(SDA, SCL);
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel pixels2(12, PIN2, NEO_GRB + NEO_KHZ800);
// Цвета для часов/минут/секунд (настраиваются из приложения)
int h_r=255, h_g=0, h_b=0;
int m_r=0, m_g=255, m_b=0;
int s_r=255, s_g=255, s_b=0;
void setup() {
Serial.begin(9600);
rtc.begin();
pixels.begin(); pixels2.begin();
pixels.show(); pixels2.show();
}
void loop() {
// Обработка команд из Bluetooth (Serial)
while (Serial.available() > 0) {
char c = Serial.read();
// Команды: 'm' — установка времени, 'H'/'M'/'S' — выбор цвета,
// 'r'/'g'/'b' — значение компоненты, 'A' — демо-анимации
}
// Отображение времени
Time t = rtc.getTime();
int hr = t.hour % 12;
int mn = t.min;
int sc = t.sec;
// Внешнее кольцо: минуты + секунды
pixels.clear();
for (int k=0; k<60; k+=4) pixels.setPixelColor(k, pixels.Color(25,25,255)); // метки 5 мин
pixels.setPixelColor(mn, pixels.Color(m_r, m_g, m_b));
pixels.setPixelColor(sc, pixels.Color(s_r, s_g, s_b));
pixels.show();
// Внутреннее кольцо: часы
pixels2.clear();
for (int i=0; i<12; i++) pixels2.setPixelColor(i, pixels2.Color(0,255,0));
pixels2.setPixelColor(hr, pixels2.Color(h_r, h_g, h_b));
pixels2.show();
delay(10);
}
// Функции анимаций: colorWipe, rainbow, rainbowCycle, theaterChase, theaterChaseRainbow, Wheel()
Управление с телефона
Android-приложение (APK) шлёт команды по Bluetooth: установка времени (+/−), выбор цвета для часов/минут/секунд, запуск анимаций. Интерфейс интуитивен.
Схемы и файлы
- Схема подключения (PNG)
- APK для Android:
clockconnect__Ieit1qA91l.apk
Производственный процесс
- Кукушка: история, мастерство и современная эволюция
- Arduino POV-часы: сборка дисплея на эффекте сохранения образа
- Стильные настенные часы на четырех кольцах Adafruit Neopixel 60 LED и Arduino
- Слово-часы (Word Clock) на Arduino — DIY-часы с текстовой индикацией времени
- Создание пользовательских LED-часов с будильником — видно с 12 метров
- 3D RGB Arduclock — Bluetooth-часы на адресных LED с RTC
- Итальянские словесные часы на Arduino Nano, NeoPixel, LCD и RTC
- JX Wave Generator — Генератор сигналов на Arduino с DDS AD9833 и OLED-дисплеем
- Сборка Берлинских часов на Arduino UNO — LED-матричные часы своими руками
- Бесконечное зеркало-часы: элегантный дизайн и точное время