I'm working on my final project and I'm kind stuck in this code. I have tried many times but every time it gave me wrong results. My question is: if there anyone who has experience in Arduino code could just explain each line in this code.
#define SERIESRESISTOR 560
// What pin to connect the sensor to
#define NUMSAMPLES 15
int samples[NUMSAMPLES];
#define SENSORPIN A0
#define FLAP 1
#define FUDGE 0.3
void setup(void) {
Serial.begin(9600);
analogReference(EXTERNAL);
}
void loop(void) {
uint8_t i;
float average;
float waterlevel;
float lastwaterlevel=0;
// take N samples in a row, with a slight delay
for (i=0; i< NUMSAMPLES; i++) {
samples[i] = analogRead(SENSORPIN);
delay(10);
}
// average all the samples out
average = 0;
for (i=0; i< NUMSAMPLES; i++) {
average += samples[i];
}
average /= NUMSAMPLES;
//Serial.print("Average analog reading ");
//Serial.println(average);
// convert the value to resistance
average = 1023 / average - 1;
average = SERIESRESISTOR / average;
//Serial.print("Sensor resistance ");
//Serial.println(average);
waterlevel = 0;
waterlevel= -1 * 0.006958 * average + 11.506958+ FUDGE;
if (lastwaterlevel<(waterlevel-FLAP)||lastwaterlevel>(waterlevel+FLAP))
{
Serial.print("Water level (inches) ");
Serial.println(waterlevel);
}
delay(1000);
lastwaterlevel=waterlevel;
}
Thank you in advance!