| ホーム | 私の電子工作作品集 |
![](/cgi/npc/npc.cgi?L=ElapsedClock.html&W=6&C=ffffff,ffffff) |
157. アラーム音通知型経過時計
本機は、アラーム音で時間の経過を通知する経過時計です。 利用法はいろいろと考えられますが、たとえば、何かの作業をするときに、
刻々と経過して行く時間を、 目をその作業から離すことなくアラーム音で把握しながら作業をしたい、というような場合などに使用するのを目的としています。
タイマー機能を追加 ( 2017/07/01 更新 )
アラーム音通知型経過時計 II に、タイマー機能を追加しました。 時間が刻々と経過して行く様子を通知するだけではなく、あらかじめ設定しておいた時間が経過ごとに、
新たなアラーム音によってそれを通知するという機能です。 詳細は プログラム(2) および 機能概要(2) を参照してください。
【 お知らせ 】 ( 2020/06/08 )
本ぺージで扱っているようなアラーム音による経過時計ではなく、ずばり、言葉による音声で時間の経過を告げる経過時計(機能)を製作、公開しました。
興味のある方は "音声(お喋り)時計 II(PIC16F873A 版)" を参照してください。
|
□ アラーム音通知型経過時計(プロトタイプ) □
本機をどのようなものに仕上げるか、当初は漠然とした考えしかなかったため、まず試作品を作りながら構想を練り、その過程で
思いついた機能を盛り込んで行くことにしました。 そこで、回路構成の変更が自由にできるブレッドボードを使用して、回路を作って行きました。
|
■ 回路図 ■
| 回路図 (ElapsedClock.CE3) | ページトップ |
■ ブレッドボード配線の様子 ■
次に、ブレッドボードを使用した配線例を示します。
|
![](../ElapsedClock/_/img/ElapsedClock_02.jpg) |
![](../ElapsedClock/_/img/ElapsedClock_03.jpg) |
|
真上から見たブレッドボード(中央のICが PIC12F635、右側が 74HC138) |
別角度から見た同ボード |
|
| ページトップ |
■ 機能概要 ■
- 本機は、アラーム音で時間の経過を通知する経過時計である。 利用法はいろいろと考えられるが、たとえば、何かの作業をするときに、刻々と経過して行く時間を、
目をその作業から離すことなくアラーム音で把握しながら作業をしたい、というような場合などに使用するのを目的とする。
(当初、まったくの音のみで通知をするものを、とも考えたが、簡易型のために言葉による音声ではないため、アラーム(ブザー)音の組み合わせだけでは
表現にも限度があり、一部LEDによる視覚の力も借りることにした。 しかし、本機は電池駆動とするため消費電流にも考慮が必要。)
(もともと、簡易型の音のみということで8ピンのPICを使用することから始まっていて、それでも I/Oピン3本が余っているために、これでLEDを表示させよう
という発想のため、表現が中途半端になった感もある。 18ピンのPICを使用すれば多桁の7セグLEDの表示が可能である。)
- さて、まず、本機の電源をONにすると、LED (00) 〜 (50) が約3秒間点滅を繰り返した後、開始音としての "ドミソド" ブザー音が出力される。 その後本機は、
2つあるスイッチの操作待ち状態となって、ユーザのスイッチ操作を待ち続ける。
- 2つあるスイッチの内、1つは STARTスイッチ であり、このスイッチの操作によって経過時計の動作が開始される。 経過時計が動作すると刻々と "秒" が刻まれ続け、
上記のように "音" と "光" でそのときの時間経過を知らせる。
- 毎 "秒" の更新ごとに "ピッ"、"ピッ"、"ピッ"、"ピッ"、・・・ と "秒" アラーム音が断続的に鳴り続け、かつ、そのときの経過している "十分" に対応した
LED (00) 〜 (50) の内の1つが、偶数秒時には1秒間点灯し、奇数秒時には1秒間滅灯を繰り返す。
- また、"秒" アラーム音に加え、毎 "十秒" ごとには "ポッ" という "十秒" アラーム音が鳴る。 このとき "十秒" アラーム音の方が優先で "秒" アラーム音は鳴らない。
("秒"アラーム = "ピッ": ソ音 (約 392 Hz)、"十秒"アラーム = "ポッ": ド音 (約 523 Hz))
- 同様に、毎 "分" ごとには "ポポッ" という "分" アラーム音が鳴り、毎 "十分" ごとにはまず、それまで対応していたLED (00) 〜 (50) の点滅が1つ更新されて
新しくなるとともに、"ポポポポッ" という "十分" アラーム音が鳴る。 そしてかつ、その後に "ピポッ" という "十分" 数アラーム音がその数だけ鳴り続いて、
何十分経過したかを知らせる。
- これらのアラーム音をまとめると次のようになり、優先順位は下に行くほど高く、同時に発生した低い優先順位のものは無視される。
|
毎 "秒" の更新ごと |
|
"ピッ" |
|
毎 "十秒" の更新ごと |
|
"ポッ" |
|
毎 "分" の更新ごと |
|
"ポポッ" |
|
毎 "十分" の更新ごと |
|
"ポポポポッ"、"ピポッ"( 0 〜 5 回 ) |
- 本機では、経過時間は "59 分 59 秒" が最大であるが、その1秒後には、再び "00 分 00 秒" の START スイッチの押下直後の状態に戻って、以上のように、
アラーム音とLED (00) 〜 (50) の点滅を繰り返して、時間経過のカウントを永遠にし続ける。
- このように、経過時計が動作中は時間の経過とともに1秒ごとに何らかのアラーム音が鳴り続けることになるが、場合によっては、毎 "秒" ごとの "秒" アラーム音が
煩わしく感じる場合があり、そのようなときには、2つあるスイッチの内の SUPPRESSスイッチ を操作することによって、"秒" アラーム音だけを抑止して
鳴らないようにすることができる。
- この SUPPRESS スイッチは、START スイッチによる経過時計の動作の開始前後を問わずいつでも機能する。 また、この SUPPRESS スイッチは押下するごとにその機能の
ON/OFFを繰り返してトグル動作をする。 また、このスイッチを操作したときには "ブブッ" という操作音が鳴る。
- また、START スイッチは上記のように、経過時計の動作の開始前には文字通り START スイッチとして機能するが、一方、経過時計の動作中に押下すると
CANCELスイッチ として機能し、経過時計の動作が停止する。 このとき "ブッブー" という操作音を鳴らす。 これに対して、START スイッチとしての機能のときには、
特に操作音を鳴らすことはないが、この操作直後に "ポポポポッ" という "十分" アラーム音が鳴ってそれに代用をしている。
- CANCEL スイッチの操作で停止した経過時計も、次の START スイッチの操作で、再び "00 分 00 秒" から経過時計の動作が開始される。
(本機では、2つのスイッチに対してのチャッタリングや2重検知の防止策として、私の他のプログラムのように特別な専用遅延(ウェイト)ルーチンは設けず、
各スイッチに対する適度な長さのブザー音を挿入することで、それらを吸収している。)
|
| ページトップ |
■ プログラム ■
| ページトップ |
■ 使用部品表 ■
(主要部品: IC, トランジスタ等) |
|
(データシート) |
|
PICマイコン |
.................... |
PIC12F635 |
|
HC-MOS IC (3-8 デコーダー) |
.................... |
TC74HC138AP |
| 部品表
| Excel ファイル (ElapsedClock_parts.xls)
| ページトップ |
□ アラーム音通知型経過時計 II □
上述した8ピンのPICを使用した試作品では、やはり表現が中途半端なものとなってしまいました。 そこで、18ピンのPIC
に変更をして多桁の7セグLEDで表示をし、アラーム(ブザー)音の組み合わせだけではなく 視覚の力も借りることにしました。
|
■ 回路図(2) ■
| 回路図 (ElapsedClockII.CE3) | ページトップ |
■ ケース外観と内部の様子 ■
|
|
![](../ElapsedClock/_/img/ElapsedClock_04.jpg) |
![](../ElapsedClock/_/img/ElapsedClock_05.jpg) |
|
ケース正面から見た外観 |
ケース背面(本来の正面?)から見た外観 ( 拡大 ) |
![](../ElapsedClock/_/img/ElapsedClock_06.jpg) |
![](../ElapsedClock/_/img/ElapsedClock_07.jpg) |
|
![](../ElapsedClock/_/img/ElapsedClock_12.jpg) |
ケース左側面から見た外観 |
ケース右側面から見た外観 |
|
STARTスイッチを押してから "25分03秒" が経過したところ |
|
![](../ElapsedClock/_/img/ElapsedClock_08.jpg) |
![](../ElapsedClock/_/img/ElapsedClock_09.jpg) |
|
ケース上面から見た外観 |
ケース底面から見た外観 |
|
![](../ElapsedClock/_/img/ElapsedClock_10.jpg) |
![](../ElapsedClock/_/img/ElapsedClock_11.jpg) |
|
上蓋を開いて真上から内部を見た様子 |
上蓋を開いて背面側から内部を見た様子 |
|
| ページトップ |
■ 機能概要(2) ■
- 本機は、アラーム音で時間の経過を通知する経過時計である。 利用法はいろいろと考えられるが、たとえば、何かの作業をするときに、刻々と経過して行く時間を、
目をその作業から離すことなくアラーム音で把握しながら作業をしたい、というような場合などに使用するのを目的とする。
- まず、本機の電源をONにすると、5桁の7セグLED(1S、10S、1M、10M、1H)の Dp(デシマルポイント)が数秒間点滅を繰り返した後、開始音としての
"ドミソド" ブザー音が出力される。 その後本機は、スイッチの操作待ち状態となって、ユーザのスイッチ操作を待ち続ける。
- この状態のとき、STARTスイッチ を操作することによって経過時計の動作が開始される。 経過時計が動作すると刻々と"秒" が刻まれ続け、
以降、"音" と "光" でそのときの時間経過を知らせる。("光" はあくまで補助)
![](../ElapsedClock/_/img/ElapsedClock_20.jpg) |
経過時計が動作してから 20 秒が経過したところ |
- 毎 "秒" の更新ごとに "ピッ"、"ピッ"、"ピッ"、"ピッ"、・・・ と "秒" アラーム音が断続的に鳴り続ける。 また、"秒" アラーム音に加え、毎 "十秒" ごとには
"ポッ" という "十秒" アラーム音が鳴る。 このとき "十秒" アラーム音の方が優先で "秒" アラーム音は鳴らない。 ("秒"アラーム = "ピッ": ソ音 (約 392 Hz)、
"十秒"アラーム = "ポッ": ド音 (約 523 Hz))
- 同様に、毎 "分" ごとには "ポポッ" という "分" アラーム音が鳴り、毎 "十分" ごとには "ポポポポッ" という "十分" アラーム音が鳴る。 そしてかつ、
その後に "ピポッ" という "十分" 数アラーム音がその数だけ鳴り続いて、何十分経過したかを知らせる。
- これらのアラーム音をまとめると次のようになり、優先順位は下に行くほど高く、同時に発生した低い優先順位のものは無視される。
|
毎 "秒" の更新ごと |
|
"ピッ" |
|
毎 "十秒" の更新ごと |
|
"ポッ" |
|
毎 "分" の更新ごと |
|
"ポポッ" |
|
毎 "十分" の更新ごと |
|
"ポポポポッ"、"ピポッ"( 0 〜 5 回 ) |
|
毎タイマー時間の経過ごと |
|
"ピポッピポッピポッピポッ"、"ピポッピポッピポッピポッ" ( 下記の追加機能 ) |
- 以上は、この経過時計での主役であるアラーム音についての説明であるが、毎 "分" の更新ごとには "分" アラーム音に加えて、補助的に5秒間だけに限り、
そのときの経過時間を5桁の7セグLEDで表示をする。 LED表示を毎分5秒間に限ったのは、本機は電池駆動としたためその消費電流を極力抑えたいための
処置である。
- ただし、毎 "分" の更新ごとに限らず DISPLAYスイッチ を操作することによって、経過時計の動作中であればいつでも5秒間だけ、そのときの経過時間を
7セグLEDで表示をさせることができる。
- 本機では、経過時間は "9 時 59 分 59 秒" が最大であるが、その1秒後には、再び "0 時 00 分 00 秒" の STARTスイッチの押下直後の状態に戻って、以上のように、
アラーム音と7セグLEDでの補助表示を繰り返して、時間経過のカウントを永遠にし続ける。
- このように、経過時計が動作中は時間の経過とともに1秒ごとに何らかのアラーム音が鳴り続けることになるが、場合によっては、毎 "秒" ごとの "秒" アラーム音が
煩わしく感じる場合があり、そのようなときには SUPPRESSスイッチ を操作することによって、"秒" アラーム音だけを抑止して鳴らないようにする
ことができる。
- この SUPPRESSスイッチは、STARTスイッチによる経過時計の動作の開始前後を問わずいつでも機能する。 また、この SUPPRESSスイッチは押下するごとにその機能の
ON/OFFを繰り返してトグル動作をする。
- また、STARTスイッチは上記のように、経過時計の動作の開始前には文字通り STARTスイッチとして機能するが、一方、経過時計の動作中に押下すると
CANCELスイッチ として機能し、経過時計の動作が停止する。 このとき "ブッブー" という操作音を鳴らす。 これに対して、STARTスイッチとしての
機能のときには、特に操作音を鳴らすことはないが、この操作直後に "ポポポポッ" という "十分" アラーム音が鳴ってそれに代用をしている。
- このように、通常は STARTスイッチで経過時計を動作させ、CANCELスイッチで経過時計を停止終了させるが、経過時計の動作中に PAUSEスイッチ
を操作すると、経過時間のカウントを一時的に停止させることができる。 また、再び同スイッチを押下すると CONTINUEスイッチ として機能し、
経過時間のカウントを再び続行する。 このスイッチも押下するごとに PAUSE/CONTINU の機能を繰り返すトグル動作を行う。
- 上述の DISPLAYスイッチ、SUPPRESSスイッチ、PAUSE/CONTINUスイッチを操作したときには、"ブブッ" という操作音が鳴る。
- CANCELスイッチの操作で停止した経過時計も、次の STARTスイッチの操作で、再び "0 時 00 分 00 秒" から経過時計の動作が開始される。
タイマー機能を追加
- 上記機能に加え、あらかじめ設定しておいた時間が経過するごとに、新たなアラーム音によってそれを通知するという機能を追加した。
- この追加機能を動作させるためには、まず、タイマー設定モードに移行してタイマー時間の設定をする。 タイマー設定モードに移行するためには、経過時計の動作中はだめで
必ず経過時計の動作前に、DISPLAYスイッチを押しながら STARTスイッチを押下することによる。(ここでスイッチを押下する
順番は重要で、先に STARTスイッチを押下すると、当然ながら通常の START機能として経過時計が動作をしてしまうので注意。)
- タイマー設定モードに移行すると、現在設定されているタイマー時間(初期値は 00 分、以降は最終的に設定された時間)がLEDに表示される。
![](../ElapsedClock/_/img/ElapsedClock_21.jpg) |
タイマー設定モードの表示例 (45 分が設定) |
- タイマー時間の指定は "分" のみで、その範囲は2桁LEDが取り得る値で 00 分 〜 99 分 で指定をする。 00 分指定はタイマーの無指定を意味する。
- PAUSE / CONTINUE スイッチを押下するごとに "十分"LEDが +1 ずつ更新される。 0, 1, 2, 3, ・・・, 8, 9, 0, ・・・
- また、SUPPRESS スイッチを押下するごとに "分"LEDが +1 ずつ更新される。 0, 1, 2, 3, ・・・, 8, 9, 0, ・・・
- 上記2個のスイッチで希望するタイマー時間の指定が済んだら、次に、DISPLAYスイッチを押下すると、タイマー設定モードから再び通常のモードに
移行することができる。(ここで設定されたタイマー時間は、PICのEEPROMに記録されるため、その内容は次回の設定変更まで保持される)
- この状態で STARTスイッチを押下して経過時計を動作させると、通常のアラーム音に加えて、今設定されたタイマー時間間隔でタイマーアラーム音が、"ピポッピポッピポッピポッ、
ピポッピポッピポッピポッ" と鳴動してタイマー時間が経過したことを知らせる。
- たとえば、タイマー時間が "45分" に設定されているとすると、"45分" 間隔で、すなわち、経過時間が "0 時 45 分 00 秒"、"1 時 30 分 00 秒"、"2 時 15 分 00 秒"、
"3 時 00 分 00 秒"、"3 時 45 分 00 秒"、・・・ という具合にタイマーアラーム音が鳴ることになる。
- また、タイマー機能をOFFにしたい場合には、上記のように一旦タイマー設定モードに移行して、タイマー時間を 00 分に指定する必要がある。
- 本機では、元々長時間での連続使用は想定してはいないため(乾電池駆動、時間表示用LEDも1桁)、長時間の使用では数秒の誤差が現れる(基準周波数の発振に
クリスタル等を用いずPICの内部発振を使用)。 そのため、タイマー時間の指定も "分" のみで、"時" や "秒" の指定は設けてはいない。
|
| ページトップ |
■ プログラム(2) ■
プログラムバグを修正 ( 2017/06/22 更新 )
今回は、プログラムバグというよりもプログラムが未完成のままホームページに発表をしてしまいました。 本機の作製時期は 2016/08 〜 09 ごろで 2017/01 に
ホームページに発表をしたのですが、実は、プログラムには未完成の部分が残っていたのです。 本機のプログラムがほぼ完成した時点で、急遽、
他の製作物に取り掛かってしまい、それが思いもよらず長引いたために、本機のプログラムはあと一歩というところでそのままになっていたのです。
そのことをすっかり忘れてしまっていて(本機はもう完成済みのものと思い込んでいた)、数か月後の 2017/01 にホームページに発表をしてしまいました。 最近になって、
本機を使用する機会がありいざ使用してみると、どうも時間の経過具合がおかしい・・・ 音声、LED表示ともに実際よりもかなり遅れて表示がされている。
また、1時間が過ぎてもLED表示は0時のままで、"時" 表示の更新がされない。 ・・・ということを発見したのです。
プログラムを改めて見直してみると、基準時間を作成する部分が未調整のままとなっており(リスト中の定数 xx の値が 0)、また、"時" の更新部分(割り込みの
処理ルーチン内で行う)はすっかり抜けていました。 これは、当初 "分分秒秒" の4桁のLED表示で作成を進めていたのですが、途中でもう1桁増やし "時分分秒秒"
の5桁表示に変更をしたためで、ハードは変更したのにソフトはそのまま、・・・という状態になっていました。
そこで、これらを追加修正しました。 反省、ホームページに発表前には、必ず動作チェックの確認を行うこと! です。
タイマー機能を追加 ( 2017/07/01 更新 )
最近、本機を使用していて感じたことですが、あらかじめ設定をしておいたある一定間隔の時間で、それを知らせるためのアラーム音が鳴らせるような機能があると便利ではないか。
と思い、本機に新たな機能として盛り込みました。 具体的には 機能概要(2) のタイマー機能を追加 を参照してください。
そのためには、ある一定間隔の時間を設定する機能も必要となります。 また、本機を使用する度に同一の時間を設定するのも面倒であり、異なる時間を設定するとき以外は
前回に設定した時間がそのまま使用できるようにと、設定時間のバックアップ機能も追加しておきました。
|
| ページトップ |
■ プリント基板(1)パターン図 (部品面) ■
| プリント基板(1)パターン図 (部品面) (ElapsedClockIIPC.CE3)
| ページトップ |
■ プリント基板(1)パターン図 (ハンダ面) ■
電源、ブザー、およびプリント基板(2) との接続用のコネクタピンは、通常は基板の部品面側に出るように取り付けるのですが、この基板では
ケースへの取り付けの関係上、下写真に示すように基板の裏面(ハンダ面)側に出してあります。
|
| プリント基板(1)パターン図 (ハンダ面) (ElapsedClockIIPC1.CE3)
| ページトップ |
■ プリント基板(2)パターン図 (部品面) ■
| プリント基板(2)パターン図 (部品面) (ElapsedClockII2PC.CE3)
| ページトップ |
■ プリント基板(2)パターン図 (ハンダ面) ■
| プリント基板(2)パターン図 (ハンダ面) (ElapsedClockII2PC1.CE3)
| ページトップ |
■ ケース加工図 ■
使用したケースは、100均のダイソーで購入した "MINI BOX" というラベルが貼られているポリプロピレンケースです。 ケース底には、型番 223、
株式会社シャルムと刻印がされています。 ダイソー店内でこのボックスを見つけたとき、思わず "小っちゃくて可愛いらしい子箱" と思い、本機で使用することを即決しました。
|
| ケース加工図 (ElapsedClockIICS.CE3) | ページトップ |
■ 使用部品表(2) ■
(主要部品: IC, トランジスタ等) |
|
(データシート) |
|
PICマイコン |
.................... |
PIC16F628A |
|
トランジスタ |
.................... |
2SA1015 |
|
7セグLED |
.................... |
GL9A040G |
| 部品表
| Excel ファイル (ElapsedClock_parts.xls)
| ページトップ |
■ 参考サイト ■
キッチン(カウントダウン)・タイマー .....
http://xyama.sakura.ne.jp/hp/KitchenTimer.html
| ページトップ | ホーム |
Copyright (C) 2016-2023 やまもとみのる
初版:2016年9月7日、初公開:2017年1月7日、最終更新:2023年10月30日