2013年11月25日月曜日

LPC1114FN28(mbed)を使ったKitchen Timer

LPC1114FN28(mbed)を使ったKitchen Timer

<概要>

mbed化したLPC1114FN28で99分まで測れるキッチンタイマーを作りました。

動画URL:
http://www.youtube.com/watch?v=uukFitfkv70&feature=c4-overview&list=UUBKFbjZziYG1M-dKWqTlUwA


回路図、PCB、WINSTAR PCB for iModela、LPC1114FN28用プログラムはこちらからダウンロードできます。
https://drive.google.com/file/d/0B_-iH9ny-AE-Qkd0YUppcVF4ZVk/edit?usp=sharing



時間表示は4桁7セグメントLEDを使い、0~99分の間で設定します。LEDの駆動にはドライブ回路は設けず、マイコンからの出力を直接LEDに加えています。このため、LEDは赤色を使用しています。他色(青、白など)は順方向電圧がマイコンの出力電圧より高くなるため使用できません。

設定はタクトSWで構成した十字キーで行います。SWの認識は、3つのSWを1組にしてアナログ入力を使用しています。SWの同時押しも認識できるようにしています。



完成基板(表)

電源は、ニッケル水素電池を2本直列(2.4[V])を使います。

SW操作や、時間経過のお知らせにスピーカでビープ音や、メロディを流します。スピーカ駆動にはドライブ回路は使用せず、PWMとデジタル出力端子を組み合わせて、スピーカに加わる電圧を反転させ、PWMで余韻を作っています。



完成基板(裏)

<回路の説明>

プリント基板をiModela(iM-01)で基板を作成するために、80×50[mm]に収める必要がありました。このため極力部品を減らしています。
LPC1114FN28の出力端子設定での許容電流値は3[mA]、全体で100[mA]にする必要があります。これを目安に部品を選んでいきます。


回路図

● 7セグメントLED出力
電源を、ニッケル水素電池2本直列(2.0~2.4[V])で駆動します。このため順方向電圧の低い赤色LEDを使います。また、LPC1114で直接駆動するため、3[mA]の電流で明るく光る超高輝度LEDを使います。

COM,SEG端子の配置は換えてもかまいませんが、LPC1114の5Pin,27Pinはオープンドレインなので、そのままではHi側に吊り上げることが出来ません。アノードコモンの場合はSEG端子、カソードコモンの場合はCOM端子に割り付ける必要があります。(今回の回路では、アノードコモンの7セグメントLEDを使ったので、SEG端子に割り付ける必要があります)

COM側端子にはSEG端子からの電流が集まるため、全点灯した場合、3[mA]×8=24[mA]の電流が流れ、LPC1114の規格オーバーになります。この点、無理をしているので壊れる可能性があります。(実力OKとして使っています)

補足:
回路図では550[Ω]としていますが、680[Ω]でも充分な輝度が得られました。
電流値は低い方が良いので、680[Ω]を使うことを薦めます。



● タクトSW認識
SWの認識をデジタル入力とすると、LPC1114の端子が足りないのでアナログ入力端子を使って、3つのSWを1つのアナログ端子で読み込むようにしています。
Vcc-GND間に、R1からR4までの抵抗を直列に入れます。抵抗値はR1を基準に倍づつ変化するようにします。R2からR4の両端にSWを入れ、R1とその他の分圧で押されているSWを認識します。使用する抵抗は精度±1[%]のもの(金属皮膜抵抗)を使ってください。

このSW認識用にmbedのLibraryを用意してあります。LPC1768用にアナログ6端子認識できるように作っていますが、LPC1114では未使用端子があると認識できなかったので、今回の用途用に2端子入力用のLibraryに作り直してあります。
mbedLibray:
http://mbed.org/users/suupen/code/SwAnalog/





SWのアナログ認識回路


● スピーカ出力
スピーカ出力もLPC1114端子に直接接続しています。少しでも音を大きくするため、スピーカの両端を出力端子に接続して、交互にHi,Lo出力することで、スピーカの振幅を大きくしています。




スピーカの両相出力



スピーカの音量制御

スピーカー出力もmbed Libraryがあります。
LPC1114用(ノイズ対策のために両端子ともPWM出力としたもの):
http://mbed.org/users/suupen/code/SoundLibraryExample_Melody_ProgramData/wiki/Homepage

LPC1768用(PWM-Digital出力端子としたもの):
http://mbed.org/users/suupen/code/Sound/



● ISP端子
LPC1114を基板に実装した状態でプログラムを書き換えるときに使用します。
書き換えにはLPC1114の15,16,21,22,23,24Pinを使用しますが、この並び順に6Pinコネクタに引き出してあります。コネクタに引き出してあります。



ISPコネクタ部

LPC1768を使ったISP書き込みツール
http://mbed.org/users/okano/code/ika_shouyu_poppoyaki/
を使えば、書き込みは出来ますし、書き込み後に15,16PinのUART出力でprintfが使えます。

ISPコネクタから電源供給する場合には、電池は抜き取ってください。(ISPコネクタ、電池の両方が入った場合のことは回路上考慮していないので、電池へ充電する形になり危険です。


● RESET回路
電池駆動では、LPC1114への電源投入時のマイコン起動がうまくいかず、マイコンが起動しない場合があります。このため、R=33[kΩ]、C=10[uF]でパワーオンリセット回路を入れておきます。



RESET回路部

● 電源(電池)駆動
メロディー出力などの動作状態変化によって電源電圧が変動する場合があります。この影響でLPC1114が暴走する可能性があるので、電源とGND間に47[uF]の電解コンデンサを入れておきます。



電源部回路部



<PCBパターン>

EAGLE CADで回路図、PCBパターンを作成します。iModela(iM-01)でプリント基板を作成するため、片面基板のパターンワークを行いました。どうしても配線できない箇所はジャンパーを飛ばしています。また、部品端子穴のランドは大きく補強しておきました。

EAGLE CADでガーバーデータを作成して、WINSTAR PCB for iModelaで切削用データに変換して、iModela(iM-01)でプリント基板を作成します。
切削についての詳しい説明は「コンパクト3D切削マシンで作るMyプリント基板」http://shop.cqpub.co.jp/hanbai/books/18/18941.html
を参照してください。



PCBパターン図(部品面からの透過図示)



WINSTAR PCB for iModela切削データ



完成基板

<部品実装>


LPC1114はICソケットを介して実装しています。7セグメントLEDも1列6Pinコネクタを2本使って基板に実装しています。これらのソケットを使わず直接実装してもかまいません。



部品実装(表)

スピーカは、ホーン代わりに、紙の筒に取り付けて、基板に固定してあります。


部品実装(裏)

<プログラムの書き込み>

mbedWebからダウンロードします。
https://mbed.org/users/suupen/code/kitchenTimer/rev/269bb751dd19

コンパイルしてできる、拡張子“bin”をLPC1114FN28に書き込みます。
書き込みには、こちらのLPC1768を使用したISPツールを使うと便利です。
http://mbed.org/users/okano/code/ika_shouyu_poppoyaki/
このWebに書き込みに必要な一通りの手順の説明があります。



LPC1768 ISPプログラム「いか醤油ぽっぽ焼き」Web

この方法で書き込みする場合はLPC1768から電源供給するので、キッチンタイマ側の電池はぬいてください。





LPC1114へのプログラム書込み


以上


2013年11月20日水曜日