Case study · Car wash automation · Arduino PLC
Soap, water, brushes and air in one fixed order. One Arduino PLC runs the whole cycle.
How an Industrial Shields M-Duino 19R automates a car wash: it detects the car, moves it along the conveyor and times soaping, washing and drying, so the wash uses less water, fewer people and less time than a manual one.
Washing a car by hand is simple.
It is also slow, labour intensive and wasteful.
Car washing is mostly done manually in garages and service centres, which means more water, more manpower and more time. The automatic system in this case is controlled by an industrial PLC based on Arduino and is designed to reduce all three.
The challenge
Run every wash the same way, without an operator at each step.
When a car enters the hall, a fixed sequence has to start on its own: soaping, washing and drying, while a conveyor carries the car to the end of the route.
Water
Automation helps minimise water wastage compared with washing by hand.
Manpower
Because the system runs on its own, fewer staff are needed to operate the wash.
Time
Automatic control of every phase reduces the time each wash takes.
Detect the car automatically
A load cell detects a weight similar to that of a vehicle. An infrared sensor or any other presence sensor can also be used, and motion sensors could replace the timers to detect when the car reaches each phase.
How it works
One sequence, three timers, one controller.
The whole cycle runs on the same industrial Arduino PLC. Start a wash to see which outputs the PLC switches in each phase.
The load cell starts the cycle
When the load cell at the entrance detects a weight similar to that of a vehicle, the PLC starts the motor that drives the conveyor and starts counting the soaping, washing and drying timers.
- Input: load cell on an analog input with interrupt
- Alternative: infrared sensor on a digital input
- Output: conveyor motor on a digital output
Illustrative simulation. Phase times are shortened and are not data from the installation.
Soaping, washing and drying
For soaping, the PLC acts on the soap dosing pump. When that time is completed, it switches on the washing pump and, at the same time, the relay that controls the three brush motors. With the third timer, the fans start the drying.
- Relay 1: soap dosing pump
- Relay 2: three brush motors
- Relay 3: water pump
- Relay 4: drying fan
The conveyor stays on during the whole cycle. Yellow: output switched on in that phase.
Limit switch and manual buttons
The conveyor takes the car to the end of the route. When the limit switch detects it, the whole process is closed. Manual ON and OFF buttons let the operator start or stop the system when required.
- Input: limit switch at the end of the route
- Inputs: manual ON and OFF buttons
- Result: the process closes and waits for the next car
Schematic illustration.
System architecture
Every signal, end to end.
The original wiring scheme of the installation, redrawn. Sensors and buttons on the left, the PLC in the middle, the loads on the right.
| Signal | Direction | Type | Purpose |
|---|---|---|---|
| Load cell | Sensor → PLC | Analog input with interrupt | Detects a weight similar to that of a vehicle and starts the cycle |
| Infrared sensor | Sensor → PLC | Digital input | Detects the presence of the car |
| ON button | Operator → PLC | Digital input | Starts the system manually |
| OFF button | Operator → PLC | Digital input | Stops the system manually |
| Conveyor motor | PLC → motor | Digital output | Moves the car along the wash |
| Soap dosing pump | PLC → pump | Relay 1 · ON/OFF | Soaping phase |
| Brush motors (3) | PLC → motors | Relay 2 · ON/OFF | Scrubs the car during the washing phase |
| Water pump | PLC → pump | Relay 3 · ON/OFF | Washing phase |
| Fan | PLC → fan | Relay 4 · ON/OFF | Drying phase |
Why a PLC based on Arduino
Industrial hardware, open code.
The whole cycle in one program
Detection, the three timers, the conveyor and the four relay outputs run in the same program, on the same controller.
Relays for the loads
The relay version of the M-Duino switches the soap pump, the brushes, the water pump and the fan directly from its outputs.
Open and adaptable
The sequence is written in Arduino code, so the timers can be replaced by motion sensors that detect when the car reaches each phase.
Hardware used
One controller on the DIN rail.
M-Duino Ethernet PLC Arduino 19R+
The original case uses the M-Duino 19R, the relay version of the Arduino Mega based M-Duino family. The 19R+ is its current version.
- Inputs
- 6 (4 analog 0-10 V)
- Outputs
- 11 (8 relays, 3 analog/PWM)
- Communications
- Ethernet, RS-485, RS-232, TTL, I2C, SPI
- Power
- 12 to 24 Vdc, IP20
Questions about this case
How does the system know a car has entered?
A load cell detects a weight similar to that of a vehicle and the PLC starts the cycle. An infrared sensor, or any other presence sensor, can be used instead.
Why are timers used for each phase?
Soaping, washing and drying run for a set time, so the PLC needs a delay for each output. Three timers are used. Motion sensors that detect when the car reaches each phase are an alternative.
Which outputs does the PLC switch?
A digital output for the conveyor motor and four relays: soap dosing pump, the three brush motors, the water pump and the drying fan.
When are the brushes activated?
When the soaping time is completed, the PLC switches on the washing pump and, at the same time, the relay that controls the three brush motors to scrub the car with soap.
How does the cycle end?
The conveyor takes the car to the end of the route. When the limit switch detects it, the PLC closes the whole process.
Can the operator stop the wash?
Yes. Manual ON and OFF buttons are wired to digital inputs of the PLC to start or stop the system when required.
Download the case study
4-page PDF with the challenge, the logic, the architecture and the hardware. No form required.
Similar project?
Tell us your sequence. An engineer will answer.
Car washes, conveyors, pumps or any timed process: describe what you need to detect and drive, and we will tell you which controller fits.
- Answer from our technical team
- Hardware sizing for your I/O list
- Arduino, ESP32 or Raspberry Pi based PLCs