collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Melhor forma de um ligar botão de pressão com cabos muito longos  (Lida 5759 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline samc

  • Mini Robot
  • *
  • Mensagens: 442
Viva, pediram-me para fazer um pequeno projeto que envolve ligar vários botões de pressão a um Raspberry Pi. No entanto, será necessário ligar os botões com um cabo bastante longo (pode bem ultrapassar os 10 m). A minha dúvida prende-se com respeito à estabilidade do circuito de forma a não haver falsos triggers (o circuito pode estar sujeito a algum ruído elétrico).
Após pesquisar a solução que pareceu ser melhor, foi a de utilizar uma resistência de pull-up e um pequeno condensador para filtrar/debounce do circuito. Deixo aqui o esquema com algumas anotações para poderem dar as vossas opiniões.
Não queria estar a adicionar mais componentes passivos ao circuito caso não houvesse uma grande justificativa para tal (exemplo: optocoupler, indutor, etc.), mas estou aberto a todas as sugestões.

Obrigado desde já pelas respostas  ;)
« Última modificação: 05 de Novembro de 2016, 18:07 por samc »

Online jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.947
  • NERD!
Re: Melhor forma de um ligar botão de pressão com cabos muito longos
« Responder #1 em: 05 de Novembro de 2016, 20:21 »
Devias também meter uma resistência em série com o fio junto ao condensador, para fazer um passa baixo e evitar que picos que venham no fio sejam acoplados diretamente ao micro.

Algo deste género:
« Última modificação: 05 de Novembro de 2016, 20:24 por jm_araujo »

Offline samc

  • Mini Robot
  • *
  • Mensagens: 442
Re: Melhor forma de um ligar botão de pressão com cabos muito longos
« Responder #2 em: 05 de Novembro de 2016, 23:07 »
Muito Obrigado jm_araujo, o esquema é muito útil  ;)
A resistência interna do MCU não substituirá essa resistência em série?

Li algures que obtiveram melhores resultados quando trocaram a resistência de pull-up de 10k para 2k2. Não sei se só quando testar em condições reais é que poderei comprovar isso.

Online jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.947
  • NERD!
Re: Melhor forma de um ligar botão de pressão com cabos muito longos
« Responder #3 em: 05 de Novembro de 2016, 23:41 »
Não, a ideia é a resistência junto com o condensador "limpar" os sinais/ruido que o cabo possa apanhar. A resistência interna do MCU não é uma resistência, já estás no silício, e se apanhares com um pico de tensão elevada pode correr mal.

Baixar a resistência de pull-up é bom para a imunidade ao ruído, mas tens de te certificar que a resistência do cabo e do interruptor não é tal que deixe de conseguir puxar o sinal à massa, e se forem para estar ligados uns tempos que não tens problemas com o consumo feito pela resistência de pull-up (caso seja um circuito alimentado a pilhas).


Offline brunus

  • Mini Robot
  • *
  • Mensagens: 332
Re: Melhor forma de um ligar botão de pressão com cabos muito longos
« Responder #4 em: 06 de Novembro de 2016, 02:21 »
Como se calculam as resistências pull-up?

Offline samc

  • Mini Robot
  • *
  • Mensagens: 442
Re: Melhor forma de um ligar botão de pressão com cabos muito longos
« Responder #5 em: 06 de Novembro de 2016, 04:28 »
Obrigado novamente pela resposta. O consumo não vai ser um problema já que é algo alimentado por um transformador. quanto à resistência dos cabos, em condições ideias eles vão ter uma resistência de 2R por cada 10 m, mas para despistar os problemas vou usar um trimmer nos meus testes iniciais para comparar os diversos resultados e depois para a semana posto aqui os resultados.

Quanto à pergunta aqui feita, não sei se este link serve de ajuda:
https://learn.sparkfun.com/tutorials/pull-up-resistors

Aprendi lá agora algumas coisas e pareceu-me estar um bom artigo.

Offline samc

  • Mini Robot
  • *
  • Mensagens: 442
Re: Melhor forma de um ligar botão de pressão com cabos muito longos
« Responder #6 em: 09 de Novembro de 2016, 02:46 »
Hoje estive a fazer os testes reais do sistema. O comprimento do fio não foi um problema, não tenho muitos fios compridos em casa, então utilizei uma bobina de uns 25 m (fio de 1.5 de secção) ligado a 8 m de fio para instalações telefónicas (unifilar de 4 condutores).

O problema aconteceu quando afastei o interruptor para a cozinha onde queria experimentar as interferências dos diversos electrodomésticos (micro-ondas, etc.) e reparei que quando ligava uma luz (fita de leds alimentado por uma fonte comutada do género: http://www.kicklighting.com/images/KPS100-300x300.jpg ) havia uma interferência que causava a ativação do sinal.
O curioso é que tinha dois interruptores ligados ao raspberry pi: um na breadboard junto ao mesmo e o outro ligado com a tal extensão de fios (encostada à fonte de alimentação), e o interruptor que assinalava o falso trigger era o que estava na breadboard!!

Ainda foi difícil reproduzir as interferências (fartei-me de ligar e desligar a luz  :P ) e após vários testes (resistência de 10k, 4k7, etc.) obtive melhores resultados com uma resistência de 2k2. Presumo que quando passar do protótipo para a versão final que os resultados sejam ainda melhores (fios trançados e PCB).

Deixo abaixo o esquema para servir de ajuda a alguém no futuro, ou para corrigirem-me caso encontrem algum erro ou tenham alguma sugestão  :)

Online jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.947
  • NERD!
Re: Melhor forma de um ligar botão de pressão com cabos muito longos
« Responder #7 em: 09 de Novembro de 2016, 08:50 »
Experimentaste aumentar as resistências de 1k no esquema para um valor superior (10k/100k)?

Offline KammutierSpule

  • Mini Robot
  • *
  • Mensagens: 1.481
Re: Melhor forma de um ligar botão de pressão com cabos muito longos
« Responder #8 em: 09 de Novembro de 2016, 09:59 »
Oscilloscope traces? .. pode ajudar a visualizar.

Offline samc

  • Mini Robot
  • *
  • Mensagens: 442
Re: Melhor forma de um ligar botão de pressão com cabos muito longos
« Responder #9 em: 09 de Novembro de 2016, 11:05 »
Experimentaste aumentar as resistências de 1k no esquema para um valor superior (10k/100k)?
Sim, com a combinação de resistências de 10k e 100k como no outro esquema que tinhas partilhado, o botão simplesmente não funcionava, por isso comecei a descer para os valores que indiquei  ;)
No entanto, posso ainda fazer mais uns testes que ainda tenho os sistema montado na breadboard!

Exato um osciloscópio daria muito jeito neste caso, até para ver o comportamento do condensador... mas sabemos que é uma ferramenta que está ao alcance de poucos.
« Última modificação: 09 de Novembro de 2016, 11:14 por samc »

Online jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.947
  • NERD!
Re: Melhor forma de um ligar botão de pressão com cabos muito longos
« Responder #10 em: 09 de Novembro de 2016, 11:18 »
Sim, com a combinação de resistências de 10k e 100k como no outro esquema que tinhas partilhado, o botão simplesmente não funcionava, por isso comecei a descer para os valores que indiquei  ;)

Isso não devia acontecer. Ou meteste o teu pull-up do lado do condensador em vez do lado do fio, ou deixaste o pull-up interno do micro ativo (deves desligar o mesmo neste circuito).

Offline samc

  • Mini Robot
  • *
  • Mensagens: 442
Re: Melhor forma de um ligar botão de pressão com cabos muito longos
« Responder #11 em: 09 de Novembro de 2016, 14:31 »
Deve ser porque as resistências internas do raspberry pi estão ativas por omissão
Pagina 102 da datasheet http://www.farnell.com/datasheets/1521578.pdf