超簡単!光電ロータリーエンコーダー( Incremental Rotary Encoder )をArduinoでサクッと動作検証!

みなさん、こんにちわ!

6月に入って、少し暑くなってきて、汗ばむ季節に入りましたが、汗を流して元気よく電子工作をやりましょう!

 

Incremental Rotary Encoder

賢 川島さん(@kawashimaken)がシェアした投稿 –

この前ロータリーエンコーダの記事を書きました。

ロータリーエンコーダをArduinoで動かしてみました。

目次

光電式回転エンコーダー 100 パルス AB 相 5 24 v 結合 NPN 出力 (100 pulse)

その後、しばらく遊んでいましたが、正直なところ、精度がイマイチな気がします。回す時もカクカクする感触があります。

これはこれで、使う場面もあるでしょうし、廉価で入手しやすいから、特に問題はありませんが

もし、より精度が求められるような応用でしたら、他に良いロータリーエンコーダがないかなと思って

アマゾンで調べたら(はい、すみません、アマゾンに依存し過ぎです、今年はなんとかします!笑)

光電ロータリーエンコーダというのが知りました!

早速購入!アマゾンありがとう!

もう調達のインフラですね。笑

型番:LPD3806-100BW-G5-24C

光電ロータリーエンコーダーをArduinoでサクッと動作検証!

今日は、誰でもすぐに検証できるやり方をお伝えします!

まずは、実物はこちらです!

 

配線

配線はとても簡単です。

今回は、直接にArduinoと接続します!

緑 AはArduino Digital3番に接続します。

白 BはArduino Digital2番に接続します。

黒 0Vは ArduinoのGNDに接続します。

赤 5Vは Arduinoの5Vに接続します。

これでOKです!

プログラム

プログラムはこちらです。

/*
   光電ロータリーエンコーダを動かしてみる!
*/
volatile unsigned int temp, counter = 0;
void setup() {
  Serial.begin (9600);

  pinMode(2, INPUT_PULLUP);

  pinMode(3, INPUT_PULLUP);
  //interuptをセットアップする
  //
  attachInterrupt(0, ai0, RISING);

  //
  attachInterrupt(1, ai1, RISING);
}

void loop() {
  // カウンターの値を出力する
  if ( counter != temp ) {
    Serial.println (counter);
    temp = counter;
  }
}

void ai0() {
  if (digitalRead(3) == LOW) {
    counter++;
  } else {
    counter--;
  }
}

void ai1() {
  if (digitalRead(2) == LOW) {
    counter--;
  } else {
    counter++;
  }
}

解説はまた、これから、内容をアップデートするときには加筆します。

動かす

コンパイルして、Arduinoに書き込むんだ後、シリアルモニターを開いてください。

ロータリーエンコーダを回してみると、シリアルモニターで数値の変化を確認できるはずです。

私は、最初に、前のプロジェクトの設定が残して、全然表示がなくて、あれ?と思いましたが

その後、通信スピードを9600に直したら、できました!

エンコーダを左右に回しながらシリアルプロッタで見るのも楽しいです。

まとめ

どうでしょうか?思ったより、簡単でしょう!笑

金属の本体、結構好きです!金属フェッチです!笑

次は、ロータリーエンコーダでサーボやステップモーターを制御する回路を作ってみたいですね!

では、また!

 

[amazonjs asin=”B0774P59LD” locale=”JP” title=”光電式回転エンコーダー 100 パルス AB 相 5 24 v 結合 NPN 出力 (100 pulse)”]

[amazonjs asin=”B0044X2E5S” locale=”JP” title=”【永久保証付き】Arduino Uno”]

 

Add a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close