#include <Ticker.h>
#define LED_ON_BOARD 2
#define YELLOW 22
#define RED 21
#define BUTTON 23
#define POT 34
Ticker blinker;
unsigned long buttonTime = 0;
unsigned long lastButtonTime = 0;
int potValue = 0;
ICACHE_RAM_ATTR void pressButton(){
buttonTime = millis();
if(buttonTime - lastButtonTime > 250){
digitalWrite(RED, !digitalRead(RED));
lastButtonTime = buttonTime;
}
}
void blink(){
digitalWrite(LED_ON_BOARD, !digitalRead(LED_ON_BOARD));
}
void setup() {
pinMode(LED_ON_BOARD, OUTPUT);
pinMode(RED, OUTPUT);
pinMode(BUTTON, INPUT_PULLUP);
blinker.attach(1, blink);
attachInterrupt(digitalPinToInterrupt(BUTTON), pressButton, FALLING);
digitalWrite(RED, LOW);
Serial.begin(9600);
}
void loop() {
potValue = analogRead(POT);
potValue = map(potValue, 0, 1023, 0, 255);
analogWrite(YELLOW, potValue);
}