Robię zegarek binarny na układzie przesuwnym 74HC595 który ma 7 diod które działają w takim stylu
1 dioda ----- 1
2 dioda ----- 2
3 dioda ----- 4
4 dioda ----- 8
5 dioda ----- 10
6 dioda ----- 20
7 dioda ----- 30
W takim stylu. Zrobiłem program który liczy od 0 do 60 i te pierwsze 4 diody dobrze pokazują a 3 kolejne wskazujące dziesiątki i mrugają tylko i się wyłączają nie wiem jak zrobić to żeby się cały czas świeciły gdy liczy na tych 4 pierwszych diodach. Ma ktoś pomysł jak coś takiego zrobić??
Oto kod;;;;;;
int clo = 5;
int lat = 6;
int dat = 7;
int resz = 0;
int a = 0;
int b = 0;
int c = 0;
int hex;
void setup()
{
Serial.begin(9600);
pinMode(lat, OUTPUT);
pinMode(dat, OUTPUT);
pinMode(clo, OUTPUT);
}
void loop() {
for (int aa=0; aa<60; aa++)
{
delay(999);
hex = aa;
//Moduł
if(hex>=11 and hex<=19){
resz = hex - 10;
a = 2;
}
if(hex>=21 and hex<=29){
resz = hex - 20;
b = 2;
}
if(hex>=31 and hex<=39){
resz = hex - 30;
c = 2;
}
if(hex>=41 and hex<=49){
resz = hex - 40;
a = 2;
c = 2;
}
if(hex>=51 and hex<=59){
resz = hex - 50;
b = 2;
c = 2;
}
if(a==2){
shiftOut(dat, clo, LSBFIRST, 16);
digitalWrite(lat, HIGH);
}
else{
digitalWrite(lat, LOW);
}
if(b==2){
shiftOut(dat, clo, LSBFIRST, 32);
digitalWrite(lat, HIGH);
}
else{
digitalWrite(lat, LOW);
}
if(c==2){
shiftOut(dat, clo, LSBFIRST, 64);
digitalWrite(lat, HIGH);
}
else{
digitalWrite(lat, LOW);
}
if(resz>0){
digitalWrite(lat, LOW);
shiftOut(dat, clo, LSBFIRST, resz);
digitalWrite(lat, HIGH);
}
}
}