atmega 328 ADC a voltaje

0

por favor, ayúdeme a convertir el valor de ADC (0-170 es el valor máximo de ADC para la entrada) a voltaje (0-230), en la función de mapa no obtengo la linealidad.                                           gracias

#include <string.h>
#include <stdlib.h>
#include <avr/pgmspace.h>
boolean ConversionFlag = 0;
unsigned long int  ArrayAdcResult=0,  IntAdcResult=0;
unsigned long int ConvertionCount=0 ;
unsigned int AdcTempValue=0 ;
unsigned int CheckingCount = 10;

void setup() {
 cli();
   Serial.begin(9600);
   DIDR0=0x3F;
    ADMUX = 0x40;                                      
    ADCSRA = 0xAC;   
    ADCSRB = 0x40;               // AD channels MUX on, free running mode
    bitWrite(ADCSRA, 6, 1);      // Start the conversion by setting bit 6 
    sei();                       // INTERRRUPT ENABLE


          }
float x;
int y;
void loop() {


  bitWrite(ADCSRA, 6, 1);

   if(ConversionFlag  )
     {

          ArrayAdcResult=IntAdcResult/ConvertionCount;

      // x= map(ArrayAdcResult,0,170,0,230);


      Serial.println(ArrayAdcResult);
            ConversionFlag = 0;
             IntAdcResult = 0;
             ConvertionCount=0;          

          delay(1000);


   }
}

ISR(ADC_vect) {
    ConvertionCount++; 
    AdcTempValue=ADCW;
    IntAdcResult += AdcTempValue;
    if(ConvertionCount == CheckingCount){
      ConversionFlag = 1;
    }
 }
    
pregunta midhun

0 respuestas

Lea otras preguntas en las etiquetas