入出力プログラム | |||||||
|
|||||||
メロディのプログラム | センサープログラム | RCサーボの制御 | 入出力プログラム | モーターのPWM制御 | LEDの制御 | グループ学習 | 計測と制御 MYU-USB転送ソフト | MYU USB BASIC | USBドリトル | C アセンブラ | MYU BASIC | MYUROBO転送ソフト | 構造化ドリトル | エクセルで制御 | エクセルで計測 | MYUアセンブラ MYUUSB-1基板 | MYUROBO-1A基板 | ミュウロボ命令一覧 | 構造化ドリトル制御命令一覧 |
|||||||
●入出力プログラム MYUROBO-1基板はPIC16F630(688タイプは16F688)を使って入出力をコントロールしています。MYUロボにはロボットを制御する命令がいろいろありますが、ポートを理解するとさらに細かい制御プログラムを作ることができます。 ※PIC16F630(688)のポートAはRA5以外入力用、ポートCは出力に設定されています。
In1からIn4は、センサーなどを接続するデジタル入力ポートです。In1にはリミットスイッチが標準で接続されています。これらの入力ポートはプルアップされていて入力が無い状態ではHighとなっています。Highは 1、Lowは 0 で表します。リミットスイッチが押されるとIn1(RA4)は 1 から 0 になります。 下はポートAのビット4(RA4)をチェックしてリミットスイッチ(In1)が押されたときブザーを鳴らすプログラム例です。 このプログラムではポートAのビット4(RA4)だけを調べていますがビット4は16進表記で&h10、10進表記で16です。これとポートAとAND演算を行うことで可能です。このようにAND演算して特定のビットだけを選別することをマスクするといいます。 同様にIn2はビット0(RA0)で1、In3はビット1(RA1)で2、In4はビット2(RA2)で4とポートAとAND演算することで各ポートの状態を判断できます。 ※デジタル入力ポートやアナログ入力ポートにセンサーを接続した解説はこちら!
◆出力ポート MYUROBO-1基板のポートC(RC0-RC5)はモータードライバに接続され3個もモーターを制御しています。RA5は基板のLEDやブザーを制御しています。これらの出力ポートは10mAぐらいの電流を出力できますのでLEDに数百オームの抵抗を接続して直接点灯させることも可能です。 これらのポートは'前進'や'ブザー'命令などを使ってコントロールできますが、ポート出力命令を使うと細かい制御ができます。PC命令を使ってポートCに直接出力することもできます。
●ポート出力命令
PortOut m,n //第1引数m(0-255)x0.1秒だけ 第2引数のデータn(0-255)をポートに出力する (MYU BASIC)
ポート出力命令の第2引数データn(0-255)は、ポートCの下位6ビットとポートAの5ビット目を組み合わせた値を指定します。
例えば、前進(5)とモーター左(16)を同時実行するには、それそれの値を加えた値(21)をポートに出力します。
例 PortOut 10,98 //MYU BASIC:後退LED消灯1秒
下は、基板のLEDを0.1秒ごとに点滅させるプログラムです。
ポートC(PC)やポートA(PA)に直接、値を出力することもできます。時間(Wait)命令と組み合わせるとポート出力命令と同じ結果になります。
PC=<式> PA=<式> //MYU BASIC
<定数> PC <定数> PA //構造化ドリトル
PC,<定数> PA,<定数> //MYUROBO転送ソフト
下は、PA命令を使って基板のLEDを0.1秒ごとに点滅させるプログラムです。回路図からポートAのビット5(RA5)を反転するとLEDが点滅します。
※モーター制御命令などの出力命令は、出力命令以外の命令の間も出力状態を維持します。前進の後、ブザー命令を実行するとブザーを鳴らしながら前進します。
|