
Если вы хотите создать свои собственные часы, то использование микроконтроллера — отличный способ начать. В этом руководстве мы покажем вам, как создать цифровые часы на микроконтроллере, используя всего несколько компонентов.
Первое, что вам нужно сделать, это собрать все необходимые компоненты. Вам понадобится микроконтроллер, дисплей, кнопки для настройки времени и часовой механизм. Для этого проекта мы будем использовать микроконтроллер Arduino Uno, дисплей 16×2 и кнопки с нормально разомкнутым типом.
После того, как у вас есть все необходимые компоненты, пришло время приступить к программированию микроконтроллера. Для этого проекта мы будем использовать язык программирования Arduino. В коде мы начнем с инициализации дисплея и кнопок, а затем напишем функцию для отображения времени на дисплее.
Чтобы отображать время на дисплее, мы будем использовать функцию millis(), которая возвращает количество миллисекунд, прошедших с момента запуска микроконтроллера. Мы будем использовать эту функцию для обновления времени каждую секунду.
Для настройки времени мы будем использовать кнопки. Когда кнопка нажата, мы будем менять значение часа или минуты в зависимости от того, какая кнопка была нажата. После настройки времени мы сохраним его в EEPROM, чтобы оно не сбрасывалось при выключении питания.
Используя этот подход, вы можете создать свои собственные цифровые часы на микроконтроллере. Это проект, который можно расширить, добавив дополнительные функции, такие как будильник или таймер. Так что давайте начнем программировать!
Выбор компонентов для создания электронных часов
- Микроконтроллер — сердце ваших часов. Рекомендуется использовать ATmega328P, который используется в Arduino Uno.
- Дисплей — для отображения времени. Рекомендуется использовать ЖК-дисплей с интерфейсом I2C, такой как SSD1306 или SH1106.
- Кварцевый резонатор — для генерации тактовых сигналов. Рекомендуется использовать 32.768 кГц, так как он совпадает с тактовой частотой ATmega328P.
- Кнопки — для навигации по меню и установки времени. Рекомендуется использовать три кнопки: одну для навигации и две для установки времени.
- Конденсаторы — для фильтрации шума и стабилизации напряжения. Рекомендуется использовать конденсаторы емкостью 0,1 мкФ и 10 мкФ.
При выборе компонентов важно учитывать их совместимость и рабочие параметры. Например, убедитесь, что дисплей совместим с выбранным микроконтроллером и имеет подходящее разрешение. Также убедитесь, что кварцевый резонатор имеет правильную частоту и напряжение питания.
После выбора компонентов можно приступать к схеме и программированию микроконтроллера.
Программирование таймера
Начните с подключения библиотеки DS3231, которая позволяет работать с реальным временем. Установите библиотеку через менеджер библиотек Arduino или скачайте ее с официального сайта.
Включите питание и данные для модуля DS3231, подключив его к пину SDA и SCL микроконтроллера. Затем создайте объект RTC для работы с модулем:
DS3231 RTC;
Инициализируйте модуль в функции setup():
if (! RTC.begin()) {
Serial.println(«DS3231 не найден!»);
while (1);
}
Теперь вы можете использовать методы now() и adj() для получения и изменения текущего времени:
DateTime now = RTC.now();
Serial.print(now.year());
Serial.print(‘/’);
Serial.print(now.month());
Serial.print(‘/’);
Serial.print(now.day());
Serial.print(‘ ‘);
Serial.print(now.hour());
Serial.print(‘:’);
Serial.print(now.minute());
Serial.print(‘:’);
Serial.println(now.second());
Для установки времени воспользуйтесь следующим кодом:
RTC.adj(DateTime(2022, 1, 1, 12, 0, 0));
Не забудьте включить Serial.begin(960










