Isso pode funcionar como uma configuração de entrada ADC e é comum?

8

Isso funcionaria? Tenho certeza de que, em teoria, deveria, mas não o vejo com frequência ou de forma alguma. Em teoria, o divisor de tensão de 2: 1 a 1: 2 deve fornecer 3,3v em uma extremidade e 1,6v na outra extremidade do pote, fornecendo ao ADC uma ampla gama para trabalhar. E se o botão for pressionado, o R1 + RV funcionará como uma tração máxima de 20k, portanto a linha seria reduzida a 0v, que o ADC pode ser codificado para reconhecer como um evento único, permitindo que um botão e um pote existam no mesmo pino de entrada, permitindo que o ADC atenda a ambos os propósitos.

Um pino de entrada é salvo, sem nenhuma alteração significativa no código, pois o adc já está sendo pesquisado para o pote.

esquemático

simular este circuito - esquemático criado usando o CircuitLab

Isso funcionaria e, se sim, como curiosidade, por que isso não é mais popular?

Transeunte
fonte
3
Funcionaria bem. Talvez adicione um pequeno capacitor no comutador, para contornar picos de varredura do pote e fornecer algumas respostas ao usar o comutador.
Anindo Ghosh #
Não é exatamente o mesmo, mas olhar para este diagrama de circuito e tentar encontrar algo que parece familiar: sainsmart.com/zen/documents/20-011-901/schematic.pdf
jippie
@jippie não, eu sei sobre escadas resistivas como vários botões, isso é bastante comum (controles de rádio no volante do carro, controles em linha para ipod / iphone). É especificamente o uso de um pote e botões no mesmo anúncio que eu estava perguntando, nunca vi.
transeunte
2
Você sacrifica alguma resolução na leitura da posição do pote dessa maneira. Isso pode ser perfeitamente aceitável, dependendo do seu aplicativo e da natureza do controle que o usuário pensa que está mudando.
RBerteig
1
Você pode identificar um segundo comutador que puxa a entrada para o VCC, desde que não haja chance de que ambos sejam pressionados simultaneamente. Portanto, decodificar um ajuste analógico e dois fechamentos de switches mutuamente exclusivos com uma única entrada ADC não é ruim e pode ser um truque útil em um micro com baixa contagem de pinos. Pense na sensação de posição com interruptores de limite rígidos em cada extremidade. Então eles são mecanicamente exclusivos e até se encaixam no sinal analógico.
RBerteig

Respostas:

6

Sim, deve funcionar, embora haja alguns problemas a serem observados.

A questão complicada é que você deve ter cuidado para detectar e ignorar as transições entre o nível do comutador 0 V e o nível do pote. Alguns deles terão níveis válidos de potenciômetro, então você deve levar em consideração várias amostras para decidir se o que parece ser um nível de potenciômetro é real ou apenas uma tensão intermediária enquanto gira entre o interruptor e o potenciômetro. Lembre-se de que interruptores reais saltam, então isso é mais complicado do que você provavelmente imagina. Uma coisa que você sabe sobre uma tensão de panela válida é que ela não pode mudar tão rápido. Isso deve ajudar a eliminar as leituras intermediárias.

Outra questão é que você não pode ler o pote quando o interruptor é pressionado. Não há nada que você possa fazer sobre isso com esta configuração. Se isso importa depende do sistema e qual o significado da posição do pote e de uma chave pressionada.

Não sei dizer se isso é feito "frequentemente" ou não. Os insumos de maconha são incomuns, mas é claro que existem. Para que esse esquema faça sentido, você precisa ter um sistema que precise de um botão e de uma configuração contínua do usuário, e onde você realmente não deseja gastar o pino extra. Se essa é a diferença entre encaixar em um micro de 28 pinos ou ter que usar um micro de 44 pinos, eu provavelmente o faria. Se eu tiver outros pinos sobrando, não faria isso porque é melhor manter a complexidade baixa. Pinos separados para o pote e o botão serão mais fáceis e, portanto, menos propensos a ter erros no firmware.

Olin Lathrop
fonte
2

Eu usei ADCs como entradas sem problemas, em uma topologia muito semelhante à sua.

Eu não tinha o pote, mas tinha um divisor de dois resistores para reduzir a tensão de entrada (era em um ATxmega, que tem uma entrada ADC máxima de 2/3 Vcc) e um interruptor para puxar a entrada para terra.

Eu acho que vai funcionar bem.

Uma coisa que você provavelmente deve ter em mente é que o botão pode não levá-lo totalmente ao chão. Dependendo da resistência do comutador, você ainda pode ter alguns milivolts na entrada; portanto, você não deve presumir que o botão pressionado resulta em um valor ADC de 0, mas em um valor ADC de <~ 10 contagens ou nos seguintes valores ( teste isso!).

