• Home
  • Firgelli Articles
  • ビデオ付きリニアアクチュエータからのポテンショメータフィードバック

ビデオ付きリニアアクチュエータからのポテンショメータフィードバック

ポテンショメータ

可変抵抗器であるポテンショメータは、線形アクチュエーターで使用され、抵抗の変化方法に関する位置フィードバックベースを提供します。私たちのように、フィードバックにポテンショメータを使用する線形アクチュエーター フィードバックロッド線形アクチュエータ、以下に示すような3つの追加ワイヤ、入力電圧のワイヤ1で構成されます。ワイヤ2は 変数 抵抗器とワイヤー3は地面用です。線形アクチュエータの絶対位置を示すワイヤ2、出力、およびグランド間の電圧を測定することにより、ポテンショメータの出力を読み取ることができます。このフィードバックを利用するには、あるタイプのマイクロコントローラーを使用する必要があります。 Arduino、アクチュエータが移動するときにこの位置値を読み取ります。

ポテンショメータの配線

ポテンショメータからの位置フィードバック

ポテンショメータの可変抵抗器が変化すると、線形アクチュエータが移動すると変化すると、ワイヤ2と地面の電圧の差が変わります。このため、フィードバックは、Arduinoのようなコントローラーのソフトウェアで簡単に処理できます。ワイヤ2の出力電圧をグランドに比較できるためです。 Arduinoを使用して、これは単純にマイクロコントローラーのピンでアナログを使用し、Analogread()関数を使用してワイヤ2からの電圧を読み取ることで実行できます。下に。

線形アクチュエータ配線図

 

のピンのアナログ Arduino アナログからデジタルコンバーター(ADC)です。これは、ワイヤ2のアナログ電圧を0〜1023の10ビットADC値に変換します。10ビットADC値は、コンバーターがアナログ信号をに変換することを意味します。 2^10または1024の個別の値は0から1023の範囲です。すべてのマイクロコントローラーが10ビットADCではなく、一部は8ビットまたは16ビットであり、ビットの数が大きいほど、ADCの解像度は大きくなります。アナログ信号をデジタル値に変換したら、インチのようにストローク長の点で位置値を決定すると、特定の線形アクチュエータの正確なアナログ範囲を見つける必要があります。 1023.これは、アクチュエーターの内側のギアボックスがポテンショメータをその限界まで完全に回転させるのを防ぐためであり、この範囲を手動で決定する必要があることを意味します。以下のコーディングの例については、 4インチストローク長フィードバックロッド線形アクチュエーター 0 "で44のアナログ値、4インチで951のアナログ値がありました。これらの値を使用して、比率を使用して、以下のようなストローク長値を決定できます。

比率式

これは、以下のコーディング例のように、ストローク長= 0.00441*(アナログ値 - 44)に簡素化できます。マイクロコントローラーのコードでこのアナログ値を読む頻度は、もう1つの重要な考慮事項です。以下のコードの例では、Arduinoはポテンショメータを読み取り、アクチュエータが動いている限り位置値を更新します。ただし、内部タイマーを使用して、設定された時間間隔にわたって位置値を更新することも、ポテンショメーター読み取り関数をコードのメインループ内に配置し、位置値を継続的に更新することもできます。ただし、コントローラーを使用して複数の個別の機能を実行する場合は、後者はお勧めしません。

https://gist.github.com/OMikeGray/4dec9e075a8fe41efaea001fa1e98d70

COPY
float pos;                      // Actuator Position
float conNum = 0.00441;         // Constant to convert ADC to Inches
                                // Equal to (951 (ADC at 4") - 44 (ADC at 0")/4")^-1
void setup() {
  pinMode(A1, INPUT);         // Configure Analog In pin 1 as an Input
  pinMode(10, OUTPUT);        // Configure pin 10 as an Output
  pinMode(11, OUTPUT);        // Configure pin 11 as an Output
  pinMode(2, INPUT_PULLUP);   // Input for Button
  pinMode(3, INPUT_PULLUP);   // Input for Button

  Serial.begin(9600);
}

void loop() {
  if(digitalRead(2) == HIGH & digitalRead(3) == LOW){
   // Retract Actuator
    analogWrite(10, 0);
    analogWrite(11, 255);
    pos = readPotentiometer(); // Print position value to the Serial Display
    Serial.println(pos);
    delay(1);
  }
  else if(digitalRead(2) == LOW & digitalRead(3) == HIGH){
    // Extend Actuator
    analogWrite(10, 255);
    analogWrite(11, 0);
    pos = readPotentiometer();
    Serial.println(pos);  // Print position value to the Serial Display
    delay(1);
  }
  else{
    // Stop Actuator
    analogWrite(10, 0);
    analogWrite(11, 0);
  }
}

