Managing liquid levels in tanks is a common challenge across home, agricultural, and industrial automation systems. Whether dealing with a rooftop water tank or a chemical reservoir in a processing plant, maintaining the correct fluid level is crucial to prevent overflow, avoid dry-run damage to pumps, and reduce unnecessary power consumption.
To address this challenge, we have designed a compact and reliable electronic limit switch module. This microcontroller based controller automates fluid level regulation with precision and ease.
![]() |
Prototype build of electronic limit switch module. |
Traditional fluid level control methods often rely on mechanical float switches and simple relay logic. While effective, these methods can suffer from issues such as bounce noise, relay chattering, and wear over time. This module modernizes this process by integrating microcontroller based debounce filtering, hysteresis, and control on/off delays.
To perform its operation, the module utilizes two float-type limit switches: a lower limit switch and an upper limit switch. Both are normally closed (NC) switches, meaning they open when floating in liquid and close when the liquid falls below their designated levels. This module supports not only mechanical float switches but also electronic sensors (such as IR or ultrasonic).
The integrated microcontroller continuously monitors the state of these switches, processes the information using hysteresis logic, and controls the onboard relay accordingly. For instance, if the tank level drops below the lower limit, the relay activates the pump. Once the upper limit is reached, the relay turns off the pump. This hysteresis mechanism prevents rapid oscillation of the relay if the fluid level hovers near a switch threshold, ensuring a smooth on/off cycle without causing wear-inducing chatter.
![]() |
Another view of prototype build. |
To implement the control logic, we use the PIC10F200 microcontroller. This ultra-low-cost, 8-bit microcontroller from Microchip is ideal for small, single-purpose control applications such as this module. The PIC10F200 features a simple architecture with 256 words of flash memory, 16 bytes of RAM, and a compact instruction set. The firmware for this project is written in C and can be compiled using Microchip’s MPLAB X IDE along with the XC8 compiler. To flash the MCU, use a compatible programmer like PICkit 3, PICkit 4, or MPLAB SNAP via the ICSP interface located on the PCB.
This project is released as open hardware. All content, including schematics, PCB design files, microcontroller firmware, and compiled binaries, is available in the project repository on GitHub. Complete project documentation is available at the wiki section of the project repository.
Comments