解決策
エラー5003は、LabVIEWがArduinoへの接続が切れたことを示しています。接続が切れるのは、VIがArduinoと通信している間にUSBケーブルまたはシリアルケーブルを切断するか、XbeeやBluetoothといったワイヤレス信号強度が弱くなった場合です。事実上、LabVIEWがArduinoから一定の時間(デフォルトでは100ミリ秒間隔で10回の再試行)データを読み取ることができなかった場合、タイムアウトが発生します。問題を解決するには、以下のトラブルシューティング手順を行います。
効果的には、LabVIEWがArduinoから一定の時間(デフォルトで10回の再試行につき100ミリ秒)データを読み取ることができなかった場合、タイムアウトが発生します。
次のトラブルシューティング手順に沿って問題を解決します。
- 有線接続している場合はすべてのケーブルがしっかりと接続されているか、無線接続している場合は十分な信号強度があることを確認します。デスクトップコンピュータの背面にあるUSBポートは、一般的に前面パネルにあるUSBポートよりも安定した電源を備えています。デスクトップコンピュータの場合は、これらのポートを使用することができます。ラップトップを使用している場合は、トラブルシューティングプロセス中にラップトップが接続されていることを確認します。
- 通信プロトコルを適切に定義するため、Arduinoボードに対して正しいボーレートとCOMポートが指定されていることを確認します。適切に設定しないと、このエラーが発生することがあります。
- LabVIEW Interface for Arduino (LIFA) Toolkitを使用するすべてのプログラムは、Initコマンドで始まり、Closeコマンドで終了する必要があります。LabVIEWの実行を中断ボタンをできるだけ使用しないように注意します。タスクを中止すると、コードはClose VIを実行することができません。次にコードを実行すると、Arduinoは不明な状態で起動し、エラー5003が発生します。これを修正するには、ボードを再起動してLIFAファームウェアを再ロードする必要があります。
- 他に開いているプログラムがArduinoとの通信を行っていないことを確認します。たとえば、Arduino統合開発環境(IDE)を開いてArduinoリソースを予約すると、LabVIEWがCOMポートにアクセスしようとした際にエラー5003が発生します。
- 同じI/Oピンを使用する付属のサンプルプログラムを開いて、エラー5003が発生していないかどうかを調べることができます。これにより、Arduinoが実際にコンピュータと通信できるようになります。
- 送信受信機能のTime OutおよびMax Retries入力端子を変更することにより、タイムアウト時間またはタイムアウト再試行回数を手動で変更できます。タイムアウト値を長くするか試行回数を増やす(再試行)と、デバイスとの通信が確立されることがあります。