PICの勉強を兼ねて作成する。できるだけ多くの機能を使うようにしたい。
ダイヤルを使って、直感的(右に回せば増える。左に回せば減る)に時間を設定できるようにする。
設定時間を超過しても、-99秒までマイナスのカウントを継続する。
設定時間を超過すると、アラームを鳴らす。
音楽を流せるようにする。
電池2本で動作する。手持ちの充電式電池の充電器が2本単位でしか充電できないことと、PICの電源が2V~5.5Vであることから、電池2本とする。電池の種類にもよるが、2本で2.3V~3.6Vくらい。
時間設定ダイヤルとして、1kΩの可変抵抗を使用している。スリープ中もこの可変抵抗が2.4~3mA消費してしまう為、十数日で電池が空になってしまう。
省エネの方法としては、次の3方式が考えられる。
V1.1では、可変抵抗の値を読み取る時だけ、可変抵抗に電流を流す方式を採用する。これにより、スリープ中の消費電流を、ほぼPIC単体の消費電流まで引き下げる。
部品を追加しなくてすむ為、可変抵抗のマイナス(アース)側をRA4(オープンドレイン)に引き込むこととした。
オープンドレインが、十数オームあるようで、1分と2分が設定できなくなってしまったが、ソフトウエアで対処した(ボリュームの測定値をキッチンタイマーの設定値に変換するテーブルを変更)。
実測の結果、スリープ時の消費電流は0(少なすぎて測定不能)となった。
音程を出す為の数値は、表計算ソフトで予め計算した値である。
90分カウントして出る誤差は理論上約9秒(進む)であるが、実測では37秒(進む)であった。 カウント速度を補正する為、TMR0の設定値61を60に変更して実測したところ、誤差は約10(進む)となった。
RA4は、スリープしても、スリープ前の状態を維持してしまう(時限があるのかもしれないが)。 スリープ前に、オフ(High)しておかないと省エネにならない。RA0の測定時のみ、RA4をオン(Low)している。
上記ソースリストは、エリアの使い方や制御ロジックのミスを軽減するため、簡単な規則を決めてコーディングしている。
実験しやすいように、大き目の基盤に部品を並べている。
ディスプレイ用の透明アクリルケースに格納。
冷蔵庫に貼り付ける為に、ケースの裏に強力な磁石を貼り付けた。
ボタンやダイヤルも透明アクリルで作成した。