Connor Wolf
fonte
Eu vi o ADC usado para interruptores de borracha condutivos, com a lógica de que o software poderia compensar o aumento da resistência devido ao envelhecimento.
starblue
2

Todas essas respostas e seus comentários são bons e acrescentam muitas informações. Estou tentando ver qual deles merece a recompensa, mas queria acrescentar isso também.

Encontrei uma nota detalhada sobre o aplicativo . Não apenas alterna, mas alterna mais um pote na mesma entrada adc. Versão PDF com gráficos

insira a descrição da imagem aqui

O artigo inclui fórmulas (e uma planilha do Excel 2007 para automatizar as coisas) sobre como selecionar os resistores de polarização e o pote, embora o código de exemplo para um microcontrolador não esteja mais disponível.

A limitação desta técnica é que você não pode pressionar mais de um botão a qualquer momento. Além disso, o microcontrolador pode ler a posição do potenciômetro apenas quando você não pressiona nenhum outro botão de pressão. Este exemplo mostra como usar dois botões, mas o número de botões pode variar. As faixas de entrada estão disponíveis para até 10 botões e um potenciômetro, todos com o mesmo pino de entrada (Figura 2). Embora os intervalos calculados não se sobreponham e sejam exclusivos, é duvidoso que o hardware do ADC possa distinguir essas faixas de maneira confiável em todas as circunstâncias. A escolha de valores menores de resistores mantém essas bandas mais afastadas, criando uma faixa de proteção maior.

O uso dessa técnica com quatro botões e um potenciômetro está dentro do razoável. Experimentar a planilha ajuda a determinar rapidamente os valores corretos de resistores em série para cada comutador e sua faixa de saída.

Hackaday Comment Thread nesta nota de aplicativo .

Mais de um botão no mesmo pino também é uma boa pergunta sobre recursos.

Transeunte
fonte
Um sistema incorporado que projetamos usa tensões codificadas para identificar a maioria de seus botões, seguindo um exemplo definido em um design de referência para o SOC em seu núcleo. Muitas chaves, um pino GPIO. Funciona muito bem, pois todos os botões estão fisicamente separados um do outro e não há motivo para um usuário tentar pressionar mais de um por vez.
RBerteig
1

Isso funcionará para detectar a posição de um pote que não está conectado ao terra ou com outras fontes analógicas que você sabe que não se aproximarão do solo, desde que você não se importe em perder alguma resolução ADC.

No caso mais geral, muitas entradas de sensores analógicos serão referenciadas ao terra e podem cair no solo sob algumas circunstâncias, portanto, este esquema não pode ser usado. Além disso, muitas fontes analógicas podem se opor ao aterramento - geralmente emitindo a fumaça mágica.

Este circuito pode ser usado se você estiver realmente desesperado por mais uma entrada digital e estiver ciente das limitações, mas eu não o recomendaria para uso geral.

Peter Bennett
fonte
1
E isso é provável que a razão não é que comum. Mas se você tiver um botão e um interruptor (clique no eixo para entrar?), Isso permitirá a leitura de ambos de um único pino.
precisa saber é o seguinte
@RBerteig Eu esqueci completamente esses tipos de potes / interruptores combinados ao perguntar isso. Essa é uma aplicação muito apropriada.
quer
@PeterBennett quando você diz que as entradas do sensor analógico podem ir para o terra ou fontes analógicas que objetam ser aterradas, você pode explicar / explicar isso? No meu caso específico, é uma entrada geral do MCU adc, que não deve ter nenhum problema em obter uma entrada referenciada direta ao VCC ou Gnd.
quer
@Passerby: Se a saída do sensor que está compartilhando a entrada ADC com o botão cair no chão (ou próximo a ele), seu programa não poderá distinguir entre uma leitura baixa do sensor e pressionar um botão, e não detectar um pressionamento de botão quando a saída do sensor analógico estiver baixa. Se o sensor analógico tiver uma saída de "totem pole" ou outro estágio de saída de baixa impedância, ele poderá liberar a mágica quando o botão empurrar a linha para baixo.
Peter Bennett
@ PeterBennett, então isso é apenas uma preocupação se eu estiver compartilhando a entrada ADC entre o botão / botão e outro sensor? Se eu estiver apenas executando a combinação de porta / botão acima, não deve ser um problema, certo?
quer
1

