Monday, December 2, 2013

Concrete Batch Plant using Arduino and LIFA

Our company here in Bangladesh owns a quite old concrete batch plant, which had full manual control requiring an operator to control 14+ switched and observe 3 mechanical scales (dial gauges). I was successful to upgrade this plant to an automated unit requiring minimal operator input using custom made Arduino Uno compatible board and LIFA. Wiring is still very messy and remains unfinished, which I shall take care in the near future after all testing is done.

I am not an EE and all my knowledge/experience was gathered playing as an amateur hobbyist. I tried this as an experiment, because without retrofitting the plant we had not choice but to cut up the plant and sell it as scrap.

Plant Hardware for Control/Monitoring
Pneumatic: 6 pistons actuators, 4 gates/valves
Electric: 2 cement screw motors, 2 electrical centrifugal pump, 1 motorized winch, 1 motorized mixture drum
Power Requirement: Approximately 30kW
Capacity: 20m3 concrete (approx. 48 tons material) per hour

Electronic Hardware
1. ATMEGA328P loaded with Arduino Uno boot loader
2. 16 relays thru MCP23017 over I2C [Driver for magnetic contactor]
3. 7 relays thru PCF8575 over I2C [Input from limit switches & others]
4. 7 load-cells (3 isolated and 4 in group) connected via INA125P
5. MAX232 for connecting to PC for serial communication

1. Arduino 1.0.
2. LabView Interface for Arduino
3. LabView 2012.

 Control Panel and Computer

Panel electronics

Microcontroller Board

Description of Connections (left to right)
 5V DC Power,Yellow wires to PCF8574 as DI (0/5VDC).
Yellow wires to MCP23017 as DO (0/5VDC).
Green Wires to ATMEGA328P as AI thru a simple R-C filter (0-5VDC).
4 Wires to MAX232 connecting TX/RX/DTR/GND lines of PC serial port.

8 channel magnetic contactor driver using ULN2803 (opto-isolated using PC817)
(Plant uses very similar 7 channel driver using ULN2003 and larger relays)
Left-White jacks: signals coming from MCP23017, Left-Green terminal: relay power (6VDC)
Right-Green terminals: power/signal (220VAC) for driving magnetic contractors by the relays.

User Interface for Plant Operator

Test program to check the I/O lines

The Plant

Operational Basic of Concrete Batch Plant
Operation of the batch plant involves following steps
1.     Loading aggregate thru pneumatically operated gates in to an aggregate weighing bin.
2.     Loading cement using a screw conveyor to weighing hopper.
3.     Loading water and admixture to individual weighing tanks using centrifugal pumps.
1.     Lifting aggregate bin to mixture drum by motorized winch.
2.     Releasing cement, water, and admixture to mixture drum by operating pneumatic gate/valve.
1.     Releasing fresh concrete from mixture drum by operating pneumatic gate.
2.     Returning everything to initial position and repeat.

These are basic steps, but couple items/steps are run simultaneously to reduce time of the one complete cycle.

My gratitude goes to my lovely wife for keeping me sane and my brother for arranging for ICs not available locally. My sincerest thanks goes to the Arduino community for helping me to remedy EMI problem and LIFA community for I2C communication troubleshooting. I must thank the developers of Arduino/LIFA/Fritzing for making electronics more accessible to the general masses. My electronics and Arduino knowledge was gathered from websites as / /, so thanks to excellent contributors of these sites. I had support personnel (a very patient electrician and a plant operator) here who helped me with wiring high voltage lines, and plant operational knowledge; thus, they also deserve thanks.


  1. Wonderful work, and congratulations!

  2. Great Job! Would like to know more about the scale interface. What happens to the batch if power goes out?

    1. If power goes out anytime during automatic operation, the program would sense it and immidiately issue "Stop" command. I kept manual override of every function on PC interface and on the electrical panel to intervene anytime-just in case. Thanks!

    2. In addition, all actuators will go to standby position soon power is lost.

  3. Great project, Cool "Arduino" Implementation!

  4. Can you share the source please, thanks congrats on the job