「NTPで取得した時刻をRTCへセットする」の続編です。 NTPとRTCを組み合わせる方法を考えてみました。 NTPから時刻を取得し、取得出来た時のみRTCを 合わせます。 (スケッチ例や作例を公開している方々に感謝します。) 今回は Arduion UNOとEthernet shield、DS3231 I2C RTCモジュール を使って、スケッチ例Ethernet2 UdpNtpCilentの改変でやっ てみました。 スケッチを紹介します。 ※変更のないところは省略していますので、オリジナルの スケッチ例からコピペして下さい。わかりやすくするため、 変更がなくても表示している所もあります。 /* Arduino UNO ,Ethernet shield ,ds3231 I2C RTC * スケッチ例Ethernet2 Udp NTP Clientにds3231 RTCを追加して、RTCを * adjustする機能を追加して取得できた時はNTP時刻でRTCをadjustする。 * 取得できなかった時は取得できるまでアクセス間隔を短く変更する。 * 日本時間に直して、シリアルモニタへ表示する。 * 改変 hiro yamamoto works 2020.08.21*/ #include <SPI.h> #include <Ethernet2.h> #include <EthernetUdp2.h> #include <Time.h> #include <TimeLib.h> #include <Wire.h> #include "RTClib.h" #define UTC_TOKYO +9 // Enter a MAC address for your controller below. // Newer Ethernet shields have a MAC address printed on a sticker on the shield byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; unsigned int localPort = 8888; // local port to listen for UDP p