|
●概要
タイマー機能を作例としたマイコンはたくさんありますが、機器の制御に特化し、電池でも長時間使える、回路も単純で世界一簡単に作れて小型化できる、スタンドアローンで動作する多機能な時計を目指した。入力は圧電素子のビープ音とLEDの点滅を参考に、マイクロスイッチ一個のみで、すべての設定をします。出力は、時間の表示は出来ませんが、2回路のオンオフや、他のマイコンに2種類のタイマー割り込みの要因にできます。組み立てて現在時刻をセットすればすぐに使えます。他の機能として、タイマー、インターバルタイマー、0秒に修正、0分0秒に修正、経過時間のお知らせ、現在時刻のお知らせ、マイクロスイッチのロック等々を追加した。
●特徴
1、小型、軽量。消費電流を減らすため15秒に一度、起動している。おかげで、電池でも長時間使える。
2、Microchip
社製のワンチップマイコンPIC12LF1822(PDIP、コード・プロテクトしています)の他は、どこにでもある水晶振動子(32.768kHz)、セラミックコンデンサ(22pF)2個、圧電素子、LED、1c接点のマイクロスイッチ、3Vの電池で作れる。
3、こんな場合におすすめ=装置を小型にしたい。拡張I/Oのポートは2本以下でいい。時,分の他に、月、日、曜日を設定条件に加えたい。一度設定すれば、そんなに変更しない。電源の取れない場所で、電池だけで数年は動かしたい。既成品の中に組み込んで使いたい。約千円の15分刻みの24時間タイマーコンセントは操作は簡単だが誤差が大きくて困る。100円ショップのアラーム付き時計を分解して利用するのはめんどくさい。現在時刻を表示するだけの時計は寂しい。ケイタイやスマートフォンを使ったものでは他の機器を簡単に制御できない。ウィルス感染やサイバー攻撃の心配ゼロ。GPS時計のように妨害電波で障害が起きない。Binary
Clock や Word Clock では時間が分かりづらい。Nixie Clock
では100Vがないと使えない。POV Clock では音がうるさい。Fibonacci
Clock ではインテリアとしてはいいが、時間が分からない。Knock Clock
では正確な時刻が分からない。WISE CLOCK は凝り過ぎる。Relay Clock
はその存在感が凄すぎる。LEDやチップLEDを何十個、何百個、千何百個もハンダ付けするのはしんどい。数分後、数時間後、数日後、数十日後、二、三百日後〜に動作させたい。数分間隔、数時間間隔、数日間隔、数十日間隔、二、三百日〜間隔で動作させたい。ある程度の精度が欲しい。リアルタイムクロックもいいが、I2CやSPIインターフェースがめんどくさいし、アラーム数が少ない。節電のため、不必要な時は自動で電源を切っておきたい。イギリスのPICAXE-08M2もいいが、単純に時間で機器を制御したい。プログラムをいちいちダウンロードするのが面倒臭い。MaBeee(マビー)は電池回路をスマホで多彩に制御出来るそうだが、スマホ必携で3,888円は高く、スマホ無しで安い費用で小型で時間制御するならこちらの方が有利、などなどの場合。
� � 回路図

*1、 クリスタル、マイクロスイッチ周りの配線は出来るだけ短くする。
*2、 3Vの電池しか使えません(4V以上の電圧をかけないこと)。100V(ACアダプターなど)を使った回路と繋がってる状態で、マイクロスイッチで設定するとノイズで誤動作するので、切り離してから設定してください。
*3、 セラミックコンデンサー(22pF)の容量を減らせば、消費電流はある程度減らせるが、発振が不安定になる可能性あり。
*4、 マイクロスイッチの品質に依っては、正確なタイミングで入力してもエラーになる場合があるので、その時は、(ア)4ピン(RA3)とマイナスに0.1μF程度のコンデンサーをつなぐ。(イ)4ピン(RA3)とプラスに0.1μF程度のコンデンサーをつなぐ。(ウ)4ピン(RA3)とマイクロスイッチのC端子の間に0.1μF程度のコンデンサーを挿入する、のいずれかを試してみて下さい。
�◆�特徴
1、消費電流は、15秒に1度(必要な時は1.875秒に1度に切り替え)しか動作しないので0.7μAです(秋月電子で買ったデジタルマルチメータ(M-6000H)での測定値。ちなみに、1.875秒の時は0.9μA、アラーム鳴動時は約3mA、LED点灯時は数mAです)。コイン電池(CR2032)を使った場合、220mAh/0.0007mA/24/365=35.8
で、最長35年は持ちそうです(リチウム電池(CR-V3)なら478年)。スイッチは最初、小型で安いタクトスイッチを考えましたが、何度も続けて押すのは辛いので、マイクロスイッチにしました。押す力が1N(ニュートン)以下なら軽くて、高速に連打ができる。
��、使い方
|
○記号の意味
[X]=(Xは1〜99)。マイクロスイッチを0.1秒ほど、X回、短押しする。
[-]=マイクロスイッチを1秒程度長押しする。"数字と数字の区切り"または"ゼロ"を意味する。
(短押しと長押しの閾値は約0.3秒です。0.3秒より短ければ、短押し。0.3秒より長ければ長押しと判断されます。入力がなくなって、5秒後、長短の組合せが解釈され、命令が実行されます。ですから5秒以上間隔を開けずに、短押しの[X]と長押しの[-]の組み合わせを入力して下さい。)
|
○まず現在時刻の設定
1、電池は素早く入れて下さい。すぐにプログラムがスタートします。マイクロスイッチを一回押すとLEDが点灯し、約5秒後、エラー音が鳴ればプログラムは正常に動いています。もしも鳴らない時は、電池を外して配線や部品の向き等を見直して下さい。修正してから、1ピンと8ピンをショートして完全に放電してから、再び最初からやり直す。電池を入れて約1分後、アラーム[-][1] が実行され、7ピン(RA0)にローが出力される(初期値は入力になっている)ので、プラスと7ピンにLEDを付けておけば点灯します。うまく点灯すれば発振回路は正常に動作しています(最初の1回しか点灯しません)。
2、[-][16] (意味:マイクロスイッチを1秒程度長押しする。次にマイクロスイッチを0.1秒ほど、16回、短押しする。)
3、LEDが点灯するのを待つ。
4、例えば2015年3月6日、金曜午後2時0分の場合、
[15][-][3][-][6][-][6][-][14][-][-]
(途中で押し間違えた時は、エラーになるまで[-][-][-]・・・と押し続け、2、[-][16]、からやり直す。)
(曜日は、[1]=日曜、[2]=月曜、[3]=火曜、[4]=水曜、[5]=木曜、[6]=金曜、[7]=土曜、です)
2016年以降は、
2016年のときは[16][-]・・・(略)
2017年のときは[17][-]・・・(略)
2018年のときは[18][-]・・・(略)
2019年のときは[19][-]・・・(略)
2020年のときは[20][-]・・・(略)
2021年のときは[21][-]・・・(略)
2022年のときは[22][-]・・・(略)
5、LEDが点灯してから、時報に合わせてマイクロスイッチを押す。
6、すぐにメニュー待ちの状態に入る。
○メニュー [-][17]を除いて、最初の[-]を押したときLEDが点灯しない場合は、他の命令を実行中か、1.875秒に1度の割り込みと15秒に1度の割り込みを切り替えている途中なので、15秒程度待ってから入力し直す。LEDが薄暗くなった時は電池を交換して下さい。「メニュー」の途中でキャンセルするには、エラーになるまで[-][-]・・・と押し続ける。物がマイクロスイッチに当たってLEDが点きっ放しになるのを防ぐため、約10秒以上押すとエラー(ビープ音が鳴る)になる。「タイマー」や「インターバルタイマー」や「経過時間」や「現在時刻」は、15秒に1度起動しているのを1.875秒に1度の起動に切り替えているので、最悪15秒待たされると思います。最初から1.875秒ごとにしておけば、利便性も上がり、プログラムも簡単になりますが、消費電流をなるべく減らすことを第一目標にしたので、敢えてこのような形になりました。常に1.875秒ごとの割り込みにすると
CR2032を使った場合、220mAh/0.0009mA/24/365=27.9 で 35.8年-27.9年=7.9年
となるので、7年は短くなりそう。15秒は長く感じると思いますが、ご容赦願います。同様に1.875秒を15秒に戻すときもマイクロスイッチの入力を受け付けませんので、その時は約15秒待ってから再度入力して下さい。1.875秒に1度の割り込みから15秒に1度の割り込みに戻った時をはっきりさせるため、一瞬だけLEDが点灯します。尚、アラームの設定時には全く待つ必要はありません。
参照動画1 (X�携罵僉�
◆「ロック」◆[-][-]
約1分後にマイクロスイッチをロックする。LEDが約1秒間点灯したら、「ロック」されるまでので約1分間、「タイマー」、「インターバルタイマー」、「経過時間」や「現在時刻」のセットができます。約1分後、一瞬LED点灯してロック開始。その後は[-][17]以外は入力を受け付けません。
◆「アラーム」◆[-][1]
約2秒間、7ピン(RA0)にローが出力される。15mA程度まで流せる。[-][1]と押し、約5秒後LEDが点灯したら、消えないうちに、必要な設定を下の(A)から(M)のうち一つを選んでマイクロスイッチを押す。またLEDが約5秒後点灯するので、もしあれば、消えないうちに次の設定を一つを選んで又マイクロスイッチを押す。必要な設定をすべて入力するまで繰り返す。最後は、点灯してから消灯するまで何もしない。順番は関係ない。同じタイプで2回以上入力した場合は、最後に入力した値のみ有効。範囲外の値を入力するとエラー音が鳴ってメニュー待ちに戻る。(E)を使わないときは一回だけ実行される。(E)を使ったアラームで繰り返しを止めるには、ローが出力されている間か、入力に戻った後5秒以内に、マイクロスイッチをビープ音が鳴り出すまで押し続ける。アラームの時刻設定は全部で41個出来ます。それ以上は古い方から上書きされます。薬の飲み忘れによる事故を防ぐため、また、記念日の度忘れ防止、等々に。もちろん「タイマー」、「インターバルタイマー」、
「経過時間」や「現在時刻」を実行中でも、「アラーム」は最優先で実行されます。1時間以内の設定なら「時」の設定は不要で「分」のみでOK。24時間以内の設定なら「時」と「分」のみで。1ヶ月以内の設定なら「月」の設定は不要。例えば今12時半で13時に一回実行したい時は、[-][1]と押し、LEDが点灯したら、[-]と押すだけ。毎正時にアラームを実行する設定も、[-][1]と押し、LEDが点灯したら、[-]と押し、またLEDが点灯したら、[-][-][-]と押すだけ。簡単!
13日の金曜日に注意したいときは、[-][1]→LEDが点灯→[-][13]→LED点灯→[-][6][-]→LED点灯→[13]→LED点灯→消灯、と押す。セットし終わったらメニュー待ちに戻る。(E)を使った場合、このアラームの後、エラーを起こす(例えばマイクロスイッチを1回だけ押す)と、[-][3]のアラームが実行される。又エラーを起こすと[-][1]のアラームが実行される。以降、次のアラームが実行されるまで、エラーのたびに交互に実行される。なお、このアラームの約2秒間は、EEPROMの0X00番地の値を変更することで長さを変えられる。01h、02h、〜、FFhで約0.2秒〜約43秒まで変えられる(目安として0.167を掛けると秒数になる)。初期値は0Ah。00hの時はローが出力されたままになる。PICライターを使って書き込む時は、Program
Memoryには絶対に上書きしないように注意すること。
|
0X00番地の値 |
06h |
1Eh |
3Ch |
5Ah |
78h |
96h |
B4h |
D2h |
F0h |
FFh |
|
アラームの秒数 |
1 |
5 |
10 |
15 |
20 |
25 |
30 |
35 |
40 |
42.6 |
◆「アラーム」◆[-][2]
7 ピン(RA0)を入力(内部でプルアップされている)にする。初期状態です。(E)を使った点灯の繰り返しを止めるには、5秒以内に、マイクロスイッチをビープ音が鳴り出すまで押し続ける。このアラームの後にエラーを起こしても変化しない。以下は[-][1]に同じ。
◆「アラーム」◆[-][3]
約2秒間、6ピン(RA1)にローが出力される。15mA程度まで流せる。(E)を使った場合、このアラームの後、エラーを起こす(例えばマイクロスイッチを1回だけ押す)と、[-][1]のアラームが実行される。又エラーを起こすと[-][3]のアラームが実行される。以降、次のアラームが実行されるまで、エラーのたびに交互に実行される。なお、このアラームの約2秒間は、EEPROMの0X01番地の値を変更することで長さを変えられる。01h、02h、〜、FFhで約0.2秒〜約43秒まで変えられる(目安として0.167を掛けると秒数になる)。初期値は0Ahで約2秒間、ローが出力される。00hの時はローが出力されたままになる。PICライターを使って書き込む時は、Program
Memoryには絶対に上書きしないように注意すること。その他は[-][1]と同じ。
|
0X01番地の値 |
06h |
1Eh |
3Ch |
5Ah |
78h |
96h |
B4h |
D2h |
F0h |
FFh |
|
アラームの秒数 |
1 |
5 |
10 |
15 |
20 |
25 |
30 |
35 |
40 |
42.6 |
◆「アラーム」◆[-][4]
6ピン(RA1)を入力(内部でプルアップされている)にする。初期状態です。その他は[-][2]と同じ。
◆「アラーム」◆[-][5]
7 ピン(RA0)と6ピン(RA1)にローを出力する。それぞれ15mA程度まで流せる。以下は[-][1]に同じ。(E)を使った場合、このアラームの後、エラーを起こす(例えばマイクロスイッチを1回だけ押す)と、[-][6]のアラームが実行される。又エラーを起こすと[-][5]のアラームが実行される。以降、次のアラームが実行されるまで、エラーのたびに交互に実行される。EEPROMの0X02番地の値を変更することでローを出力する時間を変えられる。01h、02h、〜、FFhで約0.2秒〜約43秒まで変えられる(目安として0.167を掛けると秒数になる)。初期値は00hでローが出力されたままになる。PICライターを使って書き込む時は、Program
Memoryには絶対に上書きしないように注意すること。このアラームの時だけ[-][16]で現在時刻を設定せず、かつEEPROMの0X02番地の値が00hの時、アラームが実行されると7ピン(RA0)と6ピン(RA1)がローになったまま、スリープし動作を停止します。この状態でマイクロスイッチを1回押すとリセットされ(この時6ピン(RA1)と7ピン(RA0)は入力(内部でプルアップされている)になります)、閏年1月1日、日曜日、午前0時0分から再スタートするので気をつけて下さい。
|
0X02番地の値 |
06h |
1Eh |
3Ch |
5Ah |
78h |
96h |
B4h |
D2h |
F0h |
FFh |
|
アラームの秒数 |
1 |
5 |
10 |
15 |
20 |
25 |
30 |
35 |
40 |
42.6 |
◆「アラーム」◆[-][6]
7ピン(RA0)と6ピン(RA1)を入力(内部でプルアップされている)にする。その他は[-][2]と同じ。このアラームの時だけ[-][16]で現在時刻を設定せず、アラームが実行されると何も変化せず、すぐリセットされ(この時6ピン(RA1)と7ピン(RA0)は入力(内部でプルアップされている)になります)、閏年1月1日、日曜日、午前0時0分から再スタートします。
◆「アラーム」◆[-][7]
9分間だけアラームの実行を休止します。但し、その9分間にアラームの設定が一つもないと、休止したままになる。この状態の時、また[-][7]が実行されるとアラームの実行が再開される。実行された事を表すため、一瞬ビープ音が鳴る。以下は[-][1]に同じ。
|
アラームの設定条件 |
|
|
マイクロスイッチの押し方 |
意味 |
|
(A) |
[a] |
a分 |
|
(B) |
[b][-] |
b時 |
|
(C) |
[-][c] |
c日 |
|
(E) |
[-][d][-] |
d: -
=毎回、1=毎日曜、2=毎月曜、3=毎火曜、4=毎水曜、5=毎木曜、6=毎金曜、7=毎土曜、8=毎月曜〜木曜、9=毎月曜〜金曜、10=毎月曜〜土曜、11=毎土曜,又は毎日曜、12=毎月末、13=毎月末,又はその前日、14=毎月1日から9日、15=毎月10日から19日、16=毎月20日から月末 |
|
(F) |
[e][-][f] |
e十f分 |
|
(G) |
[j][-][h][-] |
j時 h十分 |
|
(H) |
[-][i][-][k] |
i月 k日 |
|
(I) |
[l][-][m][-][n] |
l時 m十n分 |
|
(J) |
[o][-][p][-][q][-] |
o十p時 q十分 |
|
(K) |
[r][-][s][-][t][-][u] |
r十s時 t十u分 |
|
(L) |
[-][v][-][-] |
v月 |
|
(M) |
[w][-][-][-] |
w時 0分、w時10分、w時20分、w時30分、w時40分、w時50分 ((E)と一緒に使った場合) |
参照動画2 (X�携罵僉�
◆「タイマー」◆[-][8]
1分から99分までのタイマー。LEDが点灯してから消えないうちに、必要な設定を上の(A)か(F)のうち一つを選んでマイクロスイッチを押す。再びLEDが点灯してからマイクロスイッチを押してスタート。約2分の間にスタートさせなかった時は、自動スタートさせる。「タイマー」をセットした後、すぐ「経過時間」や「現在時刻」が使えます。逆はダメです。但し、表示は「タイマー」の方が優先されます。「タイマー」と「インターバルタイマー」は同時に使えません。「タイマー」を途中でキャンセルするには、再び「タイマー」で0分をセットする。LEDが点灯して消灯するまで、マイクロスイッチを押さないと、「経過時間」で計った時間(約10秒から6000秒まで)を「タイマー」にセットします。「経過時間」を新しく使わない限り、何度でも利用できる。残り時間の目安として、8分以上の時1分おき、4分以上の時30秒おき、2分以上の時15秒おき、1分以上の時7.5秒おき、1分以内の時3.75秒おきにLEDを点滅する。1.875秒に1度しか起動しないため、最大誤差は±1.875秒になります。終了すると、メニュー待ちの状態に戻る。
◆「インターバルタイマー」◆[-][9]
1分から99分までのインターバルタイマー。LEDが点灯してから消えないうちに、必要な設定を上の(A)か(F)のうち一つを選んでマイクロスイッチを押す。再びLEDが点灯してからマイクロスイッチを押してスタート。もう一回押すとストップして、約15秒後メニュー待ちの状態に戻る。約2分の間にスタートさせなかった時は、自動スタートさせる。LEDが点灯して消灯するまで、マイクロスイッチを押さないと、「経過時間」で計った時間(約10秒から6000秒まで(1.875秒刻み))を「インターバルタイマー」にセットします。「経過時間」を新しく使わない限り、何度でも利用できる。残り時間の目安として、8分以上の時1分おき、4分以上の時30秒おき、2分以上の時15秒おき、1分以上の時7.5秒おき、1分以内の時3.75秒おきにLEDを点滅する。1.875秒に1度しか起動しないため、最大誤差は±1.875秒になります。
◆「補正」◆[-][10]
0秒に修正する。29秒捨30秒入。LEDが点灯してから、時報に合わせてマイクロスイッチを押す。但しその時刻にアラームが設定されていても実行されません。押し間違えた場合は、もう一度やり直してから、「初期化」で定数を初期値に戻して下さい。又は、「初期化」で定数を初期値に戻して、[-][16]で現在時刻を再設定する。補正する度に、進み遅れ具合から渦巻き方式で定数を修正して、30分ごとに補正する。月差を±5秒程度(急激な温度変化がない場合。温度変化がなければ±0秒近くまでもっていけるのですが)にする。最初は遅れ気味になりますが、補正するたびに、誤差が小さくなるように調節していきます。何度か補正して下さい。もしも8回以上実行しても、誤差の増減があるときは、水晶振動子の発振周波数がずれた可能性があるので、「初期化」で定数を一度初期化して、やり直してみて下さい。誤差の変動がなくなってきた場合は、これを使わず、[-][16]で現在時刻を再設定して下さい。約2分間、押さなかった時はキャンセルします。押して15秒後、メニュー待ちに戻る。この15秒間はマイクロスイッチの入力を受け付けません。うるう秒の修正はこれを使わず、[-][16]で現在時刻を再設定して下さい。
◆「経過時間」◆[-][11]
99分までの経過時間を1分ごとにお知らせ。LEDが点灯してからマイクロスイッチを押してスタート。もう一回押すとストップして、約15秒後メニュー待ちの状態に戻る。約2分の間にスタートさせなかった時は、2分経過から自動スタートさせる。「経過時間」で計った時間(約10秒から6000秒まで(1.875秒刻み))を「タイマー」や「インターバルタイマー」にセットできる。その時は遅めにマイクロスイッチを押して下さい。その方が誤差が小さくなります。電源を切るか「経過時間」を新しく使うまでは、何度でも利用できる。「タイマー」と同時実行が可能。その時は先に「タイマー」を動かして下さい。但し、表示は「タイマー」の方が優先されます。1.875秒に1度しか起動しないため、最大誤差は±1.875秒になります。
◆「現在時刻」◆[-][12]
現在時刻を1分ごとにお知らせ。LEDが点灯、消灯してから開始。マイクロスイッチを押すとストップして、約15秒後メニュー待ちの状態に戻る。視線を動かさず時間が分かる。「タイマー」と同時実行が可能。その時は先に「タイマー」を動かして下さい。但し、表示は「タイマー」の方が優先されます。
◆「消去」◆[-][13]
最後に実行されたアラームが、(E)を使った繰り返しの場合、アラームの設定を消去する。LEDが点灯して消灯したら完了。メニュー待ちに戻る。
◆「補正」◆[-][14]
0分0秒に修正する。29分捨30分入。補正せずに1、2年使っていると、どうしても数分ずれるので、その時使って下さい。LEDが点灯してから、時報に合わせてマイクロスイッチを押す。但しその時刻にアラームが設定されていても実行されません。押し間違えた場合は、もう一度やり直してから、「初期化」で定数を初期値に戻して下さい。又は、「初期化」で定数を初期値に戻して、[-][16]で現在時刻を再設定する。補正する度に、進み遅れ具合から渦巻き方式で定数を修正して、30分ごとに補正する。月差を±5秒程度(急激な温度変化がない場合。温度変化がなければ±0秒近くまでもっていけるのですが)にする。最初は遅れ気味になりますが、補正するたびに、誤差が小さくなるように調節していきます。何度か補正して下さい。もしも8回以上実行しても、誤差の増減があるときは、水晶振動子の発振周波数がずれた可能性があるので、「初期化」で定数を一度初期化して、やり直してみて下さい。誤差の変動がなくなってきた場合は、これを使わず、[-][16]で現在時刻を再設定して下さい。約2分間、押さなかった時はキャンセルします。押して15秒後、メニュー待ちに戻る。この15秒間はマイクロスイッチの入力を受け付けません。うるう秒の修正はこれを使わず、[-][16]で現在時刻を再設定して下さい。
◆「消去」◆[-][15]
アラームの設定時刻をすべて消去する。LEDが点灯して消灯したら完了。メニュー待ちに戻る。
◆「時刻設定」◆[-][16]
現在時刻の設定。但しその時刻にアラームが設定されていても実行されません。約2分間、押さなかった時はキャンセルする。閏年の設定もするので、動いている限りは2099年まで日付の修正は不要。ただし、2100年の3月1日(月)は2月29日(月)になってしまうので修正が必要です。以降、100年ごとに修正が必要です。今のグレゴリオ暦が続く限りは使えます。すぐに、メニュー待ちに戻る。
◆「解除」◆[-][17]
マイクロスイッチの「ロック」を解除する。解除された時をはっきりさせるため、一瞬、LEDが点灯する。終了したら、メニュー待ちに戻る。
◆「スリープ」◆[-][20] 長期間使わない時のために、すべての機能を停止してスリープする。約5秒後、一瞬、LEDが点灯したらスリープ状態に入る。消費電流はほぼ0μAになる。6ピン(RA1)と7ピン(RA0)は状態を維持する。マイクロスイッチを押すと再起動して、閏年1月1日、日曜日午前0時0分からスタート。6ピン(RA1)と7ピン(RA0)は入力(内部でプルアップされている)になる。また、現在時刻の設定から始める。
◆「初期化」◆
誤動作などで定数が書き換わったときのために、EEPROMの0X04番地から0X09番地の定数をすべて初期化する。まず1ピンと8ピンをショートして完全に放電してから電池を素早くつなぐ。すぐにマイクロスイッチを押し続ける。約15秒でLEDが消灯したら(エラー音は鳴らない)、定数がすべて初期化されスリープ状態になる。マイクロスイッチを押すとリセットされメニュー待ちの状態になる。アラームの設定は消去されない。現在時刻の設定から始める。
�ぁ¬叛�
2Kワードをすべて使い切っているので、大きなバク以外は仕様ということで御勘弁願います。商品改良のため仕様は予告なしに変更することがあります。
無料のβ版(PIC12F683用)はこちら。
�ァ�応用例
A’、1年間プログラムタイマー2(消費電流は増えますが、応用例Bと同時使用可)

1、現在時刻をセット。
2、何回か時刻を校正する。
3、希望時刻を[-][1]や[-][2]、[-][3]や[-][4]、又は[-][5]や[-][6]を使ってセット。
4、6ピンや7ピンを負荷に接続する。最初、両ピンとも入力(内部でプルアップされている)になっている。
5、[-][1]や[-][3]や[-][5]が実行されるとローが出力され、それぞれの端子に15mA程度まで流せる。
6、不要なら、5ピンのLEDと圧電素子を外し、4ピンをハイ(1ピンにつなぐ)にして、マイクロスイッチを取り外す。
7、[-][1]が実行された後、エラーを起こす(例えばマイクロスイッチを1回だけ押す)と、[-][3]が実行され、又エラーを起こすと[-][1]が実行される。以降、次のアラームが実行されるまで、エラーのたびに交互に実行される。[-][5]が実行された後、エラーを起こす(例えばマイクロスイッチを1回だけ押す)と、[-][6]が実行され、又エラーを起こすと[-][5]が実行される。以降、次のアラームが実行されるまで、エラーのたびに交互に実行される。
※、負荷に3V以上、又は10mA以上流す時は、フォトカプラー、SSR、リレー等、又は低電圧駆動タイプのPch パワーMOSFETを使って下さい。
-------------------------------------------------------------------------------------------------------------------
<実例>単三電池、3本で動く玩具を、1年を通して決まった時刻に動かす。
[条件]��1月から5月、10月から12月はアラームは休止。
�■況遒�ら9月までは、月曜日から土曜日まで15分間隔で。
��6月は午前9時から午後5時まで動作する。
�ぃ祁遒聾畫娃源�から午後7時まで動作する。
�ィ厳遒聾畫娃源�から午後8時まで動作する。
�Γ昂遒聾畫娃胸�から午後9時まで動作する。
●回路図

●アラームの設定
◯アラームの設定中に、アラームが実行されるとまずいので
日曜日にアラームをセットする。
1、[-][7]→LED点灯
→[-][6][-][-]→[9][-]→LED点灯 →[-][10][-]→LED点灯→消灯
(先に設定した方から優先して実行される。6月1日午前9時0分に最初に[-][7]を実行され、
アラームが再開される)
2、[-][7]→LED点灯
→[-][7][-][-]→[8][-]→LED点灯 →[-][10][-]→LED点灯→消灯
3、[-][7]→LED点灯
→[-][8][-][-]→[8][-]→LED点灯 →[-][10][-]→LED点灯→消灯
4、[-][7]→LED点灯
→[-][9][-][-]→[6][-]→LED点灯 →[-][10][-]→LED点灯→消灯
5、[-][1]→LED点灯
→[-]→LED点灯 →[-][10][-]→LED点灯→消灯
6、[-][1]→LED点灯
→[15]→LED点灯 →[-][10][-]→LED点灯→消灯灯
7、[-][1]→LED点灯
→[3][-][-]→LED点灯 →[-][10][-]→LED点灯→消灯
8、[-][1]→LED点灯
→[4][-][5]→LED点灯 →[-][10][-]→LED点灯→消灯
9、[-][7]→LED点灯
→[-][6][-][-]→[17][-][-][-][1]→LED点灯 →[-][10][-]→LED点灯→消灯
(6月は17時1分に[-][7]を実行する。9分間にアラームの設定が一つもないので、休止したままになる。
10、[-][7]→LED点灯
→[-][7][-][-]→[19][-][-][-][1]→LED点灯 →[-][10][-]→LED点灯→消灯
11、[-][7]→LED点灯
→[-][8][-][-]→[20][-][-][-][1]→LED点灯 →[-][10][-]→LED点灯→消灯
12、[-][7]→LED点灯
→[-][9][-][-]→[21][-][-][-][1]→LED点灯 →[-][10][-]→LED点灯→消灯
13、[-][7]→LED点灯 →[17][-]→LED点灯→消灯
(例えば今、日曜日16時半の時は、17時に1回だけ[-][7]を実行して、アラームを休止する。)
(設定方法が良くわからない時はメール mxdwdn@yahoo.co.jp を下さい。)
●実体図A

●実体図B

*、 玩具内臓のモーターによるノイズや、電池の電圧降下に依って、PICが暴走する場合は
PICにバイパスコンデンサーを付けるか、PIC用を別電池にして下さい。
-------------------------------------------------------------------------------------------------------------------
<注意>これを、盗撮カメラや盗聴器の電池の寿命を延ばすためや、発見されないため電波を必要な時間だけ飛ばすような目的のためには御使用なさらないで下さい。<注意>
B、水晶振動子ではどうしても急激な温度変化で周波数が変動する。電波時計もいいが、標準電波の送信が停止するとクォーツ精度になってしまう。そこでマキシム・インテグレーテッド社の温度補償水晶発振器、DS32KHZ/DIP(出力32.768kHz、$12.64)を使うことができるようにした。精度は±4分/年(-40℃〜+85℃)、±1分/年(0℃〜+40℃)
が期待できる。但し、消費電流は0.7μAから2.2μAに増える。それと、[-][20]でPICはスリープ状態になっても、DS32KHZには通常電流が流れ続ける。

1、DS32KHZ
の5ピンをプラス、1、4、6、7、8、9、10、11、13、14ピンをマイナスに繋ぐ。
2、DS32KHZ の12ピン(出力32.768kHz)を12LF1822 の2ピンに繋ぐ。
3、12LF1822 の3ピンをプラスに接続する。
C、タイマー(消費電流は増えますが、応用例Bと同時使用可)

○1分後から99分後まで、(1分刻み)の場合、
1、6ピンと7ピンを負荷(消費電流が15mA程度まで)に接続する。
2、[-][8]を使って、LEDが点灯して約5秒以内に、[1]から[9][-][9]の間で希望する時間をセット。
3、再びLEDが点灯してからマイクロスイッチを押してスタート。
4、希望する時間に、3分間アラームが鳴って、6ピンと7ピンにローが出力される。
5、途中で終了したい時は、[-][8]を使って0分をセットしてエラーにする。
※、負荷に3V以上、又は10mA以上流す時は、フォトカプラー、SSR、リレー等、又は低電圧駆動タイプのPch パワーMOSFETを使って下さい。
○約10〜6000秒後まで、(1.875秒刻み)の場合、
1、[-][11]を使って約10〜6000秒の間で希望する間隔でストップする。1.875秒刻みなので、気持ち遅めにマイクロスイッチを押す。再び[-][11]を使うか、電源を切るか、[-][20]
を使ってスリープさせるまでは、何度でも使える。
2、6ピンと7ピンを負荷(消費電流が15mA程度まで)に接続する。
3、[-][8]を使って、LEDが点灯して約5秒後消灯するまで何もしない。
4、再びLEDが点灯してからマイクロスイッチを押してスタート。
5、希望する時間に、3分間アラームが鳴って、6ピン(RA1)と7ピン(RA0)にローが出力される。
6、途中で終了したい時は、[-][8]を使って0分をセットしてエラーにする。
7、2回目からは3、から実行する。
※、負荷に3V以上、又は10mA以上流す時は、フォトカプラー、SSR、リレー等、又は低電圧駆動タイプのPch
パワーMOSFETを使って下さい。
D、長期間タイマー(1分後から最長365日と23時間59分後まで(1分刻み)。消費電流は増えるが、 応用例Bと同時使用可)
1、現在時刻をセット。
2、何回か時刻を校正する。
3、希望時刻を計算して[-][5]を使ってセット。
4、同時に、[-][1]、[-][2]、[-][3]や[-][4]も使える。
5、電池を外す。
6、7ピン(RA0)を負荷(消費電流が15mA程度まで)に接続する。
7、不要なら、5ピンのLEDと圧電素子を外し、4ピンをハイ(1ピンにつなぐ)にして、マイクロスイッチを取り外す。
8、電池を外し、完全に放電してから、また電池をつなぐ。
9、閏年1月1日、日曜日午前0時0分からスタートする。
10、[-][5]で設定時刻になると6ピン(RA1)と7ピン(RA0)にロー(15mA程度まで流せる)が出力され、スリープし動作を停止します。マイクロスイッチを1回押すと、閏年1月1日、日曜日午前0時0分から再スタートする。6ピン(RA1)と7ピン(RA0)は初期値の入力(内部でプルアップされている)になる。
11、2回目からは8、から実行し、閏年1月1日、日曜日午前0時0分から再スタートする。
*1、上の(E)を使った設定を取り消したい時は、長押しや[-][13]ではなく、[-][15]でアラームの設定をすべて消去する。
*2、負荷に3V以上、又は10mA以上流す時は、フォトカプラー、SSR、リレー等、又は低電圧駆動タイプのPch
パワーMOSFETを使って下さい。
<注意>これを、テロの、サリンやVXガス等の毒ガスの噴出装置の時限装置や、時限爆弾等の起爆装置には御使用なさらないで下さい。<注意>
E、インターバルタイマー(1〜99分間隔(1分刻み)と約10〜6000秒(1.875秒刻み)の二種類。消費電流は増えますが、応用例Bと同時使用可)

○1〜99分間隔(1分刻み)の場合、
1、6ピンと7ピンを負荷(消費電流が15mA程度まで)に接続する。
2、[-][9]を使って、LEDが点灯して約5秒以内に、[1]から[9][-][9]の間で希望する間隔をセット。
3、再びLEDが点灯してからマイクロスイッチを押してスタート。
4、希望する間隔ごとに、5秒間アラームが鳴って、6ピン(RA1)と7ピン(RA0)にローが出力される。
5、終了したい時はマイクロスイッチを押す。
※、負荷に3V以上、又は10mA以上流す時は、フォトカプラー、SSR、リレー等、又は低電圧駆動タイプのPch
パワーMOSFETを使って下さい。
○約10〜6000秒間隔(1.875秒刻み)の場合、
1、[-][11]を使って約10〜6000秒の間で希望する間隔でストップする。1.875秒刻みなので、気持ち遅めにマイクロスイッチを押す。再び[-][11]を使うか、電源を切るか、[-][20]
を使ってスリープさせるまでは、何度でも使える。
2、6ピンと7ピンを負荷(消費電流が15mA程度まで)に接続する。
3、[-][9]を使って、LEDが点灯して約5秒後消灯するまで何もしない。
4、再びLEDが点灯してからマイクロスイッチを押してスタート。
5、希望する間隔ごとに、5秒間アラームが鳴って、6ピン(RA1)と7ピン(RA0)にローが出力される。
6、終了したい時はマイクロスイッチを押す。
7、2回目からは3、から実行する。
※、負荷に3V以上、又は10mA以上流す時は、フォトカプラー、SSR、リレー等、又は低電圧駆動タイプのPch
パワーMOSFETを使って下さい。
F、長期間インターバルタイマー(2分間隔から最長365日と23時間59分間隔まで設定可能(1分刻み)。消費電流は増えますが、応用例Bと同時使用可)

1、現在時刻をセット。
2、何回か時刻を校正する。
3、希望時刻を計算して[-][6]を使ってセット。
4、[-][1]か[-][3]で1分を[-][-][-]も使ってセット。
5、一周期内で[-][3]や[-][4]か、[-][1]や[-][2]も使える。
6、電池を外す。
7、7ピン(RA0)か6ピン(RA1)に負荷(消費電流が15mA程度まで)に接続する。
8、不要なら、5ピンのLEDと圧電素子を外し、4ピンをハイ(1ピンにつなぐ)にして、マイクロスイッチを取り外す。
9、電池を外し、完全に放電してから、また電池をつなぐ。又は、[-][20]
を使ってスリープさせる。LEDが一瞬、点灯するまで待ってから、マイクロスイッチを押す。
10、閏年1月1日、日曜日、午前0時0分からスタートする。
11、午前0時1分に[-][1]か[-][3]が実行され、7ピン(RA0)か6ピン(RA1)に約2秒間ローが出力される。次に希望する間隔で[-][6]が実行され、リセットされて再び閏年1月1日、日曜日午前0時0分から再スタートする。7ピン(RA0)と6ピン(RA1)は初期値の入力(内部でプルアップされている)になる。
12、10、に戻る。
13、終了したい時は、電池を抜くか、又は、[-][20] を使ってスリープさせる。
14、2回目からは9、から実行する。
*1、上の(E)を使った設定を取り消したい時は、長押しや[-][13]ではなく、[-][15]でアラームの設定をすべて消去する。
*2、PICライターを使ってEEPROMの0X03番地に0X40~0XFFを書き込むことで、電源を入れてからの最初の1分間の長さを微調整できる。大きい程早くなる。初期値は0X50。書き込む時は、Program
Memoryには絶対に上書きしないように注意すること。
*3、最初の1回のみ、1分後に7ピンか6ピンにローが出力されます。それとハードウェアでリセットを使うこの方式の仕組み上、少しずつ、時間がずれていくのはご容赦願います。
*4、負荷に3V以上、又は10mA以上流す時は、フォトカプラー、SSR、リレー等、又は低電圧駆動タイプのPch
パワーMOSFETを使って下さい。
G、一定間隔でOFF、ON、・・・を繰り返す(電池を入れた時は、OFFになる。一周期は最長365日と23時間59分まで。消費電流は増えますが、応用例Bと同時使用可)。例えば、1.5V
( 〜3V )のモーターをコントロールして10分間OFF、25分間ONを繰り返す時。

0、PICライターを使ってEEPROMの0X00番地に00hを書き込む。初期値は0Ah。書き込む時は、Program
Memoryには絶対に上書きしないように注意すること。
1、MOSFETは低電圧駆動(2.5V以下)のPチャネルタイプを使って下さい。ゲートは7ピン(RA0)に接続して下さい。
2、電池を入れると、7ピン(RA0)は入力になるので、FETはOFFになります。閏年1月1日、日曜日午前0時0分からスタートします。
3、[-][1]を使って10分後、7ピン(RA0)がローを出力するようにします。この時、FETはONになります。具体的には、[-][1]→LEDが点灯→[10]→LED点灯→[-][-][-]→LED点灯→消灯、とマイクロスイッチを押します。
4、25分後、OFF
になるようにするため、最初の10分を加算して、35分後にリセットされるようにします。具体的には、[-][6]→LEDが点灯→[35]→LED点灯→[-][-][-]→LED点灯→消灯、とマイクロスイッチを押します。これで電池を入れて35分後、[-][6]が実行されて、すぐリセットされ、閏年1月1日、日曜日午前0時0分から再スタートします。7ピン(RA0)は入力になるので、またFETはOFFになります。
5、電池を外して下さい。
6、7ピン(RA0)をFETのゲートに接続します。
7、不要なら、5ピンのLEDと圧電素子を外し、4ピンをハイ(1ピンにつなぐ)にして、マイクロスイッチを取り外す。
8、電池を外し、完全に放電してから、また電池をつなぐ。又は、[-][20]
を使ってスリープさせる。LEDが一瞬、点灯するまで待ってから、マイクロスイッチを押す。
9、閏年1月1日、日曜日、午前0時0分からスタートします。7ピン(RA0)は入力になります。
10、10分後、7ピン(RA0)にローが出力されます。
11、電池を入れてから35分後、[-][6]が実行され、リセットされて、閏年1月1日、日曜日午前0時0分から再スタートします。7ピン(RA0)は入力になります。
12、9、に戻ります。
13、終了したい時は、電池を抜くか、又は、[-][20] を使ってスリープさせる。
14、2回目からは8、から実行して下さい。
*1、上の(E)の設定を使ったアラームを取り消したい時は、長押しや[-][13]ではなく、[-][15]でアラームの設定をすべて消去して下さい。
*2、PICライターを使ってEEPROMの0X03番地に0X40~0XFFを書き込むことで、電源を入れてからの最初の1分間の長さを微調整できる。大きい程早くなる。初期値は0X50。書き込む時は、Program
Memoryには絶対に上書きしないように注意すること。
*3、ハードウェアでリセットを使うこの方式の仕組み上、少しずつ、時間がずれていくのはご容赦願います。
*4、アラーム[-][1]が実行後に、マイクロスイッチが押されるとエラーになって、仕様で[-][3]が実行されるので、注意して下さい。
H、電池を入れて、一定時間後、ONになる。(最長365日と23時間59分後まで。消費電流は増えますが、応用例Bと同時使用可)。
例えば、1.5V
( 〜3V )のモーターを26時間34分後にONさせたい時。
0、EEPROMの0X02番地は初期値の、00hである事が条件です。
1、MOSFETは低電圧駆動(2.5V以下)のPチャネルタイプを使って下さい。ゲートは7ピン(RA0)に接続して下さい。
2、電池を入れると、7ピン(RA0)は入力になるので、FETはOFFになります。閏年1月1日、日曜日午前0時0分からスタートします。
3、26時間34分後、つまり1月2日午前2時34分に、7ピン(RA0)がローを出力するようにします。
4、具体的には、[-][5]→LED点灯
→[-][2]→LED点灯 →[2][-][3][-][4]→LED点灯
→[-][-][-]→LED点灯→消灯、と押します。
5、これで、2日午前2時34分、アラーム[-][5]が実行され、7ピン(RA0)と6ピン(RA1)がローになったままで、スリープし動作を停止します。
6、FETはONになり、モーターが回転を始めます。
7、この状態でマイクロスイッチを1回押すとリセットされ(この時6ピン(RA1)と7ピン(RA0)は入力(内部でプルアップされている)になります)、FETはOFFになり、閏年1月1日、日曜日、午前0時0分から再スタートするので気をつけて下さい。
*1、上の(E)の設定を使ったアラームを取り消したい時は、長押しや[-][13]ではなく、[-][15]でアラームの設定をすべて消去して下さい。
*2、PICライターを使ってEEPROMの0X03番地に40h〜FFhを書き込むことで、電源を入れてからの最初の1分間の長さを微調整できる。大きい程早くなる。初期値は50h。書き込む時は、Program
Memoryには絶対に上書きしないように注意すること。
I、一定間隔でON、OFF、・・・を繰り返す(電池を入れた時は、ONになる。一周期は最長365日と23時間59分まで。消費電流は増えますが、応用例Bと同時使用可)。例えば、1.5V
( 〜3V )のモーターをコントロールして10分間ON、25分間OFFを繰り返す時。

0、PICライターを使ってEEPROMの0X00番地に00hを書き込む。初期値は0Ah。書き込む時は、Program
Memoryには絶対に上書きしないように注意すること。
1、MOSFETは低電圧駆動(2.5V以下)のNチャネルタイプを使って下さい。ゲートは7ピン(RA0)に接続して下さい。
2、電池を入れると、7ピン(RA0)は入力(内部でプルアップされている)になるので、MOSFETはONになります。閏年1月1日、日曜日午前0時0分からスタートします。
3、[-][1]を使って10分後、7ピン(RA0)がローを出力するようにします。この時、MOSFETはOFFになります。具体的には、[-][1]→LEDが点灯→[10]→LED点灯→[-][-][-]→LED点灯→消灯、とマイクロスイッチを押します。
4、25分後、ON
になるようにするため、最初の10分を加算して、35分後にリセットされるようにします。具体的には、[-][6]→LEDが点灯→[35]→LED点灯→[-][-][-]→LED点灯→消灯、とマイクロスイッチを押します。これで電池を入れてから35分後、[-][6]が実行され、リセットされて、閏年1月1日、日曜日午前0時0分から再スタートします。7ピン(RA0)は入力になるので、またMOSFETはONになります。
5、電池を外して下さい。
6、7ピン(RA0)をMOSFETのゲートに接続します。
7、不要なら、5ピンのLEDと圧電素子を外し、4ピンをハイ(1ピンにつなぐ)にして、マイクロスイッチを取り外す。
8、電池を外し、完全に放電してから、また電池をつなぐ。又は、[-][20]
を使ってスリープさせる。LEDが一瞬、点灯するまで待ってから、マイクロスイッチを押す。
9、閏年1月1日、日曜日、午前0時0分からスタートします。7ピン(RA0)は入力になります。
10、10分後、7ピン(RA0)にローが出力されます。
11、電池を入れてから35分後、[-][6]が実行され、リセットされて、閏年1月1日、日曜日午前0時0分から再スタートします。7ピン(RA0)は入力になります。
12、9、に戻ります。
13、終了したい時は、電池を抜くか、又は、[-][20] を使ってスリープさせる。
14、2回目からは8、から実行して下さい。
*1、上の(E)の設定を使ったアラームを取り消したい時は、長押しや[-][13]ではなく、[-][15]でアラームの設定をすべて消去して下さい。
*2、PICライターを使ってEEPROMの0X03番地に0X40~0XFFを書き込むことで、電源を入れてからの最初の1分間の長さを微調整できる。大きい程早くなる。初期値は0X50。書き込む時は、Program
Memoryには絶対に上書きしないように注意すること。
*3、ハードウェアでリセットを使うこの方式の仕組み上、少しずつ、時間がずれていくのはご容赦願います。
*4、アラーム[-][1]が実行後に、マイクロスイッチが押されるとエラーになって、仕様で[-][3]が実行されるので、注意して下さい。
J、電池を入れて、一定時間後、OFFになる。(最長365日と23時間59分後まで。消費電流は増えますが、応用例Bと同時使用可)。
例えば、1.5V
( 〜3V )のモーターを6時間34分後にOFFさせたい時。
0、EEPROMの0X02番地は初期値の、00hである事が条件です。
1、MOSFETは低電圧駆動(2.5V以下)のPチャネルタイプを使って下さい。ゲートは7ピン(RA0)に接続して下さい。
2、電池を入れると、7ピン(RA0)は入力になるので、FETはONになり、モーターは回転します。時計は閏年1月1日、日曜日午前0時0分からスタートします。
3、6時間34分後、つまり1月1日午前6時34分に、7ピン(RA0)がローを出力するようにします。
4、具体的には、[-][5]
→LED点灯 →[6][-][3][-][4]→LED点灯
→[-][-][-]→LED点灯→消灯、と押します。
5、これで、1月1日午前6時34分、アラーム[-][5]が実行され、7ピン(RA0)と6ピン(RA1)がローになったままで、スリープし動作を停止します。
6、FETはOFFになり、モーターは回転を止めます。
7、この状態でマイクロスイッチを1回押すとリセットされ(この時6ピン(RA1)と7ピン(RA0)は入力(内部でプルアップされている)になります)、FETはONになり、閏年1月1日、日曜日、午前0時0分から再スタートするので気をつけて下さい。
*1、上の(E)の設定を使ったアラームを取り消したい時は、長押しや[-][13]ではなく、[-][15]でアラームの設定をすべて消去して下さい。
*2、PICライターを使ってEEPROMの0X03番地に40h〜FFhを書き込むことで、電源を入れてからの最初の1分間の長さを微調整できる。大きい程早くなる。初期値は50h。書き込む時は、Program
Memoryには絶対に上書きしないように注意すること。
K、アラームの設定時刻をEEPROMに直接書き込む。
1、完全に放電した状態で、電池をつなぐ。
2、すぐにマイクロスイッチの長押しで、定数をすべて初期化する。
3、[-][15]でアラームの設定をすべて消去する。
4、電池を外す。
5、PICライターを使ってEEPROMの0X08番地の値を0X29に書き換える。初期値は0X05。
6、EEPROMの0X09番地の値を0XA8に書き換える。初期値は0X84。
7、EEPROMの割り当て表を元に設定時刻を直接書き込む。場所はどこでもいい。
8、「月」は0X01から0X12まで、BCD表現で。使用しない時は0XFFのままで。
9、「日」は0X01から0X31まで、BCD表現で。使用しない時は0XFFのままで。
10、「週」は0X00から0X15まで、BCD表現で。0X00
=毎回、0X01=毎日曜、0X02=毎月曜、0X03=毎火曜、0X04=毎水曜、0X05=毎木曜、0X06=毎金曜、0X07=毎土曜、0X08=毎月曜〜木曜、0X09=毎月曜〜金曜、0X10=毎月曜〜土曜、0X11=毎土曜,又は毎日曜、0X12=毎月末、0X13=毎月末,又はその前日、0X14=毎月1日から15日、0X15=毎月16日から月末、になる。使用しない時は0XFFのままで。
11、「時」は0X00から0X23まで、BCD表現で。使用しない時は0XFFのままで。
12、「分」は0X00から0X59まで、BCD表現で。使用しない時は0XFFのままで。
13、「種別」は0X41、0X02、0XD1、0X92、0XD4、0X76、0X18のうち、一つを選んで書き換える。使用しない時は0XFFのままで。
14、PICライターを使って書き込む時は、Program
Memoryには絶対に上書きしないように注意すること。
15、完全に放電した状態で、電池をつなぐ。
16、現在時刻をセット。
17、何回か時刻を校正する。
L、アラームの設定時刻を EEPROM.asm を編集してPICライターで書き込む。
1、EEPROM.asm をコピーして、新しいasmファイルを作る。
2、MPLAB
IDE
を使って、新しいasmファイルのNO.1からNO.41のどれかに希望のアラーム時刻を編集する。
3、「Build All」のボタンを押す。
4、PICライターが「PICkit 2」の場合。
5、「Program
MemoryのEnabled」のチェックは外し、「EEPROM
DataのEnabled」はチェックして、Program Memoryに上書きしないようにする。
6、「Auto
Import Hex + Write
Device」を使って、新しく出来たHEXファイルを12LF1822に書き込む。
7、回路を組んで、完全に放電してから、電池をつなぐ。
8、現在時刻の設定から始める。
M、2個のセラミックコンデンサーに依る消費電流の変化。
1、適当に選んだ1個のPIC12LF1822(A99,1111)を使ってブレッドボードに回路を組む。電源は単三電池2本で、3.2V。セラミックコンデンサーはリード線を切らず、次々と差し替えて消費電流を測定した。
2、消費電流は秋月電子で買ったデジタルマルチメータ(M-6000H)での測定。なお、秋月電子通商では現在、価格が安くなったM-6000Mを販売中のもよう。
3、「アラーム」の[-][1]で1分後に設定して、電源を入れて1分後、アラームが実行されるまでの消費電流を測定する。
4、すべての組合せで、当然時間のずれはあったが、アラームが実行されたことから、Timer1はきちんと発振しているようだ。ただ誤差は[-][10]や[-][14]で補正できる。
5、消費電流で、例えば「0.1μA」と「0.2μA」を交互に表示する時は「約0.15μA」とした。
6、このまま、安定して発振し続けるかは不明。 |