Простые часы на Arduino Uno
Проекты на Arduino Uno и Slot Shield
Чтобы собрать простые часы на Arduino Uno понадобится только один дополнительный модуль — четырёхразрядный индикатор.
Можете собрать такие часы на макетке, но удобнее будет на Troyka Slot Shield. Плата станет корпусом будущего устройства.
Текущее время синхронизируется с компьютером при перепрошивке платы.
- Язык программирования: Arduino (C++)
Что потребуется
Полный сет компонентов проекта. В сет входят:
- четырёхразряный индикатор Quad Display
Видеоинструкция
Как собрать
Установите Troyka Slot Shield на Arduino Uno
Вставьте Quad Display в разъёмы E
и F
. Пин CS
подключите к 10
пину Arduino.
Скетч
Прошейте контроллер скетчем через 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 всего три ноги и расположены они слева. Можно ли использовать его в этом проекте?
У вас предыдущая версия модуля. Она снята с производства пару лет назад. С этим скетчем, библиотекой и схемой сборки модуль работать не будет.