Boa tarde caros,

Estou com um problema intrigante e não sei mais o que pensar para resolver, estou comunicando normalmente o Arduino no Elipse Scada, lá eu consigo ler e escrever nas variáveis de memórias. Porém, na entrada A0, coloquei um LDR, e no programa fiz uma lógica mais ou menos assim:

{
if (analogRead (A0) <= 200); // NOITE :: 200 = valor de resistencia que o Arduino entende, ele faz a leitura da entrada A0 analógica
digitalWrite(11, HIGH); // coloca em ALTO a saida 11
if (analogRead (A0) > 150) // DIA :: 150 = valor de resistencia que o Arduino entende, ele faz a leitura da entrada A3 analógica
digitalWrite(11, LOW); // coloca em BAIXA a saida 11

Quando o valor do LDR for x, ele coloca a saida 11 em Alto

Quando o valor do LDR for y, ele coloca a saida 11 em Baixo

Até aí, tudo tranquilo sem maiores problemas. O problema ocorre quando a comunicação em Modbus inicia. A saída 11 está ligada na base de um transistor BC548, e toda vez que o TX/RX pisca, o transistor satura. Quando paro a comunicação, funciona normalmente, saturando apenas de acordo com o programado.

Alguém já passou por isso? Detalhe, isso ocorre em qualquer porta do Arduino, sempre ocorre essa interferência.

Exibições: 281

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço