Automatic Water Level Controller

About: I make hobbyist stuffs and play with electronics follow me to know more

Hi all , are you looking to control your tank water level automatically here's the post for you, how can water level be controlled automatically?

There are many ways by using a float sensor to determine the water level, or using probes to detect peak and low level in the tank.

How to measure water level without using probe or contacting with water?

yeah there is a way just using a Ultrasonic sensor, this is very simple where the level of water is measured using ultrasonic sensor which gives the depth , by determining the tank depth we can set the maximum and minimum level

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Circuit Diagram

This water level controller uses only two components apart from arduino

1. HC-SR04 Ultrasonic sensor

2. relay board

Step 2: Working Model

Note : give the distance according to your specification, I've used a small bucket where 25 is the minimum level to turn ON the motor and if the water level reaches a distance of 10cm or lesser than that the motor automatically stops.

Step 3: Arduino Program


HC-SR04 Ping distance sensor:

VCC to arduino 5v

GND to arduino GND

Echo to Arduino pin 9

Trig to Arduino pin 8*/

#define echopin 9 // echo pin

#define trigpin 8 // Trigger pin

int maximumRange = 50;

long duration, distance;

void setup() {

Serial.begin (9600);

pinMode (trigpin, OUTPUT);

pinMode (echopin, INPUT );

pinMode (4, OUTPUT);

pinMode (13,OUTPUT);


void loop ()







duration=pulseIn (echopin,HIGH);

distance= duration/58.2;

delay (50);



if (distance >= 25 ){

digitalWrite (4,HIGH);

digitalWrite (13,HIGH);


else if (distance <=10) {

digitalWrite (4,LOW);

digitalWrite (13,LOW);



If you want the same project using labview and arduino check this out here:

Formlabs Contest

Participated in the
Formlabs Contest

Be the First to Share


    • Made with Math Contest

      Made with Math Contest
    • Multi-Discipline Contest

      Multi-Discipline Contest
    • Robotics Contest

      Robotics Contest

    15 Discussions


    i need a circuit diagram for this project

    pls post the circuit diagram

    Kaushik Ravi

    2 years ago

    I am a beginner .. so can u just tell me how to connect arduino to relay to motor


    2 years ago

    sir i have confusion which relay i use for arduino 328


    Reply 2 years ago

    Get a relay module of either 5V or 12V based on power supply of arduino.Feed in the power and use the digitalwrite method to set any pin high like pin 13.This pin should be connected with the relay.

    And don't use this method.The sensor can't withhold the moisture and humid condition of the tank and will stop working soon.I had tried this and it failed in 2 days because of the sensor.Use magnetic float sensor instead


    3 years ago

    Hiw much volt is the motor


    3 years ago

    Hi, before starting the motor, I need to check the water level at the ground level tank also to prevent dry run. In which case, I need to put another ultrasonic sensor for the ground tank. Can you pls include a step to accommodate one more sensor, so when the water level goes down in the overhead tank, the system checks for the water level in the sump before starting the motor? Thanks.

    will this program work if i use probes instead of ultrasonic sensor


    4 years ago

    hey, please can u explain more about the setup


    4 years ago on Introduction

    Hi, Could you please include a step to show the current water level with the 16x2 lcd screen?

    1 reply

    This instructable I've made for only arduino, it'd be inappropriate if I add labview file to this, I'll post a labview tutuorial soon