[hide]
1Introduction | |
2Specification | |
3Connection Diagram | |
4Sample Code | |
5Resources | |
6Get One Now |
The rotary encoder can
count the pulse outputting times during the process of its rotation in
positive and reverse direction by rotating. This rotating counting is
unlimited, not like potential counting. It can be restored to initial status
to count from 0.
Power Supply: 5V | |
Interface: Digital | |
Size: 30*20mm | |
Weight: 7g |
const int interruptA = 0; const int interruptB = 1; int CLK = 2; // PIN2 int DAT = 3; // PIN3 int BUTTON = 4; // PIN4 int LED1 = 5; // PIN5 int LED2 = 6; // PIN6 int COUNT = 0; void setup() { attachInterrupt(interruptA, RoteStateChanged, FALLING); // attachInterrupt(interruptB, buttonState, FALLING); pinMode(CLK, INPUT); digitalWrite(2, HIGH); // Pull High Restance pinMode(DAT, INPUT); digitalWrite(3, HIGH); // Pull High Restance pinMode(BUTTON, INPUT); digitalWrite(4, HIGH); // Pull High Restance pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); Serial.begin(9600); } void loop() { if (!(digitalRead(BUTTON))) { COUNT = 0; Serial.println("STOP COUNT = 0"); digitalWrite(LED1, LOW); digitalWrite(LED2, LOW); delay (2000); } Serial.println(COUNT); } //------------------------------------------- void RoteStateChanged() //When CLK FALLING READ DAT { if (digitalRead(DAT)) // When DAT = HIGH IS FORWARD { COUNT++; digitalWrite(LED1, HIGH); digitalWrite(LED2, LOW); delay(20); } else // When DAT = LOW IS BackRote { COUNT--; digitalWrite(LED2, HIGH); digitalWrite(LED1, LOW); delay(20); } }
Video
http://www.keyestudio.com/wp/2016/05/ks0013-keyestudio-rotary-encoder-module-for-arduino/
https://drive.google.com/open?id=1WV0fSJS60CTnD6jSeNJrqSjRRvmfRJEM