Upload files to 'EncoderTester'
This commit is contained in:
parent
5ea30e1ad1
commit
a3d911e14a
76
EncoderTester/EncoderTester.ino
Normal file
76
EncoderTester/EncoderTester.ino
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
// define the pins for the rotary encoder
|
||||||
|
const int pinA = 2;
|
||||||
|
const int pinB = 3;
|
||||||
|
const int sw = 4;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// define the current and previous state of the rotary encoder pins
|
||||||
|
int currA = 0;
|
||||||
|
int currB = 0;
|
||||||
|
int prevA = 0;
|
||||||
|
int prevB = 0;
|
||||||
|
int prevButton = 1;
|
||||||
|
int currButton = 0;
|
||||||
|
|
||||||
|
// define the current and previous positions of the rotary encoder
|
||||||
|
int position = 0;
|
||||||
|
int prevPosition = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
// set the pin modes for the rotary encoder
|
||||||
|
pinMode(pinA, INPUT_PULLUP);
|
||||||
|
pinMode(pinB, INPUT_PULLUP);
|
||||||
|
pinMode(sw, INPUT_PULLUP);
|
||||||
|
|
||||||
|
// enable pull-up resistors on the rotary encoder pins
|
||||||
|
// digitalWrite(pinA, HIGH);
|
||||||
|
// digitalWrite(pinB, HIGH);
|
||||||
|
|
||||||
|
// initialize the serial communication
|
||||||
|
Serial.begin(9600);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
// read the current state of the rotary encoder
|
||||||
|
currA = digitalRead(pinA);
|
||||||
|
currB = digitalRead(pinB);
|
||||||
|
|
||||||
|
|
||||||
|
//read state of button
|
||||||
|
currButton = digitalRead(sw);
|
||||||
|
|
||||||
|
// check if the state of pin A has changed
|
||||||
|
if (currA != prevA) {
|
||||||
|
|
||||||
|
// if pin A has changed, check the state of pin B to determine direction
|
||||||
|
if (currA == currB) {
|
||||||
|
// clockwise rotation
|
||||||
|
position++;
|
||||||
|
} else {
|
||||||
|
// counter-clockwise rotation
|
||||||
|
position--;
|
||||||
|
}
|
||||||
|
delay(50);
|
||||||
|
|
||||||
|
Serial.println(position);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if(currButton == 0 && prevButton == 1){
|
||||||
|
Serial.println("button press");
|
||||||
|
delay(20);
|
||||||
|
}
|
||||||
|
|
||||||
|
prevButton = currButton;
|
||||||
|
|
||||||
|
|
||||||
|
// update the previous state and position of the rotary encoder
|
||||||
|
prevA = currA;
|
||||||
|
prevB = currB;
|
||||||
|
prevPosition = position;
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user