RTCモジュール(DS1302)をAliExpressで購入したので、Arduinoにつないで動作確認しました。
RTCモジュールについて
購入時の価格は1個当たり$0.62でした。とんでもない安さです。
本編とは関係ないですが、並行輸入したやつはamazonとかでも売ってたりします。
割高になりますが、すぐ来るのがメリットです。
Aliexpressは2週間から2か月とかかかりますからね。
せっかくなんで数個買ったんですが、送られてきたものは一つずつ個包装になってました。
さっそく開封!
作りは問題なさそうですね。端子側の基板カットが攻めすぎている気もしますが、実害はないでしょう。
乗ってるRTC ICはちゃんとDS1302と書いてあります。Maxim純正品なワケありませんが。
Maxim純正品だとICだけで1個当たり$1.86以上しますからね。あくまでもお遊び品です。
ともかく動かしてみましょう。
プログラム
Arduino IDEの"ライブラリを管理"メニューから検索できる、"RTC by Makuna"ライブラリを使うことにします。
すると、スケッチ例もいくつか取り込まれるので、今回はDS1302_Simpleっていうやつを使って動作確認することにします。名前からして一番単純なので。
回路
前記のスケッチ例の接続に合わせて、ArduinoとDS1302をつなぎます。
こんな感じ。
で、実際につなぐとこんな感じ。
電池はCR2032を使用していますが、DS1302ではトリクルチャージ機能がついており、充電式のボタン電池LIR2032を使うこともできます。
トリクルチャージ機能はデフォルトではOFFになってますので、CR2032を使う場合は特に設定する必要はありません、というか、してはいけません。
ざっくりと書いとくと、下記の図の感じでAddress0x90に0b0101XXXXを書き込めばトリクルチャージ機能がONになります。
詳しくはデータシートをご確認ください。
繰り返しになりますが、くれぐれもCR2032ではトリクルチャージ機能を使わないようにご注意ください。
あと、ここで使ってるArduinoは普通に売ってるArduino UNOとかではなくて、ATMEGA328PをArduino化したものです。
詳しくはこちらの記事をご覧ください。
動作確認
つないだら、さっそく動かしてみましょう。
シリアルモニターを開き、通信速度をコード上の値(57600bps)に合わせ、書き込み実行アイコンをクリックして書き込みます。
すると、こんな感じでシリアルモニター上に現在の時刻が流れ始めました。
ちゃんと動いてそうですね。
RTCということで、30分ほどUSBケーブルを抜いてArduinoの電源をOFFにし、その後再び電源を投入してちゃんと時計が動いているか確認してみます。 うん、大丈夫そうですね。ちゃんと動いてそうです。
あとは精度がどの程度かは気になるところですが、しばらく時間をおいてみてみないとわからないので、おいおい確認しようと思います。
というわけで、1個当たり$0.62の激安RTCモジュールはそれなりに使えそうなことがわかりました。
今回はこれで終わります。
おしまい。