#define DS1_pin 4
#define SHCP1_pin 2
#define STCP1_pin 3
#define sensePin A0
int val1,val2,analogValue;
int ammo = 25;
int digits [10][8]{
{0,1,1,1,1,1,1,0}, // digit 0
{0,0,1,1,0,0,0,0}, // digit 1
{0,1,1,0,1,1,0,1}, // digit 2
{0,1,1,1,1,0,0,1}, // digit 3
{0,0,1,1,0,0,1,1}, // digit 4
{0,1,0,1,1,0,1,1}, // digit 5
{0,1,0,1,1,1,1,1}, // digit 6
{0,1,1,1,0,0,0,0}, // digit 7
{0,1,1,1,1,1,1,1}, // digit 8
{0,1,1,1,1,0,1,1} // digit 9
};
void DisplayDigit(int Digit,int numy)
{
if (numy ==1){
digits[Digit][0] = 1;
} else{
digits[Digit][0] = 0;
}
digitalWrite(STCP1_pin,LOW);
for (int i = 7; i>=0; i--)
{
digitalWrite(SHCP1_pin,LOW);
if (digits[Digit][i]==1) digitalWrite(DS1_pin, LOW);
if (digits[Digit][i]==0) digitalWrite(DS1_pin, HIGH);
digitalWrite(SHCP1_pin,HIGH);
}
digitalWrite(STCP1_pin, HIGH);
}
void setup() {
pinMode(DS1_pin, OUTPUT);
pinMode(STCP1_pin, OUTPUT);
pinMode(SHCP1_pin, OUTPUT);
pinMode(sensePin,OUTPUT);
}
void loop(){
analogValue = map(analogRead(sensePin), 0, 1023, 0, ammo);
val1 = analogValue/10 %10;
val2 = analogValue % 10;
if (val1 != 0){
DisplayDigit(val1,1);
}else if(val1 == 0){DisplayDigit(val2,0);}
delay(5);
DisplayDigit(val2,0);
delay(5);
}