Escolar Documentos
Profissional Documentos
Cultura Documentos
Eduardo Tocchetto
21 de Junho de 2021
1 Introdução
1.1 Descrição
A eletrônica divide-se em dois tipos de sinais: digital e analógico. Os sinais
digitais estão limitados a dois estados: High (1) ou Low (0). Na prática, significa
que o Arduino reconhecerá uma de duas tensões: 5V ou 0V, respetivamente.
Por sorte, nem tudo em nosso redor pode ser descrito de uma forma tão simples.
Por exemplo, ao usarmos um sensor de distância, provavelmente pretendemos
saber a distância exata de um obstáculo, e não apenas informações básicas como:
obstáculo detetado/sem obstáculo.
Tal sensor, na sua saída, pode fornecer uma tensão proporcional à distância
do obstáculo. Então, a medição consiste em ler a tensão numa faixa de 0 a 5V.
Esta abordagem é analógica. Portanto, nos exemplos seguintes, vamos usar os
periféricos apropriados do Arduino, que permitem medir a tensão fornecida às
entradas especiais do sistema.
ATENÇÃO: Lembre-se que as entradas do Arduino só são compatíveis com
tensões incluídas na seguinte faixa: 0-5V. Outras tensões poderão danificar a placa
e até o computador ao qual ligar o circuito.
Para o processamento de sinais analógicos, é utilizado o chamado ADC: con-
versor analógico-digital. Este é um dos periféricos mais populares encontrados em
microcontroladores. O seu trabalho é converter uma tensão aplicada numa entrada
do sistema num formato digital. Por exemplo (transdutor linear): Tensão => Valor
lido no ADC
V (arredondado)
0 => 0
1 => 51
2 => 102
3 => 154
4 => 205
1
5 => 255
1.2 Exercício 1
1.2.1 código
int valorLido = 0;
void setup() {
Serial.begin(9600);//Configuração da velocidade de transmissão
}
void loop() {
valorLido = analogRead(A5);//Ler valor da tensão na entrada A5
Serial.println(valorLido);//Enviar sinal para o monitor série
delay(200);//Esperar 200ms
}
1.2.2 circuito
1.2.3 Questões
Ao girar o potenciômetro do circuito da figura 1, obtemos valores de 0 a 1023
no monitor série. Isto significa que o conversor analógico-digital integrado no
Arduino UNO, é de 10 bits.
Figura 1: circuito teste.
1023x → 5V
1 → xV
1023x = 1 ∗ 5V
1 ∗ 5V
x = = 0.0049V
1023
(1)
void setup() {
Serial.begin(9600);//Configuração da taxa de transmissão
}
void loop() {
valorLido = analogRead(A5);//Ler valor da tensão na entrada A5
tensão = valorLido * (5.0/1023.0); //Converter valores em volts
Serial.println(tensão);//Enviar tensão medida para monitor série
delay(200);//Esperar 200ms
}
Note que a declaração de tensão foi feita através de uma variável float, para
que seja possível armazenar valores/números racionais.
Deverá conseguir ver no monitor série valores entre 0 e 5V. Acabamos de
construir um voltímetro muito simples!
1.4 Exercício 3
1.4.1 circuito
Implemente o circuito da figura 2 e desenvolva um sketch para que o arduino
aumente o tempo que o led fique ligado e desligado com o aumento da tensão que
o potenciômetro envia para o arduino.
Figura 2: circuito teste.
1.4.2 exercício 4
Agora, está na hora de um projeto mais extenso. Neste exercício, dependendo
da posição em que o potenciômetro se encontre, um LED vai ser ligado. Utilizando
o circuito da figura 3.
A tarefa é simples, basta dividir o valor máximo que podemos ler do ADC
(1023) por 5 e, com base nisso, criar condições para a ativação individual dos
LEDs.
1.4.3 circuito
OBS pode ser utilizado a instrução map. Esta função permite, rapidamente,
dividir por escalas um determinado valor. O primeiro argumento, é o valor a ser
dividido, que neste caso, são informações dadas pelo ADC. O segundo e terceiro
parâmetros são o intervalo do valor de entrada, enquanto os dois últimos são o
intervalo do valor de saída (após divisão).
Figura 3: circuito teste.