Нам понадобится:
1. Arduino UNO R3
2. Модуль часов DS1307
3. 16X2 LCD дисплей.
1) Подключаем LCD дисплей
Подстроечный резистор, это регулировка контрастности дисплея (от 2кОм до 10кОм)
2) Подключаем модуль часов DS1307
Примечание: вывод "DS" модуля часов DS1307 - это вывод цифрового датчика температуры DS18B20, который не впаян в плату модуля.
3) Скетч для Arduino UNO
Библиотека RTClib
#include <Wire.h>
#include "RTClib.h"
#include <LiquidCrystal.h>
RTC_DS1307 RTC;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup () {
Serial.begin(9600);
lcd.begin(16, 2);
Wire.begin();
RTC.begin();
if (! RTC.isrunning()) {
Serial.println("RTC is NOT running!");
RTC.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
}
void loop () {
DateTime now = RTC.now();
lcd.setCursor(0,0);
lcd.print(" ");
if (now.hour() < 10)
lcd.print('0');
lcd.print(now.hour(), DEC);
lcd.print(":");
if (now.minute() < 10)
lcd.print('0');
lcd.print(now.minute(), DEC);
lcd.print(":");
if (now.second() < 10)
lcd.print('0');
lcd.print(now.second(), DEC);
lcd.setCursor(0,1);
lcd.print(" ");
if (now.day() < 10)
lcd.print('0');
lcd.print(now.day(), DEC);
lcd.print("/");
if (now.month() < 10)
lcd.print('0');
lcd.print(now.month(), DEC);
lcd.print("/");
lcd.print(now.year(), DEC);
// delay(1000);
}
Дополнительно: Для установки времени в модуле DS1307 можно воспользоваться скетчем и программой для Windows
скетч и программа
Комментарий: Недостаток проекта: вручную не устанавливается время без компьютера
В проекте использовалась arduino 1.0.5
По материалам:
http://cxem.net/arduino/arduino108.php
http://www.manelsoft.com/projects/arduino_ds1307_clock.aspx
Лечение модуля DS1307 для использования с батарейкой CR2032
|