ArduinoでDS3231 RTCをマスターする - ステップバイステップチュートリアル
このArduinoチュートリアルでは、DS3231リアルタイムクロック(RTC)モジュールの使い方を学びます。Arduino自体にも時間管理機能がありますが、RTCモジュールは電池で動作するため、マイコンを再プログラミングしたりメイン電源を切っても時刻を保持し続けられるという利点があります。詳細については、以下のビデオまたは文章チュートリアルをご覧ください。 DS3231は低コストで高精度なRTCです。時・分・秒のほか、曜日・月・年情報を保持し、うるう年や31日未満の月の自動補正機能も備えています。 動作電圧は3.3Vまたは5Vで、多くの開発プラットフォームに対応。バックアップ電池には3VのCR2032コイン電池を使用し、通常1年以上データを保持可能です。通信プロトコルはI2Cで、Arduinoとの接続が非常に簡単です。 必要な配線は4本のみ:VCC, GND, SDA, SCL。 ArduinoとI2Cモジュール間の通信コードをゼロから書くのは煩雑ですが、幸いDS3231用のライブラリがいくつか公開されています。このチュートリアルではHenning Karlsen氏作のライブラリ(www.rinkydinkelectronics.com)を使用します。 ライブラリをダウンロード・インストール後、付属のデモ例を使ってRTCの時計を初期設定します。デモ例の 1行目で曜日、2行目で時刻(時・分・秒)、3行目で日付(日・月・年)を設定します。アップロード後、これら3行を再度コメントアウトして再アップロードします。 ループ部では以下の3関数で情報を取得・表示します。 シリアルモニタには以下のように表示されます。 Arduinoの電源を切って再接続しても、時刻はリセットされずに継続されます。 2つ目の例として、LCDに時刻と日付を表示します。 以上でこのArduinoチュートリアルは終了です。ご質問はコメント欄でお気軽にどうぞ。概要

DS3231 リアルタイムクロック

回路図

必要なコンポーネント
プログラミング
setup()内に以下の3行があり、初回のみアンコメントしてアップロードします。// DS3231ライブラリのデモ例より
void setup() {
Serial.begin(115200);
// Arduino Leonardo使用時は以下をアンコメント
// while (!Serial) {}
rtc.begin();
// 初回のみ以下3行をアンコメントして日時設定
// rtc.setDOW(WEDNESDAY); // 曜日設定
// rtc.setTime(12, 0, 0); // 時刻設定 12:00:00 (24時間制)
// rtc.setDate(1, 1, 2014); // 日付設定 2014年1月1日
}void loop() {
Serial.print(rtc.getDOWStr()); Serial.print(" "); // 曜日
Serial.print(rtc.getDateStr()); Serial.print(" -- "); // 日付
Serial.println(rtc.getTimeStr()); // 時刻
delay(1000);
}
LCD表示例

/*
* Arduino DS3231 Real Time Clock Module Tutorial
* Created by Dejan Nedelkovski, www.HowToMechatronics.com
* DS3231 Library by Henning Karlsen (www.rinkydinkelectronics.com)
*/
#include <DS3231.h>
#include <LiquidCrystal.h>
DS3231 rtc(SDA, SCL);
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // (rs, enable, d4, d5, d6, d7)
void setup() {
rtc.begin();
lcd.begin(16, 2);
}
void loop() {
lcd.setCursor(0, 0);
lcd.print("Time: ");
lcd.print(rtc.getTimeStr());
lcd.setCursor(0, 1);
lcd.print("Date: ");
lcd.print(rtc.getDateStr());
delay(1000);
}
製造プロセス
- Arduino POVクロック:残像効果で浮かび上がるLED時計を自作する
- Arduinoで作るセキュアなRFIDロック – ステップバイステップガイド
- 12メートル先から見える大型LEDマスタークロック(アラーム機能付き)を自作しよう
- Arduino Dueと3.2インチTFTで作る温度監視付きリアルタイムクロック
- Arduino UNOで作るベルリンクロック – DIY LEDマトリクス時計
- TM1637デジタル時計:時刻設定・アラーム機能付き Arduino Nano試作版
- eDOT:高精度Arduino時計・気象ステーション(IRリモコン・自動輝度調整内蔵)
- Arduinoリアルタイム気象時計 - OLEDに時刻/日付/温度を表示
- Arduino Nanoと指紋センサーで作るバイオメトリクス認証システム – 完全チュートリアル
- Raspberry Pi 3とArduinoで作る自作ノートPC:ステップバイステップガイド
- ロボットが3D環境変化をリアルタイム検知しARグラスで兵士に警告、ヒューマン・ロボットチームで状況認識強化