RTC (リアルタイムクロック) です。Arduino には RTC がないので、時計を使いたい場合には RTC モジュールが必要となります。この製品にはデータ保存用の EEPROM も付属しています。
Amazon 等で購入できます (購入時価格: ¥780)。
私が購入した RTC モジュールには LIR2032 という電池が付属していました。これは CR2032 リチウム電池の充電池版です。単体でもそれなりの金額がする電池なので、この RTC モジュールはお買い得かもしれません (LIR2032 別売のものも多い)。
この RTC モジュールの製品名は "TinyRTC" といい、I2C 接続の RTC となります。右下にはダイオードのようなシルク印刷 (U1) がありますが、ここには DS18B20 という温度センサーが取り付けられます。なお、この製品は 5V 専用となっています。
電池ホルダをのある面を下にして解説してある記事が多いのですが、ブレッドボード用にピンヘッダを立てるとなると、電池ホルダをのある面を上にしないと電池ホルダ (と DS18B20) が干渉してしまいます。この記事では電池ホルダをのある面を上にした説明をしてあるので注意してください。
Arduino (UNO) との接続は以下のようになります。
Arduino と TinyRTC との接続は I2C (Inter-Integrated Circuit) となります。
I2C | RTC | Arduino |
GND | GND | GND |
VCC | VCC | 5V |
SCL | SCL | A5 |
SDA | SDA | A4 |
スケッチなどは ELECROW のサイトにあるので何も難しくはないのですが、念のために説明しておきます。
無事にコンパイルができて転送が終わったらシリアルモニタを開きます。
すると以下のように現在時刻がリアルタイムで表示されます。このライブラリで定義されている DS1307 の I2C スレーブアドレスはデフォルトで 0x68 (104) です。AT24C32 の I2C スレーブアドレスはデフォルトで 0x50 (80) です
もし、表示される日時が狂っているようでしたら...
|
このように時刻調整部分をブロックの外に出して再コンパイル&転送してください。現在時刻がコンパイルした時刻で設定されます (理屈上数秒の遅れが出ます)。
ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。