Neste post você vai aprender como fazer a leitura de vários sensores usando apenas uma entrada AD, isso é muito útil quando se deseja aumentar o número de entradas de um microcontrolador.
No vídeo abaixo é apresentado uma maneira de se aumentar número de entradas usando um Arduino Uno e alguns diodos.
Código
O código utilizado no projeto é apresentado a seguir:
int AD = 0;
int i = 0;
void setup()
{
pinMode(7, OUTPUT);
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);
pinMode(4, OUTPUT);
pinMode(3, OUTPUT);
Serial.begin(9600);
}
void loop()
{
for (i = 7; i > 2; i--) {
digitalWrite(i, HIGH);
AD = analogRead(A0);
digitalWrite(i, LOW);
Serial.println (i);
Serial.println (AD);
delay(500);
}
}
O código acima apenas faz uma varredura das saídas, mudando para nível lógico alto e habilitando apenas o sensor que se deseja fazer a leitura. Após isso é feito a amostragem do sinal com a função analogRead(A0), a saída é desabilitada e o valor é impresso na porta serial do Arduino. Esse processo é repetido para os demais sensores.
Simulação
Abaixo é possível fazer a simulação do circuito.
Usando uma solução melhor de hardware
Como foi mostrado no vídeo, a solução utilizando diodos não é a melhor solução. Podemos contornar os problemas dos diodos utilizando transistores MOSFET. Entretanto, vamos precisar de muitos transistores dependendo da quantidade de sensores que devem ser lidos, e isso pode ocupar muito espaço de PCB.
Uma solução interessante é a utilização de um multiplexador de sinais, com ele basta selecionar o endereço do sensor e fazer a leitura. Abaixo é mostrado o diagrama esquemático do CD4051:
Com esse componente podemos fazer a leitura de 8 sensores utilizando apenas 3 saídas do nosso microcontrolador e uma entrada AD.
Conclusão
Neste post vimos como fazer a leitura de vários sensores usando apenas uma entrada AD do microcontrolador. Também é possível usar a mesma técnica para fazer a leitura de entradas digitais.
Isso é tudo pessoal e até o próximo post.