緑の中に

緑の中に
国立天文台

10/02/2024

赤外線センサー & ICオルゴール

 赤外線センサー & ICオルゴール

PIC12F683でOneShotを実現










9/17/2024

Monitor Display (監視表示)

 Monitor Display (監視表示)

先の「電子カレンダー」と似たようなプログラムではあるが、違いはアラーム動作に入ったことが眼で確認できるプログラムである。現在Unoにプログラムを書き込んで実験しています。
UnoはSRAM容量の制限がNanoより厳しく、アラームのすべてを記述したプログラムではありません。今後Nanoへ書き込み、すべての予定のアラームを書き込んだプログラムで実験する必要があります。

マイコン(Arduino Nano)が正しく時刻を検出しているか確認します。
そのためにマイコンにLCDを取付けて動きを表示することが必要です。

LCD表示様子_ACM 1602NI-FLW-FBW-M01-I2C接続キャラクタLCDモジュール 16x2行 白色バックライト付 を使用。







マイコンNanoのRestスイッチを押下すると、

Nanoへ書き込んだプログラム名を表示  [Rtc60SecIntLcdAlm_100] [Wk-1]

 [9_Mon 16_Day]     Wk-1  は0から数えて1番目の曜日 月曜日


現在時刻 日付 曜日(曜日番)を表示 [11:4:1]

60秒毎に割込み動作に入ります   [その結果 in Func()]

通常動作に入ります [in Loop()]


*LCD表示器への電源OFFとしても問題ありません。そのようにすれば電流消費を節約できます。


*RTCは初期化した内容を保持するため
必ず電池でBackUp通電しておくこと。
(主原電OFFの前にBackUPを通電すれば良い)


以上によりこのLCD表示器を見れば、現在時刻および警報動作へ入ったときが確認できます。



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

3V電池 抵抗100Ω ダイオード RTC +電極 のハード。Uno 3.3V のルートに *ダイオードを入れた。

装置電流測定 

Uno 3.3V 端子電源より 9.3mA を吐き出してる. RTCへは3V電池でBackUpの状態である

3V電池でBackUp その接続を外しても9.3mA と同じ値であった。

(4.5mA LCD照明を暗くして)

LCDの電源OFFでは 1mA  ●  <--- 今後SWを入れて構成すると良いと思う。


BackUp3V電池からRTCへの吐き出し電流は0.02mAであった。この状態は、Uno3.3VがRTCへ給電してある時である。

Uno3.3VがRTCへ給電STOPでは0.02mA であった。 ● <---- RTCをこの状態で保管できる。BackUp電池の消費を抑えながら保管できる。

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




9/08/2024

RTC(Real Time Clock) 電子カレンダーを作る

 RTC(Real Time Clock) 電子カレンダーを作る




2秒間隔の歩進としました

RTCの初期設定部の要の一部を載せます。
問題は、Initializeプログラム書き込み時に
いかに実時刻を書き込むかにかかっている

// ★★★★
// Wire.write(0x59); //秒   00秒と書いては良くない. 59秒と書くこと. [ 下記↓[分+1]が直ちに書き込まれると考える.59秒だから.
// Wire.write(0x23); //分  20分などと.  [[ここの分+1] がスタートすると考える.よって[Compile&Write]時間を見込むこと]
// [↑一度[Compile&Write] に要する経験値秒を調べる. それを考慮してWriteする.おおよそ15~30秒ぐらいの範囲である]
// Wire.write(0x17); //時 11時など [↑一度[Compile&Write] に要する経験値秒を調べる.(一度実行する) それを考慮して再度Writeする]
// ★★★★

すばらしい!

主電源OFFとするときは、RTCのSRAMへバックアップ電源を供給してからとする事。
そうでないと、上記実時刻合わせを再度強いられます。

先の獣害対策装置には、時計の様にLCD部に表示するまでの機能は付けませんでした。
しかし、運用中の保守において必ず欲しいという機能です。

--
書きかけです



8/27/2024

稼働中です

稼働中です

 



使用バッテリーについて

|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

2024.6.14 Amazon からバッテリー&充電器&バッテリテスター 到着 総額\40247円

LiTime 12V50Ah リン酸鉄リチュウムイオンバッテリー 640W 出力 4000回以上リサイクル
¥23199.

================================================
12V 50Ah

Li Time
Ampere Timeから
LiFeP04

(50A BMS)
製品
マニュアル
リン酸鉄リチュウムイオン (LiFeP04) バッテリー

service.jp@litime.com


製品概要

12.8V 50Aバッテリー
動作電圧:12.8V
充電電圧:14.4V±0.2V
推奨充電電流:10A (0.2C)
最大継続充電/放電電流:50A
最大継続負荷電力:640W

