Estou usando o arduino para ler um fim de curso em chão de fábrica. Uso um código simples para button, com pequenas alterações para funcionar como anti-repique. O caso é que, quando instalo à vera, no fim de curso, com um cabo de uns 5 metros, quando o fim de curso é acionado funciona, mas após o desacionamento, o estado da porta continua com UP, ou Down, dependendo da configuração. E já usei as duas: pull up e pull down. Tenho certeza que o cabo está funcionando como antena e sofrendo interferência dos diversos motores do ambiente. Alguém já passou por isto? Obrigado.

Exibições: 1945

Responder esta

Respostas a este tópico

Use tensão industrial de campo, 24V, para ir até o fim de curso. Na entrada do Arduino use um fotoacoplador, use cabos blindados.

Não gostaria de ter de usar uma fonte extra nem circuitos extras, por enquanto. Quanto mais ativos no sistema, maior a possibilidade de pepinos futuros. Ainda mais em chão de fábrica, onde identificar e sanar rapidamente as panes é imprescindível.

Tive problema semelhante mesmo com fios curtos. Estou testando agora de uma forma diferente.

Ao invés de ler somente se o contato está aberto ou fechado, estou "lendo" uma tensão que foi colocada no cabo por um dos pinos PWM e medindo o retorno. Tentei apenas ver se o retorno era LOW ou HIGH mas também apresentou problema talvez por ruídos elétricos induzidos. Estou testando, com aparentes bons resultados até o momento, usar uma das portas analógicas para "ler" a tensão de retorno (que pode variar de 0 a 1023 ou 0/5V) e só considerando HIGH (contato fechado)quando o valor lido é constante por alguns milissegundos e ACIMA de 800, por exemplo. Não sou expert em arduino e espero ter sido claro o suficiente.

Parabéns, a solução é criativa, embora ainda possa apresentar falso positivo, com menor frequência, e este risco eu não posso, em hipótese alguma, correr. 

O grande problema destes ruídos é que a variação de intensidade e forma são enormes, dado ao grande número de fontes de ruídos, pelo menos no meu caso. São, no mínimo, 20 motores de porte, mais um monte de fins de curso centelhando ruído pra tudo que é lado. rsss

Por isso a tensão maior. Quanto maior a tensão de comando, menos suscetivel a ruidos ela fica.

Sem dúvida. Mas como disse, não pretendo utilizar nenhum ativo extra enquanto não eliminar as possibilidades de utilizar o conjunto mais simples: arduino/cabo/fim de curso.
Um teste que fiz e funcionou redondo foi usar o fim de curso para ligar/desligar uma  fonte 12 volts, que por sua vez energizava um relezinho 12v, destes de estabilizador ligado direto na porta do arduino. Ou seja, a interferência não era suficiente para acionar/desacionar o relê e como ele estava junto ao arduino eu tinha HIGH/LOW como se fosse um button direto na placa. Mas aí tinha mais estes dois componentes: relê e fonte. 

e você acha que isso, fonte+relé é menos ativos que o que eu falei?

Oi RI, bom dia.

Você já tentou fazer algo assim?

O diodo retifica a tensão e o capacitor eletrolito incumbe de filtra-la. e fornecer 5v para o pino

do arduino.

Ao fechar o switch, você tem 0V indo para o diodo, e o resistor de 10K serve para rapidamente

descarregar o capacitor, e ter 0V no pino do arduino.

Você pode variar este valores, princialmente o capacitor, para não dar um delay muito grande..

Eu os escolhi sem testar em uma montagem real.

Rui

Cara, tenta de usar um resistor de pull up ou down com resistência bem baixa, tipo uns 100R. Tambem implemente um bom algorítimo de debounce com uma alta taxa de amostragem, talvez funcione. Senão siga a dica do Jeferson Coli, pois alguém já passou por isso antes e chegou a conclusão que é melhor usar uma tensão mais alta e isolar o circuito. Boa sorte. 

Se vc colocar um resistor muito baixo a corrente irá aumentar, no seu exemplo só pelo fato de pressionar apenas UM botão, o circuito irá consumir 50mA (5V), logo o resistor deverá suportar uma potência de 0.25W no minimo.

Minha sugestão, utilizar uma chave, com dois contatos um NA e NF, ligue o terminal Comum ao arduino, use NA no 5V e NF no Ground, ou vice-versa, depende da sua logica. Talvez tenha que colocar um pequeno filtro RC no pino do MCU.

A intenção é essa mesmo, fazer que o acionamento exija uma potencia muito superior a que ruido do ambiente pode fornecer, assim melhorando a relação sinal ruido. 

Me parece também que a solução de utilizar tensões mais elevadas para medição seja, teóricamente pelo menos, a mais adequada, já que pelas informações do Rogério o ambiente é eletricamente muito ruidoso, e não é difícil induzir por motivos diversos pequenas tensões no circuito.

Aguardamos os resultados, já que é de interesse geral.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço