Hackster is hosting Impact Spotlights: Industrial Automation. Watch the stream live on Thursday!Hackster is hosting Impact Spotlights: Industrial Automation. Stream on Thursday!
ejshea
Published © GPL3+

LED Bar Graph and Keypad

Display the key pressed from the keypad on the LED bar graph in binary.

BeginnerFull instructions provided1,939
LED Bar Graph and Keypad

Things used in this project

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

LED Bar Graph and Keypad Wiring

Code

LED Bar Graph and 16-key Keypad

Arduino
//Take input from a keypad and display the binary number of the key pressed on the LED bar graph

//variable declarations
int button1 = 0;
int button2 = 0;
int button3 = 0;
int buttonA = 0;
int button4 = 0;
int button5 = 0;
int button6 = 0;
int buttonB = 0;
int button7 = 0;
int button8 = 0;
int button9 = 0;
int buttonC = 0;
int buttonAst = 0;
int button0 = 0;
int buttonHash = 0;
int buttonD = 0;


void setup() {
  // put your setup code here, to run once:
  //set pins 0-3 as output and 4-7 as input
  DDRD = B00001111;

  //set pins 8-11 as output
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);

}

void loop() {
  // put your main code here, to run repeatedly:

  digitalWrite(0, HIGH);   //set pin 0 high
  //check if input pins go high (button pressed)
  button1 = digitalRead(4);
  button4 = digitalRead(5);
  button7 = digitalRead(6);
  buttonAst = digitalRead(7);
  digitalWrite(0, LOW);    //set pin 0 low
  
  if(button1 == 1){
    delay(100);   //wait until switch settles
    
    //set LEDs to 0001
    digitalWrite(8, HIGH);
    digitalWrite(9, LOW);
    digitalWrite(10, LOW);
    digitalWrite(11, LOW);
  }

  if(button4 == 1){
    delay(100);   //wait until switch settles

    //set LEDs to 0100
    digitalWrite(8, LOW);
    digitalWrite(9, LOW);
    digitalWrite(10, HIGH);
    digitalWrite(11, LOW);
  }

  if(button7 == 1){
    delay(100);   //wait until switch settles

    //set LEDs to 0111
    digitalWrite(8, HIGH);
    digitalWrite(9, HIGH);
    digitalWrite(10, HIGH);
    digitalWrite(11, LOW);
  }

  if(buttonAst == 1){
    delay(100);   //wait until switch settles

    //set LEDs to 1110
    digitalWrite(8, HIGH);
    digitalWrite(9, HIGH);
    digitalWrite(10, HIGH);
    digitalWrite(11, LOW);
  }

  digitalWrite(1, HIGH);   //set pin 1 high
  //check if input pins go high (button pressed)
  button2 = digitalRead(4);
  button5 = digitalRead(5);
  button8 = digitalRead(6);
  button0 = digitalRead(7);
  digitalWrite(1, LOW);    //set pin 1 low
  
  if(button2 == 1){
    delay(100);   //wait until switch settles
    
    //set LEDs to 0010
    digitalWrite(8, LOW);
    digitalWrite(9, HIGH);
    digitalWrite(10, LOW);
    digitalWrite(11, LOW);
  }

  if(button5 == 1){
    delay(100);   //wait until switch settles

    //set LEDs to 0101
    digitalWrite(8, HIGH);
    digitalWrite(9, LOW);
    digitalWrite(10, HIGH);
    digitalWrite(11, LOW);
  }

  if(button8 == 1){
    delay(100);   //wait until switch settles

    //set LEDs to 1000
    digitalWrite(8, LOW);
    digitalWrite(9, LOW);
    digitalWrite(10, LOW);
    digitalWrite(11, HIGH);
  }

  if(button0 == 1){
    delay(100);   //wait until switch settles
    
    //set LEDs to 0000
    digitalWrite(8, LOW);
    digitalWrite(9, LOW);
    digitalWrite(10, LOW);
    digitalWrite(11, LOW);
  }

  digitalWrite(2, HIGH);   //set pin 2 high
  //check if input pins go high (button pressed)
  button3 = digitalRead(4);
  button6 = digitalRead(5);
  button9 = digitalRead(6);
  buttonHash = digitalRead(7);
  digitalWrite(2, LOW);    //set pin 2 low
  
  if(button3 == 1){
    delay(100);   //wait until switch settles
    
    //set LEDs to 0011
    digitalWrite(8, HIGH);
    digitalWrite(9, HIGH);
    digitalWrite(10, LOW);
    digitalWrite(11, LOW);
  }

  if(button6 == 1){
    delay(100);   //wait until switch settles
    
    //set LEDs to 0110
    digitalWrite(8, LOW);
    digitalWrite(9, HIGH);
    digitalWrite(10, HIGH);
    digitalWrite(11, LOW);
  }

  if(button9 == 1){
    delay(100);   //wait until switch settles

    //set LEDs to 1001
    digitalWrite(8, HIGH);
    digitalWrite(9, LOW);
    digitalWrite(10, LOW);
    digitalWrite(11, HIGH);
  }

  if(buttonHash == 1){
    delay(100);   //wait until switch settles

    //set LEDs to 1111
    digitalWrite(8, HIGH);
    digitalWrite(9, HIGH);
    digitalWrite(10, HIGH);
    digitalWrite(11, HIGH);
  }

  digitalWrite(3, HIGH);   //set pin 3 high
  //check if input pins go high (button pressed)
  buttonA = digitalRead(4);
  buttonB = digitalRead(5);
  buttonC = digitalRead(6);
  buttonD = digitalRead(7);
  digitalWrite(3, LOW);    //set pin 3 low
  
  if(buttonA == 1){
    delay(100);   //wait until switch settles

    //set LEDs to 1010
    digitalWrite(8, LOW);
    digitalWrite(9, HIGH);
    digitalWrite(10, LOW);
    digitalWrite(11, HIGH);
  }

  if(buttonB == 1){
    delay(100);   //wait until switch settles

    //set LEDs to 1011
    digitalWrite(8, HIGH);
    digitalWrite(9, HIGH);
    digitalWrite(10, LOW);
    digitalWrite(11, HIGH);
  }

  if(buttonC == 1){
    delay(100);   //wait until switch settles

    //set LEDs to 1100
    digitalWrite(8, LOW);
    digitalWrite(9, LOW);
    digitalWrite(10, HIGH);
    digitalWrite(11, HIGH);
  }

  if(buttonD == 1){
    delay(100);   //wait until switch settles

    //set LEDs to 1101
    digitalWrite(8, HIGH);
    digitalWrite(9, LOW);
    digitalWrite(10, HIGH);
    digitalWrite(11, HIGH);
  }

}

Credits

ejshea
16 projects • 30 followers
Contact

Comments

Please log in or sign up to comment.