When your Arduino project needs to move liquid — whether for automated plant watering, hydroponics, aquarium management, or a coffee machine — choosing the right pump is essential. This guide compares three common pump types available in India: peristaltic, submersible, and diaphragm pumps, with wiring examples and Arduino code for each.
Pump Types Explained
- Peristaltic: Rollers squeeze a flexible tube, pushing fluid through without the pump contacting the liquid. Best for precise dosing and sensitive fluids.
- Submersible: Placed directly inside the liquid. Uses an impeller to push water. Simple, cheap, and effective for moving large volumes.
- Diaphragm: A membrane flexes back and forth to create suction and pressure. Self-priming and can run dry without damage.
Comparison Table
| Feature | Peristaltic | Submersible | Diaphragm |
|---|---|---|---|
| Flow Rate | 5-100 ml/min | 200-2000+ ml/min | 500-3000 ml/min |
| Precision | Excellent | Low | Moderate |
| Self-Priming | Yes | No (must be submerged) | Yes |
| Run Dry Safe | Yes | No (burns out) | Yes |
| Best For | Dosing, lab, hydroponics | Water features, aquarium | Irrigation, pressure |
| Price Range | ₹300-1,500 | ₹100-500 | ₹200-800 |
Peristaltic Pumps
Peristaltic pumps are the most precise option for small-volume liquid dispensing. The fluid only touches the silicone tube, never the pump mechanism, making it ideal for chemicals, nutrients, and food-grade liquids.
Submersible Pumps
Place the pump directly in the water source. Submersible pumps are the simplest to use — just drop them in and power them on. Available from tiny 3V USB-powered models to large 24V models for water features.
Diaphragm Pumps
Diaphragm pumps can be mounted outside the liquid source and pull fluid through an inlet tube. They are self-priming and can generate significant pressure for spraying applications.
Driving Pumps with Arduino
Most small pumps are simple DC motors. Drive them through a relay module or MOSFET:
const int pumpRelay = 7;
void setup() {
pinMode(pumpRelay, OUTPUT);
digitalWrite(pumpRelay, HIGH); // Off (active low relay)
}
void pumpOn() { digitalWrite(pumpRelay, LOW); }
void pumpOff() { digitalWrite(pumpRelay, HIGH); }
void dispenseML(int ml, float mlPerSecond) {
float seconds = ml / mlPerSecond;
pumpOn();
delay((int)(seconds * 1000));
pumpOff();
}
void loop() {
dispenseML(50, 10.0); // Dispense 50ml at 10ml/s
delay(60000); // Wait 1 minute
}
Frequently Asked Questions
Can I use PWM to control pump flow rate?
For submersible and diaphragm pumps, PWM provides rough flow control but not precise dosing. For peristaltic pumps, PWM gives good proportional flow control since flow rate scales linearly with motor speed.
Will a submersible pump burn out if the water level drops?
Yes. Submersible pumps rely on the surrounding water for cooling. Running dry overheats and burns the motor. Always use a water level sensor or float switch to cut power when the water level is too low.
Which pump is best for automated plant watering?
A submersible pump in a water reservoir is the simplest solution. For precise per-plant dosing, a peristaltic pump gives the most control. A diaphragm pump works well for pressurised drip irrigation systems.
Conclusion
The right pump depends on your application: peristaltic for precision, submersible for simplicity, and diaphragm for pressure and versatility. All three can be easily controlled with Arduino through a relay or MOSFET circuit. Start with a simple timed dispensing system, then add sensors for automated monitoring.
Shop all pump types at Zbotic.in.
Add comment