Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

Real Time Clock Module ( DS1307 + AT24C32 ) + Arduino UNO + Arduino IDE 1.0.5-r2

———-追記(2019/06/27)———-
Real Time Clock Module ( DS1307 + AT24C32 ) + Arduino UNO + Arduino IDE 1.8.8」に新しい記事
———-追記ここまで———-

久しぶりの Arduino ネタは DS1307 と AT24C32 を載せた
rtc_arduino_07
RTCモジュール(Real Time Clock Module LIR2032付き送料込み$1.51)
rtc_arduino_08
を Arduino UNO に接続して時刻をシリアルモニタに表示させる覚書き。
Arduino は新しいセンサーやモジュールのテスト用ボードという位置づけなので、スケッチを探してきて、確かに動作することを確認するまでが Arduino の仕事だ。

配線は以下の通り
VCC –> 5V
GND –> GND
SDA –> ANALOG IN A4
SCL –> ANALOG IN A5

こちらから頂いてきたTime.zipというファイルを解凍してその中の
Time¥Time
をライブラリ登録する(追記1)。
rtc_arduino_01
Time¥Time¥Examples¥TimeSerial¥TimeSerial.pde
をArduino IDEに読み込んで、Arduino UNOに書き込む。
この際、以下のようなエラーが出るので、
rtc_arduino_02
Serial.print(TIME_REQUEST,BYTE);
のうちの「,BYTE」を削除して「print」を「write」に変更し、
Serial.write(TIME_REQUEST);
とする。

2011/11/30 Arduino-1.0リリース時の変更点
BYTEキーワードは廃止。
1バイトのデータをそのまま送信する際はSerial.write()を使用する。

rtc_arduino_03
実行すると、シリアルモニタに
Waiting for sunc message
と表示されるので、
rtc_arduino_04
例えば「T1408483320」と入力すると、以下のように時刻が表示され始める。
rtc_arduino_05
1408483320 は、例として 2014/8/19 21:22 をUNIX Time というものに直した値で、これに「T」をつけて入力するとその時刻からカウントが始まる。
私の場合は、Libreoffice Calc で以下のようにして求めた。
rtc_arduino_06
A1 = “2014/8/19 21:22”
B1 = (A1-DATEVALUE(“1970/1/1 00:00:00”))*86400
「UNIX Time」で検索すれば変換サイトも見つけることが出来る。

追記(2015/03/01)
久しぶりにやってみたらエラーが出まくった。
ちなみにIDEのバージョンは1.6.0になっている。
良く見るとみんな同じエラーだ。

とりあえず「error: variable ‘hogehoge’ must be const」と言ってるので、constにしてみる。
直すのはスケッチフォルダの中の
¥libraries¥Time¥DateStrings.cpp
で、エラーの出ている行に片っ端からconstを追加する。
面倒だから直したあとのDateStrings.cppを以下に全部載せる。

今度は問題なく完了した。

PICでも動かしてみた。
Real Time Clock Module ( DS1307 + AT24C32 ) + PIC18F2550 + SC1602B
Real Time Clock Module ( DS1307 + AT24C32 ) + PIC18F2550 プリント基板作成

追記1(2019/06/27)
 リンク先でファイルに行きつけなかった。
 ライブラリマネージャからインストールできると思う。戻る

このエントリーをはてなブックマークに追加

Posted under: Arduino, 電子工作その他


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.