PIC10F200を使いバッテリー電圧昇圧しLED点灯

1.始めに

 トランジスタ2石の発振回路を作り、ニッケル水素充電池1本で3Vで光るLEDを光らせました。次にこれと同じことをPIC使い試してみようかと思います。

 設計検討を始めてみるとバッテリー一本という条件は早々にお蔵入り。PICは品種にもよりますが、今回採用予定のローエンドタイプPIC10Fシリーズでも電源としてmin2.0Vが必要です。ここで計画変更、電池は二本、ニッケル水素電池二本、約2.6Vとします。

 次に使用するLEDは秋月で買ってきた白色高輝度LED、定格は3Vminです。実力はと試しに電圧かけてみると2.6Vでかすかに光ります。アルカリ電池なら2本で3Vになり、回路動作しなくてもLEDに電流が流れてしまいます。そこでLEDは2本直列に光らせることにしました。(10年現在10本100円と超安値なOSWT3166B)

 この昇圧回路はDCブースト方式と言います。インダクタに電流流して急に切ると逆電圧が発生する現象を利用し電池電圧に逆電圧を重畳して電圧を増加させるというものです。

 電圧発生のためにPIC出力ポートでインダクタを駆動して切ってやればいいだろうと、当初は安易に考えていました。しかしPICの定格をよく見ると、そうはいきません。何故かと言うと各ピンへの印加電圧はVss+0.3Vとなっていて、Vssが2.6Vなので、.2.9Vまでしか掛けては駄目なのに、発生するブースト電圧は約2倍の5.2Vになりますからね。

 そこでポートにトランジスタつないで駆動することにします。とりあえず以上のような回路計画となりました。

 またプログラム開発ですが、マイクロチップ社のMPLAB付属のアセンブラを使用し、デバッガ・プログラマーは手持ちのPICKIT2を使用します。(MPLABやPICKIT2についてはマイクロチップ社のサイトをご覧ください。)

 

2.シミュレーション

 回路製作、プログラム開発する前にこんな計画でいけるのだろうかと心配です。それではと、手持ちのチップインダクタ100μHを用い2μSインダクタをショートし、50μS開放すると言うサイクルをPICが実行するとして、どんな電圧、電流になるかをシミュレーションします。リニアテクノロジー社から提供されるフリーのLTSPICEを使用しTRは2SC1815を使います。

 このシミュレーション結果によると電池電圧2.6Vがインダクタのショート開放時にLED両端で4.2Vまで上昇し、ピーク電流が40mA流れ約5μS後にはLEDのmin電圧より下がるので電流はゼロになります。電流は3角波でデューティが1割ぐらいなので、LEDの平均電流は2mAぐらいということになります。そこそこの明るさが期待できそうです。

 リニテクのダウンロードサイトは次です。http://www.linear-tech.co.jp/designtools/software/

 

3.回路構成と回路図

 まずPICですが、一番低位のPIC10F200を採用しPDIP8ピンを秋月から買ってきます。

・PICKIT2つないでプログラムを書き込むためにはICSPコネクタが必要です。

・出力ポートはGP2を使います。プログラム書き込み時にはPICに5VをPICKIT2から与えないといけませんから、バッテリーとの切り替えが必要です。またプログラム時に5VがLEDに掛かりますので、切り離すジャンパが必要です。

・プログラムでLEDの輝度切り替えをもくろみ、GP1にポートをGNDにつなぐためのジャンパも設けました。プルアップ抵抗が必要です。

・GP3はMCLRになるのでプルアップの10kオームを付けます。

・LTスパイスによる事前のLED印加電圧シミュレーションではTRの電流OFF時に大きなリンギングがあったため、少しでもダンピングを掛けようとTRのCE間並列に4.7kオームを入れました。

 以上のような考えで回路図をまとめました。回路図は水魚堂のBSCHを使用しています。

 

4.使用部品と基板

 この回路基板はカッタとルータで削り作成しました。トランジスタはSC−59,抵抗コンデンサは2512や1608のチップを使用します。実装ハンダ付けした基板はこんな感じです。

記号 品名 メーカや入手先など
U1 PIC10F200 マイクロチップ社
Q 2SC2462 日立c458互換、小信号用なら特にこだわらず。表面実装TR
LED OSWT3166B*2 白色LEDなどからお選びください
L1 LEM4532T101K 秋月電子扱いVLF4012AT-470MR30などが代替え可能。表面実装インダクタ
R1 1kΩ 表面実装1608
R2 4.7kΩ 表面実装1608
R3,4 10kΩ 表面実装1608
C1 0.1μF 表面実装1608
C2 1μF 表面実装2512
ICSP L型2.54mmピッチヘッダ  
JP1,2 ジャンパピンヘッダ、ジャンパ  
ICソケット 8ピンDIP  
BAT 単3*2本バッテリーホルダー  
基板 片面エポキシ紙基板  

 

5.プログラム

 次にプログラムですが、まずは単純な点灯プログラムです。

 GP1のジャンパの状態を見てループの長さを変えます。明るいほうは周波数で言うと29kHz、PICの消費電流が1mAでLEDが1.6mAで結構明るい。暗い方は2.6kHzで、かすかについているという感じです。

 CONFIG設定、イニシャルでのレジスタ設定、OSCAL設定といったところがPIC特有の注意事項でしょうか。

 入力ピンのGP1,3にはそれぞれVddとの間にプルアップ抵抗10kΩを入れたら安定しました。

 せっかっくのPICを使っているので、LED点滅をやってみました。点滅するとプログラムが確かに走っているという安心感あります。アセンブラのソースです。

 ということでPIC10F200を利用して、バッテリー2本で高輝度LEDを点滅させるというトライアルができました。

開発環境 使用したもの 追加情報
アセンブラ MPLAB IDE V8.46 現在はV8.56にバージョンアップされています。(09/11/2010)
ライター PIKKIT2 V2.61 後継PIKKIT3でたが、まだ通販などで購入可能

 マイクロチップ社の開発ツールのサイトは次です。

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=81

5.レビュー

 当初は暴走することがあり、電源電流が40mA流れLEDの制限電流もオーバー。明るすぎます。電源投入時のノイズが原因でPIC誤動作暴走発生と思いましたが、入力端子オープンだったのでラッチアップしたようです。回路図のようにGP1へ10kΩを追加。

 出来上がった回路の波形はどうでしょうか。シミュレーションのようになっているのでしょうか。簡易オシロプローブであるOSZIFOXを用いて観測してみました。ちょっとタイムディビジョンが不安ですが、LED端子電圧としてはインダクタショート時は0V、その後バックブーストされて7.5Vまで上昇、そしてバッテリー電圧まで下降します。シミュレーション時心配したようにリンギングがでています。連続点灯時の平均バッテリー電流は約4mAであり、大体のところでシミュレーションとあっているようです。

PC側のOSZIFOX VIEWERはHRA!さん提供です。OSZIFOX VIEWERは次のところからダウンロードして使えます。

http://www5d.biglobe.ne.jp/~hra/software/oszifoxviewer/index.htm

 

こんな感じで光ります。

http://www.youtube.com/watch?v=9fxhB3u_7Dw

 

PIC10Fシリーズ一覧表

COPYRIGHT nobcha  04/17/10、05/30/10

 

inserted by FC2 system