uint8_t segment_map[]={
// gfedcba
0b00111111, // "0"
0b00000110, // "1"
0b01011011, // "2"
0b01001111, // "3"
0b01100110, // "4"
0b01101101, // "5"
0b01111101, // "6"
0b00000111, // "7"
0b01111111, // "8"
0b01101111, // "9"
0b01110111, // 'A'
0b01111100, // 'b'
0b00111001, // 'C'
0b01011110, // 'd'
0b01111001, // 'E'
0b01110001, // 'F'
};
void set_segment(int numero){
//agregue un condicional de guarda por si el numero es mayor que 15
if(numero>15){
return;
}
PORTD=(~segment_map[numero])<<2;
PORTB=(~segment_map[numero])>>6;
}
void setup() {
// put your setup code here, to run once:
DDRD=DDRD|0b11111100;
DDRB=DDRB|0b00000001;
}
void loop() {
for(int n=0;n<16;n++){
set_segment(n);
delay(1000);
}
// put your main code here, to run repeatedly:
}