Eu tenho o botão da campainha da minha casa conectado a uma placa de desenvolvimento GHI EMX . O software avalia a hora do dia e determina se a campainha deve tocar ou não.
Nota lateral: Isso foi implementado como uma maneira de lidar com brincadeiras de ding-dong-ditch que eu estava recebendo.
Isso tudo funciona muito bem, exceto por um problema, o fio conectado à placa EMX tem cerca de 15 metros de comprimento e gera interferência suficiente para a placa pensar que alguém apertou o botão e, portanto, minha campainha toca em intervalos aleatórios o dia. Tanto minha esposa quanto meu cachorro não apreciam isso (mas as crianças acham muito divertido).
Tentei corrigir o problema seguindo os conselhos encontrados neste artigo e implementando o seguinte circuito:
Isso não resolveu o problema, mas achei que colocar um resistor de 3k no resistor de 1k e substituir o capacitor .01uF por um 40uF funcionou um pouco melhor, mas qualquer coisa além de 3k causa um atraso notável ao pressionar o botão antes da campainha toca. A diferença para o meu circuito é que a placa funciona em 3,3V em vez de 5V (o que eu suponho que piora o problema) e, em vez de conectar ao terra, o comutador completa o circuito (ou seja, dois fios vão entre o microcontrolador e o comutador).
O fio que passa entre o comutador e o microcontrolador é um fio de campainha padrão que não é blindado ou torcido. Substituir o fio da campainha por um fio blindado não é, infelizmente, uma opção, pois isso exigiria que eu rasgasse o drywall.
Analisei a seguinte pergunta aqui , mas isso parece estar lidando com um ADC que pode ser um pouco diferente do meu problema. Qualquer ajuda seria muito apreciada.
Atualização
Depois de ler mais da documentação , parece que, embora o microcontrolador seja alimentado por 3,3V, é tolerante a 5V nos pinos de E / S. Posso ajustar para um valor mais alto do resistor se eu usar 5V, mas isso ajudará alguma coisa?