====== Простые часы на Arduino Uno ====== **[[arduino-projects:start|Проекты на Arduino Uno и Slot Shield]]** Чтобы собрать простые часы на [[amp>product/arduino-uno?utm_source=proj&utm_campaign=arduino-slot-proj-1&utm_medium=wiki|Arduino Uno]] понадобится только один дополнительный модуль — [[amp>product/troyka-quad-display?utm_source=proj&utm_campaign=arduino-slot-proj-1&utm_medium=wiki|четырёхразрядный индикатор]]. {{ :arduino-projects:start:alarmclock1.png |}} Можете собрать такие часы на макетке, но удобнее будет на [[amp>product/arduino-troyka-slot-shield?utm_source=proj&utm_campaign=arduino-proj-1&utm_medium=wiki|Troyka Slot Shield]]. Плата станет корпусом будущего устройства. Текущее время синхронизируется с компьютером при перепрошивке платы. * Платформы: [[amp>product/arduino-uno?utm_source=proj&utm_campaign=arduino-slot-proj-1&utm_medium=wiki|Arduino Uno]], [[amp>product/arduino-leonardo?utm_source=proj&utm_campaign=arduino-slot-proj-1&utm_medium=wiki|Arduino Leonardo]], [[amp>product/iskra-neo?utm_source=proj&utm_campaign=arduino-slot-proj-1&utm_medium=wiki|Iskra Neo]] * Язык программирования: Arduino (C++) ===== Что потребуется ===== [[amp>collection/alarm-clock?utm_source=proj&utm_campaign=arduino-slot-proj-1&utm_medium=wiki | Полный сет]] компонентов проекта. В сет входят: * [[amp>product/arduino-uno?utm_source=proj&utm_campaign=arduino-slot-proj-1&utm_medium=wiki|Arduino Uno]] * [[amp>product/arduino-troyka-slot-shield?utm_source=proj&utm_campaign=arduino-slot-proj-1&utm_medium=wiki|Troyka Slot Shield]] * четырёхразряный индикатор [[amp>product/troyka-quad-display?utm_source=proj&utm_campaign=arduino-slot-proj-1&utm_medium=wiki|Quad Display]] ===== Видеоинструкция ===== {{youtube>eUlIHs75VaY?large}} ===== Как собрать ===== Установите [[amp>product/arduino-troyka-slot-shield?utm_source=proj&utm_campaign=arduino-slot-proj-1&utm_medium=wiki|Troyka Slot Shield]] на [[amp>product/arduino-uno?utm_source=proj&utm_campaign=arduino-slot-proj-1&utm_medium=wiki|Arduino Uno]] {{ :arduino-projects:bionical-alarm:alarmclock0.png |}} Вставьте [[amp>product/troyka-quad-display?utm_source=proj&utm_campaign=arduino-slot-proj-1&utm_medium=wiki|Quad Display]] в разъёмы ''E'' и ''F''. Пин ''CS'' подключите к ''10'' пину Arduino. {{ :arduino-projects:bionical-alarm:alarmclock1.png |}} ===== Скетч ===== Прошейте контроллер скетчем через [[articles:arduino-ide-install|Arduino IDE]]. // Подключаем библиотеку для работы с дисплеем #include // создаём объект класса 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')); } ======= Часто задаваемые вопросы ======= > Где скачать необходимые библиотеки и как их установить? * [[https://github.com/amperka/QuadDisplay2|Библиотека для работы с дисплеем]] * [[программирование:библиотеки|Как установить библиотеку]] > У моего модуля QuadDisplay всего три ноги и расположены они слева. Можно ли использовать его в этом проекте? У вас предыдущая версия модуля. Она снята с производства пару лет назад. С этим скетчем, библиотекой и схемой сборки модуль работать не будет.