PIC12F683にはA-Dコンバータ機能が搭載されています。この便利なA-Dコンバータを使えるようにしましょう。
■A-Dコンバータとは?
A-Dコンバータとして使用可能なポートに加えられている電圧を測定してディジタル・データに変換してくれる機能を、A-Dコンバータといいます。Anlog to
Digital
Converterの略称です。
電源電圧か外部電源を基準電圧としてこの電圧と比較することにより、電圧を測定し、ディジタル・データに変換してくれます。通常は電源電圧を基準電圧とします。
PICは2V~5Vの幅広い電源電圧で動作しますが、ここでは5Vで考えます。
続きを読む "12-2 A-Dコンバータを使いましょう" »
A-Dコンバータの使い方が、だいたいわかったでしょうか?
課題3では、スティックの左右方向の制御に、A-Dコンバータを使いましょう。
■課題3
エルロン・スティックを右または左へ倒すとLED点灯が点灯するプログラムを作りましょう。
エルロン方向=横方向のA-Dコンバータはchannel(1)に割り当てられています。
al_adc=read_adc(1)
により、読み込み、変数に代入します。
読み込んだ値により、LEDの点灯を制御します。
続きを読む "12-3 A-Dコンバータ ~その2~" »
16F88/16F84Aでの割り込みは試された方もいらっしゃると思います。ここでは、12F683の割り込みに挑戦します。
■割り込みとは・・・
久しぶりの休日、機嫌良く電子工作に励んでいると、「ちょっとこれ手伝って」「こっちをお願い!」・・・もちろん、最優先で実行しなくてはなりません。ようやく落ち着くと、「これもやって欲しいんだけど」 どんなにはんだ付けに集中していても、呼ばれればいつでも最優先です。
メインに動いているプログラムに対してなんらかのタイミングで別の処理を行うことを「割り込み」といいます。割り込み要求が入ると、メイン・プログラムに優先して実行されます。この割り込み処理があることで、PICの能力は飛躍的に向上していますが、一番わかりにくい部分であると思います。
PICでもいくつかの割り込みが用意されています。ここでは、よく使うタイマ割り込みを使います。
続きを読む "12-4 割り込み" »
課題4でPIC12F683の割り込みプログラミングを説明しました。この課題では250msの間隔を100msに変更しましょう。
■割り込み計算
set_timer1(初期値);
この初期値の数値で割り込み時間を変えることができます。
初期値をxとして、一次方程式を立てます。
0.5*10^-6*8*(65535-x+1)=100ms
続きを読む "12-5 割り込み ~その2~" »
課題5までにPIC12F683のA-Dコンバータとタイマ割り込みの使い方を学習しました。この二つを組み合わせて使いましょう。
■課題6
続きを読む "12-6 A-Dコンバータと割り込み" »
課題6では、スロットル方向(縦)をA-Dコンバータで読み込みました。この課題ではエルロン方向(横)を読み取り、割り込みによるLEDの点滅と連動します。
続きを読む "12-7 A-Dコンバータと割り込み ~その2~" »
■課題 9
電源電圧が7V以下になるとLEDが100msで点滅を開始するプログラムを作りましょう。
TX2-006Pは006P9V角電池に直結されている半固定抵抗を一つ装備しています。この半固定抵抗を利用して、電池の電圧を測定し、電圧低下アラームの役割をさせましょう。


続きを読む "12-9 A-Dコンバータと割り込み ~その4、電圧測定~" »
いよいよ、赤外線送信プログラムに入ります。まず、スロットル方向のA-Dデータを送信しましょう。
続きを読む "12-10 赤外線送信 ~その1~" »
■課題11
スロットル方向の赤外線送信は完成しましたか? 続けて、エルロン方向の送信を可能にしましょう。
続きを読む "12-11時間目 赤外線送信 ~その2~" »
■ 課題12
スロットル、エルロン方向の赤外線送信は完成しましたか?。最後に電池電圧が7Vを切るとステータスLEDが100msまたは250msの間隔で点滅し、電池交換であることを教えてくれる電源インジケータ機能を実装し、完成します。

続きを読む "12-12 赤外線2ch送信機 TX2-006Pプログラミングの完成!" »