M8*1.25mmピッチ マイナス端子

M8*1.25mmピッチ  プラス端子

W198mmXD166mmxH170mm

付属部品
M8-35/64"(14mm)ターミナルボルト

ボルト絶縁カバー

===============================

14.6V10A LiFeP04 バッテリー充電器

LIFE & DISCOVERY

jp.litime.co

メーカー:Shenzhen Litime Technology Co.,Ltd
公式サイト:jp.litime.com
メール:service.jp@litime.com

-----
10A(0.2C) 約5時間で容量の100%まで満充電されます。

==========================================

++++++++++++++++++++++++++++++++++++++
2024年
*到着バッテリー 13.15V 66% 6月15日 到着バッテリー
6月15日 10:00~13:30 充電したt 13.65V  100%
6月16日 8:00  13.4V

6月17日 9:05  13.40V 100%  
6月17日 11:15  負荷(獣害対策装置)へ通電
6月17日 14時 畑に設置完了。運用開始。 天候は曇りから、雨になる予報である。

2024.8.19 6:50 残量計78% 12.5V(負荷接続状態にて)
特に変わったこと無し

2024.8.25 18:30
バッテリー電圧(デジタルテスタ)計 9.92V 無負荷開放端子電圧
別アナログ電圧テスタでは内部抵抗が表出するせいか、1.5V 
バッテリー残量計 全く反応せず

●8月19日 まで確実に出力供給は行えました。
バッテリーを満充電からの日数は63日です。2か月間は供給できたことになります。
負荷の使用頻度・負荷の状態によりますが、66日間持続できたことは喜びです。

2024.8.26 7:17 
デッキにて充電開始 7:17   RedLED常時点灯
充電完了 12:50  GreenLED常時点灯

●約5時間で充電満状態でした。このことは、バッテリー説明書通りでした。
「10A(0.2C) 約5時間で容量の100%まで満充電されます」
 
●再度、畑へ設置し再稼働させました
2024.8.26  午後   15:00 再稼働





第2電源基板の作成

 第2電源基板の作成






 12Vバッテリー から5V 3.3V を生成します。これにより、3V駆動の装置にも対応できるようにしました。
 収納する方法について。写真のような透明トレーの利用を考えています。ダイソーで入手しました。同トレーを重ねることができます。

重ねた場合の内部高さは25mmまでとなります。工作済の基板の高さを25㎜以内に収めるようにします。

これらのトレーを屋外BOXへ入れます。このBOX  にはバッテリーも収納します。
BOXにきれいに収納できれば良いのですが?
やってみなければわかりません!

バッテリー端子への接続は、丸型端子を使用しました。バッテリーの電極のボルト径は直径8㎜とありました。丸型端子の穴径の表示もφ8mmとあります。

実際に適合するか心配になりました。丸型端子の穴径は実測すると直径8mmよりわずか大きいです。ピッタリ適合しました。


6/17/2024

2個目のリアルタイムクロック RTC-8564NB

 2個目のリアルタイムクロック RTC-8564NB 




Arduino Uno も2個目を使用しました。
RTC-8564NB も2個目を使用しました。

RTC-8564NBは秋月電子通商で入手しました。
JP1,JP2,J3を有効にします。すなわち、半田上げします。
これによ、5pin,6pinの外付けプルアップ抵抗器は付ける必要がありません。
ただし、3pinへは2KΩの抵抗を付け+5Vへ接続します。
3pinは/INT 端子として機能させます。

RTC-8564NBの3pin  ------- Uno 2pin  を結線します。Active Low を検知するため、Normal(常時)Highとするために先ほどは2KΩの抵抗を付け+5Vへ接続したわけです。この作業をしないと、おかしな動作をします。何度も割込みへ入りました。

/INT 動作で内蔵の青色LEDが点灯します。

RTC-8564NB を2個ぐらい買って、1つはこのよう半田を上げて使用すると楽にプログラムに集中できます。もし、内蔵プルアップ抵抗器での電流を抑えたいなら、半田は上げないで外付け抵抗器(適切な抵抗値)で対処する方法もありと思います。

動作は見事です!! 動作と時刻確認は眼だけですと疲れます。音を利用すると確認は楽になります。それでブザーを入れました。トランジスタを入れて、駆動してください。ブザーはそれなりに電流が流れますから。

* 5Vブザーですが、音量をコントロールすることは難しいブザーです。
5Vで動作する仕様だとおもいます。

 そこで、現在電子ブザーを製作中です。PICおよび小型スピーカーそしてトランジスタを使用します。そこへ、可変抵抗器によりベース電流をコントロールすることにより音量を調節できました。








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本目を試します。

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