Implement a 4-bit binary counter

Solving Approach

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

Code

/*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);
}

 

Output

Video

Add a video of the output (know more)

 

 

 

 

 

 

 

 

 

 

Upvote
Downvote

Submit Your Solution

Note: Once submitted, your solution goes public, helping others learn from your approach!