/*Function to Read Potentiometer and Convert it to Inches*/
float readPotentiometer(void){
  float pos;
  pos = conNum*(analogRead(A1) - 44); // 44 ADC is equal to 0"
  return pos;
}

電気ノイズに対処します

ポテンショメータからのフィードバックの欠点の1つは、電気ノイズの影響を受け、位置価値を不安定にする可能性があることです。これを克服する1つの方法は、デジタルフィルターを使用して電気ノイズを除去し、安定した結果を達成することです。指数フィルターからハイパスおよびバンドパスフィルターまで使用できるフィルターには、独自の利点がありますが、線形アクチュエーターを使用する多くのアプリケーションでは、ポジション値の平均を使用するだけで機能します。実行平均は、入力信号をスムーズにするための最後のx測定量の平均です。平均したい測定の正確な数はアプリケーションに依存し、この数を使用して最適なものを決定する必要がある場合があります。測定値が少なすぎる場合、信号がまだ騒がしい場合、測定が多すぎると、アクチュエーターの実際の位置に遅れすぎて使用できるようになります。フィルターを効果的にする測定が少なすぎると多すぎるとのバランスがあります。以下は、実際の入力信号に対する実行平均フィルターの効果を示すプロットです。

フィルター処理されていない信号

実行平均を実装するために使用されるコードを以下に示します。平均3つの測定値を使用して、入力信号を滑らかにします。実際の入力信号にはあまりノイズがなかったため、3つの測定が選択されたため、値を滑らかにするために必要な測定値は少なかった。入力信号にノイズが増えた場合、より多くの測定値が必要になります。多くの誘導コンポーネント(つまりモーター)の電気ノイズがある状況では、はるかに大きな問題になります。

https://gist.github.com/OMikeGray/b13f156c080a100a89e5bbd541d0565e

COPY
float readPotentiometer(void){
  int sum = 0;                         // Sum of Measurements
  static int j = 0;
  valuesToAverage[j] = analogRead(A1); // Place Measurement in Buffer with Previous Values
  for(int i = 0; i < numMeasure; i++){
    sum +=valuesToAverage[i];          // Add Up all Muasurements
  }
  if(j < numMeasure-1){j++;}
  else{j = 0;}
  return conNum*((sum/numMeasure) - 44); // Divide by number of measurements
}                                        // & Convert to Inches

自動化のためのフィードバックを利用します

デザインにフィードバックを実装することの素晴らしいところは、特定の入力にどこにあるかを知っている自己自動化されたシステムを作成できることです。自動化されたシステムでポテンショメータフィードバックを利用するには、線形アクチュエータの延長された長さをポテンショメーターによって与えられた実際の位置と単純に比較できます。次に、アクチュエーターにそれに応じて拡張または撤回するように指示する必要があります。自動システムでポテンショメータフィードバックを利用するには、克服する必要がある可能性のあるいくつかの問題があります。 1つは電気ノイズの問題であり、上記で説明したもので、もう1つは繰り返し可能な結果を​​達成できることです。ポテンショメータは一般に、他のフィードバックオプションと比較して、線形アクチュエーターの小さな動きに敏感ではないため、これにより、正確な再現可能な結果の達成がより困難になります。実際には、これは、指定されたアプリケーションに受け入れられる可能性のある、目的の位置の周りにエラーのマージンがあることを意味します。非常に正確なポジショニングを必要としない場合、またはマニュアルスイッチをマイクロコントローラーに交換してシステムを自動化している場合、ポテンショメータからの位置フィードバックは十分に正確になります。線形アクチュエータからの正確な位置決めが必要な場合は、考慮する必要がある場合があります その他のフィードバックオプション 線形アクチュエータ用または追加のコンポーネントを追加して、より信頼できる結果を提供します。これらのコンポーネントにはセンサーが含まれます 外部制限スイッチ これにより、絶対的な位置のより良い指標が得られるかもしれません。

リニアアクチュエータ

複数の線形アクチュエーターを制御する場合、再現性のある結果を達成できないことも問題です。ポテンショメータの出力信号は、他のアクチュエーターからの電気ノイズを含む電気ノイズの影響を容易に受けやすく、ポテンショメータへの入力電圧に依存しているため、複数の線形アクチュエータが同時に動くことができるようになります。デジタルフィルターを利用して、ポテンショメータへの安定した入力電圧を保証し、他の誘導コンポーネントから走る出力信号配線を持つことはすべて、より繰り返し可能な結果を​​確保するのに役立ちます。ただし、複数のアクチュエータを同時に実行したい場合は、チェックする方が良いかもしれません。 その他のフィードバックオプション 線形アクチュエータ用。

Share This Article
Tags: