#include const int lm35_pin = 34; /* LM35 O/P pin */ #define ADC_VREF_mV 3300.0 // in millivolt #define ADC_RESOLUTION 4096.0 #define FILTER_LEN 15 uint32_t AN_Pot1_Buffer[FILTER_LEN] = {0}; float readADC_Avg(int pin) { float avg = analogRead(pin); for (int i = 0; i < 10; i++) { avg = (avg + analogRead(pin)) / 2; delay(20); } return avg; } void setup() { Serial.begin(115200); pinMode(lm35_pin, INPUT); analogSetClockDiv(255); } void loop() { float analogValue = readADC_Avg(lm35_pin); float millivolts = analogValue * (ADC_VREF_mV / ADC_RESOLUTION) * 2; // float millivolts = analogReadMilliVolts(lm35_pin); float celsius = millivolts / 10; // 6.5 is the callibration offset measured using an oscilliscope Serial.print("raw= "); Serial.print(analogValue); Serial.print(" in DegreeC= "); Serial.println(celsius); delay(1000); }