Um DAC(Digital-to-Analog Converter) é um circuito eletrônico capaz de converter uma grandeza digital (por exemplo um código binário) em uma grandeza analógica (normalmente uma tensão).
Entre os conversores DA, chamamos a atenção para a escada de rede R/2R, que provê um recurso simples para converter informação digital para uma saída analógica. Apesar de ser simples em questão de funções e design, usando resistores em uma rede de escada R/2R para uma aplicação real requer atenção para como o dispositivo é especificado. Erros de saída causados pelas tolerâncias de resistores são muitas vezes negligenciados no design. Recomendamos o uso de resistores de precisão.
Neste experimento proposto, utilizaremos apenas 3 pinos do microcontrolador para comandar um conversor DA de 8 bits. Para isso, utilizaremos o shift register 74HC595 que você encontra um datasheet neste link.
A alimentação do operacional deve
ser 12V ou maior. O nível lógico alto do shift register deve ser 5V
para que a saída máxima do DA seja 10V.
Abaixo, a equação de saída do conversor proposto:
Utilizarei uma biblioteca desenvolvida para o 74HC595 que será assunto de uma outra postagem. Para este post, precisamos entender apenas a função send_out_74hc595(tamanho,dado). Com está função, conseguimos escrever até oito bits da saída do deslocador, conforme a palavra "dado".
No arquivo do final do post há a simulação do Proteus. Eu montei este mesmo circuito na protoboard e consegui erros abaixo de 2% na saída. Atenção para o fato que eu não utilizo cristal, apenas o oscilador interno do PIC, configurado no inicio do programa
setup_oscillator(OSC_8MHZ)
Circuito:
No programa exemplo, escrevo constantemente o valor 100 no 595, que equivale a 3,9V na saída.
Esta tensão é dada pela equação:
No link abaixo, você baixa meu código completo e a simulação no Proteus 8.1.




Nenhum comentário:
Postar um comentário