Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
programacao-arduino:analogread [2018/12/27 18:04] marialuisa |
programacao-arduino:analogread [2020/11/26 09:04] (atual) bandeira |
||
---|---|---|---|
Linha 1: | Linha 1: | ||
- | ======AnalogRead e AnalogWrite======= | + | ========AnalogRead e AnalogWrite========= |
+ | |||
+ | =====Introdução===== | ||
+ | |||
+ | 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. | ||
- | 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 (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 [[programacao-arduino: pwm|PWM]], entretanto, nesse caso, em um intervalo de 0 a 255. | Ambas podem ser utilizadas nas portas analógicas da placa, assim como nas portas [[programacao-arduino: pwm|PWM]], entretanto, nesse caso, em um intervalo de 0 a 255. | ||
+ | =====Exemplo===== | ||
<code C> | <code C> | ||
Linha 18: | Linha 22: | ||
int portOutPWM = 11; | int portOutPWM = 11; | ||
- | int value, PWMvalue; //Variáveis auxiliares | + | int value, PWMvalue; //Variáveis auxiliares. |
void setup() { | void setup() { | ||
- | pinMode(portIn, INPUT); //Declaração da porta analógica A0 como entrada | + | 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(portOut, OUTPUT); //Declara a porta analógica A1 como saída. |
- | pinMode(portOutPWM, OUTPUT); //Declara a porta digital PWM 11 como saída | + | pinMode(portOutPWM, OUTPUT); //Declara a porta digital PWM 11 como saída. |
} | } | ||
void loop() { | void loop() { | ||
- | value = analogRead(0); //Leitura da tensão na porta A0 | + | value = analogRead(0); //Leitura da tensão na porta A0. |
- | analogWrite(1, value); //Escrita na porta A1 do valor obtido anteriormente | + | 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 | + | //Conversão do valor lido do intervalo de 0-1023 para 0-255 para ser utilizado na porta PWM. |
PWMvalue = (value*255)/1023; | PWMvalue = (value*255)/1023; | ||
- | analogWrite(11, PWMvalue); //Escrita do valor correpondente na porta PWM | + | analogWrite(11, PWMvalue); //Escrita do valor correpondente na porta PWM. |
} | } | ||
</code> | </code> | ||
+ | |||
+ | =====Principais Situações de Uso====== | ||
+ | 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. | ||
+ | |||
+ | =====Desafios===== | ||
+ | - Utilzar um potenciômetro para controlar a luminosidade de um LED. | ||
+ | - Realizar a leitura dos seguintes sensores, mostrando a leitura no monitor serial: | ||
+ | - Luminosidade; | ||
+ | - Umidade; | ||
+ | - Temperatura; | ||
+ | - Ultrassônico | ||
+ | - Infravermelho; | ||
+ | - Controlar motores, variando sua velocidade e sentido de giro. | ||
+ | |||
+ | ====Missões==== | ||
+ | - Controlar a velocidade e sentido de giro um motor utilizando dois sensores de luminosidade, seguindo as condições: | ||
+ | - O motor gira no sentido do sensor que receber maior luminosidade; | ||
+ | - A velocidade do motor começa baixa, e vai aumentando gradativamente. | ||
+ | - Controlar a velocidade de um motor utilizando a leitura de um sensor ultrassônico de modo que quanto menor a distância lida, menor a velocidade, e vice-versa. |