Интерактивный таймер обратного отсчёта с LED-дисплеем и Bluetooth-управлением
Компоненты и материалы
| Adafruit Neopixel 8x8 RGB LED matrix | × | 1 |
| SparkFun Bluetooth Modem - BlueSMiRF Silver | × | 1 |
| Пьезо-зуммер | × | 1 |
| Провода male-male | × | 1 |
| Провода female-male | × | 1 |
| Arduino UNO | × | 1 |
| Мини макетная плата | × | 1 |
| Портативный Powerbank (5V) | × | 1 |
| Pin-разы (header pins) | × | 1 |
| Lumina 635 (Windows Phone 10) | × | 1 |
Инструменты
- Паяльник и припой
Приложения и сервисы
- Microsoft Windows 10 IoT Core
О проекте
Введение
Моей 6-летней дочери нет чувства времени. «Ещё 2 минуты» — она не отличает 30 секунд от 10 минут. Таймер микроволновки она не видит из игровой и не слышит из спальни. Решил сделать портативный таймер с наглядным отображением времени.
Начал с числового обратного отсчёта на 16x2 LCD — скучно. Даже если она знает, что 45 больше 15, не ощущает, сколько времени осталось. Перешёл к визуализации — песочные часы на 8x8 матрице. 8x16 лучше, но песочные часы тоже неинтересны.
После экспериментов с дочерью выбрали этот дизайн: многоцветные капли падают и накапливаются по мере прохождения времени. Каждые несколько секунд (1/64 интервала) загорается один светодиод. Когда все 64 загорятся — время вышло, матрица мигает, зуммер пищит.
Интервалы выбираемы: 1, 2, 5 минут и т.д. Удаленное управление голосом через Windows Phone: говоришь интервал — таймер стартует. Когда время вышло, можно добавить время тоже голосом (в Bluetooth-радиусе).
Основа: Arduino Uno, Neopixel 8x8 RGB матрица, Bluetooth-модуль. Круто, что Neopixel нужен только 1 пин — остальные свободны. Bluetooth для связи с телефоном. Приложение Windows Virtual Shields for Arduino на телефоне позволяет использовать возможности телефона в скетче.
Проект для начинающих, 30–45 минут (если есть опыт с Arduino). Если совсем новичок — посмотрите вводные видео (рекомендую серию Jeremy Blum).
Если сделаете улучшения — делитесь в комментариях!
Полезные ресурсы:
- Windows On Devices — гайд по Virtual Shields
- Adafruit Neopixel Uberguide
- Библиотека Nulsom для LED-матриц
- YouTube: Jeremy Blum’s Arduino Tutorial Series
Предварительные требования
- Настроить Arduino для Windows Virtual Shields (инструкция).
- Настроить Windows Phone и ПК для Virtual Shields (инструкция).
Примечание: если нет Windows 10 и Visual Studio 2015, подготовка займёт 2–3 часа (больше всего автоматическое).
Необходимые детали
Компоненты:
- Arduino Uno + стандартный USB A/B кабель
- Neopixel 8x8 RGB LED matrix
- Bluetooth-модуль
- Пьезо-зуммер
- Провода male-male и male-female
- Мини-макетная плата
- Lumina 635 (или другой Windows Phone 10)
- Опционально: угловые pin-разы
- Опционально: портативный 5V powerbank
Инструменты:
- Паяльник и припой
Инструкции по сборке
Шаг 1: Подключение LED-матрицы к Arduino (15 мин)
Детали: Arduino Uno, Neopixel 8x8, 3-pin header, провода, мини-макетка.
Инструменты: паяльник, припой.
Пробовал разные матрицы — шилды занимали все пины и конфликтовали с RX/TX (D0/D1) при добавлении Bluetooth. Neopixel идеален: 1 управляющий пин, нет конфликтов.
Сначала припаяйте 3-pin header к матрице (прямые или угловые — по вашему креплению, male/female — под ваши провода). Я использовал угловые male — что было под рукой. Можно паять провода прямо, но header гибче.
Только 3 соединения:
- Arduino 5V → свободный ряд на макетке → male-female провод к 5V матрицы.
- Arduino GND → male-female провод к GND матрицы.
- Любой цифровой пин (кроме D0, D1) → male-female провод к DIN матрицы. Я использовал D9.
Важно: порядок пинов 5V, GND, DIN может отличаться у разных производителей — проверяйте надписи на плате!

Шаг 2: Тест матрицы (5 мин)
Почти у всех матриц есть библиотека. Adafruit имеет свою, но я предпочёл библиотеку Nulsom — светодиоды гаснут корректно при очистке, Virtual Shields работает стабильнее.
Скачайте библиотеку Nulsom, положите в Arduino/libraries. Откройте пример в IDE, загрузите — красивые огни!
Шаг 3: Подключение Bluetooth-модуля (5 мин)
Детали: Bluetooth-модуль, провода.
Инструменты: не нужны.
Первый раз использую Bluetooth — очень просто. BlueSMiRF Silver от SparkFun — замена последовательного кабеля. Припаяйте male header, вставьте в макетку.
Питание: Vcc модуля → шина 5V (из шага 1), GND → GND Arduino.
Serial: TX модуля → RX Arduino (D0), RX модуля → TX Arduino (D1).
Важно: с подключенными TX/RX Bluetooth нельзя загружать скетч через IDE. Отключайте их перед загрузкой, потом верните.

Шаг 4: Подключение пьезо-зуммера (5 мин)
Детали: Пьезо-зуммер, провода.
Инструменты: не нужны.
У зуммера 2 пина. Вставьте в макетку, «+» → цифровой пин Arduino (я использовал D3), «-» → GND.

Шаг 5: Загрузка кода (10 мин)
Скачайте код с GitHub, откройте в Arduino IDE.
Отключите TX/RX Bluetooth, загрузите скетч, снова подключите TX/RX.
Запустите приложение Virtual Shields на телефоне, свяжите с Bluetooth-модулем (см. требования).
Нажмите Reset на Arduino.
Когда попросит — скажите интервал в телефон (например, «one»). Начнётся анимация.
Шаг 6: Делаем портативным (5 мин)
Детали: 5V powerbank.
Зарядите powerbank от ПК или розетки. Подключите USB-кабель Arduino к powerbank — готово, таймер портативен, можно носить во двор.
Код
Countdown Timer
https://github.com/peejster/Countdown-Timer
Схемы
countdown_timer.fzz
Производственный процесс
- Титановые проволоки: типы, свойства и промышленные применения
- Сборка моностабильного мультивибратора на 555: пошаговое руководство
- Соглашения об обозначении соединений проводов на электрических схемах: понятное руководство
- Сети vs шины: понятное руководство по проводке в цифровых системах
- Устранение перемычек: Как BreadShield соединяет Arduino напрямую с макетными платами
- Построение надежного таймера в VHDL: подсчет тактовых циклов до часов
- Сборка портативной RetroPie-консоли на Raspberry Pi — Часть 1
- Игра «UFO Attack» на Arduino UNO и матрице MAX7219 — Собираем аркаду с джойстиком Atari
- Watchdog Timer на Arduino: как предотвратить зависание микроконтроллера
- Автомобильная проводка: ключевые концепции для надежной работы