É possível usar apenas um capacitor para rebater um botão?


19

Fiquei me perguntando: por que você não pode simplesmente conectar um capacitor a um botão para rejeitá-lo? Eu tenho descoberto como reduzir o trabalho que meu microprocessador tem que fazer, mas tenho um espaço muito limitado em uma PCB que estou projetando, por isso não quero fazer um circuito de devolução completo que complicaria o design.


esquemático

simular este circuito - esquemático criado usando o CircuitLab


Esse é um exemplo de circuito; desculpe-me por qualquer erro (não sou bom em projetar circuitos com capacitores). Isso funcionaria mesmo? Para a troca de tachinhas, não consegui encontrar uma que corresponda ao que é na vida real, mas funciona para essa situação. O botão é como o encontrado aqui . D10significa Digital Pin 10, mas não importa; significa apenas a entrada do Arduino. Também não sei qual o tamanho do capacitor que eu precisaria; portanto, se esse circuito funcionar, de que tamanho eu preciso?


Mais uma vez, estou apenas tentando simplificar isso para facilitar a compilação sem precisar fazer a devolução de software. Observando como os capacitores funcionam, parece que funcionaria, mas também pode fazer com que o botão seja pressionado por mais tempo / atrasá-lo se a capacitância for muito grande. Eles são comumente usados ​​para "suavizar" o ruído nas fontes de alimentação. Portanto, isso não é algo semelhante ao "suavizar" a rejeição? Qualquer modificação do circuito para fazê-lo funcionar (se necessário) também será apreciada.


1
Aqui é onde discutimos isso antes: electronics.stackexchange.com/questions/6884/…
Andy aka

5
Você percebe que pode renunciar a uma entrada simplesmente pesquisando-a com um intervalo de pelo menos 50 ms? Menos trabalho a fazer para o seu aduino :)
Wouter van Ooijen

1
50 mili de segundos fariam - bom ponto Mr O
Andy aka

1
Não, quero dizer pesquisa com um intervalo de pelo menos 50 ms e faça o que for necessário, de acordo com o nível que você detectar.
Wouter van Ooijen

1
@AnnonomusPerson - um delay () em um ambiente de thread único significa que nada mais pode acontecer. Embora essa seja uma opção, outra é fazer outro trabalho útil até a hora de verificar novamente.
Chris Stratton

Respostas:


12

Depende do estado padrão do comutador. Um capacitor só será carregado quando você fornecer uma voltagem positiva. Geralmente, em um ambiente incorporado, usamos um pull-up para dar ao pino um estado alto padrão e vinculamos o switch ao terra. A adição de um capacitor não ajudará aqui, porque não "armazenará" o estado fundamental.

No entanto, você também pode usar um menu suspenso. Isso significa que o pino está baixo por padrão. Torná-lo alto, pressionando o interruptor, carregará o capacitor. Após a liberação, o capacitor manterá o pino alto por um tempo, portanto, sim, isso funcionaria. Não tenho certeza se 1uF é suficiente, muito pouco ou muito, recomendo que você procure com um escopo e tente um pouco.


Então, se eu mudei o +e -ele iria trabalhar?
Anonymous Penguin

@AnnonomusPerson depende. Qual é o estado padrão do comutador?

Você quer dizer quando não é pressionado se ele conduz eletricidade? Se é isso que você quer dizer, eu posso fazê-lo de qualquer maneira, devido à natureza do comutador que estou usando. Olhando para o link na minha pergunta, quando não pressionado, o botão é conduzido a partir de top left to the bottom lefte the top right to the bottom right. Quando pressionado, ele conduz a partir de top left to the bottom righte top right to the bottom left.
Anonymous Penguin

OK. Isso significa que você, por padrão, deseja que o pino esteja baixo. A chave deve entrar em contato com +, para que o capacitor fique com alguma carga antes de soltar o botão.

3
@AnnonomusPerson Não, o interruptor deve fazer contato para +. É meio jargão para o que o switch se conectará quando pressionado . O capacitor está no lugar certo. O resistor seria melhor conectado diretamente do terra ao pino de IO.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.