マイコンデジタル時計の製作
  ホームページ  トップページ  次ページ  最終ページ
  1/4

ルネサスエレクトロニクス(株)のタイニーマイコンH8/3694Fを使ったデジタル置き時計の製作を紹介します。
デジタル時計なら専用のICが売られているので、マイコンで時計単体を作ることはあまりないと思いますが、マイコンを使って何か作ってみたいという人の参考にはなるのではないかと思います。
また、このデジタル時計の特徴は、ケースだけでなく、大型の7セグメントLED表示器まで手作りしています。そのあたりの工作も参考になればと思います。

1.デジタル時計について

製作したデジタル時計の特徴は次のような点です。

 ・画用紙を使って手作りした、文字高50mmの大型7セグメント表示器を使用
 ・表示には青色LEDを使用
 ・ケースは、アクリル板を使って手作り
 ・ルネサスエレクトロニクスのマイコンH8/3694Fを使用、ただし時計機能自体にはリアルタイムクロックRTC-8564NBを使用
 ・RTCは電源OFF中も1か月以上計時動作可能
 ・12時間制または24時間制に、表示切り替え可能
 ・アラーム機能搭載
 ・室温表示機能搭載
 ・電源にはACアダプタ(DC5V 1A以上)を使用


2.外観

次の写真は、製作したデジタル時計の外観です。
操作スイッチ部分に貼ったフィルムに若干色があるのは、ちょっとした選定ミスです。

外観 後面
前面より 後面・底面より


3.使用方法

このデジタル時計には電源スイッチがないので、ACアダプタを接続するとすぐに動作します。電源を入れると、すべてのLEDが約1秒間点灯して消えます。LEDの不具合などがあればこの間にわかるようにしています。
次に時刻表示になります。電源を切る前に何を表示していたかにかかわらず、電源を入れてLED全点灯の後に表示されるのは必ず現在時刻です。
操作スイッチにはTIME,ALARM,UP(+),DOWN(-),STOPの5つの押しボタンスイッチ(キースイッチ)と、1つのスライドスイッチがあります。
各スイッチは下表のように機能します。

操作部
デジタル時計の操作部 
 キー操作 動 作 
TIME  現在時刻を表示します 
TIME長押し 現在時刻を変更します
ALARM アラーム時刻を表示します
ALARM長押し アラーム時刻を変更します
UP(+) 温度を表示します(“℃”などの単位名称は表示しません)
現在時刻・アラーム時刻を変更中は入力数値を+1します
DOWN(-) 現在時刻・アラーム時刻を変更中は入力数値を-1します
STOP 押すごとにアラームON/OFFを切り替えます
アラームブザー発音中はブザーを停止します
現在時刻・アラーム時刻を変更中は変更を中止します
 12H/24H 現在時刻とアラーム時刻の表示を、12時間制と24時間制とに切り替えます
12時間制のとき昼の12時を“PM 0:00”と表示します

現在時刻の変更は次のように行います。アラーム時刻を変更する場合は、TIMEキーに代わりALARMキーを操作することで現在時刻と同様に変更できます。

  (1)TIMEを長押しすると“時”が点滅します。
  (2)UP(+)またはDOWN(-)で目的の時を入力します。UP(+)とDOWN(-)は長押しするとオートリピートします。
  (3)TIMEを押すと“時”の点滅が止まり“分”が点滅します。
  (4)UP(+)またはDOWN(-)で目的の分を入力します。
  (5)TIMEを押すと“分”の点滅が止まり、変更が終了します。

時”または“分”が点滅中にSTOPを押すと変更を中止できます。その場合、入力された“時”や“分”は破棄されます。また、アラーム時刻を変更すると自動的にアラームONとなります。
なお、現在時刻またはアラーム時刻の設定中以外にUP(+)キーを押すと温度を表示しますが、数値のみで“℃”などの単位名は表示しません。


2.回路

2-1.回路図

下記にデジタル時計の回路を示します。

  ・メイン基板の回路図(DIGICLOCK2_BOARD1.pdf)
  ・表示基板の回路図(DIGICLOCK2_BOARD2.pdf)

2-2.H8/3694Fマイコンボード

