問題タブ [motordriver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Arduino Mega と Simple-H HV Motor Shield で DC モーターを制御する
Simple-H HV Motor Shield と H ブリッジ接続を使用して単一の DC モーターを制御しようとしています。シリアル モニタを使用して速度と方向の両方を制御する必要があります (たとえば、「f 220」は速度 220 で進むことを意味します)。ここに私が持っているコードがあります:
M1 はモーターを前進させ、M2 はモーターを後退させます。
ここにエラーがあります:「HardwareSerial::print()」の呼び出しに一致する関数がありません
これがこれをコーディングする正しい方法であるかどうかはわかりません。私はArduinoのコーディングがかなり新しいので、これをプログラミングするのを手伝ってほしいです。
c++ - 製造元の DLL を使用して、C++ を使用して USB 経由でステッパー コントローラーを制御する
はじめに 私は、大学の授業を受けた後、C++ を再学習しています。私は最近、使用する予定の USB 接続を備えた Arcus Performax PMX-4EX-SA-TB9 ステッピング モーター コントローラーを入手しました。同社は、独自のコードを使用してステッパーを手動で制御するソフトウェアを提供し、ソフトウェア内に端末を提供して、コントローラーに1行のコードを送信してステッパーを制御できるようにします. 加速や最高速度など、あらゆる種類のものを制御できます。これで遊ぶのは楽しかったですが、今はもっと先に進みたいと思っています。オンライン マニュアルには、C++ を使用してステッパー用の独自のプログラムを作成する方法が記載されており、必要と思われるファイルをダウンロードしました。DLL ファイル、lib ファイル、およびヘッダー ファイルがあります。このようにして、DLL ファイルが実行可能ファイルの実行時に使用されるダイナミック リンク ライブラリであることを知りました。lib ファイルとヘッダー ファイルを読んだところ、モーター コマンドの一部に似た関数宣言がヘッダー ファイルにあると思われることがわかりました。以下にヘッダーファイルを挿入します。
私の質問
DLL ファイルを lib およびヘッダーと一緒に使用して、ヘッダー ファイルに表示されている機能を使用してこのデバイスを制御できますか? これをすべて読み込むにはどうすればよいですか?以下に含まれる fnPerformaxComDoMove 関数を使用して、短い小さな例を書いてくれる人はいますか? そこから行けるように?私は Visual Studio C++ 2013 を使用しており、自分で作成した DLL の作成と使用に関するオンライン チュートリアルを実行しましたが、これらはすべて、これに比べて非常に単純に見えます。
私の貧弱な理解
DLL、ヘッダー、および lib ファイルが提供されているので、インポート バージョンではなく _declspec(dllexport) 定義を使用すると思います。すべての関数宣言は、「BOOL」、「PERFORMAXCOM_API」、「_stdcall」のように始まります。私は、型、関数名、括弧内の引数を見ることに慣れているだけです。すべての異なる関数の前にある「PERFORMAX_API」と「_stdcall」は何を意味しますか? DWORD はダブル ワードであり、32 ビット整数であることは理解していますが、引数の一部は x、y、z などの軸を要求します... char を要求できたのに、なぜ数値が必要なのですか? どんな情報でも私を助けることができる人に感謝します。これの使い方を知りたいです。
ヘッダ
arduino - arduinoで2つのモーターを制御
TB6612FNG モータードライバーを搭載した arduino を使用して、2 つの DC モーターを制御しています。このリンクhttp://bildr.org/2012/04/tb6612fng-arduino/をたどっています が、問題は、モーターの下のコードを実行すると実行されないことです。「move(2, 255, 1)」をコメントアウトすると、モーターの 1 つが回転します。両方のモーターが回転しないのはなぜですか?助けはありますか?
//モーター A を A01 と A02 の間に接続 //モーター B を B01 と B02 の間に接続
arduino - すべてのPWMピンでArduino Unoの同じ周波数
スイッチング作業を行うインバータ/ドライバ IC で BLDC モータを制御しています。ドライバーに 6 つの PWM 信号をすべて同じ周波数で提供する必要があります。5kHzから10kHzの間で、すべてのPWMピンが同じである限り、正確な周波数は実際には問題ではありません。
私は現在Arduino Unoを使用しています。特定のタイマー(0、1、2)と同じ周波数で各PWMピン(3、5、6、9、10、11)をプログラムする方法がわかりませんピンのクロック速度は異なります。
- ピン 5 と 6: timer0 によって制御、基本周波数 62500Hz
- ピン 9 と 10: timer1 によって制御、基本周波数 31250Hz
- ピン 11 および 3: timer2 によって制御され、基本周波数 31250Hz
timer1 と timer2 は問題なく、プリスケーラ値 8 (7812.5Hz) だけスケールダウンできます。timer0 を同じ周波数にする方法がわかりませんか?
http://playground.arduino.cc/Main/TimerPWMCheatsheet
回避策は比較的簡単だと確信しています。タイマ 0 の周波数をプリスケーラ値ではない数、たとえば 40 で割ることは可能ですか?
前もって感謝します。
パット。
c++ - 400hz PWM に 4 つの 16 ビット タイマーを使用する
私はarduinoのメガベースのクワッドコプターを扱っており、4つのモーターのPWM周波数をそれぞれ400hzにしようとしています。
4 つの ATmega2560 16 ビット タイマーを使用して 4 つの ESC を PWM で制御し、400hz の周波数に到達できる興味深いソリューションを見つけました。700 ~ 2000µs は、ESC が扱う通常のパルス幅です。
1 秒/リフレッシュ間隔 = 1/0.0025 = 400hz。
問題は、各 PWM を 1 つの 16 ビット タイマーで制御する必要があることです。それ以外の場合、たとえば、1 つのタイマーで 2 つの ESC を実行すると 200hz になります。そのため、すべての 16 ビット タイマーは 4 つの ESC の制御でビジーですが、受信機から入力 PPM を読み取る必要があります。そのためには、もう持っていない 16 ビット タイマーが少なくとももう 1 つ必要です。
通常の数値 escs が 1000..2000 などで動作するのに対し、それは 0..255 の数値しか読み取ることができない 1 つの 8 ビット タイマー フリー ビットです。
では、pwm と ppm の両方の読み取りに同じ 16 ビット タイマーを使用するとどうなるでしょうか? それはうまくいくでしょうか?急激に速度が落ちますか?
データのフィルタリング、デバッグなどを制御する Raspberry Pi とペアで arduino を使用していますが、ppm の読み取り値を Raspberry に移動した方がよいでしょうか?
c - RobotC - モーターが認識されないことによる単純なエラー
FTC 向けの遠隔操作プログラムをプログラミングしています。私たちのロボットはオムニホイールです:
/\ /
上部で、4 つのモーターを motor_LF、motor_LB、motor_RF、および motor_RB として定義します。
残念ながら、モーターを実際に動かす最後の数行で、モーター変数が定義されていないというエラーが表示されます。
どんな助けでも大歓迎です。
初めてrobotcを試しています。それを構成し、次のコードを用意します。
arduino - arduinoコードで2つのDCモーターとサーボを制御する
コードは機能していないようですが、arduino のコーディング方法の学習も始めたばかりです。ロボットカーのステアリングとして、2 つの DC モーターと 1 つのサーボを実行しようとしています。動作するようにするにはどうすればよいですか。私がやろうとしているのは、2 つのモーターを使用して車を前進させ、サーボを使用して車に方向を与えることだけです。このコードを改善するにはどうすればよいですか?