SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
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 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
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()
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 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
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
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
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
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
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
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
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
Sintaxe da função analogReference()
analogReference(tipo)
Parâmetros:
tipo: tipo de configuração a usar.
Bóson Treinamentos
Fábio dos
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
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 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.

Weitere ähnliche Inhalte

Was ist angesagt?

Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à ProgramaçãoMario Sergio
 
Programação em C para Arduino
Programação em C para ArduinoProgramação em C para Arduino
Programação em C para ArduinoRodrigo Rosa
 
Termodinâmica resolvido
Termodinâmica resolvidoTermodinâmica resolvido
Termodinâmica resolvidoflavio moura
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Pacc UAB
 
TDC 2017: pequeno guia de eletrônica essencial para makers
TDC 2017: pequeno guia de eletrônica essencial para makersTDC 2017: pequeno guia de eletrônica essencial para makers
TDC 2017: pequeno guia de eletrônica essencial para makersHelder da Rocha
 
Fundamentos da eletricidade - Conceitos básicos
Fundamentos da eletricidade - Conceitos básicosFundamentos da eletricidade - Conceitos básicos
Fundamentos da eletricidade - Conceitos básicosRobson Josué Molgaro
 
Logica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoLogica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoRegis Magalhães
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosElaine Cecília Gatto
 
Instrumentos de Medidas Elétricas
Instrumentos de Medidas ElétricasInstrumentos de Medidas Elétricas
Instrumentos de Medidas ElétricasAryleudo De Oliveira
 
Interrupções e interconexões
Interrupções e interconexõesInterrupções e interconexões
Interrupções e interconexõesPAULO Moreira
 
Aula 4 - Noções Básicas de Eletricidade (continuação)
Aula 4 - Noções Básicas de Eletricidade (continuação)Aula 4 - Noções Básicas de Eletricidade (continuação)
Aula 4 - Noções Básicas de Eletricidade (continuação)Vitor Hugo Melo Araújo
 

Was ist angesagt? (20)

Minicurso de Arduino Básico
Minicurso de Arduino BásicoMinicurso de Arduino Básico
Minicurso de Arduino Básico
 
Eletrônica Básica
Eletrônica BásicaEletrônica Básica
Eletrônica Básica
 
Impulso e Quantidade de Movimento
Impulso e Quantidade de MovimentoImpulso e Quantidade de Movimento
Impulso e Quantidade de Movimento
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
Programação em C para Arduino
Programação em C para ArduinoProgramação em C para Arduino
Programação em C para Arduino
 
Termodinâmica
TermodinâmicaTermodinâmica
Termodinâmica
 
Termodinâmica resolvido
Termodinâmica resolvidoTermodinâmica resolvido
Termodinâmica resolvido
 
corrente eletrica
corrente eletricacorrente eletrica
corrente eletrica
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1
 
Leis de ohm
Leis de ohmLeis de ohm
Leis de ohm
 
TDC 2017: pequeno guia de eletrônica essencial para makers
TDC 2017: pequeno guia de eletrônica essencial para makersTDC 2017: pequeno guia de eletrônica essencial para makers
TDC 2017: pequeno guia de eletrônica essencial para makers
 
Fundamentos da eletricidade - Conceitos básicos
Fundamentos da eletricidade - Conceitos básicosFundamentos da eletricidade - Conceitos básicos
Fundamentos da eletricidade - Conceitos básicos
 
Logica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoLogica Algoritmo 02 Algoritmo
Logica Algoritmo 02 Algoritmo
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de Algoritmos
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Instrumentos de Medidas Elétricas
Instrumentos de Medidas ElétricasInstrumentos de Medidas Elétricas
Instrumentos de Medidas Elétricas
 
Interrupções e interconexões
Interrupções e interconexõesInterrupções e interconexões
Interrupções e interconexões
 
Aula 4 - Noções Básicas de Eletricidade (continuação)
Aula 4 - Noções Básicas de Eletricidade (continuação)Aula 4 - Noções Básicas de Eletricidade (continuação)
Aula 4 - Noções Básicas de Eletricidade (continuação)
 

Ähnlich wie Conhecendo as funções analogread, analogwrite e analogreference

Minicurso Arduino com Projetos Praticos - Jotacisio Oliveira
Minicurso Arduino com Projetos Praticos - Jotacisio OliveiraMinicurso Arduino com Projetos Praticos - Jotacisio Oliveira
Minicurso Arduino com Projetos Praticos - Jotacisio OliveiraPotiLivre Sobrenome
 
C.E.S.A.R Introducao ao Arduino
C.E.S.A.R Introducao ao ArduinoC.E.S.A.R Introducao ao Arduino
C.E.S.A.R Introducao ao ArduinoTiago Barros
 
