Pular para o conteúdo

Jefferson Wilhelm Meyer Soares

ATV 10 — Da UART para a rede CAN

Seções A leitura do DHT11 dentro do quadro
  1. 1A leitura por UART
  2. 2Do fio ao barramento CAN
  3. 3O quadro CAN
  4. 4A leitura do DHT11 dentro do quadro
  5. 5A mensagem de falha e o filtro
  6. 6Erros no barramento
Anexos (1)

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.

Questão 10 de 20 Complete as lacunas

Resolvemos juntos. Com a temperatura no byte 0 e a umidade no byte 1, um receptor mostrou id=0x100 dlc=2 dados=17 41.

  • Temperatura (°C):
  • Umidade (%):
  1. 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.
Questão 11 de 20 Preencha a tabela

Três quadros recebidos.

Dados (hex)Temperatura (°C)Umidade (%)
Quadro 1
Quadro 2
Quadro 3
Questão 12 de 20 Preencha a tabela

Bytes que uma leitura de temperatura e umidade ocupa.

Bytes por leitura
Na UART, com a quebra de linha
No CAN, só os dados
  1. No protocolo.h, ponha a umidade no byte 0 e a temperatura no byte 3: BYTE_UMIDADE = 0 e BYTE_TEMPERATURA = 3. Grave o transmissor-can e anote um quadro no receptor.
Questão 13 de 20 Preencha a tabela

Um quadro com a umidade no byte 0 e a temperatura no byte 3.

DLCByte 0Byte 1Byte 2Byte 3
  1. Volte a configuração para BYTE_TEMPERATURA = 0 e BYTE_UMIDADE = 1 e grave o transmissor-can.
Questão 14 de 20 Complete as lacunas

Agora é com você. Com a temperatura no byte 0 e a umidade no byte 1, um receptor mostrou dados=FB 5A.

  • Temperatura (°C):
  • Umidade (%):

Outra rede usa a temperatura no byte 0 e a umidade no byte 2. Uma leitura de 21 °C e 60 % sai nela com:

  • DLC:
  • Dados, em hexadecimal, separados por espaço: