LED回路工作部屋 > パソコンとPIC基板を使った遠隔制御 | 【最終更新日:2014/6/26】 |
パソコンとPIC基板を使った遠隔制御 |
■■■■■■ この回路の動作
■■■■■■ パソコンと離れた場所にある【基板A】(PIC基板)を2線で接続し、RS485の半二重通信を行います。 VB2008で作ったコントロールソフト使用し、パソコンから【基板A】の出力(2ポート)のON/OFF操作、 【基板A】の入力(2ポート)の入力状況確認ができます。 この回路を使って、離れた場所にある電源のON/OFFや、センサーを使ってパソコン上で監視するなどの応用が可能です。 RS485は2線で1200mぐらいの距離まで通信ができます。 ■■■■■■ 基板とソフトの説明 ■■■■■■ ・【基板@】の説明 この基板はパソコンと接続したFTDI製のUSBシリアル変換ケーブルの片方と接続し、TTLレベルとRS485を変換する基板です。基板上にRS485モジュールがのっています。 RS485は半二重通信なので、送信時はDEを"ON(1)"に、それ以外はDEを"OFF(0)"にしなければいけません。DEの ON/OFF は基板上のフォトカプラを使って、フォトカプラを送信時はOFF(DEは"ON"になる)、それ以外はON(DEは"OFF"になる)になるように、USBシリアル変換ケーブルのRTS端子を割り当てて、コントロールソフトで制御しています。 この基板ではREは常に"OFF(0)"です。REを常に"OFF(0)"にするとパソコンから送ったデータが、そのままパソコンで受信できます。 なので、パソコンからデータを送る前にDEを"ON(1)"にし、送ったバイト数と、受信したバイト数が一致したらDEを"OFF(0)"にするよう送信の制御をしています。 ・【基板A】の説明 この基板は出力(LED)を2ポート、入力(押しボタン)を2ポート備えています。出力のON/OFFはコントロールソフトから操作できます。 入力のON/OFFはボタンが押されたらコントロールソフトに表示されます。 PICはPIC16F688を使用し、RXとTXをRS485モジュールに繋いで、DEとREはPICのRC4で制御しています。 ・コントロールソフトの説明 シリアルポートの接続/停止、システムの運用/停止、出力のON/OFF、入力のON/OFFと4タイプのボタンで構成しています。 使い方は、 @ シリアルポートの使用するポート番号を選択し、シリアルポートのボタンを押して接続(緑)にする。 A システムのボタンを押して運用(緑)にする。運用にするとデータ通信が始まります。 50msecごとに通信を行い、パソコンからソフト側のデータを【基板A】へ送ります。【基板A】はソフト側からのデータを受信した時に【基板A】側 のデータをソフトに返します。 B ソフトの出力ボタンを押すと【基板A】の該当するLEDが点灯します。【基板A】の入力ボタンを押すと、ソフトの該当する入力ボタンが点滅します。 入力がなければ、リセットボタンで通常に復帰します。 ■■■■■■ 制御データの説明 ■■■■■■ ・データの頭 受信時はどこからデータが始まるのか決めていないと、受信したデータを格納できないので、0-1の2bitで先頭を表します。 2進(10進) 0000 0000 (0) 0000 0001 (1) 0000 0010 (2) 0000 0011 (3) ・アドレス RS485は最大32台まで、同じ線間にユニットを増設できるので、アドレスを割り当てておきます。 アドレスはASCIIでa〜z、A〜Zを割り振って対応。実験基板は"a"。 ・制御データ 出力用のデータは1バイト中の2-7bitを利用しています。実験では出力は2バイト用意してあるので12ポート分の出力を操作できます。 入力用のデータは1バイトあるので6ポート分の入力を確認できます。 ・データ例 [出力ナシ、入力ナシ] パソコン→【基板A】 0000 0010 0110 0001 0000 0000 0000 0000 【基板A】→パソコン 0000 0011 0000 1100 0000 0000 0000 0000 [出力AとBがON 、入力AがON] パソコン→【基板A】 0000 0010 0110 0001 0000 1100 0000 0000 【基板A】→パソコン 0000 0011 0000 1100 0000 0000 0000 0100 ■■■■■■ 基板配線図とソフト ■■■■■■ 【基板@】【基板A】の基板配線図と、コントロールソフト、PIC16F688のHEXファイルです。 ○ この回路で使用するプログラムとソフトです(フリー) ・PIC16F688のプログラム E35_RS485test.HEX (2KB) ・パソコン側で使用するソフト E35_RS485test.exe (37KB) ○ 【基板@の配線図】 ○ 【基板Aの配線図】 |