Kód arduina:
Kód: Vybrat vše
int tempo = 4;
void changeColor() {
int sec = dt.second;
analogWrite(green, map(sec, 0, 59, 0, 255));
analogWrite(red, map(sec, 0, 59, 255, 0));
}
TimedAction color = TimedAction(1, changeColor);
void loop() {
color.check();
dt = clock.getDateTime();
hour1 = dt.hour / 10;
hour2 = dt.hour % 10;
minute1 = dt.minute / 10;
minute2 = dt.minute % 10;
digit(1);
segments(hour1);
delay(tempo);
digit(2);
segments(hour2);
delay(tempo);
digit(3);
segments(minute1);
delay(tempo);
digit(4);
segments(minute2);
delay(tempo);
}
void digit(int digit) {
switch (digit) {
case 0:
PORTB = B00000000;
break;
case 1:
PORTB = B00001000;
break;
case 2:
PORTB = B00000100;
break;
case 3:
PORTB = B00000010;
break;
case 4:
PORTB = B00000001;
break;
}
}
void segments(int number) {
switch (number) {
case 0:
PORTL = B01111110;
break;
case 1:
PORTL = B00110000;
break;
case 2:
PORTL = B01101101;
break;
case 3:
PORTL = B01111001;
break;
case 4:
PORTL = B00110011;
break;
case 5:
PORTL = B01011011;
break;
case 6:
PORTL = B01011111;
break;
case 7:
PORTL = B01110000;
break;
case 8:
PORTL = B01111111;
break;
case 9:
PORTL = B01111011;
break;
}
}
Obrázky jsou při napájení UDN cca 9,6V, pokud snížím na 8V tak se to tolik neprojevuje. Kde může být problém v programu, nebo v elektronice, je možné že je chyba v UDN2981?