arduino エンコーダー インターフェイス モードとは

2022-09-08
エンコーダ分類:

動作原理によると:光電式、磁電式、接触ブラシ式。

コードディスクの刻印方法による:インクリメンタルタイプとアブソリュートタイプ。


これはインターネットからの簡単な紹介です。連絡しただけですアルドゥイーノエンコーダ、およびその他はまだ使用されていません。

Arduino のエンコーダはインクリメンタルです。合計5本のワイヤーがあります。

それぞれ「CLK」、「DT」、「SW」、「+」、「GND」です。

「+」、「GND」:

言うまでもなく、VCC と GND はボードの VCC と GND に接続できます。

"SW":

Arduino によると、ノブが 1 回転すると、ピンはレベル ジャンプ信号を発します。これは、ロータリー エンコーダでよく参照される「Z」信号に相当します。実際、私が購入したこれは単なるスイッチです。つまり、ノブ部分を押し下げると(車の音量調整ボタンに似ています)、インターフェイスが立ち下がりエッジを生成します。その後、MCU は関連する処理を行います。

"CLK"、"DT":

このモジュールに表示されるシルクスクリーンの名前は、この 2 つです。なぜこのシルクスクリーンなのかわかりません。実際には、エンコーダーで一般的に使用される「A」および「B」信号に対応する必要があります。 2 つの信号は次のように生成されます。

は何ですかArduinoエンコーダーインターフェイス モード

arduino エンコーダー インターフェイス モードとは
正のスピン

上の図に示すように、ノブが前方に回転し始めると、「A」は低レベルから高レベルに変化し、「B」は変化しません。ノブを所定の位置まで回すと、"A" はハイレベルのままで、"B" はローからハイに遷移します。つまり、正転時は常に「A」が「B」からレベル変化を開始します。

arduino エンコーダー インターフェイス モードとは
回転防止

逆回転:正回転とは逆に、「B」は常に「A」からレベル変化を開始します。
ここでは、シルクスクリーンでこれら 2 本のワイヤを「CLK」、「DT」として印刷しているため、少し混乱します。関連する情報が見つからなかったので、とりあえず脇に置いておきますが、次回実用化されたときに理由がわかります。

上記の正転と逆転の法則によれば、エンコーダの回転方向とその回転角度は、エンコーダが出力する情報に基づいて決定できます。具体的な方法は次のとおりです。
"CLk" と "DT" を MCU の任意の IO ポートに外部割り込みで接続します。処理方法は次のとおりです。

2 つの IO ポートをダブルエッジ外部割り込みとして構成します。
いずれかの IO ポートが立ち上がりエッジまたは立ち下がりエッジを検出すると、もう一方の IO ポートのレベル状態が割り込み機能で検出されます。正転を例にとると、正転時はまず「A」の立ち上がりエッジで割り込みが発生し、「A」と「B」の取得レベル状態は「10」となり、次に「B」の立ち上がりエッジで割り込みが発生します。 " は "A" を検出します。 "、"B" レベル状態は "11" です。
前進し続けると、「A」と「B」のレベルステータスは「10 - 11 - 01 - 00 - 10 - ...」になります。
常に反転している場合、「A」と「B」のレベルステータスは「01 - 11 - 10 - 00 - 01 - ...」です。
このようにして、エンコーダの回転方向を決定することができ、「A」と「B」の同時遷移が完了した後、エンコーダの回転方向に応じてエンコーダの回転数を増加または減少させることができます。