0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IG22についてるエンコーダーを使う

Last updated at Posted at 2025-04-10

まえがき

部にあったこれ↓についてるエンコーダーを使ってみようと思ったのですが、探し方が悪いのか誰も使ってなかったのでメモ
https://akizukidenshi.com/catalog/g/g112919/
(Qiita書くの初めてなので読みにくかったらごめんです)

データシート

つかったもの

mega 2560 pro
IG22とそのエンコーダー

接続

IG22 mega 2560 pro
モーター+ なし
モーター- なし
VCC 5V
GND GND
センサーA A5
センサーB A7

(モーター+-は手で回すのでつかわないです)

まず書いたもの

void setup() {
  pinMode(A5, INPUT);
  pinMode(A7, INPUT);
  Serial.begin(115200);
}
void loop() {
  Serial.print(analogRead(A5));
  Serial.print(", ");
  Serial.println(analogRead(A7));
}

こんな感じで書いてモーターを回すと、↓みたいな感じの波形が見られると思います

ss.png
ss.png
(上下で回転方向は逆)

そして、これを元に
片方がHIGH/LOWになったときのもう片方の値を読むことで、回転方向を読むことができます(2つのXORが1なら正転、0なら逆転みたいな感じ)

最終的なコード

int counter = 0; //モーターの回転数
int lasta;

void setup() {
  pinMode(A5, INPUT);
  pinMode(A7, INPUT);
  Serial.begin(115200);
  lasta = digitalRead(A5);
}
int a,b;
void loop() {
  a = digitalRead(A5);
  if(lasta!=a){
    b = digitalRead(A7);
    if(a ^ b) counter++;
    else counter--;
  }
  lasta = a;
  Serial.println(counter);
}

mov.gif
わかりにくいですが、モーターを回すと値が上下してます


ここまでできれば、あとは1回転でなんcm進むかみたいなことを調べればいろいろできます!お疲れさまでした!!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?