Você está na página 1de 26

CIRCUITOS

MICROCONTROLADOS
Arduino – Entradas analógicas, Conversor ADC
e Comunicação Serial
Prof. Gilberto de Oliveira Viana
Entradas analógicas
As entradas digitais só podem assumir dois estados, HIGH e LOW,
ou seja, 0 V ou 5 V.
Dessa forma só é possível ler apenas dois estados. Por exemplo,
verificar se uma porta está aberta ou fechada, identificar se um
botão está pressionado ou solto, etc.
Com as entradas digitais você aplica em lógica discreta para
controle dos projetos
Para verificar variáveis analógicas como pressão, temperatura, nível
é preciso utilizar as entradas analógicas
Entradas analógicas
Entradas analógicas
O microcontrolador da Arduino trabalha internamente com dados digitais, portanto
é necessário traduzir um sinal analógico para um valor digital. A técnica utilizada
para leitura de um sinal analógico pelo Arduino é a conversão analógica digital.
Essa técnica consiste em converter o sinal analógico para um valor digital, dessa
forma se pode quantificar o sinal presente no pino. Esse processo é feito pelo
conversor Analógico digital, ADC ou conversor A/D.
conversor analógico-digital (ADC)
Um conversor analógico-digital (ADC) é um componente que converte um sinal
analógico em um sinal digital. Isso é útil quando queremos medir grandezas
físicas, como temperatura, pressão, luminosidade, entre outras, que são
apresentadas de forma analógica. O Arduino possui um conversor analógico-
digital interno de 10 bits, o que permite medir grandezas com uma resolução
de até 1024 valores distintos.

A resolução de um conversor analógico-digital (ADC) é o menor incremento de


tensão que ele pode detectar e converter em um valor digital. No Arduino, a
resolução do conversor analógico-digital interno é de 10 bits, o que significa
que ele pode representar 210 (𝑜𝑢 1024) valores distintos.

Para calcular a resolução em volts do ADC do Arduino, precisamos saber a


tensão de referência que ele está utilizando. Por padrão, o Arduino usa a
tensão de referência de 5V, que é fornecida pelo pino 5V ou pelo pino Vin
quando a placa é alimentada pela USB.
Cálculo da Resolução - ADC
A fórmula para calcular a resolução em volts é dada por:

𝑡𝑒𝑛𝑠ã𝑜 𝑑𝑒 𝑟𝑒𝑓𝑒𝑟ê𝑛𝑐𝑖𝑎
𝑟𝑒𝑠𝑜𝑙𝑢çã𝑜 =
2𝑏𝑖𝑡𝑠
Substituindo os valores conhecidos, temos:
5𝑉
𝑟𝑒𝑠𝑜𝑙𝑢çã𝑜 =
1024

𝑟𝑒𝑠𝑜𝑙𝑢çã𝑜 = 0,0048828 𝑉 (𝑜𝑢 4,8828 𝑚𝑉)

Portanto, a resolução do ADC do Arduino é de 4,8828 mV, ou seja, ele pode


medir tensões com uma precisão de aproximadamente 5 mV. É importante
lembrar que a precisão da leitura do ADC também depende de outros
fatores, como a estabilidade da tensão de referência, a qualidade do sinal
analógico e a interferência elétrica no circuito.
Cálculo da Resolução - ADC
Para converter os valores lidos no conversor analógico-digital (ADC) do Arduino
para volts, precisamos usar a seguinte fórmula:

𝑣𝑎𝑙𝑜𝑟𝐴𝐷𝐶 ∗ 𝑡𝑒𝑛𝑠ã𝑜 𝑑𝑒 𝑟𝑒𝑓𝑒𝑟ê𝑛𝑐𝑖𝑎


𝑣𝑜𝑙𝑡𝑠 =
1024

Onde:
𝑣𝑎𝑙𝑜𝑟𝐴𝐷𝐶 é o valor lido pelo ADC, que varia de 0 a 1023.
𝑡𝑒𝑛𝑠ã𝑜 𝑑𝑒 𝑟𝑒𝑓𝑒𝑟ê𝑛𝑐𝑖𝑎 é a tensão de referência usada pelo ADC, que por padrão é
de 5V no Arduino.
Cálculo da Resolução - ADC
Por exemplo, se o valor lido pelo ADC for 512, podemos calcular o valor
correspondente em volts da seguinte forma:

512 ∗ 5
𝑣𝑜𝑙𝑡𝑠 =
1024

𝑣𝑜𝑙𝑡𝑠 = 2,5𝑉

Portanto, o valor lido pelo ADC corresponde a uma tensão de 2,5V. É importante
lembrar que a precisão da conversão depende da precisão da tensão de referência
e do erro de quantização do ADC, que é a discrepância entre o valor analógico real
e o valor digital representado pelo ADC.
Cálculo da Resolução - ADC
Para converter a tensão de entrada na entrada analógica do Arduino para o valor
lido pelo conversor analógico-digital (ADC), precisamos usar a seguinte fórmula:

