- Projetos Finalizados
- Projetos em Andamento
- Treinamentos
- Conhecimentos
-
- Conceitos
- Outros
As funções analogRead() e analogWrite() são funções análogas a digitalRead() e digitalWrite(), mas com valores analógicos. São utilizadas para ler e enviar, respectivamente, valores de tensão não-binários (diferentes de HIGH ou LOW) entre 0 e 1023, sendo que 0 representa 0V e 1023, 5V.
Ambas podem ser utilizadas nas portas analógicas da placa, assim como nas portas PWM, entretanto, nesse caso, em um intervalo de 0 a 255.
/* Código que exemplifica o uso das funções analogRead() e AnalogWrite() para portas analógicas e PWM. */ /*Atribuição de váriaveis para armazenar os endereços das portas a serem utilizadas (A0 e A1 analógicas e porta 11 digital PWM). Perceba que não é necessário colocar A na igualdade para as portas A0 e A1. */ int portIn = 0; int portOut = 1; int portOutPWM = 11; int value, PWMvalue; //Variáveis auxiliares. void setup() { pinMode(portIn, INPUT); //Declaração da porta analógica A0 como entrada. pinMode(portOut, OUTPUT); //Declara a porta analógica A1 como saída. pinMode(portOutPWM, OUTPUT); //Declara a porta digital PWM 11 como saída. } void loop() { value = analogRead(0); //Leitura da tensão na porta A0. analogWrite(1, value); //Escrita na porta A1 do valor obtido anteriormente. //Conversão do valor lido do intervalo de 0-1023 para 0-255 para ser utilizado na porta PWM. PWMvalue = (value*255)/1023; analogWrite(11, PWMvalue); //Escrita do valor correpondente na porta PWM. }
A função analogRead() é utilizada para obter leituras não-binárias, normalmente de sensores (de luminosidade, de umidade, de temperatura, etc), potenciômetros e similares.
Da mesma maneira, analogWrite() é utilizada para enviar valores de tensão intermediários, entre 0 e 5V, em aplicações que controlam a luminosidade de LED's, a velocidade de motores, a geração de sinais analógicos e sinais de áudio, entre outros.