цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Простые часы на Arduino с использованием индикатора TM1637 и таймера DS3231


Простые часы на Arduino с использованием индикатора TM1637 и таймера DS3231

Автор: Mike(admin) от 15-11-2021, 03:55

В этом проекте показано, как собрать цифровые часы с использованием 4-значного 7-сегментного дисплея TM1637 и таймера DS3231 с Arduino. Этот дисплей отлично подходит для отображения времени.


Простые часы на Arduino с использованием индикатора TM1637 и таймера DS3231

Модуль TM1637 представляет собой специальную схему управления светодиодами (светодиодный дисплей) с интерфейсом сканирования клавиатуры, который внутренне интегрирован с цифровым интерфейсом микроконтроллера и схемой драйвера светодиодов. Питается данный модуль от 3,3 – 5,5 В и потребляет ток около 80 мА.


TM1637

DS3231 представляет собой недорогие, очень точные часы реального времени (RTC) с интерфейсом I2C с TCXO и встроенным кристаллом компенсации температуры. Устройство имеет вход для напряжения батареи, который отсчитывает время при отключении питания устройства. Наличие резонатора увеличивает долговременную точность устройства и снижает количество компонентов на производственной линии. DS3231 продается в корпусе SO с 16 выводами и доступен в коммерческих или промышленных диапазонах температур.


DS3231

Схема подключения Arduino к TM1637 и DS3231 для реализации часов представлена на следующем рисунке.


Схема подключения Arduino к TM1637 и DS3231

Код программы довольно прост и представлен далее. Не забудьте только подключить библиотеки RTClib и TM1637.



#include "RTClib.h"
#include <TM1637Display.h>

#define CLK 8
#define DIO 9

RTC_DS3231 rtc;
TM1637Display display = TM1637Display(CLK, DIO);

void setup() {
  Serial.begin(9600);
  delay(3000);

  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }
  if (rtc.lostPower()) {
    Serial.println("RTC lost power, lets set the time!");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    //rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
  }

  display.setBrightness(5);
  display.clear();
}

void loop() {
  DateTime now = rtc.now();

  int displaytime = (now.hour() * 100) + now.minute();

  Serial.println(displaytime);

  display.showNumberDecEx(displaytime, 0b11100000, true);

  delay(1000);

  display.showNumberDec(displaytime, true);

  delay(1000);
}



© digitrode.ru


Теги: Arduino, часы, часы реального времени, индикатор, таймеры




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий