Skip to Content

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.

3phases in a fixed sequence: soaping, washing, drying
3timers, one for each phase
4relay outputs: soap pump, brushes, water pump, fan
1 PLCM-Duino 19R runs the cycle

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.

01

Water

Automation helps minimise water wastage compared with washing by hand.

02

Manpower

Because the system runs on its own, fewer staff are needed to operate the wash.

03

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.

Step 1 · Detection

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
SOAPINGWASHINGDRYINGPhase timerWaiting for a car
ConveyorSoap pumpBrushesWater pumpFan

Illustrative simulation. Phase times are shortened and are not data from the installation.

Step 2 · Timed phases

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
ConveyorSoapBrushesWaterFanSOAPINGWASHINGDRYING

The conveyor stays on during the whole cycle. Yellow: output switched on in that phase.

Step 3 · End and safety

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
limit switchOFFONMANUAL

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.

Automatic car wash controlled by an Arduino based PLCINPUTSOUTPUTSLoad cellanalog input, interruptInfrared sensordigital inputON buttondigital inputOFF buttondigital inputM-Duino 19RArduino Mega based PLCConveyor motordigital outputSoap pumpRelay 1Brush motors x3Relay 2Water pumpRelay 3FanRelay 4INPUTSLoad cellanalog input, interruptInfrared sensordigital inputON buttondigital inputOFF buttondigital inputM-Duino 19RArduino Mega based PLCOUTPUTSConveyor motordigital outputSoap pumpRelay 1Brush motors x3Relay 2Water pumpRelay 3FanRelay 4
Sensor inputDigital input or outputRelay output (ON/OFF)
Signal list
SignalDirectionTypePurpose
Load cellSensor → PLCAnalog input with interruptDetects a weight similar to that of a vehicle and starts the cycle
Infrared sensorSensor → PLCDigital inputDetects the presence of the car
ON buttonOperator → PLCDigital inputStarts the system manually
OFF buttonOperator → PLCDigital inputStops the system manually
Conveyor motorPLC → motorDigital outputMoves the car along the wash
Soap dosing pumpPLC → pumpRelay 1 · ON/OFFSoaping phase
Brush motors (3)PLC → motorsRelay 2 · ON/OFFScrubs the car during the washing phase
Water pumpPLC → pumpRelay 3 · ON/OFFWashing phase
FanPLC → fanRelay 4 · ON/OFFDrying 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+

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