Arduinoポテンショメータとロータリーエンコーダの違いは何ですか

Arduinopotenshometatorotarienkodano Weiiha Hedesuka



ポテンショメータとロータリーエンコーダは両方とも、回転の検出または位置の検出に使用されます。これらは、エレクトロニクス分野でさまざまな用途に使用される電気機械デバイスです。また、Arduino と接続してさまざまなプロジェクトを作成することもできます。この記事では、ポテンショメータとロータリー エンコーダの基本的な違いを説明します。

ポテンショメータとは

ポテンショメータは加減抵抗器、または可変抵抗器と呼ぶこともできます。ポテンショメータの軸の回転に応じて抵抗値が変化します。ポテンショメータは設定された距離までしか回転できません。ポテンショメータにはアナログとデジタルの両方がありますが、ほぼ同様です。アナログ ポテンショメータは、Arduino、Raspberry Pi、およびその他のデバイス上のマイクロコントローラと接続できます。ポテンショメータには、入力電圧ピン Vcc、グランド ピン GND、および入力信号ピンの 3 つのピンがあります。信号ピンは Arduino に入力を提供します。









ロータリーエンコーダとは

ロータリー エンコーダは、ロータリー ノブの角度位置を感知し、マイクロコントローラーまたは接続されているその他のデバイスに信号を送信します。共通のピンに接続された等間隔の接触領域を持つディスクを備えています。ロータリー エンコーダには、特定の要件に応じて ON および OFF 信号を与えるプッシュ ボタンまたはロータリー スイッチも内蔵されています。







ロータリエンコーダのピン配置図とピン説明

以下の図はロータリーエンコーダのピンを示しています。これらのピンは次のように説明されます。

出力BまたはCLK



このピンは、ノブまたはロータリーエンコーダーが回転した回数を出力します。ノブを回すたびに、CLK は HIGH と LOW のサイクルを完了します。 1回転としてカウントされます。

アウトAまたはDT

これは、回転方向を決定するロータリー エンコーダーの 2 番目の出力ピンです。 CLK信号より90°遅れます。したがって、その状態が CLK の状態と等しくない場合、回転方向は時計回り、そうでない場合は反時計回りになります。

スイッチ

スイッチピンは押しボタンが押されたかどうかを確認するために使用されます。

Vcc

このピンは 5V 電源に接続されています

GND

このピンはグランドに接続されています

ポテンショメータとロータリエンコーダの違い

仕様 ポテンショメータ ロータリーエンコーダ
回転 ポテンショメータは一方向にのみ回転でき、円の 4 分の 3 まで回転できます。 ロータリー エンコーダは、時計回りと反時計回りの両方の方向に 360° 連続的に回転できます。
アナログまたはデジタルデバイス ポテンショメータは主に、抵抗値の変化を通じて位置の変化を測定するアナログ入力デバイスです。 ロータリー エンコーダは、角度位置を感知してデジタル値を提供するデジタル入力デバイスです。

入力ポジションの数 ポテンショメータはアナログ デバイスであるため、値を取得できる入力位置が無限にあります。 ロータリー エンコーダーの入力位置の数は有限です。

Arduinoでポテンショメータをセットアップする

ポテンショメータは、ロータリー エンコーダよりも Arduino を使用してセットアップする方が簡単です。ポテンショメータには、VCC、GND、Arduino に接続された INPUT ピンの 3 つのピンしかありません。ポテンショメータと Arduino のインターフェースを以下に示します。

Arduino でポテンショメータをプログラムするのは、ロータリー エンコーダよりも簡単です。以下に、両方のサンプル構文コードを示します。

ポテンショメータのサンプルコード

const int ポット = A0; // 入力ピンの宣言
セットアップを無効にする ( ) {
   pinMode ( ポット、入力 ) ; // ポテンショメータから取得した設定値 として 入力
シリアルの開始 ( 9600 ) ;
}
ボイドループ ( ) {
int PotValue = アナログ読み取り ( ポット ) ; // ポテンショメータによる入力値の読み取り
地図 ( ポット値、 0 1023 0 255 ) ; // 一致するように入力値をスケーリングする 8 -少し
Serial.println ( ポット値 ) ; // ポテンショメータに入力された値を出力します
遅れ ( 100 ) ;
}

