Arduino and Soil Moisture Sensor

In this article, we are going to interface a Soil moisture sensor FC-28 with Arduino. This sensor measures the volumetric content of water inside the soil and gives us the moisture level as output. The sensor is equipped with both analog and digital output, so it can be used in both analog and digital mode. In this article, we are going to interface the sensor in both modes. So let’s begin our tutorial on interfacing Arduino and Soil moisture sensor.

Arduino and Soil Moisture Sensor

Working of Sensor

The soil moisture sensor consists of two probes which are used to measure the volumetric content of water. The two probes allow the current to pass through the soil and then it gets the resistance value to measure the moisture value.

When there is more water, the soil will conduct more electricity which means that there will be less resistance. Therefore, the moisture level will be higher. Dry soil conducts electricity poorly, so when there will be less water, then the soil will conduct less electricity which means that there will be more resistance. Therefore, the moisture level will be lower.

This sensor can be connected in two modes; Analog mode and digital mode. First, we will connect it in Analog mode and then we will use it in Digital mode.


The specifications of the soil moisture sensor FC-28 are as follows

Input Voltage 3.3 – 5V
Output Voltage 0 – 4.2V
Input Current 35mA
Output Signal Both Analog and Digital

 Pin Out – Soil Moisture Sensor

The soil Moisture sensor FC-28 has four pins

  • VCC: For power
  • A0: Analog output
  • D0: Digital output
  • GND: Ground
READ  How to Build an Arduino Voice Controlled TV Remote

The Module also contains a potentiometer which will set the threshold value and then this threshold value will be compared by the LM393 comparator. The output LED will light up and down according to this threshold value.

Analog Mode – Interfacing Soil Moisture Sensor and Arduino

To connect the sensor in the analog mode, we will need to use the analog output of the sensor. When taking the analog output from the soil moisture sensor FC-28, the sensor gives us the value from 0-1023. The moisture is measured in percentage, so we will map these values from 0 -100 and then we will show these values on the serial monitor.

You can further set different ranges of the moisture values and turn on or off the water pump according to it.

Circuit Diagram

The connections for connecting the soil moisture sensor FC-28 to the Arduino are as follows.

  • VCC of FC-28 to 5V of Arduino
  • GND of FC-28 to GND of Arduino
  • A0 of FC-28 to A0 of Arduino


Read More:  Arduino and Soil Moisture Sensor

This Post / Project can also be found using search terms:

  • soil moisture conten arduino pdf

Leave a Comment

= 4 + 1

(Spamcheck Enabled)

Read previous post:
DIY Digital Tape Measure
DIY Digital Tape Measure

Hey Everyone Today I hope to teach you all about ultrasonic sensors and hopefully by the end you'll have a...

Scroll to top