Arduino Water Level Display – Real-Time Level on I2C LCD

by RonFrtek in Circuits > Arduino

62 Views, 0 Favorites, 0 Comments

Arduino Water Level Display – Real-Time Level on I2C LCD

💧 Monitor Real-Time Water Level with Arduino & Visuino!

In this Visuino project, you’ll learn how to easily measure and display water levels using a water level sensor and an I2C LCD — all without writing a single line of code!

📟 The LCD shows the real-time water level value from 0.0 to 1.0 (so you can see any level in between, like 0.3 or 0.7).

💡 On the second row, it also displays a status label — Low, Medium, or High — based on the thresholds you set in Visuino.

Perfect for learning how to:

✅ Read water level using analog or digital sensors

✅ Display live readings and status on an LCD

✅ Build automatic monitoring or control systems

✅ Use Visuino visual programming to design Arduino projects fast and easily

📥 Download the Visuino project file at the bottom

🎥 Watch the full video to see it in action!

What You Will Need

water-level-sensor.jpg
lcd-i2c.jpg
VisuinoAdvrtisemen_ArduinoMatter-s.png
jumper-wires.jpg
FZEK4WBK3XGYAP0.LARGE.jpg
  1. Arduino UNO (Or any other Arduino)
  2. Water Level sensor
  3. LCD I2C Display
  4. Jumper wires
  5. Visuino program: Download Visuino


The Circuit

2025-10-28_18-40-18.jpg
  1. Connect LCD Display pin [SCL] to Arduino pin [SCL]
  2. Connect LCD Display pin [SDA] to Arduino pin [SDA]
  3. Connect LCD Display pin [VCC] to Arduino pin [5v]
  4. Connect LCD Display pin [GND] to Arduino pin [GND]
  5. Connect Water Level Sensor pin[S] to Arduino analog pin[A0]
  6. Connect Water Level Sensor pin[-] to Arduino ground pin[GND]
  7. Connect Water Level Sensor pin[+] to Arduino positive pin[5V]


Start Visuino, and Select the Arduino UNO Board Type

select-board-uno.jpg
Visuino-Select-Board-UNO.jpg

Start Visuino as shown in the first picture Click on the "Tools" button on the Arduino component (Picture 1) in Visuino When the dialog appears, select "Arduino UNO" as shown on Picture 2

In Visuino Add Components

2025-10-28_19-02-29.jpg
2025-10-28_19-09-53.jpg
2025-10-28_19-10-20.jpg
2025-10-28_19-11-19.jpg
  1. Add "Analog Multi Source" component
  2. Add 2X "Compare Analog Value" component
  3. Add "Compare Analog Range" component
  4. Add "Text Value" component
  5. Add "Liquid Crystal Display (LCD) - I2C" component

In Visuino Set Components

2025-10-28_19-29-16.jpg
2025-10-28_19-28-59.jpg
2025-10-28_19-28-43.jpg
2025-10-28_19-28-28.jpg
2025-10-28_19-27-24.jpg
2025-10-28_19-27-53.jpg
2025-10-28_19-28-07.jpg
2025-10-28_19-27-06.jpg
2025-10-28_19-26-43.jpg
2025-10-28_19-26-04.jpg
2025-10-28_19-26-25.jpg
  1. Select "MultiSource1" and in the properties window set "Output Pins" to 4
  2. Select "Compare1" and in the properties window set "Compare Type" to ctSmallerOrEqual and "Value" to 0.3 << this is the value for "LOW" level, adjust it according to your needs
  3. Select "CompareRange1" and in the properties window set "Range">"Max" to 0.4 and "Range">"Min" to 0.3<< this is the value for "MEDIUM" level, adjust it according to your needs
  4. Select "Compare2" and in the properties window set "Compare Type" to ctBiggerOrEqual and "Value" to 0.4 << this is the value for "HIGH" level, adjust it according to your needs


  1. Double click on the "TextValue1" and in the Elements window drag "Set Value" to the left side and in the properties window set "Value" to LOW
  2. Drag another "Set Value" to the left side and in the properties window set "Value" to MEDIUM
  3. Drag another "Set Value" to the left side and in the properties window set "Value" to HIGH
  4. Double click on the "LiquidCrystalDisplay1" and in the Elements window drag "Text Field" to the left side and in the properties window set "Initial Value" to VALUE: and "Width" to 6
  5. Drag another "Text Field" to the left side and in the properties window set "Row" to 1
  6. in the Elements window drag "Analog Field" to the left side and in the properties window set "Column" to 7 and "Width" to 10 and "Precision" to 2



In Visuino Connect Components

2025-10-28_19-38-23.jpg
water-level-lcd.png
  1. Connect Arduino Analog pin [ 0 ] to "MultiSource1" pin [In]
  2. Connect "LiquidCrystalDisplay1" pin [I2C Out] to "Arduino.I2CChannels.I2C" pin [In]
  3. Connect "MultiSource1" Pin [0] to "LiquidCrystalDisplay1" > "AnalogField1" pin [In]
  4. Connect "MultiSource1" Pin [1] to "Compare1" pin [In]
  5. Connect "MultiSource1" Pin [2] to "CompareRange1" pin [In]
  6. Connect "MultiSource1" Pin [3] to "Compare2" pin [In]
  7. Connect "Compare1" pin [Out] to "TextValue1" > "Set Value1" Pin [In]
  8. Connect "CompareRange1" pin [Out] to "TextValue1" > "Set Value2" Pin [In]
  9. Connect "Compare2" pin [Out] to "TextValue1" > "Set Value3" Pin [In]
  10. Connect "TextValue1" Pin[Out] to "LiquidCrystalDisplay1" > "TextField2" pin [In]

Generate, Compile, and Upload the Arduino Code

Visuino-Compile-UNO.jpg

In Visuino, at the bottom click on the "Build" Tab, make sure the correct port is selected, then click on the "Compile/Build and Upload" button.

Play

Congratulations! You have completed your project with Visuino. Also attached is the Visuino project, that I created for this tutorial, you can download it here and open it in Visuino: https://www.visuino.eu