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 próximas novidades (OP190)

Mais uma vez levamos nossa palavra a todos que nos acompanham, tratando das novidades, fazendo alguns comentários e até tirando algumas dúvidas que notamos serem gerais. Continuamos com nossos eventos, com palestras que em breve proferiremos na FMU e na Faculdade de Medicina de Bauru.

Leia mais...

Velhice e Mocidade
Estuda-se mais na velhice para bem morrer do que se estudou na mocidade para bem viver.
Marquês de Maricá (1773 - 1848) - Máximas - 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)