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;
}
}