2016-06-10 19:00 | カテゴリ:PIC応用回路
前回は、浮動小数計算でてこずりましたが、今回は、スムースでした。

まず、AD変換の入力部のジョイスティックの精度がイマイチだったので、水平型のXY入力VRを用いて、簡易コントロールボックスを製作しました。
この水平型XYジョイスティックも、以前、秋月さんから購入していました。

JS001.jpg

JS002.jpg

テストするまでも無く、10KオームのB型と書いてあります。

続きは、、、


小さな部品ですので、強度は強くは無さそうですが、プラケースに入れて、固定し、配線しておきます。

JS003.jpg

これで、AD変換した結果は、ばっちりで、ちゃんと0から1023までAD変換値が変化します。

JS004.jpg

次に、このAD変換した値、XとYの各10ビットをRS232で送出することにします。
RS232変換は、ロボットフライデーなどで何度か経験がありますので、その時に製作したプログラムから、必要な部分、RS232のセットアップ、1バイト送信、1バイト受信を現在のプログラムに取り込みました。

RS_ini.jpg

RS_read.jpg

RS_write.jpg

ハード的には、PICのRS232の送信ポート(RC6)からTX信号をPCに送って、正しく送信されているか確認します。
以前、ここで、RS232レベル変換ICを入れないで、トラブルになりましたので、今回は、忘れないようにちゃんとICを入れて、ブレッドボードを配線します。

JS005.jpg

さあ、電源を入れて、ジョイスティックをぐるぐる廻して、構成して、ジョイスティックの位置がちゃんとPCに送信されているか確認です。
AD変換は、ちゃんと0と1023の値が得られているようです。
LEDのバーで確認できました。

JS006.jpg

JS007.jpg

PCで通信ソフトを立ち上げて、PICから送られてきたデータを表示させます。
ふむふむ、ちゃんと数値が表示されています。

RS232.jpg


PICからのデータ送信は、

上下方向のADデータの下位8ビット(2回送信)、
上下方向のADデータの上位2ビット(2回送信)、
左右方向のADデータの下位8ビット(2回送信)、
左右方向のADデータの上位2ビット(2回送信)、
改行コード(0D)

となっています。

テストでは、主に左右方向にジョイスティックを動かして、0から1023の値が送られるようにしました。

00 00 00 00 とは、00 00 の16ビット分のデータがゼロを示します。
FF FF 03 03 とは、FF 03 で、下位8ビットがFFで、上位8ビットが3、すなわち、10ビット全て1となって、1023を示しています。

と言う訳で、RS232でAD変換の結果を送信することが出来ました。

次は、このRS232信号を、例の赤外線リモコン通信のフォーマット(変調が掛けられていたと思います)にして、赤外線LEDで送信するところまで行きたいと思います。

今回のプログラムは、こちらです

Prog003.txt
【ジャンル】:趣味・実用 【テーマ】:ホビー・おもちゃ
コメント(4)

管理者のみに表示する