ARDUINO BÁSICO
Conversor de Digital para Analógico e Analógico para Digital
Montar e compreender o funcionamento de convesores Digital/Analógio e Analógico/Digital.
Material necessário:
1 Computador
1 Arduino Uno
1 Cabo USB
4 resistores iguais 1K ou superior
1 resistor iguais 2K2
2 resistores de 10K
8 resistores iguais (de 1K até 22K)
1 Potenciômetro de 50K ou 100K
1 Protoboard
Cabos – jumper macho
1 CI LM324
1 CI 7404
1 CI 7409
1 CI 7432
3 resistores de 300R a 470R
3 LED´S
Referêncial teórico
Sinal Analógico e Digital
Os termos analógico e digital se referem à forma como o sinal transmitido varia com o tempo. Quando o
sinal (sua amplitude) varia continuamente ao longo do tempo, ou seja, possui um valor diferente a cada
instante de tempo, ele é dito analógico. Um exemplo desse tipo de sinal é a nossa voz. A Figura abaixo
ilustra um sinal analógico.
Quando o sinal (sua amplitude) sempre se mantém constante durante um intervalo de tempo, ele é dito
digital. A transmissão de sinais digitais utiliza intervalos de tempo de mesma duração (chamado de
intervalo de sinalização), e em cada intervalo o sinal pode ter um valor diferente, mas que é fixo dentro
do intervalo. O número de possíveis valores que o sinal pode assumir é predeterminado. Um exemplo
seria utilizar apenas dois possíveis valores, em que um deles representaria o número 0 (zero) e o outro o
número 1 (um). A Figura a seguir ilustra um sinal digital que pode assumir apenas dois valores, sendo
que cada coluna representa um intervalo de tempo.
ARDUINO BÁSICO
Conversor DAC e ADC
Os conversores são circuitos que transformam grandezas analógicas em digitais ou vice-versa. Por
exemplo, a saída de tensão analógica de um sensor de temperatura, do tipo termistor, deve ser
digitalizada para ser processada e visualizada num termômetro digital. A operação inversa também é
usada, como no caso da aplicação prática em que um sinal de voz digitalizada deverá ser transformado
em sinal analógico antes de entrar num fone de ouvido, dispositivo que exige sinal analógico.
OBS: Utilizar material de apoio.
Conversor D/A – ADC
Os conversores digital-analógicos são consideravelmente mais simples que os analógico-digitais. Na
realidade, vários tipos de conversores analógico-digitais usam conversores digital-analógicos como parte
de seu circuito.
Passo 1: Monte o circuito com resistores disponíveis. O conversor utiliza resistências poderadas.
Passo 2: Calcule a tensão de VS
A B C VS (V)
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
Passo 3: Escreva o código no arduino (não salve)
int pot = A0;//terminal do meio de um potenciômetro conectado ao pino analógico 0
float tensao = 0;// variável para guardar o valor da tensão
float valor = 0;// variável para guardar o valor lido
//int digito[8][3] = {
// { LOW, LOW, LOW }, // 0
// { LOW, LOW, HIGH }, // 1
// { LOW, HIGH, LOW }, // 2
// { LOW, HIGH, HIGH }, // 3
// { HIGH, LOW, LOW }, // 4
// { HIGH, LOW, HIGH }, // 5
// { HIGH, HIGH, LOW }, // 6
// { HIGH, HIGH, HIGH } // 7
//};
//int BIT0 = 2;
ARDUINO BÁSICO
//int BIT1 = 3;
//int BIT2 = 4;
//int num = 0;
void setup() {
Serial.begin(9600);// configura a porta serial
pinMode(pot, INPUT);// configura pot como entrada
// pinMode(BIT0, OUTPUT);// configura BITO como entrada
// pinMode(BIT1, OUTPUT);// configura BIT1 como entrada
// pinMode(BIT2, OUTPUT);// configura BIT2 como entrada
}
void loop() {
// digitalWrite(BIT0, digito[num][0]);
// digitalWrite(BIT1, digito[num][1]);
// digitalWrite(BIT2, digito[num][2]);
// num++;
// if (num > 7)
// num = 0;
valor = (analogRead(pot));// lê o pino de entrada
tensao = (valor*5)/1023;//calcula tensão para ref = 5V
Serial.println(tensao);// imprime o valor na porta serial
delay(1000);
}
Passo 4: Utilizando cabos conectados aos pontos ABC. Execute:
1 para cabo conectado ao 5V
0 para cabo desconectado.
Passo 5: Confirme os valores lidos no monitor serial com a tabela.
Passo 6: Monte ocircuito. O conversor usa a chamada malha R-2R, nome dado em razão da existência
de dois valores de resistências no circuito de entrada (R e 2R).
Passo 7: Calcule a tensão de VS
A B C VS (V)
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
ARDUINO BÁSICO
Passo 8: Utilizando cabos conectados aos pontos ABC. Execute:
1 para cabo conectado ao 5V
0 para cabo conectado ao GND
Passo 9: Confirme os valores lidos no monitor serial com a tabela.
Passo 10: Monte um circuito LED/Resistor conectado do ponto A para o GND; do ponto B para o GND
E do ponto C para o GND.
Passo 11: Conecte o ponto A no pino 2; o ponto B no pino 3; o ponto C no pino 4.
Passo 12: Descomente as linhas do código e escreva no arduino.
Passo 13: Abra o plotter serial. Observe a contagem binária de 0 a 7 convertida em analógico. (Onda
dente de serra).
Conversor A/D – DAC
Um conversor A/D transforma um sinal analógico, contínuo no tempo, num sinal amostrado, discreto no
tempo, quantizado dentro de um número finito de valores inteiros, determinado pela resolução
característica do conversor em bits (8, 10, 12, 16 etc). Por exemplo, num conversor de 8 bits, o sinal de
entrada é transformado em amostras com os valores entre 0 e 255 (256=28).
O sinal a ser convertido por um conversor A/D dificilmente se acomoda diretamente à faixa de tensão
de entrada do conversor. Ele precisa ser transformado adequadamente para isso. Em geral a tensão de
entrada de um conversor A/D é definida como a tensão de alimentação do conversor (+ 5 ou 3,3 V, por
exemplo). Para realizar essa adaptação muitas vezes é necessário realizar um condicionamento do sinal,
tipicamente com auxílio de circuitos analógicos passivos ou ativos.
Há diversas técnicas para a conversão A/D: conversão paralela, por contagem, de rampa simples, rampa
dupla, sigma-delta entre outras.
Principais tipos de conversores ADC
Na verdade, existem cinco tipos principais de ADCs em uso hoje:
ADC de aproximação sucessiva (SAR)
Delta-sigma (ΔΣ) ADC
ADC de inclinação dupla
ADC com pipeline
Flash ADC
Conversor (flash) Instantâneo de 3 bits
O conversor flash ou instantâneo não usa sinal de clock, pois não há necessidade de sequenciamento de
suas operações. A conversão ocorre de uma só vez. Quando muda o valor da entrada analógica, as
saídas dos comparadores também mudam, forçando a mudança na saída do codificador. O tempo de
conversão é o tempo necessário ao aparecimento de uma nova saída digital, em resposta a uma
mudança ocorrida na entrada analógica VA, e depende única e exclusivamente do retardo de
propagação introduzido pelos comparadores e pela lógica de codificação. Por isso, os conversores
instantâneos têm tempos de conversão extremamente pequenos. Por exemplo, o AD9002, da Analog
Devices, é um conversor A/D instantâneo de oito bits, com tempo de conversão menor do que 10ns.
Conclusões
A utilização de conversores A/D é o principal recurso para trazer para dentro do seu processador os
sinais analógicos do mundo real. É necessário, porém, ter um bom conhecimento sobre o
funcionamento, limitações e aplicações do conversor A/D para que se possa especificá-lo corretamente
e garantir que ele atenda às necessidades do seu projeto.
ARDUINO BÁSICO
Projeto de um circuito ADC de 2 bits usando o CI comparador LM324
O LM324 é mais adequado para conversores analógicos para digitais porque tem quatro amplificadores
operacionais incorporados, requer apenas Vcc (5 V) e aterramento.
Componentes necessários para ADC
Resistores
CI LM324
CI 7404
CI 7432
CI 7409
Etapas de projeto do conversor analógico para digital
Tabela verdade do ADC
K-Maps para o design do ADC
Diagrama de circuito de ADC usando LM324
O sinal analógico alimentado à combinação paralela de comparadores produzirá um sinal codificado
correspondente ao sinal analógico de entrada.
O sinal codificado é então aplicado ao Conversor de Código Digital (um circuito combinacional), que
ARDUINO BÁSICO
produzirá uma saída binária.
Os comparadores comparam continuamente a tensão de referência no terminal inversor e a
tensão analógica no terminal não inversor.
A tensão de referência de cada comparador é derivada da rede de divisor de tensão.
Tensão de referência do comparador inferior: Vcc (1/4) = Vcc/4
Tensão de referência do comparador do meio: Vcc (2/4) = Vcc/2
Tensão de referência do comparador superior: Vcc (3/4) = 3Vcc/4
Resolução do ADC
O termo Resolução é usado para descrever a precisão do ADC , resolução significa o número de valores
distintos que o ADC pode gerar no intervalo de valores analógicos. Os valores de saída estão sempre em
formato binário, portanto a resolução é tipicamente expressa em bits. Consequentemente, essas saídas
são potências de 2. Por exemplo, um ADC com resolução de 4 bits pode codificar uma entrada analógica
em 16 níveis diferentes, já que 2X4 = 16 . Em nosso circuito temos 2 bits de saída, então a resolução
é 2X2 = 4 . Entretanto, a complexidade do circuito útil aumenta à medida que a resolução aumenta.
Passo 14 : Monte o circuito abaixo adicionando um LED em X e outro LED em Y.
Componentes Pinagem: LM324; 7404; 7409; 7432
Passo 15 : Monte o circuito divisor de tensão com potenciometro de 100K e ligue o pino central ao
“analog input” do conversor.
ARDUINO BÁSICO
Passo 16 : Alimente com 5V e GND do Arduino. Gire o potenciômetro e observe a saida binária nos
LEDs.
Passo 17 : Construa o circuito abaixo em um simulador. O circuito demostra o funcionamento de
aproximação sucessiva (SAR) utilizado no arduino (Atmega 328P)
https://www.falstad.com/circuit/circuitjs.html