ATV 10 — Da UART para a rede CAN
Seções A leitura do DHT11 dentro do quadro
- 1A leitura por UART
- 2Do fio ao barramento CAN
- 3O quadro CAN
- 4A leitura do DHT11 dentro do quadro
- 5A mensagem de falha e o filtro
- 6Erros no barramento
A leitura do DHT11 dentro do quadro
Na UART, a leitura ia como texto, um caractere por byte. No CAN, cada byte de dados é um número de 0 a 255, e a temperatura e a umidade vão como números, cada uma num byte. Quem define em que byte vai cada informação é a configuração: BYTE_TEMPERATURA e BYTE_UMIDADE. Transmissor e receptor precisam usar a mesma definição, senão o receptor lê a umidade no lugar da temperatura.
O DLC é o número de bytes até a última posição usada: com a temperatura no byte 0 e a umidade no byte 1, o quadro leva 2 bytes. Uma posição que fica no meio sem uso viaja mesmo assim, com o valor 00.
A temperatura pode ser negativa, e por isso vai num byte com sinal: de 00 a 7F são os números de 0 a 127, e de 80 a FF são os negativos, contados a partir de 256. O byte FF é −1, o FE é −2, e assim por diante. A umidade vai de 0 a 100 e não precisa de sinal.
- Com a configuração que vem no arquivo, temperatura no byte 0 e umidade no byte 1, anote três quadros recebidos e converta os dados de hexadecimal para decimal.
- No
protocolo.h, ponha a umidade no byte 0 e a temperatura no byte 3:BYTE_UMIDADE = 0eBYTE_TEMPERATURA = 3. Grave otransmissor-cane anote um quadro no receptor.
- Volte a configuração para
BYTE_TEMPERATURA = 0eBYTE_UMIDADE = 1e grave otransmissor-can.