How do you plan to solve it?
External pullup RC: R=1k, C=1nF, RC in series, R to 5V and C to GND, connect node between R and C to GPIO
Pushbutton: same setup as task example
LED: same setup as task example
/*Paste your code here*/
#define increment 2
#define decrement 3
#define led1 4
#define led2 5
#define led3 6
#define led4 7
uint8_t led_pattern = 0x0;
uint8_t plus;
uint8_t minus;
uint8_t last_plus;
uint8_t last_minus;
const uint8_t led_length = 4;
void setup()
{
pinMode(increment, INPUT);
pinMode(decrement, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
}
void loop()
{
plus = digitalRead(increment);
minus = digitalRead(decrement);
if(plus == LOW && last_plus == HIGH)
led_pattern++;
if(minus == LOW && last_minus == HIGH)
led_pattern--;
led_pattern &= 0xF;
last_plus = plus;
last_minus = minus;
led_pattern_write(led_pattern);
}
void led_pattern_write (uint8_t pattern){
digitalWrite(led1, (pattern >> 0) & 1);
digitalWrite(led2, (pattern >> 1) & 1);
digitalWrite(led3, (pattern >> 2) & 1);
digitalWrite(led4, (pattern >> 3) & 1);
}
Add a video of the output (know more)