24H LED Clock

はじめに

PICを使った24時間時計の紹介です。
LEDをダイナミック点灯表示させます。


仕様

表示LEDダイナミック表示
時刻調整2ボタン方式(Mode, CountUp)
時刻精度±20ppm(水晶発振子の精度に依存)
電源5V, 80mA


回路図



■PICは時計機能とLED表示
PICはタイマ割り込みを使ってLEDのダイナミック表示と同時に時計機能を行います。
ダイナミック表示とは人間の目の残像効果を利用したもので、 高速に表示を切り替えることであたかも4つの7セグメントLEDを同時に点灯しているように見せるものです。 概ね人間の目は50Hz以上の点滅を見分けることができなくなり、連続点灯しているように見えます。 蛍光灯の光も点滅(50Hz, あるいは60Hz)していますが、人間の目には連続点灯しているように見えます。 今回は64Hzで切り替えています。高速切り替えを行うため、輝度が下がりますので、LEDの電流を少し多めに流します。
LEDはこういった用途のためにパルス電流特性が規定されています。
PICには16F88を使用しました。

■水晶発振子
時計の基準クロックでもあり、PICのシステムクロックでもあります。32.768KHzを使用しました。
精度に影響します。

■ファームウェア


部品表

型番Parts備考
33p2C1,C2セラミックコンデンサ
10u2C3,C4電解コンデンサ,耐圧16V
1508R1,R2,R3,R4,R5,R6,R7,R8カーボン抵抗1/4W
1K4R9,R10,R11,R12カーボン抵抗1/4W
10K2R13,R14カーボン抵抗1/4W
2SA10154Q1,Q2,Q3,Q4PNP汎用小型トランジスタ
PIC16F881U1PIC、マイクロチップ
78L052U2,U33端子レギュレータ
7LED4D1,D2,D3,D4GL9A040G、アノードコモン、秋月
XTAL1X1水晶発振子、シチズン時計、CFS-308, 32.768KHz、千石
SW2SW1,SW2押しボタンスイッチ


製作例

回路は簡単ですが、7セグメントLED周りの配線が混雑しています。
基板例。

動作中の様子。


時刻調整

時刻調整は2つのボタンで行います。
Mode調整する分、時を選択、選択されるとドットを表示。分->時->未選択
CountUp選択された分あるいは時をカウントアップ。押すと同時に秒も0にリセット。
時刻調整中の様子(分)。

時刻調整中の様子(時)。


評価

ソフトウェアはMPLAB MPASMで開発しました。 7セグメントLEDのダイナミック表示はちらつきも見られず良好です。
時刻精度も水晶発振子の精度で安定しているようです。
ボタン操作はソフトウェアによるチャタリング防止機能で概ね取り除かれました。
意外と苦労したのは、PICの動作クロックが32.768KHzと低いので、割り込み処理のプログラムです。
割り込み処理で実行できる命令数に限りがあり、これを超えてしまうと時刻カウントが間に合わず、 時刻が遅れてしまいます。


基板化

(2010-08-18)
OLIMEXへ他の回路と共に基板発注してみました。


(C)2007-2010 All rights reserved by Y.Onodera. inserted by FC2 system