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の配線図】