私はArduinoを使用してVictor884のいくつかを制御しています。
いくつかの調査の結果、それを実行するには、さまざまな期間のパルスを送信する必要があることがわかりました(ここでの正しい用語が何であるかはわかりません)。
それを制御するには、次のようにします。
Stop = 1.5 ms on and 0.5 ms off.
Forward Full Power = 2 ms on and 0 ms off
Backward Full Power = 1 ms on and 1 ms off
したがって、モーターを停止させるために、このようなコードを使用できます。
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delayMicroseconds(1500);
digitalWrite(13, LOW);
delayMicroseconds(500);
}
問題は、このコードがブロックされているため、時間を混乱させずに何もできないことです。解決策は、delayステートメントを取り除くことです。
BlinkWithoutDelayの例に基づいて、非ブロッキングバージョンを作成することができました。
3-4ビクターをコントロールしようとすると問題が発生します。コピー、貼り付け、名前の変更をいくつかの番号でタックオンする方法を試しましたが、コードがすぐに乱雑になります。
だから私の質問は、これをどのように行うべきかということです。それを処理するためにいくつかのクラスを作成する必要がありますか(C ++でクラスを作成する方法がわからないため、苦痛です)、またはArduinoのタイマーを使用して目標を達成することを検討する必要があります。