Create file for the soil moisture sensor with some logic
This commit is contained in:
parent
f5bc52ac3a
commit
566fcda0cc
43
capacitiveSoilMoistureSensor.ino
Normal file
43
capacitiveSoilMoistureSensor.ino
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
Code for the Capacitive Soil Moisture Sensor
|
||||||
|
*/
|
||||||
|
|
||||||
|
const int numReadings = 10;
|
||||||
|
|
||||||
|
int readings[numReadings]; // the readings from the analog input
|
||||||
|
int readIndex = 0; // the index of the current reading
|
||||||
|
int total = 0; // the running total
|
||||||
|
int average = 0; // the average
|
||||||
|
|
||||||
|
int inputPin = 12;
|
||||||
|
|
||||||
|
void setupCapacitiveSoilMoistureSensor() {
|
||||||
|
|
||||||
|
Serial.begin(9600);
|
||||||
|
|
||||||
|
for (int thisReading = 0; thisReading < numReadings; thisReading++) {
|
||||||
|
readings[thisReading] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void loopCapacitiveSoilMoistureSensor() {
|
||||||
|
// subtract the last reading:
|
||||||
|
total = total - readings[readIndex];
|
||||||
|
// read from the sensor:
|
||||||
|
readings[readIndex] = analogRead(inputPin);
|
||||||
|
// add the reading to the total:
|
||||||
|
total = total + readings[readIndex];
|
||||||
|
// advance to the next position in the array:
|
||||||
|
readIndex = readIndex + 1;
|
||||||
|
|
||||||
|
// if we're at the end of the array...
|
||||||
|
if (readIndex >= numReadings) {
|
||||||
|
// ...wrap around to the beginning:
|
||||||
|
readIndex = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// calculate the average:
|
||||||
|
average = total / numReadings;
|
||||||
|
Serial.println(average);
|
||||||
|
delay(1); // delay in between reads for stability
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user