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 only manual control requiring an operator to control about 14 switches while monitoring 3 mechanical scales (dial gauges). I was successful in upgrading this plant to an automated unit requiring minimal operator input. I did it using a custom-made Arduino Uno compatible board and LIFA (later LINX). The wiring is still very messy and remains unfinished at the time of this writing, which I shall take care of soon after all testing is done.

I am not an EE, but I have a passion for electronics and automation. Most of my knowledge and electronic experience comes from working as a student assistant. I also had tremendous help from Arduino/LabVIEW communities, YouTube, and DIY electronics books.

I tried this as an experiment because without retrofitting the plant, we had no 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 40kW
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 the 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
6. Active lowpass filter using TL084 for analog channels.

1. Arduino 1.0.
2. LabView Interface for Arduino (later LINX)
3. LabView 2012.

Plant Operation
Software (Flickering Video from CRT) 

 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 (optoisolated 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 into 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 the initial position and repeat.

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

My gratitude goes to my lovely wife for keeping me sane and my brother arranging for ICs not available locally. My sincerest thanks go to the Arduino community for helping me to remedy the EMI problem and the LIFA community for I2C communication troubleshooting. I must thank Arduino/LIFA/Fritzing developers for making electronics more accessible to the general masses. My electronics and Arduino knowledge was gathered from websites like / /, thanks to excellent contributors to these sites. I had support personnel (a very patient electrician and a plant operator) 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

  5. The batching plant is attached with batching system automatically load material using computerized measurement.

  6. Thanks for sharing such a nice blog...It is very useful and informative..

  7. Hello, really great project. I´d like to get in touch with you!

  8. Thank you for this very helpful article. We are a ready mix concrete company ourselves and we strive to formulate better mixing methods for better concrete. Our batching plant still needs recalibration so this has been very insightful to read.

  9. You finished certain dependable focuses there. I did an inquiry regarding the matter and found about all people will concur with your blog. textured concrete