#define SEG_A 9
#define SEG_B 10
#define SEG_C 2
#define SEG_D 3
#define SEG_E 4
#define SEG_F 5
#define SEG_G 6
#define PD 7
char caractere = 0;
byte segmentos[16] = { 0b11000000,
0b11111001,
0b10100100,
0b10110000,
0b10011001,
0b10010010,
0b10000010,
0b11111000,
0b10000000,
0b10010000,
0b10001000,
0b10000011,
0b10100111,
0b10100001,
0b10000110,
0b10001110
};
void display_7seg( byte display_seg )
{
digitalWrite(SEG_A, bitRead(display_seg, 0));
digitalWrite(SEG_B, bitRead(display_seg, 1));
digitalWrite(SEG_C, bitRead(display_seg, 2));
digitalWrite(SEG_D, bitRead(display_seg, 3));
digitalWrite(SEG_E, bitRead(display_seg, 4));
digitalWrite(SEG_F, bitRead(display_seg, 5));
digitalWrite(SEG_G, bitRead(display_seg, 6));
digitalWrite(PD, bitRead(display_seg, 7));
}
void setup()
{
pinMode(SEG_A, OUTPUT);
pinMode(SEG_B, OUTPUT);
pinMode(SEG_C, OUTPUT);
pinMode(SEG_D, OUTPUT);
pinMode(SEG_E, OUTPUT);
pinMode(SEG_F, OUTPUT);
pinMode(SEG_G, OUTPUT);
pinMode(PD, OUTPUT);
Serial.begin(9600);
display_7seg( 0b11111111 ); }
void loop()
{
if(Serial.available() > 0)
{
caractere = Serial.read();
if( ( caractere >= '0' ) && ( caractere <= '9' ) )
{
display_7seg( segmentos[caractere - '0'] ); }
else if( ( caractere >= 'a' ) && ( caractere <= 'f' ) )
{
display_7seg( segmentos[caractere - 87] ); }
else if( ( caractere >= 'A' ) && ( caractere <= 'F' ) )
{
display_7seg( segmentos[caractere - 55] ); }
else
{
display_7seg( 0b11111111 );
}
Serial.println( caractere );
}
}