Arduinoロータリーエンコーダー完全ガイド:種類・仕組み・選び方・実装例
ロータリーエンコーダーとは?
図1:ロータリーエンコーダー
ロータリーエンコーダーは、軸の回転角度・位置・速度・方向を検出し、デジタル/アナログ信号に変換する電気機械式センサーです。CNC工作機械、ロボットアーム、3Dプリンター、オーディオボリューム、産業用位置決めなど、精密な回転制御が必要な用途で広く採用されています。
ピン配置 (一般的なインクリメンタル・エンコーダーモジュール)
図2:ロータリーエンコーダー ピンアウト
| ピン名 | 機能 | 備考 |
|---|---|---|
| VCC | 電源入力 | 3.3V または 5V |
| GND | グランド | — |
| SW | プッシュスイッチ (押し込み) | アクティブロー、内部プルアップ推奨 |
| CLK (DT/OUT A) | 出力パルス A 相 | 回転検出用、90°位相差 |
| DT (CLK/OUT B) | 出力パルス B 相 | A相に対して 90° 遅れ/進みで方向判定 |
エンコーダーの種類
図3:13トラック グレイコード アブソリュートエンコーダー
出典: Wikimedia
① インクリメンタル エンコーダー (相対位置型)
- 電源投入時カウント=0 から開始、パルス数で相対移動量を把握
- A/B 相 90° 位相差矩形波出力 (クワドラチャエンコーディング)
- 電源喪失で絶対位置情報消失 → 起動時原点復帰 (ホーミング) 必須
- 構造シンプル・低コスト・高分解能化容易
- 用途: モーター速度制御、ジョグダイヤル、簡易位置決め
② アブソリュート エンコーダー (絶対位置型)
- 光ディスク/磁気パターンで各角度にユニークなコード (グレイコード/バイナリ) を割当
- 電源投入直後から 絶対位置が即座に判明、原点復帰不要
- 停電・リセット耐性高い、安全性重視用途に必須
- 高分解能化はコスト・配線数増大 (パラレル) または通信プロトコル (SSI, BiSS, EnDat) 必要
- 用途: ロボット関節、サーボモーター、工作機械、医療機器
動作原理:クワドラチャエンコーディング
図4:ロータリーエンコーダー動作原理
内部にスリット付きディスク (光学式) または磁気パターン (磁気式) と、2つの検出素子 (A相, B相) が 90° 位相差で配置されています。
- 時計回り (CW):A相立ち上がり → B相立ち上がり (A が先行)
- 反時計回り (CCW):B相立ち上がり → A相立ち上がり (B が先行)
- エッジ検出 (立ち上がり/立ち下がり両方) で 4倍分解能 (4x decoding) 実現可能
選定ガイド:エンコーダー選びの 9 つのポイント
1. インクリメンタル or アブソリュート?
コスト/分解能/原点復帰可否/ノイズ耐性/最高速度で判断。安全性・即時位置把握必要ならアブソリュート。
2. 必要分解能 (PPR / CPR)
機械精度の 1/2 〜 1/4 以上の分解能を目安に選定。例: 0.1mm 精度必要なら、リード 5mm ボールねじで 50,000 PPR 以上 (4x decoding なら 12,500 PPR)。
3. 寸法・軸形状
中空軸 (スルーホール) / 実心軸、取付スペース、軸径 (φ4, φ6, φ8, φ10 等) で絞込み。
4. 許容軸荷重 (ラジアル/アキシアル)
取付方法 (ダイレクトカップリング/ベルト/ギア) で軸負荷変動。機械的寿命に直結。
5. 最高許容回転速度 (RPM)
機械的最高回転数 < 電気的最大応答周波数 に収まること。
6. 最大応答周波数 (kHz)
式: 最大応答周波数 = (RPM / 60) × 分解能 (PPR)
余裕を持って 1.5〜2倍以上のマージンを確保。
7. 保護等級 (IPコード)
- 粉塵のみ: IP50
- 水滴/油飛散: IP52, IP64 (f: 油対応)
- 油環境: 耐油仕様選択必須
8. 起動トルク
軽負荷・高速用途では低トルク品、重負荷・直結用途では高トルク耐久品を選択。
9. 出力回路タイプ
ラインドライバ (RS-422/RS-485) / オープンコレクタ / プッシュプル / 電圧出力。伝送距離・ノイズ環境・受側インターフェースで選定。
メリット・デメリット
図5:ステッピングモーターとタイミングプーリー (3Dプリンター/CNC用)
メリット
- 高分解能・高精度位置検出可能
- 低コストでフィードバック制御実現 (インクリメンタル)
- 高信頼性・長寿命 (非接触光学/磁気式)
- 小型・軽量
- デジタル/光学技術融合でノイズ耐性設計可能
デメリット
- 磁気式: 無線/磁界ノイズ影響受けやすい
- 光学式: 直射光・粉塵・油汚れで誤動作リスク
- 汚れ・振動・衝撃に弱い (特に光学式)
- アブソリュート高分解能は高コスト・配線複雑
Arduino 実装例
例1: 基本的なカウント表示 (LCD接続)
部品: Arduino, LCD (I2C/パラレル), ポテンショメータ (コントラスト用), エンコーダー, ブレッドボード, 配線
接続: VCC→5V, GND→GND, CLK→D2, DT→D3, SW→D4 (内部プルアップ有効化)
例2: ステッピングモーター制御
部品: Arduino, ステッピングモーター + ドライバー (A4988等), エンコーダー, ブレッドボード
接続: エンコーダー GND→GND, VCC→5V, DT→A5, CLK→A4
→ エンコーダー回転量に追従してステッパー角度制御 (位置決め/同期運転)
例3: サーボモーター角度制御
ロボットアーム等の精密位置決めに最適。
接続: サーボ茶/黒→GND, 赤→5V, 橙/黄→PWMピン (D9等)
→ エンコーダー回転角をサーボ目標角にマッピング (0〜180° 等)
実装のコツ・ライブラリ活用
- 割り込み使用必須:CLK/DT を外部割り込みピン (Uno: D2, D3) に接続し、
attachInterrupt()でエッジ検出 - 推奨ライブラリ:
Encoder(Paul Stoffregen) - 4xデコーディング自動、高速・信頼性高 - チャタリング対策:機械式エンコーダー/スイッチはハード/ソフトウェアデバウンス必要
- 高速回転時:ポートダイレクトアクセス (PORTD 等) やハードウェアカウンタ (Timer) 活用
まとめ
ロータリーエンコーダーは、「回転を数値化する」ための最も汎用的・信頼性の高いデバイスです。インクリメンタルで始め、必要に応じてアブソリュートへステップアップするのが実践的。Arduino なら Encoder ライブラリで数行のコードで高精度制御が可能です。CNC・ロボット・精密機器開発のパートナーとしてご活用ください。ご質問はお気軽にどうぞ。
産業技術
- エンコーダー修理でダウンタイム最小化:プロが教える6つの必須ポイント
- Arduino Nano 33 IoT製 フライトシミュレーター2020用コックピットパネル - LCD&CDI表示
- Microsoft Flight Simulator 2020用Arduinoスイッチ&LEDパネル
- Arduino MegaでPWM制御:プッシュボタン付きLEDフェード制御チュートリアル
- Python連携で信頼性向上: Arduino RFID勤怠管理システム
- Arduino Nanoとロータリーエンコーダーで作る高精度測定ホイール
- MAX30100脈波センサーをArduinoで活用:ステップバイステップガイド
- YL-39/YL-69土壌湿度センサーをArduino UNOに接続するステップバイステップガイド
- 適切なエンコーダの選び方:通信プロトコルとアプリケーション考慮事項の徹底解説
- ハイデンハインの高性能ロータリエンコーダでロボット精度を飛躍的に向上
- パンチングメタルでコスト効率良く換気を確保:穴あき板金の活用術