#include<Servo.h>
Servo servo;
#define segA 2
#define segB 3
#define segC 4
#define segD 5
#define segE 6
#define segF 7
#define segG 8
#define btnINC 9
int stateUp;
#define btnDEC 10
int stateDown;
int counter;
void zero(){
servo.write(0);
for (int i=2; i<=7;i++){
digitalWrite(i,HIGH);
}
digitalWrite(segG,LOW);
}
void one(){
servo.write(10);
digitalWrite(segA, LOW);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
for (int i=5; i<=8; i++){
digitalWrite(i, LOW);
}
}
void two(){
servo.write(20);
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segC, LOW);
digitalWrite(segD, HIGH);
digitalWrite(segE, HIGH);
digitalWrite(segF, LOW);
digitalWrite(segG, HIGH);
}
void three(){
servo.write(30);
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, LOW);
digitalWrite(segF, LOW);
digitalWrite(segG, HIGH);
}
void four(){
servo.write(40);
digitalWrite(segA, LOW);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD,LOW);
digitalWrite(segE, LOW);
digitalWrite(segF, HIGH);
digitalWrite(segG, HIGH);
}
void five(){
servo.write(50);
digitalWrite(segA, HIGH);
digitalWrite(segB, LOW);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, LOW);
digitalWrite(segF, HIGH);
digitalWrite(segG, HIGH);
}
void six(){
servo.write(60);
digitalWrite(segA, LOW);
digitalWrite(segB, LOW);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, HIGH);
digitalWrite(segF, HIGH);
digitalWrite(segG, HIGH);
}
void seven(){
servo.write(70);
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, LOW);
digitalWrite(segE, LOW);
digitalWrite(segF, LOW);
digitalWrite(segG, LOW);
}
void eight(){
servo.write(80);
for(int i=2; i<=8; i++){
digitalWrite(i, HIGH);
}
}
void nine(){
servo.write(90);
for(int i=2;i<=8; i++){
if(i==segD || i==segE){
continue;
}
}
digitalWrite(segD, LOW);
digitalWrite(segE, LOW);
}
void displayOff(){
digitalWrite(segA, LOW);
digitalWrite(segB, LOW);
digitalWrite(segC,LOW);
digitalWrite(segD, LOW);
digitalWrite(segE, LOW);
digitalWrite(segF, LOW);
digitalWrite(segG, LOW);
}
void setup() {
// put your setup code here, to run once:
for (int x=2; x<=8; x++){
pinMode(x, OUTPUT);
}
pinMode(9, INPUT);
pinMode(10, INPUT);
servo.attach(11);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
stateUp= digitalRead(btnINC);
stateDown= digitalRead(btnDEC);
if(stateUp ==1 && counter<9){
counter++;
delay(1000);
}
if(stateDown ==1 && counter>0){
counter--;
delay(1000);
}
switch(counter){
case 0 : zero();
break;
case 1 : one();
break;
case 2 : two();
break;
case 3 : three();
break;
case 4 : four();
break;
case 5 : five();
break;
case 6 : six();
break;
case 7 : seven();
break;
case 8 : eight();
break;
case 9: nine();
break;
default : displayOff();
break;
}
Serial.println(counter);
delay(30);
}