Microcontrolador com fio longo para entrada digital

16

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:

Proteção de filtro passa-baixo para uma entrada

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?

Matt Ruwe
fonte
11
Adicione um teclado de segurança à campainha. Somente quem digita o código correto de quatro dígitos pode tocar a qualquer hora do dia.
Kaz

Respostas:

15

O que o esquema não mostra é o enorme zumbido de 60Hz no modo comum e como os motivos são interconectados com a proximidade de linhas CA e transientes da linha de energia.

Seu exemplo é um bom exemplo de como não fazer interface com cabos longos.

Posso sugerir no futuro;

  1. prefere par trançado
  2. prefira linhas balanceadas
  3. evitar entradas de alta impedância
  4. prefira impedâncias correspondentes
  5. evitar LPF excessivo (constantes de longo tempo)
  6. inclua tampa de RF para suprimir transientes.
  7. use contas de ferrite (bloqueador de CM)
  8. Evite loop de aterramento (ou seja, conexão direta inexplorada ao circuito)
  9. use um circuito de contato com umedecimento (tampa de 10uF de polaridade correta entre os contatos que não são dourados)
  10. prefira o cabo coaxial para ambientes EMI muito severos.

Uma vez que muitas opções não estão disponíveis. Faz estes;

  • remova a tampa grande a bordo e passe para os contatos do comutador remoto. (devo)
  • remova o resistor da série 3K (1k) e adicione a luva CM de ferrite ou similar
  • adicione uma pequena tampa de RF a bordo nas entradas. por exemplo, 0,001 ~ 0,01uF ou qualquer tipo de baixa indutância.
  • Substitua 100K por 1k ~ 10K.
  • adicione grandes esferas de ferrite com várias voltas nos dois fios. (Filtro CM)

Com esta solução, a impedância do circuito da chave baixa impedância no fechamento e baixa impedância com a tampa de seleção através da chave quando aberta. O zumbido CM será absorvido e o ruído diferencial de RF será suprimido. insira a descrição da imagem aqui

-alimentação com a mesma tensão de alimentação que o uC, com boa tampa de RF no chip.

Tony Stewart Sunnyskyguy EE75
fonte
Vou ter que encontrar uma luva de ferrit CM, mas, caso contrário, isso parece muito viável. Você acha que isso funcionará: digikey.com/product-detail/en/KR50TA251512B1/P11400-ND/409505 . Obrigado!
Matt Ruwe
funcionará sem, mas adicionou um seguro para rajadas de RF perdidas. Estes são melhores .. digikey.com/product-detail/en/FB73-287-RC/M8708-ND/775247 obtenha uma dúzia ou mais para uso futuro.
Tony Stewart Sunnyskyguy EE75
leia o ID errado digikey.com/product-detail/en/35T0231-30P/240-2586-ND/1587459 acima são muito pequenos. O seu também ficará bem, mas ficará obsoleto.
Tony Stewart Sunnyskyguy EE75
Obrigado. Algumas outras perguntas. Em um ambiente residencial como o meu, com o que devo vincular o terreno comum? Um aterramento ou encanamento elétrico nas proximidades?
Matt Ruwe
tomada elétrica próxima ou aterramento da caixa do computador conectado à tomada está correto. Os fios longos adicionam muita indutância> 1m.
Tony Stewart Sunnyskyguy EE75 /
8

Uma solução simples pode ser deixar o sistema da campainha como estava antes de iniciar este projeto e usar o microcontrolador para desligar a alimentação do alto-falante da campainha da porta com um relé quando você não quiser ouvir a campainha.

Atualizar

Eu não estou muito familiarizado com os sistemas de campainha (que não seja um google rápido), portanto, o seguinte pressupõe que você tenha pelo menos dois condutores que vão do seu MCU ao comutador.

A placa GHI EMX que você possui possui um ADC de 10 bits para que você possa enviar 12vDc (ou mais) para a campainha e usar um divisor de tensão simples para que a tensão no MCU não ultrapasse 5 volts no máximo. Então, no lado do software, tudo o que você faria é ler o ADC e, se o valor for> 1000 (talvez seja necessário brincar com esse número, e 1023 é o máximo em um ADC de 10 bits), a campainha foi pressionada.

