6月27日にRaspberry Pi Pico用高精度RTCモジュールを買って設定したのですが…うまくいかず…
という記事を書いたのですが、知り合いの方にWaveShareの高精度RTCモジュールを買って動かし方がわかったから教えてあげると言っていただき、また記事にもしていいと言っていただいたので、動かし方を記述します。
Raspberry Pi Picoの初期設定までは、下記の記事をご確認いただけると幸いです。
なお、ファームウエアの設定は通常のRaspberry Pi PicoのMicroPythonの設定で問題なしです。
本題となるプログラムですが、WaveShare以外のプログラムを使用します。
ここでは、Spotpearのプログラムを使用しています。ページのリンクは下記の通りです。
コードは、ページの下部にあるds2321.py をクリックするとサンプルプログラムがダウンロードできます。
(SB-ComponentsもRTCモジュールを出しているのですが、WaveShareのRTCモジュールだとプログラムが動いたり動かなかったりしたので、Spotpearを使用しました。)
ここで、サンプルプログラムのコードの下記の2か所を書き換えて実行します。
1) 11行目 NowTimeを現在(初期設定時)の日時へ変更
xss(秒)/xmm(分)/xhh(時)/x01~07(日~土)/xdd(日)/xmm(月)/xyy(年)
2) 15行目 Pinの配置をWaveShare向けへ変更
bus=I2C(1,scl=Pin(7),sda=Pin(6)) → bus=I2C(0,scl=Pin(21),sda=Pin(20))
次に、上記のプログラムの場合はRaspberry Pi Picoをプログラムを起動するとつねにNowTimeから
カウントを始めてしまうため、Raspberry Pi Picoを再接続した場合用に23行目をコメントアウトしたプロフラムをリネームして保存しておきます。
一度、関数を実行すれば、USBケーブルを抜いても時間が保持されるため、
2回目以降はリネームしたプログラムを動かせば大丈夫です。
Comments