Arduino
Conhecendo as funções analogRead,
analogWrite e analogReference
Bóson Treinamentos
Fábio dos Reis
Função analogRead()
● Lê o valor de um pino analógico especificado.
● O Arduino Uno possui um conversor analógico-digital ...
Função analogRead()
● Resolução de 10 bits significa que as tensões de entrada entre
0 e 5 volts aplicadas ao pino serão m...
0 1023
0V 5V
Entrada Analógica
analogRead()
Entradas analógicas no Arduino Uno
Entradas analógicas no Arduino Mega
Sintaxe da função analogRead()
analogRead(pino)
Parâmetros:
pino é o número do pino analógico que será lido:
● A0 a A5 na ...
Exemplo
Vamos efetuar a leitura de um sinal aplicado à entrada analógica A2 do
Arduino, por meio de um resistor, sensor ou...
Função analogWrite()
● Permite escrever um valor analógico (que, na verdade, é um
sinal PWM) em um pino.
● Usamos essa fun...
Função analogWrite()
● A função opera nos pinos 3, 5, 6, 9, 10 e 11 na maioria das
placas de Arduino (com chips ATmega168 ...
Sintaxe da função analogWrite()
analogWrite(pino, valor)
Parâmetros:
pino é o número do pino que receberá o sinal de saída...
Exemplo da função analogWrite()
Vamos iluminar um LED de acordo com um valor de entrada lido a partir de um
potenciômetro....
Função analogReference()
● Função utilizada para configurar a tensão de referência usada nas entradas
analógicas – mais pr...
Função analogReference()
● Assim, se, por exemplo, precisarmos medir valores em uma faixa de tensão
entre 0 e 3V, ajustamo...
Sintaxe da função analogReference()
analogReference(tipo)
Parâmetros:
tipo: tipo de configuração a usar.
Bóson Treinamento...
Tipos de configurações de analogReference()
● DEFAULT: A tensão de referência analógica padrão, que é de 5 volts, em
placa...
Localização do pino AREF no Arduino Uno
Exemplo
Precisamos ligar um sensor ao Arduino que gera sinais de saída entre 0 e 4V.
Para que a precisão das leituras seja...
Próximos SlideShares
Carregando em…5
×

Conhecendo as funções analogread, analogwrite e analogreference

148 visualizações

Publicada em

Aprendendo a usar as funções analogRead(), analogWrite() e analogReference() para criar projetos com Arduino nesta apresentação da Bóson Treinamentos

Publicada em: Engenharia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
148
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Conhecendo as funções analogread, analogwrite e analogreference

  1. 1. Arduino Conhecendo as funções analogRead, analogWrite e analogReference Bóson Treinamentos Fábio dos Reis
  2. 2. Função analogRead() ● Lê o valor de um pino analógico especificado. ● O Arduino Uno possui um conversor analógico-digital de 10 bits e seis canais ● O Arduino Mega possui 16 canais e as placas Mini e Nano, 8 canais. ● Uma entrada analógica demora cerca de 100 μs para ser lida, então a taxa máxima de leitura é de cerca de 10.000 vezes por segundo. ● A função retorna um número inteiro entre 0 e 1023, por padrão. Bóson Treinamentos Fábio dos
  3. 3. Função analogRead() ● Resolução de 10 bits significa que as tensões de entrada entre 0 e 5 volts aplicadas ao pino serão mapeadas em valores inteiros entre 0 e 1023 (210 ). ● Assim, temos uma resolução de leitura de 5 V / 1024 = 4,9 mV por unidade de medida. ● Essa resolução é devida ao conversor analógico-digital (ADC) utilizado no Arduino. ● Tanto a faixa de tensão de entrada quanto a resolução dos pinos pode ser alterada com a função analogReference()
  4. 4. 0 1023 0V 5V Entrada Analógica analogRead()
  5. 5. Entradas analógicas no Arduino Uno
  6. 6. Entradas analógicas no Arduino Mega
  7. 7. Sintaxe da função analogRead() analogRead(pino) Parâmetros: pino é o número do pino analógico que será lido: ● A0 a A5 na maioria das placas, incluindo o Uno ● A0 a A15 no Arduino Mega ● A0 a A7 nos Arduinos Nano e Mini. Bóson Treinamentos Fábio dos Reis
  8. 8. Exemplo Vamos efetuar a leitura de um sinal aplicado à entrada analógica A2 do Arduino, por meio de um resistor, sensor ou potenciômetro, armazenando o valor na variável valor e mostrando no Serial Monitor os valores lidos: int valor = 0; void setup() { Serial.begin(9600); } void loop() { valor = analogRead(A2); Serial.println(valor); } Bóson Treinamentos Fábio dos
  9. 9. Função analogWrite() ● Permite escrever um valor analógico (que, na verdade, é um sinal PWM) em um pino. ● Usamos essa função para ativar / desativar dispositivos conectados ao Arduino, como LEDs, atuadores, motores, etc. ● A chamada à função analogWrite() gera um sinal de onda quadrada de uma razão cíclica (duty cicle) especificada, até que uma nova chamada à função seja realizada. ● A frequência do sinal PWM na maioria dos pinos é de cerca de 490 Hz. No Arduino Uno e similares, os pinos 5 e 6 possuem uma frequência de cerca de 980 Hz. No Arduino Leonardo os pinos 3 e 11 também possuem a frequência de 980 Hz. Bóson Treinamentos Fábio dos
  10. 10. Função analogWrite() ● A função opera nos pinos 3, 5, 6, 9, 10 e 11 na maioria das placas de Arduino (com chips ATmega168 ou ATmega328). ● No Arduino Mega, funciona nos pinos 2 a 13 e 44 a 46. ● Você pode identificar facilmente esses pinos na placa por possuírem o sinal ~ ao lado do número do pino, indicando a funcionalidade de PWM. ● Não é necessário chamar a função pinMode() para configurar o pino como saída antes de chamar a função analogWrite() ● Cuidado: a função analogWrite() não tem nada a haver com os pinos analógicos da placa, nem com a função analogRead() Bóson Treinamentos Fábio dos
  11. 11. Sintaxe da função analogWrite() analogWrite(pino, valor) Parâmetros: pino é o número do pino que receberá o sinal de saída. valor é a razão cíclica (duty cicle), um valor entre 0 e 255 (sempre desligado a sempre ligado) Bóson Treinamentos Fábio dos
  12. 12. Exemplo da função analogWrite() Vamos iluminar um LED de acordo com um valor de entrada lido a partir de um potenciômetro. O potenciômetro será ligado ao pino 3 (A3), um pino de entrada analógica, e o LED ao pino de saída PWM 10. int entradaPotenciometro = 3 int LED = 10 int valor = 0 void setup() { pinMode(LED, OUTPUT); } void loop() { valor = analogRead(entradaPotenciometro); analogWrite(LED, valor / 4) } Bóson Treinamentos Fábio dos Reis
  13. 13. Função analogReference() ● Função utilizada para configurar a tensão de referência usada nas entradas analógicas – mais precisamente, o valor superior da faixa de valores de entrada. ● Quando o Arduino realiza uma leitura analógica, ele efetua uma comparação entre a tensão medida no pino analógico utilizado com um valor de Tensão de Referência Analógica, que por padrão é o valor de tensão de operação normal da placa, 5 volts ● Ao usar uma tensão de referência de 5V, cada unidade retornada na leitura de valores pela função analogRead() terá o valor de 0,00488V (4,9mV). ● Às precisamos medir valores de tensão em uma faixa distinta, por exemplo, entre 0 e 3V. ● Nesse caso, para que o ADC saiba qual é o valor superior da faixa usamos a função analogReference(). O valor mais baixo de tensão de referencia possível no Arduino é de 1,1V. Bóson Treinamentos Fábio dos
  14. 14. Função analogReference() ● Assim, se, por exemplo, precisarmos medir valores em uma faixa de tensão entre 0 e 3V, ajustamos o valor de referência para 3V, e a partir daí cada unidade de medida do ADC será interpretada pelo Arduino como sendo: 3 V / 1024 = 2,9 mV (0,0292V) por unidade de medida. ● A tensão de referência deve ser aplicada no pino AREF na placa do Arduino. Bóson Treinamentos Fábio dos
  15. 15. Sintaxe da função analogReference() analogReference(tipo) Parâmetros: tipo: tipo de configuração a usar. Bóson Treinamentos Fábio dos
  16. 16. Tipos de configurações de analogReference() ● DEFAULT: A tensão de referência analógica padrão, que é de 5 volts, em placas Arduino de 5V, ou 3,3 volts, nas placas de 3,3V (por exemplo, Arduino Due). ● INTERNAL: Referência interna, que equivale a 1,1 volts nos chips ATmega168 e ATmega328, ou 2,56 volts no Atmega8. Não disponível no Arduino Mega. ● INTERNAL1V1: Tensão de referência interna de 1,1V, somente para o Arduino Mega. ● INTERNAL2V56: Tensão de referência interna de 2,56V, também somente para o Arduino Mega. ● EXTERNAL: Este é um valor de tensão aplicada no pino AREF da placa, no intervalo de 0 a 5 volts apenas, que será usada como referência externa. Bóson Treinamentos Fábio dos Reis
  17. 17. Localização do pino AREF no Arduino Uno
  18. 18. Exemplo Precisamos ligar um sensor ao Arduino que gera sinais de saída entre 0 e 4V. Para que a precisão das leituras seja a melhor possível, vamos alterar a opção de tensão de referência analógica para o intervalo entre 0 e 4V, usando uma fonte de tensão externa: void setup() { analogReference(EXTERNAL); } Bóson Treinamentos Fábio dos Reis ● Agora basta aplicar uma tensão de exatos 4V ao pino AREF da placa para usar esse valor de tensão como referência analógica. ● Tome cuidado para não usar valores de tensão abaixo de 1,1V ou maiores do que 5V, para não danificar sua placa.

×