|
|
|
ケース正面の斜め上から見たところ |
ケース背面の斜め上から見たところ |
|
|
ケース左側面の斜め上から見たところ |
ケース右側面の斜め上から見たところ |
|
|
|
ケース上面を真上から見たところ |
蓋をあけて上面を真上から見たところ |
ケース裏面を真上から見たところ |
| ページトップ |
■ 機能と使用法 ■
- 本機の特徴は、時計表示に12/24時間の両表示機能を持ち、スイッチ操作により両者をいつでも切り替えることができる。
また、時刻設定には、左右2個のスイッチだけで正逆時刻送り方式で行うようにしている。
- まず本機の電源を入れると、プログラミング時の設定値の
午後 午前 "12.00" (12時00分)と、
4桁のLEDで12時間表示でスタートするので、運用に当たっては希望する12/24時間表示の切り替えと、現在の時刻に設定をし直す必要がある。
(赤字の午後は誤りで、青字の午前に訂正)
- ここで、24時間表示と12時間表示の両者の対応を次に示すが、本機では、24時間表示では "時" の表示に "xx" と常に2桁で表示するのに対して、
12時間表示では先頭が "0" であった場合には、ゼロサプレスをして表示しないようにしている。
(24H) |
00 |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
08 |
09 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
(12H) |
12 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
|
pm |
am |
am |
am |
am |
am |
am |
am |
am |
am |
am |
am |
am |
pm |
pm |
pm |
pm |
pm |
pm |
pm |
pm |
pm |
pm |
pm |
|
← (間違い) |
|
am |
am |
am |
am |
am |
am |
am |
am |
am |
am |
am |
am |
pm |
pm |
pm |
pm |
pm |
pm |
pm |
pm |
pm |
pm |
pm |
pm |
|
← (正しい) |
( 2019/4/13 修正 )
上記において、am / pm の表示が一部誤っていました。 赤字で示した pm と am は、下行の青字で示すように am と pm にそれぞれを訂正します。
詳細は、次項の 12時間表示の扱いについて を参照してください。
- 12時間表示では午前と午後との区別をさせるため、最左端の十時の桁の"F"セグメントを点灯させることで午前を表し、また"E"セグメントを点灯させることで
午後を表している。 次の写真は、12時間表示での午前と午後、および24時間表示でのそれぞれの表示例を示す。
|
|
|
|
|
(12H 表示例) AM 01 : 23 |
|
(12H 表示例) PM 01 : 23 |
|
(24H 表示例) 01 : 23 |
- また、時分の間の区切りとして、時の桁のデシマルポイント "." を用いており、1秒間隔で 0.5 秒間 "点"、0.5 秒間 "滅" を繰り返して表示をさせている。
- 時刻の設定方法は、本機の運用中に誤ってスイッチに触れて時刻が変更されてしまう危険性を少なくするため、まず、右スイッチを約2秒以上押し続けて
"時刻設定モード" に移行することから始める。 このとき、移行したことを知らせるために、最右端の分の桁のデシマルポイント "." を点灯させる。
- こうして "時刻設定モード" に移行した上で、そのまま右(順送り)スイッチを押し続けると順方向に時刻を進める(アップ)ことができ、
左(逆送り)スイッチを押すと逆方向に時刻を進める(ダウン)ことがでる。 また、双方ともしばらく(約5秒)押し続けていると高速時刻送りになる。
- この時刻設定モードは、左右どちらのスイッチからも手を離して約5秒以上放置すると、自動的に解除されて最右端の分の桁のデシマルポイント "." は消灯する。
- また、もう一つの時刻補正機能として、毎正時プラス・マイナス5分以内に限り左スイッチが押されると、00分 00秒に設定するための ZERO スイッチとして機能する。
こちらは瞬時に設定する必要があるので、時刻設定モード中でなければいつでも直ちに機能する。
- ただし、上記の毎正時プラス・マイナス5分以内以外では、ZERO スイッチとしての機能は無視されるが、このときにもし右スイッチが押されると(左スイッチ+右スイッチ)、
12/24時間表示の切り替えを行うことができる。
- このとき、一度切り替え操作を行うとその後約2秒間は一切のスイッチ操作を受け付けなくなる。 これは2個だけのスイッチの組み合わせとタイミングで、
いろいろな操作をさせるために、少しでも誤操作を少なくするためにとった処置である。
- その他の機能として、LEDの光る明るさ(輝度)を連続で調節することができる。 ボリュームを左に回せば暗くなり、反対に右に回せば明るく光る。
|
| ページトップ |
■ プログラム ■
初期時の製作のままでは時計としてあまり実用的ではないため、上記 したような機能を追加しました。 ( 2016/1/10 更新 )
|
7セグメントLEDのデシマルポイント表示の不具合を発見
本ページをサーバにアップロードをしようと思っていた矢先のことでした。 時刻設定モード中でもないのに、最右端の分の桁のデシマルポイント "dp"LEDが点灯しているではありませんか。
この "dp"LEDの点灯は、上記の4つ目の機能として、時刻設定モード中であることを視覚で確認ができるようにと、今回新しく追加をしたものです。 しかし、時刻設定モード中でないときに
点灯をしています。 ???
調べてみると、まったくスイッチ操作をしていないのに、勝手に点灯したり消灯したりをします。 よくよく調べてみると、最右端の分の桁が "8"を表示するときに限って、
"dp"LEDも点灯しているようです。 "8"以外の "0" 〜 "7" および "9"のときには点灯しません。 ますます ??? です。
さらに調べてみると、時の桁が "8"を表示するときにも、同桁の"dp"LEDが点灯した切りになります。 この桁の"dp"LEDは、本来、"秒"の表示をさせるために、
1秒間隔で 0.5 秒間 "点"、0.5 秒間 "滅" を繰り返すように表示をさせているものです。
これは12/24時間表示の別には関係がなく、たとえば午前8時のときには、12/24時間表示のどちらでも点灯し切りになりますが、午後8時のときには、12時間表示では
点灯し切りになり、また24時間表示では20時ですから点灯し切りにはならず、正常に "点" と "滅" を繰り返しています。
これらの症状から、まず一番に疑うのは自分が作成をしたプログラムで、 関連部分の7セグメントLEDに表示をさせるサブルーチン(time_disp)を重点的に、再度じっくりと
見直してみましたが特に問題は無さそうです。 次に、参考までに時の桁と分の桁を表示する部分を抜粋しておきます。
(詳細は ソースファイル (Clock7LED.asm) を参照)
; 時の桁の表示
:
btfss modeflg,1 ;12H表示か?
movf digit3x,W ;Yes
btfsc modeflg,1 ;24H表示か?
movf digit3,W ;Yes
call ptn_set ;digit3を表示パターンに変換
movwf PORTB
bcf PORTA,ra2 ;時の桁を点灯
btfsc secflg,0 ;秒表示(dp)フラグ = 0 か?
bcf PORTA,ra4 ;No. 秒表示(dp)を点灯
call wait ;1桁の表示時間
bsf PORTA,ra4 ;秒表示(dp)を消灯
:
; 分の桁の表示
:
movf digit1,W
call ptn_set ;digit1を表示パターンに変換
movwf PORTB
bcf PORTA,ra0 ;分の桁を点灯
btfsc modeflg,0 ;時刻設定中フラグ = 0 か?
bcf PORTA,ra4 ;No. 時刻設定中表示(dp)を点灯
call wait ;1桁の表示時間
bsf PORTA,ra4 ;時刻設定中表示(dp)を消灯
:
上のプログラムからも分かるように、LEDに表示をさせる "8"の文字パターンに依存する部分はありません。 時の桁の"dp"では 秒表示フラグ(secflg,0)、
また、分の桁の"dp"では 時刻設定中フラグ(modeflg,0)が、それぞれ "1" であった場合にのみ、それぞれの"dp"を点灯させています。
ますます分からなくなってきました。 ・・・ そんなとき、ふっと頭をよぎるものがありました。 PORTA の RA4 はオープンドレイン出力で、これが悪さをしているのではないか ・・・ と。
オリジナルサイトの末尾、および別ページで、確かそのようなことに触れられていたことを思い出したのです。
("正しく動作しない場合の対処方法について" を参照 ←現在リンク切れ)
読み返してみると、本機では RA4 ポートを出力専用で使用している(そのように変更をした)ため、不具合の症状はオリジナルサイトで述べられている例とはまったく異なっていますが、
まさに、これだ! と思いました。
さっそく、本機を "08.08"(08時08分)に表示をさせておいて(このとき、両者の"dp"はどちらも点灯し切りになっている)、RA4 ポートのプルアップ抵抗に、新たな 22KΩの
抵抗を並列に繋いでみました。 的中です。 ぴたっと正常な表示になりました。 分の桁の"dp"は滅灯し、時の桁の"dp"は正常にブリンキング表示を繰り返しています。
私は、通常次の例のように、この RA4 ポートのプルアップ抵抗には 10KΩ程度を使用することが多く、今まではこの件に関してのトラブルには何等遭遇した経験がなかったのですが、
本機ではオリジナルサイトのままの 22KΩと少々大きめの抵抗を使用したために、それが不具合を引き起こす原因となりました。
このように今回のトラブルは、プログラムには一切問題はなくハードが原因(不具合をこのプログラムの項で取り上げましたが、実はハードバグ)でした。
今回の経験をもとにオープンドレイン出力を扱うときには、注意をしないとこんなことにもなるんだ! ということを今後もしっかりと覚えておきたい、と思いました。
修正は既に述べたように、プリント基板上の既存のプルアップ抵抗 22KΩに、新たな 22KΩの抵抗を並列に接続して 11KΩとしました。 本来であれば、既存の 22KΩの抵抗を取り外し、
新たに 10KΩ程度の抵抗を取り付けるべきですが、私の他のページでも述べている(例えば "6桁ニキシー管時計 (2)" の
"回路図の再検討と一部変更")ように、部品の取り外しはプリント基板を酷く痛めてしまうことが多いため、やむを得ない場合を除いて
極力避けています。
ちなみに本ページでは、回路図 や プリント基板パターン図 (部品面) には修正が加えてありますが、
写真については上の2枚を追加しただけで、その他の既存の写真については差し替えを行っていません。 したがってそれらの写真には修正が反映されていないので注意をお願いします。
|
現在の最新バージョン: Ver. 2.30 ( 2019/4/13 更新 )
上記のファイル名の拡張子が (.hex) のファイルは、そのままでは一部のブラウザでうまく表示ができないために、ファイル名に (.txt) を付加して登録がしてあります。
そのため、(.hex) ファイルをご利用になる場合には、ダウンロード後に、ファイル名の (.txt) を削除してリネームする必要があります。
|
| ページトップ |
■ 12時間表示の扱いについて ( 2019/4/13 追記 ) ■
次の表は、私がこれまでにいろいろなものを製作してきたものの中で、ホームページに公開をした各種のデジタル時計の一覧です。 こうして並べてみると時計ばかりずいぶんありますが、
実は、この他にもホームページにはまだ公開をしていない時計の製作物が数点あるのですが、そのことは別として・・・。
(注). (3)については、近日中に公開をする予定のものです。
最近になって、(3)の "x09. TI社 TMS1121 デジタルタイマー" のホームページを作っていて(現在、進行中)、私の間違いを発見してしまいました。
"TMS1121" は12時間表示専用の時計専用 LSI ですが、この LSI の機能を確認するためにいろいろと操作をしていると、時刻の進行がそれまで私が認識していたものとは異なっていたのです。
いや、正確に言うと時刻の進行そのものは異なってはいないのですが、am / pm の表示が異なっていました。
そこで、(1)の "085. 沖電気 MSM5509 デジタル時計" と、(2)の "086. 三洋電機 LM8360 デジタル時計" の、他のメーカー製の時計専用 LSI についても確認をしてみると、次の表に示すように
(1)〜(3)では、すべて同様に am / pm の表示方法がされました。
(現在、製品として市販されているメーカー製の各種デジタル時計はどうなんでしょうか。 私はそれらを1台も所有をしていないので確認が取れません。)
それに対して、(4)〜(8)のそれぞれの時計については時計専用 LSI を使用したのではなく、私が PIC にプログラミングをした時計です。 同一の考えのもとでプログラミングをした訳ですから、
次の表に示すようにすべて同じように表示をします。 赤字で示した部分の am / pm の表示が異なっていて、これは私の認識違いであり間違いでした。
時刻 |
24時間制 |
日本式 |
英米式 |
日本時計協会 |
|
(1) |
(2) |
(3) |
(4)〜(8) |
正子 |
00:00 |
午後12時 |
12:00 a.m. |
0:00 a.m. |
12:00 a.m. |
12:00 a.m. |
12:00 a.m. |
12:00 p.m. |
正子の30分後 |
00:30 |
午前0時30分 |
12:30 a.m. |
0:30 a.m. |
12:30 a.m. |
12:30 a.m. |
12:30 a.m. |
12:30 p.m. |
正子の1時間後 |
01:00 |
午前1時00分 |
1:00 a.m. |
1:00 a.m. |
1:00 a.m. |
1:00 a.m. |
1:00 a.m. |
1:00 a.m. |
正午の30分前 |
11:30 |
午前11時30分 |
11:30 a.m. |
11:30 a.m. |
11:30 a.m. |
11:30 a.m. |
11:30 a.m. |
11:30 a.m. |
正午 |
12:00 |
午前12時 |
12:00 p.m. |
0:00 p.m. |
12:00 p.m. |
12:00 p.m. |
12:00 p.m. |
12:00 a.m. |
正午の30分後 |
12:30 |
午後0時30分 |
12:30 p.m. |
0:30 p.m. |
12:30 p.m. |
12:30 p.m. |
12:30 p.m. |
12:30 a.m. |
正午の1時間後 |
13:00 |
午後1時00分 |
1:00 p.m. |
1:00 p.m. |
1:00 p.m. |
1:00 p.m. |
1:00 p.m. |
1:00 p.m. |
正子の30分前 |
23:30 |
午後11時30分 |
11:30 p.m. |
11:30 p.m. |
11:30 p.m. |
11:30 p.m. |
11:30 p.m. |
11:30 p.m. |
上表の左半分は、"ウィキペディア(Wikipedia)の 午前と午後
正午・正子付近の時刻の比較表" を参考にしました。
間違いを訂正するにあたりネットでいろいろと調べた結果、上の表の "日本時計協会" が推奨する表示(時の部分が "11" の次は "12" ではなく "0" とする)が、いろんな面で間違いがなくて
一番すっきりしていて良いとは思ったのですが、メーカー製の時計専用 LSI との表示方法と互換を取るために(ユーザの紛らわしさをなくすために)、am / pm の表示方法を含めて、敢えて(1)〜(3)と
同一の表示方法に改めることにしました。
そこで、まず一番最初に間違いの訂正に取り掛かったのが、(管理番号) が一番若いこのページの "14. 7セグメントLED表示時計" です。 ここでいう "間違いの訂正" というのは、
プログラムの修正はもちろんですが、その製作物を紹介しているホームページも併せて直さなければなりません。
上の デジタル時計の一覧 の表に示すように、時計専用 LSI を使用したもの以外、すなわち、PIC で作製をしたものすべてがその対象となるため、これは結構大変な作業になりそうです。
数が多いですから十数日程度は掛かると思いますが、間違いを発見した以上はそれらを直すのは当然のことで、徐々に修正に取り掛かることにしました。
( 2019/4/20 追記 ) (4)〜(8)についての修正作業は、すべて終了させることができました。
|
| ページトップ |
■ プリント基板パターン図 (部品面) ■
左図の *3 の抵抗についての詳細は、プログラム の項を参照のこと。 右写真には反映されていないので注意。
| プリント基板パターン図 (部品面) (Clock7LEDPC.CE3) | ページトップ |
■ プリント基板パターン図 (ハンダ面) ■
| プリント基板パターン図 (ハンダ面) (Clock7LEDPC1.CE3) | ページトップ |
■ プリント基板(2)パターン図 (部品面) ■
| プリント基板(2)パターン図 (部品面) (Clock7LED2PC.CE3) | ページトップ |
■ プリント基板(2)パターン図 (ハンダ面) ■
| プリント基板(2)パターン図 (ハンダ面) (Clock7LED2PC1.CE3) | ページトップ |
■ ケースへのプリント基板の取り付け ■
プリント基板をケース等へ取り付けて固定する場合に、私は通常、M3のビス、ナット、ワッシャ、スペーサー等を使用するのですが、下図面のような小さな
ケースに取り付ける場合には、M3サイズが使用できません。
そこで1サイズ下のM2.6(長さ19mmが必要)を使用すれば今回のケースでは取り付けが可能ですが、一般的にはスペーサーが簡単には手に入りません。 そのため自作することになるのですが、
その方法を当サイト内の "沖電気 MSM5509 デジタル時計" の "ケースへのプリント基板の取り付け"
および、"万年カレンダー" の "ケースへのプリント基板の取り付け"
で述べいますので、それらの項をご覧になってください。 また、後者のページでは使用工具の紹介もしていますので、参考になるのではないでしょうか。
|
| ページトップ |
■ ケース加工図 ■
使用したケースは、100均(セリア)で購入した "クリアケース ミニ (L-8033) サナダ精工" という、ポリスチレンケースです。
プリント基板をケース内に収納したことによって、スイッチの操作が簡単には出来なくなってしまったため、このケース加工図や写真等のように、もう1組のスイッチを右側面にも追加して、
操作が可能なように変更をしました。 また、LED表示器の輝度調節用のボリュームも同様にしたかったのですが、改造が大変なことになりそうなので諦めました。
| ケース加工図 (Clock7LEDCS.CE3) |
|
|
|
|
|
|
ケース左側面から見たところ |
蓋をあけて上面を真上から見たところ |
ケース右側面から見たところ |
| ページトップ |
■ 使用部品表 ■
(主要部品: IC, トランジスタ等) |
|
(データシート) |
|
PICマイコン |
.................... |
PIC16F648A |
|
三端子レギュレータ |
.................... |
UTC78L05 |
|
三端子レギュレータ |
.................... |
LM317T |
|
トランジスタ |
.................... |
2SA1015 |
|
ダイオード |
.................... |
1N4007 |
|
7セグメントLED |
.................... |
A-552SR |
| 部品表
| Excel ファイル (Clock7LED_parts.xls)
| ページトップ |
■ 参考サイト ■
PIC,16F84を使った7セグメントLED表示の時計 .....
http://orange.zero.jp/electronics/clock/seven_a/clock1/clock1.html (現在リンク切れ)
| ページトップ | ホーム |
Copyright (C) 2006-2023 やまもとみのる
初版:2006年12月14日、初公開:2016年1月10日、最終更新:2023年10月27日
|