使用したマイコンはH8/3694Fで、下の写真に示す秋月電子通商で販売しているマイコンボードAKI-H8/3694Fを使用しました。これは、2.54mmのピンヘッダで接続できるDIP変換基板になっているので、試作や趣味の工作には便利です。
マイコンH8/3694Fは、H8/300HというCPUをコアに持つ16ビットマイコンです。小規模な装置やサブマイコンとして使用されるらしく、ピン数も内蔵する周辺機能も少なめで、タイニーマイコンというものに分類されています。
マイコンはフラッシュメモリにプログラムを書き込むために、パソコンとRS-232通信回線で接続する必要がありますが、このAKI-H8/3694FにはRS-232トランシーバICが実装されているので、新たに用意する必要はありません。
また、このマイコンボードにはDC5Vのレギュレータが載っていますが、デジタル時計では外部からDC5Vを供給するのでレギュレータは使いません。従って、マイコンボード上にあるジャンパ線(プリントパターン)JP1を切断しておきます。

マイコンボード

2-3.リアルタイムクロックRTC-8564NB

マイコンボードAKI-H8/3694Fにはサブクロック用の発振子(32.768KHz)も実装されているので、タイマAを使って1秒のタイムベースを作り、ソフトウェアで時計を構成することが可能です。
時計を作るからには電源OFF中も計時を続けたいわけですが(そうしないと電源OFF→ONのたびに時刻が初期状態に戻ってしまう)、電源OFF中もマイコンで計時を続けるためには、次のような処理が必要です。

  (1)電源OFFを検知する回路と、電源OFF中でもマイコンを動作させるための電源(バッテリーなど)を用意する。
  (2)電源OFFを検知したら、マイコンをスリープモードに遷移させる。
  (3)電源OFF中は、タイマAの1秒割り込みでサブアクティブモードに遷移して時計を計時し、その後に再びスリープモードに戻る。
  (4)電源OFF中に電源ONを検知したらアクティブモードに遷移し、通常動作の起動(ウォームスタート)を行う。

しかし、AKI-H8/3694FにはRS-232トランシーバICが実装されているので、マイコンだけをバッテリーでバックアップすることができません。そのため、マイコンとは別に下の写真のリアルタイムクロックRTC-8564NBを使用することにしました。
このRTC-8564NBも秋月電子通商で販売されているもので、2.54mmピッチのDIP化基板に実装されて使いやすくなっています。

RTC8564NBモジュール

リアルタイムクロックとは文字通り時計機能を持ったICで、マイコンとは独立して動作するので、電源さえ与えられていればマイコンが停止していても計時を続けます。
RTC-8564NBの消費電力は微小なので、小さなバッテリーか大容量のコンデンサである程度の期間動き続けることができます。電源OFF中に動作させるための特別なプログラムも必要ありません。
RTC-8564NBは、I2Cバス(Inter IC Bus,ここではI2Cと表記)インタフェースという2本の信号線でマイコンと接続します。また、1秒周期の割り込みも使用するので、INT端子をマイコンのIRQ0端子に接続します。
RTC-8564NBは電源OFF中でも動作させるため、回路図にある1F(ファラド)の電気二重層コンデンサで電源をバックアップしています。つまり、電源ON中はVCC(5V)で動作していますが、電源OFF中は電気二重層コンデンサに蓄えられた電荷を電源として動作します。その切り替えはショットキーダイオードSD103Aで行っています。ショットキーダイオードSD103Aの順方向電圧(VF)は、RTC-8564NBの動作電流max800nA付近で0.15V程度なので問題ありません。
単純計算ですが、この1Fの電気二重層コンデンサで1.5か月くらいはバックアップできるようです。時計は常に通電しておくものなので、1.5か月のバックアップは十分すぎるかもしれません。

2-4.7セグメントLEDと駆動回路

