Você já teve aquele problema desesperador:
- “Meu sensor RS485 está lendo 0 aleatoriamente”
- “Conversor USB RS485 Modbus RTU dá leitura 0 do nada”
- “Leitura instável no Modbus RTU, fica zerando”
- “Dados vazios no registrador Modbus”
- “Sensor de temperatura/pressão/nível RS485 mostra 0 de vez em quando”
Se você está lendo este artigo, provavelmente já testou cabo, já trocou o conversor, já verificou a alimentação, já checou o endereço Modbus… e mesmo assim os valores caem para zero repentinamente, voltam ao normal e zeram de novo.
A boa notícia: na enorme maioria dos casos, o culpado é um só:
Falta do resistor de terminação de 120 ohms no final da linha RS485.
E o mais impressionante: isso acontece até em instalações muito curtas, em pequenos testes!
Como identificar o problema de reflexão no RS485 (a famosa “leitura 0”)
Quando não há resistor de terminação, o sinal RS485 sofre reflexão nas extremidades do cabo. Essa reflexão gera ruído que, em determinados momentos, faz o receptor interpretar bytes errados — e o resultado mais comum no Modbus RTU é exatamente o valor 0 nos registradores.
Veja um exemplo real na leitura de um sensor:
Por que isso acontece mesmo com cabo curto?
Muita gente acha que “só precisa de resistor se o cabo tiver mais de 10 metros”. Isso é um mito perigoso.
Em velocidades típicas do Modbus (9600 ou 19200 baud), o problema de reflexão pode aparecer mesmo com cabos bastante curtos, principalmente se o cabo não for blindado, lembrando que depende do seu conversor também.
Para referência, realizamos o teste com 2 conversores populares, sendo eles:
- Conversor Preto e Verde : Esse apresenta bastante falhas da leitura, sendo ideal sempre utilizar o resistor de terminação.
- Conversor Azul ZK-U485: Esse outro modelo em nossos testes não foi necessário, porém reforçamos que é ideal em todas as aplicações para garantir sua leitura estável.
A solução definitiva (e barata!)
Basta colocar um resistor de 120 ohms ±1% 1/4W entre os terminais A e B:
- No último dispositivo da rede (sensor mais distante ou último conversor)
- Ou, se for ponto a ponto (apenas mestre + um escravo), coloque no escravo
Alguns conversores já possuem internamente, além de alguns contarem com um jumper para habilitar e desabilitar.
Apesar do resistor 1/4W ser bastante flexível, pode ser que ele não atenda toda a sua rede, muitos conversores vem de fábrica com resistores de 1/2W (0,5W) para atender a todos os dispositivos e uma distância maior.
Passo a passo para resolver agora:
- Identifique o último dispositivo da sua rede RS485.
- Coloque um resistor de 120 ohms entre A (+) e B (-).
- Reinicie a comunicação.
- Pronto! Agora você deve ter uma leitura estável (caso piore pode ser que já exista o resistor em seu sensor/conversor).
Conclusão
Nunca mais perca horas procurando defeito no sensor, no cabo ou no software. Na quase totalidade dos casos de “leitura 0 repentina no Modbus RTU RS485”, a solução é simples e custa menos de R$ 2,00: o resistor de terminação de 120 ohms.
Se depois de colocar o resistor o problema continuar, aí sim podemos investigar outros pontos (ground loop, polaridade invertida, baudrate errado, etc.), mas isso é menos de 5% dos casos.
Deixe seu comentário abaixo: qual foi a distância do seu cabo quando aconteceu isso? Já resolveu com o resistor? Vamos ajudar a comunidade!

