以前の記事でRTCモジュールを使った基本的な時計の使い方を紹介したが、今回はアラーム機能を使った割り込みによる定期処理を行う方法について説明する。Arduinoで例えば1分毎に何らかの処理を行いたい場合、loop処理内でdelay関数で60000ms程度待機させる方法もあるが、バッテリー駆動させる場合は電力の無駄だし、delayと処理を繰り返すたびに少しずつずれが生じてくる。バッテリーを節約する方法としてWatchdogタイマーとSleepを使う方法もあるが、最長8秒のためインターバルが分や時間単位になるとやや処理が面倒になってくる。単位で簡単に割り込みを起こし定期処理を行う事が出来る。RTCモジュールなので、Arduinoの簡易時計機能よりも正確である。配線は通信用のSCL/SDAと、割り込み用にSQWピンを使う。SQWピンは波形生成と共通のため、アラーム機能を使う場合は波形生成の機能はオフにしておく必要がある。2もしくは3をSQWと繋ぐ。ライブラリは下記ライブラリを使用。RTCモジュールの時計はすでに合わせてあるものとする。使い方は簡単で、attachInterruptで割り込みが変化した際に実行する関数を指定(RTCの割り込みはLOWになるので、FALLING指定)、setAlarmで割り込みのタイミングを指定、alarmInterrupt関数でアラームを有効化、alarm関数で割り込みフラグをリセットする。下記サンプルコードは毎分00秒にRTCから割り込みを発生させ、シリアルポートに時刻を出力後電力セーブモードに入るコードである。power_all_enable();}電子ペーパーディスプレイと組み合わせた時計作成も参考に。unoとDS3231を用いて、こちらの定期処理を行いたいと考えております。初歩的な質問なのですが、DS3231の時計合わせはどのようにするのでしょうか。お時間ありましたら、教えていただけると大変助かります。コメントをキャンセルメールアドレスが公開されることはありません。*上に表示された文字を入力してください。ProgramResource.net本サイトは開発者向けに様々な情報を筆者ねふぁが提供するサイトです。筆者の個人的な経験や知識、他のサイトの情報を参考にしながらまとめています。内容に誤りや偏見などある可能性がありますのでご注意下さい。本サイトの情報を元に工作等を行い、万が一機器等が破損した場合でも責任は負いかねますので、最終的にはご自身でチェックしてから動かす様にして下さい。