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

Что понадобится
Как подключить
| Откуда | Куда | |||
|---|---|---|---|---|
| Arduino Uno | 5V | → | RTC DS1307 | 5V |
| Arduino Uno | GND | → | RTC DS1307 | GND |
| Arduino Uno | A4 | → | RTC DS1307 | SDA |
| Arduino Uno | A5 | → | RTC DS1307 | SCL |
| Arduino Uno | 5V | → | LCD 1602 | VDD |
| Arduino Uno | GND | → | LCD 1602 | VSS |
| Arduino Uno | GND | → | LCD 1602 | RW |
| Arduino Uno | D12 | → | LCD 1602 | RS |
| Arduino Uno | D11 | → | LCD 1602 | E |
| Arduino Uno | D5 | → | LCD 1602 | D4 |
| Arduino Uno | D4 | → | LCD 1602 | D5 |
| Arduino Uno | D3 | → | LCD 1602 | D6 |
| Arduino Uno | D2 | → | LCD 1602 | D7 |
Скетч
#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»
Попробуйте сами
Симулятор работает прямо в браузере: схему можно менять, код — править, а результат видно сразу. Бесплатно, без установки и регистрации.
Открыть «Часы с экраном» в симуляторе