𝑡𝑒𝑛𝑠ã𝑜 𝑑𝑒 𝑒𝑛𝑡𝑟𝑎𝑑𝑎
𝑣𝑎𝑙𝑜𝑟𝐴𝐷𝐶 = ∗ 1024
𝑡𝑒𝑛𝑠ã𝑜 𝑑𝑒 𝑟𝑒𝑓𝑒𝑟ê𝑛𝑐𝑖𝑎

Onde:

𝑡𝑒𝑛𝑠ã𝑜 𝑑𝑒 𝑒𝑛𝑡𝑟𝑎𝑑𝑎 é a tensão presente na entrada analógica do Arduino que


queremos medir.
𝑡𝑒𝑛𝑠ã𝑜 𝑑𝑒 𝑟𝑒𝑓𝑒𝑟ê𝑛𝑐𝑖𝑎 é a tensão de referência usada pelo ADC, que por padrão é
de 5V no Arduino.
𝑣𝑎𝑙𝑜𝑟𝐴𝐷𝐶 é o valor lido pelo ADC, que varia de 0 a 1023.
Cálculo da Resolução - ADC
Por exemplo, se a tensão de entrada na entrada analógica do Arduino for 2,5V e a
tensão de referência do ADC for 5V, podemos calcular o valor correspondente em
valor_ADC da seguinte forma:

2,5
𝑣𝑎𝑙𝑜𝑟𝐴𝐷𝐶 = ( ) ∗ 1024
5

𝑣𝑎𝑙𝑜𝑟𝐴𝐷𝐶 = 512
Funções entradas analógicas -
Arduino
Funções entradas analógicas -
Arduino
analogRead()

Lê o valor de um pino analógico especificado.

A placa Arduino possui um conversor analógico-digital 10


bits de 6 canais (8 canais nos Mini e Nano, 16 no Mega, 7
canais em placas MKR).

Isso significa que este irá mapear tensões entre 0 e a


tensão operacional (5V ou 3.3V) para valores inteiros
entre 0 e 1023
Funções entradas analógicas -
Arduino
analogRead()

Sintaxe

analogRead(pino)

Parâmetros

pino: o nome do pino de entrada analógica que se quer


ler (A0 a A5 na maioria das placas, A0 a A6 em placas
MKR, A0 a A7 no Mini e Nano, A0 a A15 no Mega).
Comunicação serial
Comunicação serial
Comunicação serial
Serial.begin()

Configura a taxa de transferência em bits por segundo (baud rate)


para transmissão serial.

Para comunicação com um computador, através do Monitor Serial da


IDE, use uma das taxas listadas no canto inferior direito de sua janela.
Você pode, no entanto, especificar outras taxas - por exemplo, para
comunicar nos pinos 0 e 1 com um componente que requer uma taxa
de transferência peculiar.

Um segundo argumento opcional configura o número de bits no


dado, paridade, e bits de parada (stop bits). Caso esse argumento não
seja especificado, o padrão é 8 bits de dados, sem paridade e um
stop bit.
Comunicação serial
Serial.begin()

Sintaxe
Serial.begin(speed) Serial.begin(speed, config)

Parâmetros
Serial: objeto porta serial.

speed: a taxa de transmissão em bits per second (baud rate)

config: configuração do número de bits por transmissão, paridade, e


stop bits.
Comunicação serial
Serial.print()

Imprime dados na porta serial em como texto ASCII (facilmente


legível, diferentemente dos valores binários).

Essa função pode assumir várias formas. números são impressos


usando um caractere ASCII para cada dígito.

Floats são similarmente impressos como dígitos ASCII, padronizados


com duas casas decimais.

Bytes são enviados como um único caractere.


Comunicação serial
Serial.print()

Sintaxe
Serial.print(val)
Serial.print(val, formato)

Parâmetros
Serial: objeto porta serial. Veja a lista de portas seriais disponíveis em
cada placa no Serial - Página principal

val: o valor a ser impresso - qualquer tipo de dados

formato: especifica a base do numeral (para tipos de dados int) ou


número de casas decimais (para tipos de dados float)
Comunicação serial
Serial.println()

Imprime dados na porta serial como texto ASCII seguido pelo


caractere de retorno de carruagem (ASCII 13, ou '\r') e um caractere
de nova linha (ASCII 10, ou '\n’).

Essa função assume as mesmas formas que Serial.print().


Atividade Prática – Conversor ADC
Objetivos:

-Controlar uma entrada analógica;

- Ver dados pelo computador;

- Múltiplos estados de um potenciômetro;

- Ler uma entrada analógica;

- Controlar a luminosidade de um Led;


Atividade Prática – Conversor ADC
Atividade Prática – Conversor ADC

Materiais Utilizados
Nome Quantidade Componente
U1 1 Arduino Uno R3
R1 1 Resistor 330 Ω
RPOT2 1 Potenciômetro 10 kΩ
D1 1 Led Vermelho
Atividade Prática – Conversor ADC
Atividade Prática – Conversor ADC

Você também pode gostar