緑の中に

緑の中に
国立天文台

5/16/2024

セイコーエプソン・エプソントヨコム RTC-8564NB

 セイコーエプソン・エプソントヨコム RTC-8564NB

ついにセイコーエプソン・エプソントヨコムのリアルタイムクロックIC(RTC-8564NB)を使ったクロックモジュールを使えました。(秋月電子通商)
 I2Cインターフェース(2線式)で行えました。

■IC内に高精度クリスタルが内蔵されています。

■パーツは全て実装済み。8ピンDIPのICとしてお使いになれます。

■INT割り込み用のLED付

※ICは全て基板に実装済です。
(上記、4行は添付説明文より引用)

5,6pin はプルアップ処理が必要です。私の場合は敢えて外付け抵抗器によるプルアップ処理をしました。理由は、この抵抗値を変更して消費電流をできるだけ少なくしたいという事からです。

3pinは/INT 端子で、内蔵LEDを点灯させることができます。しかし、私は敢えて外付け抵抗器を接続してモニタしました。理由は消費電流を抑えるために、プログラム完成後は最終的に不要と判断しました。

*添付の回路図がややこしく、最初結線を間違えて通電しました。このモジュールのGNDは4pinです。VDDは8pinです。

*確実に60秒毎の/INT 信号を取得できました。説明書によると、60秒未満の割込みも可能なようです?。私の場合、幾度となくプログラムを試しましたが確認できませんでした。
30秒毎の割込みも試しましたが、できませんでした。

最初の結線を私がミスしたことにより、ハード部が壊れた?
オープン・ドレイン出力? この扱いの処理をしていなかった?
などの原因を今、考えています。が

●「60秒毎の/INT 信号を取得」で十分です。

添付の回路図を読み取る時注意が必要です。p2の回路図の8ピンを中心に見ます。p5の端子機能と対比する時間違わないように注意してください。



すばらしい!! 見事です!! 
検索[分]の[更新]を察知して、確実に/INT 割込み動作へ入っています。

条件設定として 時:分 の指定は可能です。さらに分のみの二桁条件も可能です。

また、分の下一桁の条件も可能です。例えば、X1,X2 など下一桁に1分や2分となったときの
/INT 動作も可能です。

[曜日] 
条件は、まだ私は試していません。可能なはずです。
検索条件式では、if文による条件論理を作ります。この
条件式をdefine 定義すると、以降使用の利便性が格段に良くなります。


プログラムの一部
#define dawn (hour >= 4) && (hour < 6) 

#define evening (hour >= 17 && hour < 19)

#define morning ((hour >= 6 && hour < 9))

#define day (hour >= 9 && hour < 17)

#define night1  (hour >= 19 && hour < 21 )

#define night2  (hour >= 21 && hour < 23 )

#define night   (hour >= 19 && hour < 24 )

#define midnight  ((hour >= 23 && minute >= 00) || (hour < 4 && minute >= 00))

このようにすることでプログラムがしやすくなりました。


[動作したプログラムを状況に応じて無償提供いたします]

下記メールアドレスまで、連絡を下されば下記プログラムのテキスト形式を添付して、返信します。

なお、恐れ入りますがこのメールアドレスは月に1回程度しか確認しませんので

返信が遅れることをご承知下さい。

studytom234@gmail.com

<以下の環境でプログラム作りをしました>

・パソコン Windows10 (win8のアップグレード)

・Arduino Uno 

・リアルタイムクロック RTC-8564NB

---------------------------------------------------------

プログラムの構成は3部という3本から成り立っています。以下にその内訳を記します。

1本目[Initialize] 

 初期設定であり現在時刻を登録するプログラムです。
 RTC-8564NBへ書き込むとき、コンパイル&書き込み時間による遅延を予測して(私の場合、設定時刻より30秒前に書き込みます。すなわち、30秒未来を設定時刻にします)

  2本目[Read]

時刻を読み出すプログラムです。1本目の[Initialize] に影響を与えないプログラムです。

3本目[INT-Timer]

60秒毎に、RTC-8564NBの3pinにActive Low 信号を出します。この3pinは2KΩでプルアップ処理します。

以上の3本のプログラムで動作が確認できると思います。
プログラムには注釈(コメント)がたくさんついています。開発の過程そのものであり、自分自身の記憶の経過でもあります。利用される方は、自分なりの注釈に変更したり、あるいは削除してお使い下さい。


* RTC-8564NBのメモリバックアップ電源(電池)を取付けないと、メイン電源OFFのたびに時刻の初期設定を強いられます。

*1本目と2本目のプログラムが動作すると、うれしくなり自信がつきます。その後、3本目を試します。

尚、この件に関して貴殿への不利益等なる責任は一切負いませのであらかじめご承知下さい









5/09/2024

■リアルタイムクロック RTC-8564NB を扱う

 ■リアルタイムクロック RTC-8564NB を扱う

Arduino Uno が扱えたので、リアルタイムクロック RTC-8564NB  を扱えたと極論できます。私の場合です。


上 プログラムの開発は経過ポイントにピンを立てます --通過点 


上 60秒毎の割込み動作です 
見事です!  時・分・秒のデータです


上 回路図 正しく読み取り解釈すること
RTCの1pinから8pin において、3pinが/INT 端子です。
8pinがVDDです。GNDが4pinです
*JP1,JP2,JP3 はいじりませんでした。よって、外付け抵抗器でプルアップしました。
また外付けLEDとしました。


上 3pin へLED、Uno_2pinへ結線 60秒間隔で点滅します


                                    上  Uno 2pin が/INT 端子  Uno 8pinはまだ未使用です

                                    上  Uno_2pin へActive Low スイッチ 単独動作検査用に

        
RTCの3pin からUno_2pinへ結線します。このとき、Uno_2pin Active Low スイッチは外します。これにより、RTCのACTIVE LOW 信号がUnoへ伝達されます。


プログラムを後日アップしたいと思います。


*注意 RTCのGNDは4pin ?
 4pinです。回路図をじっくり読むと4pinです。
私、ひょっとしてICを壊したかもしれません。それで、60秒以下の割込み動作のプログラムが動作しなかったかも?
    
            

 *60秒インターバル 2分インターバル の割込み動作のプログラム作りは確認できました。

 しかし、10秒や30秒が不可能です。今のところ。
最小割込み時間60秒で十分です。この値以下の必要性は、現在ありません。