Como estendo o número de pinos analógicos (entrada) disponíveis para mim?


26

Eu já sei como estender o número de pinos digitais em um Arduino usando um multiplexador.

Quero aumentar o número de canais de entrada analógica que tenho. Uma solução é adicionar outro Arduino como escravo.

Como eu aumentaria o número de canais de entrada analógica? (Presumo que alguns MUXing e ADCs estejam envolvidos). Se for muito complicado escrever uma resposta, um resumo geral do circuito / código também seria bom.

Também estou aberto a ocultar sugestões, embora prefira se houver uma solução de hardware não muito difícil.


Respostas:


32

Se você já conhece os chips multiplexadores digitais, boas notícias! Eles também podem ser usados ​​para sinais analógicos.

http://playground.arduino.cc/Learning/4051

A premissa básica é exatamente igual à multiplexação de sinal digital. Você usa o chip 4051 como um "trocador de faixa" e lê o sinal de qualquer faixa na qual você diz para o chip mudar. o 4051 usa 3 pinos digitais e 1 pino analógico (ou digital) adicional no arduino para criar até 8 faixas de entrada. Alguns multiplexadores são encadeados em cadeia, então você pode adicionar facilmente mais 8 sinais sem precisar afastá-los do próprio arduino.

É exatamente como a técnica que você já conhece para sinais digitais, basta conectar o canal que você lê a um pino analógico em vez de um digital, depois percorrer os estados binários e ler os valores analógicos.

Eu fiz um gif animado para você.

insira a descrição da imagem aqui


3
Enquanto o link responde à pergunta, você poderia elaborar um pouco? Escreva sobre o circuito em suma? (Link só respostas são desencorajados na rede)
Manishearth

OK. Resposta expandida.
Steve Cooley

3
Um esclarecimento, o 4051 que você mencionou, é um mux analógico e não digital, gostaria de esclarecer sua resposta porque definitivamente existem muxes digitais que não conseguem isso porque seus drivers de saída e entrada não são projetados para resposta linear. Talvez vale a pena uma nota acrescentou que encadeamento muxes analógicos podem afetar o sinal dependendo das características do mux
naven87

11
Vale a pena notar que os muxes analógicos não são triviais para selecionar, o projetista deve considerar o balanço de tensão (a maioria opera apenas dentro da faixa de fornecimento, como opamps), largura de banda, resistência ON, diafonia etc. etc., sendo o maior potencial o balanço de tensão mostre a rolha.
Mister Mystère

Eu acredito que você também pode usar um pino digital para alimentar um sensor, basta ligar um pino digital em relação ao sensor VCC e compartilhar o mesmo analógico.
Ciasto piekarz

10

Pode ser importante lembrar que o chip ATmega do Arduino está usando um MUX analógico. Os chips baseados em Uno (ATmega328) possuem apenas um único ADC. As 6 entradas analógicas são na verdade um MUX que se conecta a esse ADC.

É por isso que você pode ler apenas 1 entrada analógica por vez.

Ao expandir as entradas analógicas, pode ser necessário considerar quanto tempo leva para fazer todo esse MUX e se ADCs externos adicionais são ou não necessários em seu aplicativo.


1

Considere o seguinte: adicione ATtiny 85 com comunicação serial com o Arduino, ele usa 2 pinos para Rx, Tx e você tem mais 3 pinos que podem ser usados ​​como analógico. Dessa forma, você pode desenvolver seu próprio protocolo, o ATtiny pode processar o algoritmo e enviar as informações processadas para o Arduino, também é muito barato, tentei por mim mesmo, é uma arquitetura legal, eu acho.

Dia bom

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.