表示用の7セグメントLEDは、面実装の青色LED(OSB5SAS1C1A-JK)を使って手作りします。作り方は後ほど説明します。
LEDはマイコンで直接点灯させることができないので、マイコンとは別にLEDドライバという駆動回路が必要です。このデジタル時計では、LEDドライバとして抵抗入りトランジスタを使用しました。ただし、桁側D0~D4のソースドライバに使う抵抗入りトランジスタが入手できなかったため、PNPトランジスタ2SA1015GRに抵抗を付けて使用しました。
通常なら、ソースドライバとしてTD62783AP,シンクドライバとしてTD62083APあたりのドライバICを使っているところですが、これらの出力飽和電圧を見ると1V以上あり、青色LED(OSB5SAS1C1A-JK)のVFがmax3.6Vもあることを考えると、VCCの5Vでは点灯できないことがわかります。
トランジスタ2SA1015GRとRN1222の場合、VCE(コレクタ・エミッタ間飽和電圧)はそれぞれ0.3Vと0.25Vなので、VFを加算してもmax4.15Vで、5Vで点灯可能となります。
LEDに流す電流(IF)は、62Ωの制限抵抗によってmin13.7mA~max25mA(VFのバラツキによる)となります。LEDのデータではIFの許容最大値は30mAなので、若干余裕があります。
LEDの点灯桁数としては、コロンやモード表示用のバラLEDを1桁分としてまとめているので、7セグメント部分と合わせて5桁分(D0~D4)の構成となっています。LEDはこの5桁でダイナミック点灯を行っているため、IF=max25mAでもスタティック点灯時の1/5くらいの明るさにしかなりません。しかし、使用した青色LEDは十分な輝度があるので、明るさの点は問題ありません。

2-5.リセット回路

メイン基板にリセット回路はありません。AKI-H8/3694Fにはコンデンサと抵抗などによるリセット回路が実装されているので、そのまま使うことにしました。しかし、H8/3694Fにはパワーオンリセット回路や低電圧検出回路が内蔵されていないのでこれだけでは不安があります。
通常なら外部にリセット回路を追加し、電源電圧がマイコンの動作保証範囲外にある期間リセット状態にして不安定な動作をしないように設計するのですが、今回は時計として単に時刻を表示するだけなので、簡略化して外部リセット回路は省きました。

2-6.操作スイッチ

操作部分としては、押しボタンスイッチ(キースイッチ)が5個と、スライドスイッチが1個あります。前に述べたように、押しボタンスイッチは表示を切り替えたり時刻を設定したりすることに使用し、スライドスイッチは時刻表示を12時間制(ON)か24時間制(OFF)か切り替えることに使用します。

2-7.フォトトランジスタで明るさ測定

フォトトランジスタNJL7502Lは、LED表示の明るさを調整するために周囲の明るさを測定しています。
LEDの明るさ調整用なので、明るさの測定は厳密ではありません。

2-8.サーミスタで室温測定

室内温度を測定するために、SEMITEC(旧石塚電子)製の502AT-2というサーミスタを使用しています。
高精度なサーミスタですが、プルアップ抵抗や電源電圧の精度、それに測定ソフトウェアの精度などの要因で、残念ながら測定温度の精度は高くありません。

2-9.圧電スピーカでアラーム音

アラームは、タイマVによる波形出力(TMOV端子)で圧電スピーカを駆動することでブザー音を鳴らしています。波形出力を使わずプログラムによって出力ポートをON-OFFしてブザー音を鳴らすことも可能ですが、発音中に割り込みが入ると一時的に音の周波数が乱れ、雑音として聞こえることがあるので波形出力で駆動するようにしました。

2-10.電源はACアダプタ

電源は外部のACアダプタ(5V 1A以上)を使います。そのため、電源回路らしい回路はなく、チョークコイルとコンデンサがあるだけです、電源スイッチもありません。
チョークコイルは、スイッチング方式のACアダプタを使用したときに含まれるノイズを低減するためのものです。


ホームページ  トップページ  次ページ  最終ページ

■■■ 注 意 ■■■
1.ここに掲載された内容(写真,図,表などを含む)の、全てまたは一部を無断で使用しないでください。
2.ここで紹介した手法(構造や仕組み,回路,プログラムなどを含む)を使用したことにより、問題や不利益が発生したとしても一切関知しません。
3.ここで紹介したプログラム例は、正常なコンパイルおよび正常な動作を保証するものではありません。
Copyright © 2012-2017 S.Suzuki, All rights reserved.