#define segA 2
#define segB 3
#define segC 4
#define segD 5
#define segE 6
#define segF 7
#define segG 8
#define DP 9
#define up_button 13
#define down_button 12
int up_state , down_state , level;
void setup() {
Serial.begin(9600) ;
pinMode(up_button , INPUT);
pinMode(down_button , INPUT_PULLUP);
for(int pin=2 ; pin<=9 ;pin++)
{
pinMode(pin , OUTPUT);
}
}
void loop() {
up_state = digitalRead(up_button) ;
down_state = ! digitalRead(down_button) ;
if(up_state == 1 && level < 9 )
{
level = level + 1 ; // level++ level+=1
delay(1000) ;
}
if(down_state == 1 && level > 0)
{
level-=1 ;
delay(1000) ;
}
switch (level){
case 0 : zero() ; break ;
case 1 : one() ; break ;
case 2 : two() ; break ;
case 3 : three() ;break ;
case 4 : four() ; break ;
default : clear() ;
}
Serial.println("level :"+String(level));
delay(50) ;
}
void zero(){
clear() ;
for(int pin=2 ; pin<=9 ;pin++)
{
if(pin != 8)
{
digitalWrite(pin, HIGH) ;
}
}
}
void one()
{ clear() ;
digitalWrite(segB , HIGH);
digitalWrite(segC , HIGH);
}
void two(){
clear() ;
for(int pin=2 ; pin<=9 ;pin++)
{ if(pin != 4 && pin!= 7)
{
digitalWrite(pin, HIGH) ;
}
}
}
void three(){
clear() ;
for(int pin=2 ; pin<=9 ;pin++)
{ if(pin != 6 && pin!= 7)
{
digitalWrite(pin, HIGH) ;
}
}
}
void four(){
clear() ;
for(int pin=2 ; pin<=9 ;pin++)
{ if(pin != 2 && pin!= 5 && pin!= 6)
{
digitalWrite(pin, HIGH) ;
}
}
}
void test_display(){
for(int pin=2 ; pin<=9 ;pin++)
{
digitalWrite(pin, HIGH) ;
}
}
void clear(){
for(int pin=2 ; pin<=9 ;pin++)
{
digitalWrite(pin, LOW) ;
}
}