/*
PWM + logic analyzer example
How to use:
1. Start the simulation, run it for a few seconds
2. Stop the simulation, your browser will download a VCD file
3. Open the file in PulseView:
https://docs.wokwi.com/guides/logic-analyzer#viewing-the-data-in-pulseview
Copyright (C) 2021, Uri Shaked
*/
#include <MD_REncoder.h>
// Rotary Encoder
#define RE_A 7
#define RE_B 8
// Onboard LEDs
#define LED_1 12
#define LED_2 13
// set up encoder object
MD_REncoder REnc = MD_REncoder(RE_A, RE_B);
uint8_t ctr = 0;
void setup() {
pinMode(5, OUTPUT);
analogWrite(5, 127);
REnc.begin();
Serial.begin(115200);
pinMode(LED_1, OUTPUT);
pinMode(LED_2, OUTPUT);
digitalWrite(LED_1, HIGH);
}
void loop()
{
uint8_t x = REnc.read();
switch (x) {
case DIR_CW: Serial.println(++ctr);
digitalWrite(LED_1, !digitalRead(LED_1));
digitalWrite(LED_2, !digitalRead(LED_2));
break;
case DIR_CCW: Serial.println(--ctr);
digitalWrite(LED_1, !digitalRead(LED_1));
digitalWrite(LED_2, !digitalRead(LED_2));
break;
}
}