ロータリーエンコーダーが回転状態の時、シリアル通信でパソコンにデータを送信します。 しりあるの通信速度は115200bpsとしてください。



/*
For Rotary Encoder
The circuit:
* LED: 5V-1K OHM -LED -GND
* Rotary Eoncoder1 A: Pin3
* Rotary Eoncoder1 B: Pin4
*
*/

int timer = 100; // The higher the number, the slower the timing.1000 usec= 1 msec

boolean RE1pinA=LOW; // RE1 condition, pin A
boolean RE1pinB=LOW; // RE1 condition, pin B
boolean RE1pinAnow=LOW; // RE1 condition, pin A
boolean RE1pinBnow=LOW; // RE1 condition, pin B

byte Condition1=2;// 0=CW rotation, 1=CCW rotation, 2=stop

void setup() {
pinMode(3, INPUT); //setup pin No.1 as input for the R.E.1 A
pinMode(4, INPUT); //setup pin No.2 as input for the R.E.1 B

pinMode(13, OUTPUT); //setup pin No.13 as output for LED operation indicator
Serial.begin(115200); // open the serial port, speed=115,200bps
// Keyboard.begin(); // initialize control over the keyboard, if needed:
}

void loop() {
// loop from the lowest pin to the highest:
//Read Pins
RE1pinA=digitalRead(3);
RE1pinB=digitalRead(4);
delayMicroseconds(timer); //wait for 1000 usec=1 msec
RE1pinAnow=digitalRead(3);
RE1pinBnow=digitalRead(4);

//For RE1
// 4 patterns for CCW rotation
Condition1=2;
if( (RE1pinA & & RE1pinAnow & & !RE1pinBnow & & RE1pinB)
or( !RE1pinA & & !RE1pinAnow & & RE1pinBnow & & !RE1pinB)
or( RE1pinB & & RE1pinBnow & & RE1pinAnow & & !RE1pinA)
or( !RE1pinB & & !RE1pinBnow & & !RE1pinAnow & & RE1pinA)){Condition1=1;} // rotation in CCW
// 4 patterns for CW rotation
if( (RE1pinA & & RE1pinAnow & & RE1pinBnow & & !RE1pinB)
or( !RE1pinA & & !RE1pinAnow & & !RE1pinBnow & & RE1pinB)
or( RE1pinB & & RE1pinBnow & & !RE1pinAnow & & RE1pinA)
or( !RE1pinB & & !RE1pinBnow & & RE1pinAnow & & !RE1pinA)){Condition1=0;} // rotation in CW

//Serial Send
if ((Condition1< 2)){
Serial.print (millis(),DEC);//To send hardware timing, not necessarily
Serial.print (", "); //comma
Serial.print (Condition1,BIN); //Serial out "time (msec)" and " Condition"
digitalWrite(13, HIGH); // Indicator LED on
}else{
digitalWrite(13, LOW); // Indicator LED off
}

}


戸田よろず研究所トップページへ

ここで公開するアイデア/装置は安全性を保障しておりません。 用途に応じた設計を行い、十分な安全検査を行ってからご利用ください。 本サイトの情報の営利目的での利用はご遠慮ください。 本サイトの内容の無断転載を禁じます。© 2018 TYK