[SIM OU NÃO] Posso fazer leitura Analógica na porta Digital?

Existe alguma forma?

Exibições: 968

Responder esta

Respostas a este tópico

Não

Não, porque digital quer dizer digital-binário, ou seja: o controlador só interpreta zero ou um, ligado ou desligado, tensão ativa ou inativa.

Pra isso existe a porta analógica: ela vai fazer a mesma leitura (ligado ou desligado), porém num intervalo de valores de 0 a 5 V, divididos em 10 bits (2^10 = 1024 derivadas). Ou seja: maior tensão ou menor tensão.

Então ele vai ler de 0 (0 volts) a 1024 unidades (5 V), que por recursos matematicos você transforma na unidade de medida que você quiser, tensão, corrente, umidade, pressão, resistência, temperatura, porcentagem... dependendo do sensor que você está usando. Um sensor nada mais é que um resistor variável, como o botão do volume da sua caixa de som, ligado em série com a porta analógica e "ancorado" ao ground.

Quanto maior a resistencia, menor a tensão registrada pelo controlador. E menor o valor (0-1024) que aparecerá na leitura da IDE do Arduino.

Curiosidade: prá que vc quer isso?

Considerando SOMENTE ARDUINO:

Deve haver jeito, afinal o sinal digital é, em natureza, o mesmo que o sinal analógico, só que medido com resolução de um bit (0 ou 1), enquanto que o analógico terá 10 bits (0 a 1024). Mas não com as APIs que vêm com o Arduino, pois o número que você coloca no comando analogRead só se refere aos A0, A1, A2... Em outras palavras o comando não endereça os pinos digitais.

Então pra fazer isso você vai ter que conhecer profundamente das chamadas de sistema e do baixo nível do ATMEGA328 pra poder descobrir como pegar o valor no pino. E muito provavelmente só conseguirá pegar um bit de leitura mesmo, por limitação física...

Provavelmente os mesmos princípios podem ser estendidos a outros microcontroladores.

n sei, mas existem expansores de portas analog tmb...

No meu blog tem um post sobre esses expansores. FUncionam que é uma beleza: http://automatobr.blogspot.com.br/2012/07/o-milagre-da-multiplicaca...

Se o objetivo for ler um sinal analogico na porta digital,tem soluções desde que se acrescente um componente.

Use um LM566 (Este CI transforma a tensão em frequencia com precisão instrumental).

Faça um contador no codigo do controlador que vai avaliar o tempo de comuntação da porta que é proporcional a tensão de entrada no CI.

Boa sugestão! Ao invés de comprar um mega, posso investir em um LM566!

Se quiser economizar,pode usar um lm331 que custa R$ 2,44 mas atende até 450 khz

Almir vc ja tem experiencia com isso?

Nunca fiz.Porém é visivelmente possivel.

Imagino que vai precisar usar um dos timers, disparado externamente.

Apos disparado, é feita a contagem do tempo em que o pino fica naquele estado.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço