quarta-feira, 10 de maio de 2017

Como ler sinais analógicos no Arduino













No desenvolvimento de projetos e aplicações com Arduino e outros microcontroladores é importante sabermos diferenciar a natureza das grandezas utilizadas. Alguns dos sinais lidos pelo Arduino, por exemplo, são assim chamados analógicos, dada a sua forma de variar no tempo. São as grandezas que possuem uma relação direta com a forma como a natureza se comporta. A variação desses sinais ocorre em uma escala contínua, como por exemplo valores de velocidade, temperatura, umidade, entre outros. De modo diferente, os sinais digitais variam em uma escala discreta, diretamente relacionada à precisão de leitura do microcontrolador.





É clássico citar o fato de que o mundo real não é digital. Considerando a variação da temperatura como exemplo, ela muda dentro de um intervalo de valores e geralmente não faz mudanças abruptas ao longo do tempo. Muitas vezes medimos parâmetros ambientais como temperatura, intensidade de luz, usando sensores analógicos. Estes sinais resultantes são armazenados como dados digitais sequenciais.

http://natalmakers.mercadoshops.com.br/potenciometro-10k-139841111xJM



Uma experiência interessante para podermos perceber essa variação é utilizando um Potenciômetro de 10k, que é capaz de modificar o valor de resistência em seu pino central de acordo com a posição da chave giratória. Conectando-o ao Arduino da forma indicada na figura, carregue o programa abaixo para o Arduino. Verifique no monitor serial a variação de tensão causada pela variação de resistência do potenciômetro. Para visualizar graficamente os resultados da experiência, utilize o Serial Plotter, clicando no menu correspondente na IDE no Arduino.







// Pino do potenciometro (pino do meio) ligado na porta A0 do arduino.
int analogPin = A0;    

// Variável para armazenar o valor lido
 int val = 0;          

void setup()
{

//Inicia o monitor Serial.
 Serial.begin(9600);         
}

void loop()
{

// Leitura do pino analogico
 val = analogRead(analogPin);   
 Serial.println(val);

}



Nenhum comentário:

Postar um comentário