Olá, preciso enviar bytes via porta serial para um painel de led para exibir números, porém estou apanhando um pouco pra saber o que eu preciso enviar exatamente, alguém pode dar uma ajuda?!
segue abaixo o protocolo de comunicação
Você sabe que 1 byte são 8 bits, certo?
No desenho você já tem um mapa dizendo qual é o bit que acende cada segmento.
Então você tem que fazer um mapa pra saber quais segmentos devem ser acesos pra representar cada dígito de 0 à 9.
Feito isso, é só identificar os bits de cada segmento à ser aceso.
Tendo os bits, é só converter de binário pra decimal pra saber o valor do byte correspondente que você precisa enviar.
Por exemplo, para visualizar o dígito 7, você precisa acender os segmentos A, B e C.
Pela sua tabela podemos mapear os bits da seguinte forma:
BIT: 7 6 5 4 3 2 1 0
SEGMENTO: - E G F A B C D
DÍGITO 7: 0 0 0 0 1 1 1 0 [1 para aceso e 0 para apagado]
Os bits para acender o dígito 7 são 1110, que em decimal equivale à 14, logo, você precisa enviar um byte de valor 14.
Seguindo essa lógica, você chega na tabelinha abaixo:
+--------+----------------+-----------+-------+
| DÍGITO | SEGMENTOS | BITS | BYTE |
| | | -EGFABCD | |
| 0 | a,b,c,d,e,f | 01011111 | 95 |
| 1 | b,c | 00000110 | 6 |
| 2 | a,b,d,e,g | 01101101 | 109 |
| 3 | a,b,c,d,g | 00101111 | 47 |
| 4 | b,c,d,f,g | 00110111 | 55 |
| 5 | a,c,d,f,g | 00111011 | 59 |
| 6 | a,c,d,e,f,g | 01111011 | 27 |
| 7 | a,b,c | 00001110 | 14 |
| 8 | a,b,c,d,e,f,g | 01111111 | 127 |
| 9 | a,b,c,d,f,g | 00111111 | 63 |
+--------+----------------+-----------+-------+
olá, obrigado pela resposta! consegui entender essa parte.
acha que consegue me dar uma ajuda a entender essa aqui? acredito que apenas enviando o byte do digito ele ainda não apareça no painel, acha que preciso de alguma forma definir a posição que eu quero que o digito apareça?
Pelo enunciado que você postou, você sempre precisa enviar um pacote de 10 bytes para acionar os seus displays.