Isso deve funcionar. Mas você poderia melhorar, e é por isso que duvido que seja comum.

  1. Supondo que você tenha um ADC de faixa completa (0 a 5V), a redução de R1 e R2 aumentará sua faixa dinâmica e, portanto, a resolução da posição do potenciômetro. Obviamente, você não pode reduzir R2 a zero ou perde a distinção de uma ativação do comutador.

  2. Não é tão baixo consumo de energia quanto poderia ser. Se você puder comprar um capacitor de cerâmica, digamos 10nF, para conectar-se através do comutador, poderá aumentar facilmente seus resistores por um fator de 10 ou até 100, reduzindo o consumo de energia de acordo. O capacitor também ajudará a precisão e repetibilidade, filtrando passa-baixa a voltagem vista pelo ADC e fornecendo uma fonte de voltagem de baixa impedância. E, finalmente, desabilitará o comutador (você provavelmente sabe que quase todos os comutadores mecânicos exibem rejeição por contato, fazendo e interrompendo rapidamente o contato várias vezes quando operado uma vez, exigindo a desativação em software ou hardware). Como apontado anteriormente, esse capacitor também é importante para obter um comportamento bem definido à medida que o potenciômetro é girado, pois isso pode produzir transientes, pelo menos na forma de alta impedância intermitente.

    Obviamente, com esse capacitor, C * R será o seu tempo constante (portanto, quando desejar (1-e) ^ 3 de precisão dentro de 0,1 s de um interruptor, é melhor ficar abaixo da combinação de 10 nF e 3 Mega- ohm...)

  3. Seu software requer algum cuidado. Você verá transientes, tanto do interruptor quanto do movimento mecânico dentro do potenciômetro. Não é difícil codificar, mas mais envolvido do que simplesmente consultar um único resultado de conversão ADC. Você precisará pelo menos verificar se o valor lido é suficientemente estável em várias conversões para presumir que você não está em um estado transitório.

  4. Você pode incluir componentes desnecessários: Para que serve o R1 (supondo que sua faixa de entrada ADC vá até o trilho positivo)? Se R1 deve limitar a tensão máxima de saída para caber na sua faixa ADC, por que o potenciômetro não é alimentado por uma tensão de referência no ou próximo ao trilho ADC positivo? Isso exigiria um resistor limitador de corrente na saída do potenciômetro, mas seria melhor. Como uma tensão de alimentação analógica pode facilmente ser muito mais estável do que a tensão de alimentação do IC (que eu presumo que sua bateria de 5V simbolize), você poderá obter menos ruído técnico nas conversões ADC.

    E, finalmente, mesmo que R1 não seja necessário para reduzir a tensão máxima de saída, a mesma alteração no circuito, se combinada com uma mudança para uma fonte analógica que pode ser tão simples quanto conectar a + 5V em outro lugar, traz o benefício combinado do acima e de melhor utilização da faixa de entrada do ADC sem nenhum componente adicional.

pirâmides
fonte
1
O ponto 4 está errado. R1 serve a uma finalidade necessária, que é limitar a corrente da fonte de alimentação quando o interruptor é pressionado e o pote está em sua configuração superior. Sem R1, o comutador reduziria a fonte de alimentação quando a panela estivesse no topo.
amigos estão dizendo
Você está certo! Eu estou corrigido. Ainda não tenho certeza de como recuperar o restante do ponto 4, mas sim, nem tudo está correto como está agora.
Pyramids
Acho que consegui corrigir o erro, oferecendo a mesma melhoria potencial.
Pyramids
Eu anulei o voto negativo porque você corrigiu o erro flagrante. No entanto, eu ainda discordo. É melhor deixar o topo do R1 conectado à mesma fonte que alimenta o A / D, porque isso torna a medição ratiométrica com a fonte. Quando a corrente divisora ​​A / D e o resistor usam as mesmas tensões de referência, as variações nessa tensão são canceladas.
Olin Lathrop
Obrigado. Com uma configuração ratiométrica, +5 V é a tensão de referência apropriada e a remoção de R1 não altera isso. Mas ajuda tirando proveito de uma faixa maior da configuração ainda ratiométrica. A única desvantagem concebível é se R2 e Rv têm coeficientes de temperatura muito diferentes. Então o circuito original cancela o efeito se, e somente se, o potenciômetro estiver ajustado em exatamente 50%. Mas o efeito é muito pequeno e, como já foi dito, essa compensação funciona apenas para um potenciômetro configurado de qualquer maneira.
Pyramids
1

Eu não recomendaria divisor de tensão por um motivo:

Quando você conecta qualquer dispositivo de alta impedância para medição, ele possui uma resistência aquivalente entre o dispositivo e qualquer resistor do circuito (equivalência paralela), alterando a relação dos resistores.

Por exemplo, se você configurar os resistores e o potenciômetro para 50-50%, quando conectar o dispositivo, ele terá 49-51%. Não mudará muito devido à alta impedância do ADC, mas você perderá a precisão. Quero dizer, você pode ver o ADC como outro resistor que mudará a resistência equivalente.

esquemático

simular este circuito - esquemático criado usando o CircuitLab

Chirry
fonte
Isso não significa que qualquer uso de um pote com um ADC terá essa imprecisão inerente?
Transeunte
Não apenas por causa do pote, porque o ADC em si tem uma impedância e se você conectá-lo ao divisor de voltaje, a relação mudará porque seria como ter um resistor paralelo ao R2.
Chirry