2009/03/29
●PIC10F222を使う。秋月電気で米粒ピック10F2xxシリーズを売り出してだいぶたつ。 当初PICPGMで書き込みが出来なかったが最新のファームをインストールする事で書き込みが出来るようになっていた。 10F222にはアナログ入力が付いているのでこれを使ってタイマーを作る事にした。 2006年にライトプレーン用デサマタイマーを作って以来なので殆ど忘れている。 |
・今回挑戦るすのはフリーフライトの電動プレーン用モーターランタイマー。 すでに、KOG RC→ http://members2.jcom.home.ne.jp/kog_rc/kog.htm ではコンデンサ放電を使った物が紹介され、更にtokoさんのブログでは製品化されて販売されているが、 どちらもパークプレーンの飛行テスト用を目的とした超小型の物。 今回目的とするのは電動モーターで上昇後滑空させ飛行時間を競うタイプのFF機。 従って出力調整は無くフルパワーでのON/OFFとする。 その代わりLEDランプを使ってモーターを接続しなくてもタイマーの設定確認が出来る。 タイマーの設定にトリム抵抗を使い、8ビットレジスターでカウントダウンする。 タイマーのスタートはプッシュスイッチを使い、押すとモーターが回転を始め放すとタイマーがスタートする。 更にタイマーが働いている最中にスイッチを押すと非常停止になりモーターが停止し入力待ち状態に戻る。 タイマーがタイムアップするとモーターが停止し入力待ち状態に戻る。 |
●モーターのON/OFFは FETトランジスタを使うのでモーターの出力に合った容量の物を選ぶ。 また、ノイズ防止にモーターと並列に0.1uFコンデンサーを、 モーターを正確に停止させるにはショットキーダイオードを並列に入れると良い。 (ショットキーダイオードはアノード側をマイナスに接続する) |
アナログデータをAD変換するルーチンはこんな感じ。;**** アナログ入力を使う。ADCON0(07h) ; 1.AD変換に使うポートを入力、アナログモードに設定。(Bit7,6) ; 2.AD変換を行うポートと変換結果の出力フォーマットを設定。(Bit3,2,CHS) ; 3.ADCをイネーブル(Bit0) (C_Hold=25pF)充電時間20usec以上待つ ; 4.ADCがスタート、変換終了のチェック。(Bit1,GO/DONE) ; 5.変換結果の読み出し。ADRES(08h) Anain MovLW b'10000111' ; GP1入力 MovWF ADCON0 ; ADCON0設定 Call TIM20U ; C_Hold 20usec Anain1 BTFSC ADCON0,1 ; GO/DONEのチェック Goto Anain1 ; 実行中 Nop MovF ADRES,W ; 変換結果の読み出しハードウェアーはトラ技4月号を参考にした。 トリマーは10Kを使い中間端子を10k抵抗を介してPICに接続、両端をそれぞれVDD VSSに接続した。 |
2009/04/12
●PIC10F222タイマー試作タイマーが出来上がった。 早速モーターを接続してベンチ・テストを行った。 結果は順調。Max設定は約34秒程度。 プログラムのタイムディレイはタイマー0を使ったカウントアップ。 プログラム中の設定値を変更すればMax設定は短くも長くも出来る。 組立に必要な部品は全て秋月電子から通販で購入出来る。 |
●表面の部品配置 完成重量は約4g程度でした。 |
●裏面の配線 今回は穴あき基板を使い、 PICは自作の変換基板にマウントした。 抵抗とコンデンサは チップを使い裏面に取り付けた。 チップ部品を使い慣れてない人は8ピンのDIPタイプのPICをソケットで差し込む方法がお勧めです。 |
今回使ったPIC10F222は8ピンと6ピンでピン配列が異なり、 更に一般的な8ピンのPICともピン配列が異なるので PIC-PGMで書き込みを行う場合変換アダプターを作る必要があります。 |