|
USB-FSIOのPWM制御サンプル
PWMサンプル制御ソースのダウンロードはこちらから
(2023/04/21)※USB-FSIO30のTypeC基板はアナログ入力の参照電圧が選べるため
「5000」で計算している箇所を設定電圧に合わせて変更してください。
(2010/12/08)デバイス検索後Exitしていないため通信が出来ない場合がある不具合対応
(2011/04/20)USB-FSIO30に対応
回路説明
サーボとLEDを制御するサンプルです。
利用しているサーボは、GWS PICO STDです。このサーボは5Vで動作し、消費電流も実測で230mAぐらいなのでUSB電源からも利用できます。
フタバ配線のものを利用しているので、白が信号線(PWMチャネル1)。赤がVCC。黒がGNDにつながっています。
LEDはアノード(足の長い方)をUSB-FSIO側(PWMチャネル5)に接続し、300Ωの抵抗を接続しています。
可変抵抗は10KΩの抵抗をアナログ入力チャネル1,5に接続しています。
ピンヘッダをJ1,2,3に取り付け、ブレッドボードに挿しています。J4とJ5では穴の位置が異なるため写真のようにブレッドボード用の線でVCC,GNDを取ります。
|
(拡大)
|
サンプルプログラム説明
このアプリケーションでは、アナログチャネル1、5から入力したアナログ値をPWM制御のDuty値に変換セットし、RCサーボ制御と調光を行うサンプルです。
ポート2は全ピン入力状態の表示もしています。
アプリケーションを実行すると右の画面が表示されます。
接続ボタンを押すとUSB-FSIOと接続します。
初回はUSB-FSIOの動作モードを設定するため、設定ボタンを押して抜差を行ってください。
動作モード設定後は、接続ボタンを押した後に制御開始ボタンで動作開始です。
可変抵抗を動かす事で、サーボが動作したりLEDの調光ができます。
ポート2のピンをGNDとショートさせるとデジタル入力の値が変わります。
※このサンプルは.NETでアプリケーションを作成する上での速度面を考慮して作成していないので動作がとても鈍いです。
|
|
PWMについて
USB-FSIOのPWMは66.83us単位に行います。(初期値)
割込み処理はかなりパワーを使うので安定させるにはこのぐらいの間隔が必要です。
間隔を調整したい場合はシステム設定のパルス割込タイミング単位の値を変更してチューニングしてください。
USBとの通信中は割込が僅かにずれるのでサーボ制御の場合ピリピリと音がします。USBとの通信回数が減らせれば安定します。
(2011/09/29)
カウンタ機能の実行中も16Bitカウントすると、割込が入り僅かにずれるのでサーボ制御の場合ピリピリと音がします。
サーボ制御の注意
RCサーボはパルス信号の長さを見て角度を決めています。サーボの限界を超える信号を送ると壊れる場合があるので最初は1~2msの間で信号を送り動作確認してください。
|