[Arduino] 自作時計を作ろう

第7回で、自作Arduinoを作り、時刻の取得をして、液晶の表示ができました。
これを一つにまとめて、時計を作ってみましょう。

まず、自作Arduinoを準備します。ただし、ブレッドボードは大きめを使ってください。なぜならば、端子が足りないからです。

以下のように作成し、ブートローダーまで書込んでください。

次にtinyRTC(DS1306)を接続しましょう。

マイコンのアドレスはこの通りです。ところが、SCL, SDAがありません。
SCLをA5, SDAをA4とすることで対応できます。

従って次のように配線しましょう。

最後に液晶ディスプレイですです。

次にプログラムです。
サンプルプログラムを元に書くとこうなるでしょう。

#include
#include
#include "RTClib.h"
RTC_DS1307 rtc;
const int rs = 12, rx = 11, en = 10, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, rx, en, d4, d5, d6, d7);
void setup() {
Wire.begin();
rtc.begin();
lcd.begin( 16, 2 ); // 16文字×2行
lcd.clear();
// put your setup code here, to run once:
if (! rtc.isrunning()) {
// following line sets the RTC to the date & time this sketch was compiled
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
}
void loop() {
DateTime now = rtc.now();
char buffer[20];
sprintf(buffer, "%4d/%02d/%02d", now.year(), now.month(), now.day());
lcd.setCursor(0,0);
lcd.print(buffer);
sprintf(buffer, "%02d:%02d:%02d", now.hour(), now.minute(), now.second());
lcd.setCursor(4,1);
lcd.print(buffer);
}

 

 

コンパイルして書き込むと、液晶に時計が表示されます。

写真では固いジャンパーワイヤーをまとめたり、液晶の裏に配線を回したりしていています。電源はUSBケーブルでとっています。