ロータリーエンコーダーが回転状態の時、シリアル通信でパソコンにデータを送信します。
しりあるの通信速度は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