Seria algo assim (tente não ficar impressionado com minhas incríveis habilidades de edição gráfica):

insira a descrição da imagem aqui

Outra opção semelhante é usar um gatilho schmitt com uma tensão de entrada mais alta. Mas isso exigiria peças extras e é mais esforço do que a opção ADC.

Editar

A resposta de Chris Stratton fez uma boa observação sobre o fluxo atual. Se você alterar o resistor de 100k, puxe-o para ~ 220ohm, o que pode ajudar.

Garrett Fogerlie
fonte
11
Não é uma má idéia, mas tira um pouco da diversão do conceito. Eu ainda gostaria de saber quando o interruptor é pressionado depois de horas para que eu possa acender as luzes da frente da casa e dar aos brincalhões um pouco do seu próprio remédio.
Matt Ruwe
talvez o som de uma sirene de polícia distante se aproximando com um taser no interruptor.
Tony Stewart Sunnyskyguy EE75
11
Minha sugestão favorita foi de um amigo que teve a ideia de usar uma partida elétrica conectada a alguns fogos de artifício que seriam acionados quando o botão fosse pressionado. =) No final, a ideia era perigosa demais.
Matt Ruwe # 2:
@ Matt veja minha atualização para outra solução. Em vez de fogos de artifício, uma vez eu usei uma sirene e uma luz estroboscópica porque as crianças estavam fumando ao lado da minha casa. Eu também peguei no vídeo, o que o tornou muito melhor!
Garrett Fogerlie
6

Na verdade, existe uma solução muito simples para esse problema.

A chave para entender esta solução é pensar por que uma campainha eletromecânica simples não toca devido a interferência semelhante. A resposta, é claro, é que ela requer que a potência real do anel flua através do circuito fechado - a interferência não acoplará energia suficiente no circuito aberto para tocar falsamente.

Você pode criar uma situação semelhante usando um resistor pullup de baixo valor, com o botão da campainha conectado ao terra. Cem ohms de resistência significariam que cerca de 25 miliamperes de corrente teriam que fluir antes que a entrada do microcontrolador fosse puxada para baixo o suficiente para ler como "0". A comunicação serial de longo curso geralmente é feita com uma corrente de 20 mA; portanto, 25 mA devem ser suficientes, mas você pode facilmente ajustar para cima ou para baixo.

Você pode rejeitar ainda mais a interferência com o software no microcontrolador, que exige que o botão seja mantido fechado - sem folgas - por aproximadamente 100 mS antes de ser reconhecido como um anel válido.

Pode-se argumentar que esse método está desperdiçando energia, no entanto, a energia é consumida apenas durante o tempo em que a campainha é pressionada. O resistor precisa ter a capacidade de manuseio de energia (térmica) para a possibilidade de o botão travar permanentemente fechado, mas esse não seria o caso comum para calcular o consumo de energia.

Chris Stratton
fonte
a menos que você use 10% ou corrente nominal em interruptores metálicos sem contato Au, acabará falhando ao iniciar intermitentemente com correntes de nível lógico. É por isso que a baixa tampa ESR do outro lado (tampa do filme pré) é essencial para reduzir a oxidação com baixa descarga ESR de alta corrente nos contatos.
Tony Stewart Sunnyskyguy EE75
@ Richman - eventual falha é possível, sim - é também quando se usa uma campainha eletromecânica. Pode-se aumentar a corrente na teoria que pode ajudar ou tentar a sua ideia de capacitor de pulso. Alguns designs de botões da campainha podem implicitamente ter algum contato deslizante à medida que as folhas são pressionadas, o que ajudaria muito. Suspeito que uma falha facilmente corrigida após vários anos não seria um empecilho para um dispositivo de conveniência que alguém constrói para sua própria casa. Em um nível prático, é útil se a pessoa na porta puder pelo menos fracamente ouvir a campainha.
Chris Stratton
0

O cabo de 15 metros está agindo como uma antena. Você precisa usar um capacitor de alimentação direta (por exemplo, W2F11A4708AT1F ) para filtrar a interferência de RF.

Aldanajaramillo
fonte