0

これは一般的な質問です。おそらく数学の質問だと思いますが、Arduino プラットフォームに関する質問です。

私はピンポン球をチューブ内の設定点に吊り下げたままにするボール浮上プロジェクトを行っています。ボールの位置は、ボールの位置に関連するアナログ電圧を与えるレーザー位置センサーで読み取られます。センサー出力は、チューブの長さの動作範囲に対してかなり線形です。

次に、ファンを PWM で % として制御し、これを手動でポットで調整し、チューブに 1 インチ刻みで目盛りを付けました。

基本的に、チューブ内のさまざまな位置のモーターの PWM% 値に関連するセンサー電圧出力値の表を作成しました。

2 つの変数に関するグラフを作成しましたが、驚くほど直線的です。私はExcelで傾向線を作成し、Y = 3.0265X + 15.05の直線方程式を得ました

X はセンサーの位置 (ボルト単位) で、Y は PWM 値 (%) です。

私が問題を抱えている部分は、arduinoで0から1023の値であるアナログピンからアナログ電圧を取得し、それをモーターへのアナログ書き込み(0から255の値)にPWMに関連付けることです。

analogRead() が ADC であることはわかっているので、0 ~ 1023 の値を (5.0 * analogvalue)/1023; で電圧に変換します。

それは私にボルトを与えますが、センサー電圧の変化からモーターへのPWMの変化のように、これをPWMに関連付ける方法がわかりません。私は正しい軌道に乗っていると思いますが、点と点を結び付けていません。

どんな助けでも大歓迎です!

ありがとう

4

1 に答える 1

2

一般的に言えば、PWM のパーセンテージは供給電圧の電圧に直接関連しています。つまり、5 ボルトの Arduino があり、PWM パーセンテージが 75% の場合、個々のパルスを「フィルター処理」できる出力回路があれば、出力は 3.75 ボルトになるはずです。

PWM 値は 0 から 255 の範囲にあることに注意してください。したがって、正しい出力を生成するには、0 から 1023 の範囲にある目的の「analogRead()」値を 4 で割る必要があります。 PWMを使用して電圧。

于 2012-05-01T02:30:26.437 に答える