Arduino Hack Day por Vinicius Senger
Arduino Hack Day por Vinicius SengerArduino Hack Day por Vinicius Senger
Arduino Hack Day por Vinicius SengerGlobalcode
 
Arduino - Hardware Livre e Robótica
Arduino -  Hardware Livre e RobóticaArduino -  Hardware Livre e Robótica
Arduino - Hardware Livre e RobóticaMarinho Brandão
 
LED RGB e saída PWM - estudo orientado com S4A
LED RGB e saída PWM - estudo orientado com S4ALED RGB e saída PWM - estudo orientado com S4A
LED RGB e saída PWM - estudo orientado com S4AAna Carneirinho
 
Oficina de Arduino Beta - Matehackers.org
Oficina de Arduino Beta - Matehackers.orgOficina de Arduino Beta - Matehackers.org
Oficina de Arduino Beta - Matehackers.orgGuilherme Kruger Araujo
 
Introdução a arduino, oficina para iniciantes
Introdução a arduino, oficina para iniciantesIntrodução a arduino, oficina para iniciantes
Introdução a arduino, oficina para iniciantesRogerio Alencar Filho
 
Curso de Arduino Completo
Curso de Arduino CompletoCurso de Arduino Completo
Curso de Arduino CompletoTiago Barros
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
38698469 slides-arduino
38698469 slides-arduino38698469 slides-arduino
38698469 slides-arduinoRui Alves
 
Técnicas de Prototipação II - Physical Computing - Aula 03
Técnicas de Prototipação II - Physical Computing - Aula 03Técnicas de Prototipação II - Physical Computing - Aula 03
Técnicas de Prototipação II - Physical Computing - Aula 03Tiago Barros
 
Técnicas de Prototipação II - Physical Computing - Aula 02
Técnicas de Prototipação II - Physical Computing - Aula 02Técnicas de Prototipação II - Physical Computing - Aula 02
Técnicas de Prototipação II - Physical Computing - Aula 02Tiago Barros
 
Apostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFApostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFengelrfs
 
Aula básica Arduino
Aula básica Arduino Aula básica Arduino
Aula básica Arduino Edgley Xavier
 
Arduino - iniciação à linguagem C (entradas analógica)
Arduino - iniciação à linguagem C (entradas analógica)Arduino - iniciação à linguagem C (entradas analógica)
Arduino - iniciação à linguagem C (entradas analógica)Ana Carneirinho
 

Ähnlich wie Conhecendo as funções analogread, analogwrite e analogreference (20)

Minicurso Arduino com Projetos Praticos - Jotacisio Oliveira
Minicurso Arduino com Projetos Praticos - Jotacisio OliveiraMinicurso Arduino com Projetos Praticos - Jotacisio Oliveira
Minicurso Arduino com Projetos Praticos - Jotacisio Oliveira
 
ARDUINO.pptx
ARDUINO.pptxARDUINO.pptx
ARDUINO.pptx
 
Arduino iad
Arduino iadArduino iad
Arduino iad
 
C.E.S.A.R Introducao ao Arduino
C.E.S.A.R Introducao ao ArduinoC.E.S.A.R Introducao ao Arduino
C.E.S.A.R Introducao ao Arduino
 
Arduino Hack Day por Vinicius Senger
Arduino Hack Day por Vinicius SengerArduino Hack Day por Vinicius Senger
Arduino Hack Day por Vinicius Senger
 
Arduino - Hardware Livre e Robótica
Arduino -  Hardware Livre e RobóticaArduino -  Hardware Livre e Robótica
Arduino - Hardware Livre e Robótica
 
LED RGB e saída PWM - estudo orientado com S4A
LED RGB e saída PWM - estudo orientado com S4ALED RGB e saída PWM - estudo orientado com S4A
LED RGB e saída PWM - estudo orientado com S4A
 
Oficina de Arduino Beta - Matehackers.org
Oficina de Arduino Beta - Matehackers.orgOficina de Arduino Beta - Matehackers.org
Oficina de Arduino Beta - Matehackers.org
 
Arduino Hack Day Corumbá
Arduino Hack Day CorumbáArduino Hack Day Corumbá
Arduino Hack Day Corumbá
 
3 aula do curso de automação - Arduino
3 aula do curso de automação - Arduino3 aula do curso de automação - Arduino
3 aula do curso de automação - Arduino
 
Arduino
ArduinoArduino
Arduino
 
Introdução a arduino, oficina para iniciantes
Introdução a arduino, oficina para iniciantesIntrodução a arduino, oficina para iniciantes
Introdução a arduino, oficina para iniciantes
 
Curso de Arduino Completo
Curso de Arduino CompletoCurso de Arduino Completo
Curso de Arduino Completo
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
38698469 slides-arduino
38698469 slides-arduino38698469 slides-arduino
38698469 slides-arduino
 
Técnicas de Prototipação II - Physical Computing - Aula 03
Técnicas de Prototipação II - Physical Computing - Aula 03Técnicas de Prototipação II - Physical Computing - Aula 03
Técnicas de Prototipação II - Physical Computing - Aula 03
 
Técnicas de Prototipação II - Physical Computing - Aula 02
Técnicas de Prototipação II - Physical Computing - Aula 02Técnicas de Prototipação II - Physical Computing - Aula 02
Técnicas de Prototipação II - Physical Computing - Aula 02
 
Apostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFApostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDF
 
Aula básica Arduino
Aula básica Arduino Aula básica Arduino
Aula básica Arduino
 
Arduino - iniciação à linguagem C (entradas analógica)
Arduino - iniciação à linguagem C (entradas analógica)Arduino - iniciação à linguagem C (entradas analógica)
Arduino - iniciação à linguagem C (entradas analógica)
 

Mehr von Fábio dos Reis

Palestra de Windows Server 2016
Palestra de Windows Server 2016Palestra de Windows Server 2016
Palestra de Windows Server 2016Fábio dos Reis
 
Palestra Introdução ao Microsoft Azure - Senac Lapa
Palestra Introdução ao Microsoft Azure - Senac LapaPalestra Introdução ao Microsoft Azure - Senac Lapa
Palestra Introdução ao Microsoft Azure - Senac LapaFábio dos Reis
 
Introdução ao Registro do Windows
Introdução ao Registro do WindowsIntrodução ao Registro do Windows
Introdução ao Registro do WindowsFábio dos Reis
 
Sistema Hexadecimal de numeração
Sistema Hexadecimal de numeraçãoSistema Hexadecimal de numeração
Sistema Hexadecimal de numeraçãoFábio dos Reis
 
Conheça o Roseapple Pi - Computador de Placa ùnica
Conheça o Roseapple Pi - Computador de Placa ùnicaConheça o Roseapple Pi - Computador de Placa ùnica
Conheça o Roseapple Pi - Computador de Placa ùnicaFábio dos Reis
 
Protocolo DHCP - Noções básicas - Bóson Treinamentos
Protocolo DHCP - Noções básicas - Bóson TreinamentosProtocolo DHCP - Noções básicas - Bóson Treinamentos
Protocolo DHCP - Noções básicas - Bóson TreinamentosFábio dos Reis
 
Introdução à criptografia - Bóson Treinamentos
Introdução à criptografia - Bóson TreinamentosIntrodução à criptografia - Bóson Treinamentos
Introdução à criptografia - Bóson TreinamentosFábio dos Reis
 
Rpm e yum - gerenciamento de pacotes
Rpm e yum - gerenciamento de pacotesRpm e yum - gerenciamento de pacotes
Rpm e yum - gerenciamento de pacotesFábio dos Reis
 
Prioridades de processos - nice e renice
Prioridades de processos - nice e renicePrioridades de processos - nice e renice
Prioridades de processos - nice e reniceFábio dos Reis
 
Processos e comando kill - Bóson Treinamentos
Processos e comando kill - Bóson TreinamentosProcessos e comando kill - Bóson Treinamentos
Processos e comando kill - Bóson TreinamentosFábio dos Reis
 
Expressões regulares, grep e sed - Bóson Treinamentos
Expressões regulares, grep e sed - Bóson TreinamentosExpressões regulares, grep e sed - Bóson Treinamentos
Expressões regulares, grep e sed - Bóson TreinamentosFábio dos Reis
 
Discos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em LinuxDiscos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em LinuxFábio dos Reis
 
Bg, fg, jobs, nohup - controle de tarefas do shell
Bg, fg, jobs, nohup - controle de tarefas do shellBg, fg, jobs, nohup - controle de tarefas do shell
Bg, fg, jobs, nohup - controle de tarefas do shellFábio dos Reis
 
Sql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosSql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosFábio dos Reis
 
Permissões especiais - suid, sgid, sticky - Linux
Permissões especiais - suid, sgid, sticky - LinuxPermissões especiais - suid, sgid, sticky - Linux
Permissões especiais - suid, sgid, sticky - LinuxFábio dos Reis
 
Umask - Linux - Bóson Treinamentos
Umask - Linux - Bóson TreinamentosUmask - Linux - Bóson Treinamentos
Umask - Linux - Bóson TreinamentosFábio dos Reis
 
Servidor DHCP - Linux - Bóson Treinamentos
Servidor DHCP - Linux - Bóson TreinamentosServidor DHCP - Linux - Bóson Treinamentos
Servidor DHCP - Linux - Bóson TreinamentosFábio dos Reis
 
