Automation of a labelling conveyor system

Industrial Labelling solution with Arduino

Arduino Automation for Industrial Labelling

In this project an Arduino based PLC has been used to automate the labeling of bottles on a conveyor belt. Two stepper motors are used, the first one is used to control the large label roll and the second one moves the conveyor belt.

In order to ensure that each bottle has been labeled, an encoder has been required to manage the speed  of the conveyor belt and a photocell to know the position of each bottle.


Bottles on a conveyor belt run through a labelling mechanism that applies a label to the bottle. The spacing of the bottles on the conveyor is not regulated and the conveyor can slow down, speed up, or stop at any time.


Our costumer requirments were the following:

- Accurately apply labels to bottles in motion

- Allow to variable conveyor speed

- Allow for inconsistent distance between bottles

- Pull label web through dispenser

- Smooth, consistent labelling at all speeds

The Arduino based PLC accepts input from an encoder mounted to the conveyor and reference all of the speeds and distances of the label roll with the help of a photocell that detects the position of the bottle at the time of labeling.

Odoo image and text block


A servo system is required to provide the torque and speed to overcome the friction of the dispensing head and the inertia of the large label roll. A second servo motor is used to rotate the conveyor.

As previously mentioned, a photosensor connected to the Arduino based PLC controls the position of the bottles on the conveyor belt. 

The controller commands the label motor to accelerate to the line speed at the moment when the first edge of the label comes into contact with the bottle. The motor moves at the speed of the line until the full label is applied, and then slows to a stop and waits for the next bottle. To obtain the data of the encoder, it has been connected to two inputs with interruption of the PLC based on Arduino, in this way, the Industrial Shields PLC will not be making requests constantly to obtain the data of the encoder, it has been connected to two inputs with interruption of the Arduino based PLC. For each servo, purely digital PLC outputs are needed (making the connections with its respective driver).

Download the Automation Labelling Case Study

Share it with your teammates

Ask for more information

Fill in the form below if you need more information