ポテンショメータのコードは非常に簡単でシンプルです。 Arduino のアナログ入力ピンは、ポテンショメータから入力を受け取るように単純に宣言され、analogRead() 関数と map() 関数を使用してポテンショメータから読み取った正確な値を読み取り、取得します。

ロータリーエンコーダとArduinoのインターフェース

ロータリーエンコーダには 5 つのピンがあります。ロータリーエンコーダのVCCとGNDはArduinoのVCCとGNDに接続されています。残りのピン CLK、DT、SW は Arduino のデジタル入力ピンに接続されます。

ロータリーエンコーダ用のArduinoコード

// ロータリエンコーダ入力
#CLK_PIN 2 を定義します
#DT_PIN 3 を定義します
#define SW_PIN 4
int カウンタ = 0 ;
int currentCLKState;
int lastCLKState;
文字列 currentDirection = 「」 ;
unsigned long lastButtonPresTime = 0 ;
セットアップを無効にする ( ) {
// エンコーダピンを設定する として 入力
    pinMode ( CLK_PIN、入力 ) ;
    pinMode ( DT_PIN、入力 ) ;
    pinMode ( SW_PIN、INPUT_PULLUP ) ;
// シリアルモニターのセットアップ
シリアルの開始 ( 9600 ) ;
// CLKの初期状態を読み取る
lastCLKState = デジタル読み取り ( CLK_PIN ) ;
}
ボイドループ ( ) {
// CLKの現在の状態を読み取る
currentCLKState = デジタル読み取り ( CLK_PIN ) ;
// もしも 最後 と CLK の現在の状態が異なります。 それから パルスが発生しました
// のみに反応する 1 二重カウントを避けるための状態変更
もしも ( 現在のCLK状態 = 最後のCLK状態 && currentCLKState == 1 ) {
// DT 状態が CLK 状態と異なる場合、 それから
// エンコーダは反時計回りに回転しているため、デクリメントします
もしも ( デジタル読み取り ( DT_PIN ) = 現在のCLK状態 ) {
カウンター - ;
現在の方向 = 「反時計回り」 ;
} それ以外 {
// エンコーダは時計回りに回転しているため、インクリメントします
カウンタ++;
現在の方向 = 「CW」 ;
}
シリアルプリント ( 「回転方向:」 ) ;
シリアルプリント ( 現在の方向 ) ;
シリアルプリント ( ' | カウンタ値: ' ) ;
Serial.println ( カウンター ) ;
}
// 覚えておいてください 最後 CLK状態
lastCLKState = currentCLKState;
// ボタンの状態を読み取る
int buttonState = デジタル読み取り ( SW_PIN ) ;
// LOW信号を検出するとボタンが押されます
もしも ( ボタンの状態 == LOW ) {
// 50msが経過した場合 最後 LOW パルス、それは、
// ボタンが押されて、放されて、もう一度押されました
もしも ( ミリ ( ) - 最後にボタンを押した時間 > 50 ) {
Serial.println ( 「ボタンが押されました!」 ) ;
}
// 覚えておいてください 最後 ボタン押しイベント 時間
lastButtonPressTime = ミリ秒 ( ) ;
}
// 置く わずかな遅れ ヘルプ 読み取りをデバウンスする
遅れ ( 1 ) ;
}

上記のコードでは、CLK ピンの状態がloop() 関数でチェックされます。以前の状態と等しくない場合は、ロータリーノブが回転したことを示します。ここで、ノブの回転方向を確認するために、現在の CLK の状態と DT の状態を比較します。両方の状態が等しくない場合は、ノブが時計回りに回転したことを示し、カウンターはその値を増分して回転ノブの位置を示します。逆の場合、カウンタはデクリメントされます。

アプリケーション

ポテンショメータは主に制御機能が必要な場合に使用されます。音量調整やLEDの明るさ調整などに使用されます。一方、ロータリーエンコーダは幅広い用途を提供します。これらはロボット工学、医療機器、オートメーション、ゲームで使用されています。

結論

ポテンショメータとロータリーエンコーダはどちらもエレクトロニクスの分野で特に役立つデバイスです。ロータリーエンコーダは、360°まで連続的に回転できるため、ポテンショメータと比較して先進的です。同様に、現代の電子機器ではより多くの用途があり、ポテンショメータよりも使用が若干難しくなります。