Часы с экраном

Время с модуля уезжает на LCD 1602 — с ведущими нулями и датой.

Продвинутый уровень Arduino Uno C++
Схема подключения: Часы с экраном
Схема в симуляторе. Нажмите «Открыть в симуляторе», чтобы запустить её и поменять.

Что понадобится

Как подключить

ОткудаКуда
Arduino Uno5V→RTC DS13075V
Arduino UnoGND→RTC DS1307GND
Arduino UnoA4→RTC DS1307SDA
Arduino UnoA5→RTC DS1307SCL
Arduino Uno5V→LCD 1602VDD
Arduino UnoGND→LCD 1602VSS
Arduino UnoGND→LCD 1602RW
Arduino UnoD12→LCD 1602RS
Arduino UnoD11→LCD 1602E
Arduino UnoD5→LCD 1602D4
Arduino UnoD4→LCD 1602D5
Arduino UnoD3→LCD 1602D6
Arduino UnoD2→LCD 1602D7

Скетч

#include <RTClib.h>
#include <LiquidCrystal.h>

// Часы: модуль DS1307 считает время, LCD 1602 его показывает.
// Ведущие нули приходится дописывать самому — print их не ставит.
RTC_DS1307 rtc;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void printTwo(int v) {
  if (v < 10) lcd.print("0");
  lcd.print(v);
}

void setup() {
  lcd.begin(16, 2);
  rtc.begin();
  lcd.print("RobX clock");
}

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

  lcd.setCursor(0, 0);
  printTwo(now.hour()); lcd.print(":");
  printTwo(now.minute()); lcd.print(":");
  printTwo(now.second());

  lcd.setCursor(0, 1);
  printTwo(now.day()); lcd.print(".");
  printTwo(now.month()); lcd.print(".");
  lcd.print(now.year());

  delay(500);
}

Коротко о детали: RTC DS1307

Модуль часов реального времени: считает секунды сам, переживая перезагрузку платы, — в железе за это отвечает батарейка. Подключается по I2C и читается библиотекой RTClib. Время при старте задаётся двойным кликом; пустое поле означает часы компьютера.

Распиновка и все примеры →

Ещё примеры с деталью «RTC DS1307»

Попробуйте сами

Симулятор работает прямо в браузере: схему можно менять, код — править, а результат видно сразу. Бесплатно, без установки и регистрации.

Открыть «Часы с экраном» в симуляторе