O Site do Hardware Livre - OSHW

Implementando um ADC com um Microcontrolador, AO e resistores (MIC085)

Em seu Application Note 5074 de maior de 2012, a Maxim (WWW.maximintegrated.com) sugere uma maneira simples de se implementar um conversor analógico-para-digital usando componentes comuns e um microcontrolador. O documento, de autoria de Gordon Lee, pode ser acessado na seção de documentação do site da Maxim e baixado na íntegra em sua versão em inglês,

A idéia básica, mostrada na figura consiste em se implementar um ADC de 8 bits com um amplificador operacional comum, resistores de precisão e um microcontrolador que, no caso, foi o MAXQ2000.

 


 

Os resistores de R3 a R18 formam a rede R/2R que determina a conversão, obtendo-se uma tensão que é aplicada ao amplificador operacional U1.

O amplificador operacional é usado como comparador, comparando a saída do CAC e a entrada analógica.

A saída de dados do microcontrolador varia ciclicamente numa ordem decrescente, aplicando o sinal nas entradas DAC. Cada saída instantânea do DAC é comparada com a tensão analógica. O circuito trava quando a saída e menor que a entrada analógica, obtendo-se então na entrada DAC a saída ADC.

Abaixo a listagem da Maxim para o microcontrolador usado:


#include "bitbanging_iomaxq200x.h"

void main(void)
{ 
  int wait;
  char DAC_out;

  PD0=0xFF;  //Sets IO port 0 to output (This port shows the ADC result)

  PD3=0xFF;  //Sets IO port 3 to output (This port connects to the DAC input)

  PD6_bit.bit2=0; //Sets IO port 6, pin 2, to input
		   //This pin connects to the output of the comparator

  while(1)
  {
    //Set DAC output to the MAX (DAC output = 3.3v) at the beginning
//Then decrease the DAC output 1 LSB at a time, 
//until the output of the comparator toggles low
    for(DAC_out=0xFF; DAC_out>=0; DAC_out--)
    {
      PO3=DAC_out;  //Sets the value of the output port 3 to DAC_out

      //wait for the output of the comparator to settle
      for(wait=0; wait<500; wait++); 

      //if the DAC output = 0V, and the output of the comparator is still 1
      if(PI6_bit.bit2==1 && DAC_out==0)
        PO0=0;  //Sets the ADC result = 0
      else if(PI6_bit.bit2==1)
        continue;
      else  //if the output of the comparator becomes 0
      {
        PO0=PO3;  //the ADC result = the value of the output port 3
        break;
      }
    }
  }
}

 

 

 

BUSCAR DATASHEET

 


N° do componente 

(Como usar este quadro de busca)

 

Opinião

As Atividades do Momento (OP193)

Tivemos duas semanas cheias com lançamentos de livros, eventos, entrevistas e encontros importantes que certamente reverterão em benefícios para aqueles que nos acompanham, tanto no nosso site como em nosso canal de vídeo. Começamos pela entrevista dada ao Luis Carlos Burgos do site Burgos Eletrônica em que falamos um pouco de nossa vida profissional e de nossas pretensões para o futuro.

Leia mais...

Amigos
Quando meus amigos são caolhos, olho-os de perfil. (Quand mes amis sont borgnes , jê lês regarde de profit.)
Joubert (1769 - 1799) - Penamentos - Ver mais frases


Instituto Newton C Braga
Entre em contato - Como Anunciar - Políticas do Site

Apoio Social
Lions Clube de Guarulhos Sul SOS Mater Amabilis
Advertise in Brazil
If your business is Electronics, components or devices, this site is the correct place to insert your advertisement (see more)