با سلام خدمت
دوستان این کد رو نوشتم ولی اعداد ثابت نمیمونه روی سون سگمنت
میتونید بگید اشکال کار کجاس؟


int rclkpin = 5; // connect to pin 12 on the '595
int sclkpin = 7; // connect to pin 11 on the '595
int diopin = 6; // connect to pin 14 on the '595


int score = 0;


int THRESHOLD = 100;

int sensorPin1 = 0;
int sensorPin2 = 1;

byte val1 = 0;
byte val2 = 0;

//int speed = 300; // used to control speed of counting
int segdisp[10] = {
3,
159,
37,
13,
153,
73,
65,
27,
1,
9
};
int digits[] = {
128,
64,
32,
16,
8,
4,
2,
1
};
void setup() {
pinMode(rclkpin, OUTPUT);
pinMode(sclkpin, OUTPUT);
pinMode(diopin, OUTPUT);
digitalWrite(rclkpin, LOW);
shiftOut(diopin, sclkpin, LSBFIRST, 0); // clears the right display
shiftOut(diopin, sclkpin, LSBFIRST, 0); // clears the left display
digitalWrite(rclkpin, HIGH);

}

void loop() {

val1 = analogRead(sensorPin1);
val2 = analogRead(sensorPin2);

if (val1 >= THRESHOLD) {

score += 1000;

set4Digit(score);

}

delay(10);

if (val2 >= THRESHOLD) {

score += 3000;

set4Digit(score);
}

delay(10);
}


void set4Digit(int di)
{
int a = di/1000;
int b = (di/100) - (a * 10);
int c = (di/10) - (a * 100) - (b * 10);
int d = di - (a * 1000) - (b * 100) - (c * 10);

setDigit(3, a);
setDigit(2, b);
setDigit(1, c);
setDigit(0, d);
delay(100);
}


void setDigit(int dig, int character) {
digitalWrite(rclkpin, LOW);
shiftOut(diopin, sclkpin, LSBFIRST, segdisp[character]);
shiftOut(diopin, sclkpin, LSBFIRST, digits[dig]);
digitalWrite(rclkpin, HIGH);
digitalWrite(rclkpin, LOW);
shiftOut(diopin, sclkpin, LSBFIRST, 0); // clears the right display
shiftOut(diopin, sclkpin, LSBFIRST, 0); // clears the left display
digitalWrite(rclkpin, HIGH);
}