Instalação do linux debian 6.0.4
Instalação do linux debian 6.0.4Instalação do linux debian 6.0.4
Instalação do linux debian 6.0.4Fábio dos Reis
 
Redirecionamento, pipes e processos linux
Redirecionamento, pipes e processos   linuxRedirecionamento, pipes e processos   linux
Redirecionamento, pipes e processos linuxFábio dos Reis
 

Mehr von Fábio dos Reis (20)

Palestra de Windows Server 2016
Palestra de Windows Server 2016Palestra de Windows Server 2016
Palestra de Windows Server 2016
 
Palestra Introdução ao Microsoft Azure - Senac Lapa
Palestra Introdução ao Microsoft Azure - Senac LapaPalestra Introdução ao Microsoft Azure - Senac Lapa
Palestra Introdução ao Microsoft Azure - Senac Lapa
 
Introdução ao Registro do Windows
Introdução ao Registro do WindowsIntrodução ao Registro do Windows
Introdução ao Registro do Windows
 
Sistema Hexadecimal de numeração
Sistema Hexadecimal de numeraçãoSistema Hexadecimal de numeração
Sistema Hexadecimal de numeração
 
Conheça o Roseapple Pi - Computador de Placa ùnica
Conheça o Roseapple Pi - Computador de Placa ùnicaConheça o Roseapple Pi - Computador de Placa ùnica
Conheça o Roseapple Pi - Computador de Placa ùnica
 
A Catedral e o Bazar
A Catedral e o BazarA Catedral e o Bazar
A Catedral e o Bazar
 
Protocolo DHCP - Noções básicas - Bóson Treinamentos
Protocolo DHCP - Noções básicas - Bóson TreinamentosProtocolo DHCP - Noções básicas - Bóson Treinamentos
Protocolo DHCP - Noções básicas - Bóson Treinamentos
 
Introdução à criptografia - Bóson Treinamentos
Introdução à criptografia - Bóson TreinamentosIntrodução à criptografia - Bóson Treinamentos
Introdução à criptografia - Bóson Treinamentos
 
Rpm e yum - gerenciamento de pacotes
Rpm e yum - gerenciamento de pacotesRpm e yum - gerenciamento de pacotes
Rpm e yum - gerenciamento de pacotes
 
Prioridades de processos - nice e renice
Prioridades de processos - nice e renicePrioridades de processos - nice e renice
Prioridades de processos - nice e renice
 
Processos e comando kill - Bóson Treinamentos
Processos e comando kill - Bóson TreinamentosProcessos e comando kill - Bóson Treinamentos
Processos e comando kill - Bóson Treinamentos
 
Expressões regulares, grep e sed - Bóson Treinamentos
Expressões regulares, grep e sed - Bóson TreinamentosExpressões regulares, grep e sed - Bóson Treinamentos
Expressões regulares, grep e sed - Bóson Treinamentos
 
Discos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em LinuxDiscos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em Linux
 
Bg, fg, jobs, nohup - controle de tarefas do shell
Bg, fg, jobs, nohup - controle de tarefas do shellBg, fg, jobs, nohup - controle de tarefas do shell
Bg, fg, jobs, nohup - controle de tarefas do shell
 
Sql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosSql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentos
 
Permissões especiais - suid, sgid, sticky - Linux
Permissões especiais - suid, sgid, sticky - LinuxPermissões especiais - suid, sgid, sticky - Linux
Permissões especiais - suid, sgid, sticky - Linux
 
Umask - Linux - Bóson Treinamentos
Umask - Linux - Bóson TreinamentosUmask - Linux - Bóson Treinamentos
Umask - Linux - Bóson Treinamentos
 
Servidor DHCP - Linux - Bóson Treinamentos
Servidor DHCP - Linux - Bóson TreinamentosServidor DHCP - Linux - Bóson Treinamentos
Servidor DHCP - Linux - Bóson Treinamentos
 
Instalação do linux debian 6.0.4
Instalação do linux debian 6.0.4Instalação do linux debian 6.0.4
Instalação do linux debian 6.0.4
 
Redirecionamento, pipes e processos linux
Redirecionamento, pipes e processos   linuxRedirecionamento, pipes e processos   linux
Redirecionamento, pipes e processos linux
 

Conhecendo as funções analogread, analogwrite e analogreference

  • 1. Arduino Conhecendo as funções analogRead, analogWrite e analogReference Bóson Treinamentos Fábio dos Reis
  • 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. 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. 0 1023 0V 5V Entrada Analógica analogRead()
  • 6. Entradas analógicas no Arduino Mega
  • 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. 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. 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. 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. 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. 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. 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. 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. Sintaxe da função analogReference() analogReference(tipo) Parâmetros: tipo: tipo de configuração a usar. Bóson Treinamentos Fábio dos
  • 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. Localização do pino AREF no Arduino Uno
  • 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.