Arduino(RMC-RA4M1)でロータリーエンコーダTypeSを使う方法|配線・プログラム・基本原理を図解解説

C言語関連

マイコンカー製作で重要な要素の一つが、走行距離や回転数を正確に取得するためのロータリーエンコーダの扱いである。特にArduino(RMC-RA4M1)環境でTypeSエンコーダを使用する場合、配線方法や割り込み処理、カウント方法に戸惑うケースが多い。本記事では基本構造から実装例まで整理する。

ロータリーエンコーダTypeSの基本構造

ロータリーエンコーダは回転量をパルス信号として出力するセンサーである。

例えばA相・B相の2信号を利用して回転方向と回転量を判定する構造になっている。

Arduino(RMC-RA4M1)での接続概要

基本的にはエンコーダのA相・B相をArduinoのデジタル入力ピンに接続する構成となる。

例えばA相を割り込み対応ピン、B相を通常入力ピンに接続することで正確なカウントが可能になる。

配線の基本構成(イメージ)

配線はシンプルで、電源・GND・A相・B相の4本が基本となる。

例えば以下のような構成になる:
・VCC → 5Vまたは3.3V
・GND → GND
・A相 → 割り込みピン(例:D2)
・B相 → デジタル入力(例:D3)

エンコーダ読み取りの基本プログラム構造

Arduinoでは割り込み処理を使うことで高速なパルス検出が可能になる。

例えばA相の立ち上がりで割り込みを発生させ、B相の状態を読むことで回転方向を判定する。

サンプルコード(基本形)

以下は基本的なカウント処理の例である。

volatile long encoderCount = 0;
void setup(){ pinMode(2, INPUT); pinMode(3, INPUT); attachInterrupt(digitalPinToInterrupt(2), countEncoder, RISING); }
void loop(){}
void countEncoder(){ if(digitalRead(3)==HIGH){ encoderCount++; } else { encoderCount–; } }

カウント精度を上げるポイント

ノイズ対策や割り込み処理の安定化が精度に大きく影響する。

例えばプルアップ抵抗の利用や、ソフトウェアデバウンス処理を追加することで誤検出を減らせる。

マイコンカーでの実践的な使い方

ロータリーエンコーダは車輪の回転数から走行距離を計算するために使用される。

例えば一定のカウント数を距離換算し、直進制御や旋回制御にフィードバックとして利用する。

まとめ

ロータリーエンコーダTypeSはA相・B相のパルスを利用して回転を検出する仕組みであり、Arduinoでは割り込み処理を使うことで正確な計測が可能になる。

配線と基本プログラムを理解することで、マイコンカーの走行制御精度を大きく向上させることができる。

コメント

タイトルとURLをコピーしました