int inputPin = A2; // deklarasi pinout
int dataADC;
float NilaiConductivity;
float Nilaitds;
//Deklarasi rata- rata adc
const int numReadings = 20;
int readings[numReadings]; // pembacaan dari input analog
int readIndex = 0; // indeks pembacaan saat ini
int total = 0; // Total berjalan
int averageADC = 0; // Rata- rata ADC
void setup() {
Serial.begin (9600);
for (int thisReading = 0; thisReading < numReadings; thisReading++) {
readings[thisReading] = 0;
}
}
void loop() {
dataADC = analogRead(inputPin); //Baca Nilai ADC di pin A2
Serial.print("Nilai ADC: "); Serial.print(dataADC); Serial.println(" ADC "); //Serial Monitor Nilai ADC
// Pengurangan pembacaan terakhir:
total = total - readings[readIndex];
// pembacaan sensor:
readings[readIndex] = analogRead(inputPin);
// tambahkan pembacaan sensor ke total:
total = total + readings[readIndex];
// selanjutnya di array atau masuk himpunan:
readIndex = readIndex + 1;
// jika berada diakhir himpunan..
if (readIndex >= numReadings) {
// ...diulang dari awal:
readIndex = 0;
}
// hasil rata2 ADC:
averageADC = total / numReadings;
Serial.print("Rata-rata Nilai ADC: "); Serial.print(averageADC); Serial.println(" ADC "); //Serial Monitor Nilai ADC
NilaiConductivity = (0.2142 * averageADC) + 494.93; // regresi linear datasheet (uSiemens)
Serial.print("Conductivity: "); Serial.print(NilaiConductivity); Serial.println(" μS "); //Serial Monitor Nilai Conductivity
Nilaitds = (0.3417 * averageADC) + 281.08; // regresi linear datasheet (ppm)
Serial.print("TDS: "); Serial.print(Nilaitds); Serial.println(" μpm "); //Serial Monitor Nilai TDS
Serial.println();
delay(100);
}