Build Your Own Arduino-Based Automatic Label Dispenser Machine

Need some labeling done? Then you'll love this Arduino-powered device.
Christopher McFadden

If the video player is not working, you can click on this alternative video link.

Unspooling label reels can be a... real... pain in the butt at times! But with devices like this Arduino-powered "auto-unspooler", labeling things just got a whole lot easier. 

Follow this handy guide to find out how to build one of your very own. 

arduino label dispenser in operation
Source: Interesting Engineering/YouTube

Like any build of this nature, you'll first need some tools and materials before you get started...

Tools and materials required

With all the materials and tools in hand, it is time to get on with the build.

Step 1: Cut out the wooden components

The first step is to mark out, and cut, the required wooden components. 

Cut out one large rectangle, as shown, and then cut that sheet into three smaller pieces (two the same size, the third slightly larger). 

diy arduino lable dispenser wood
Source: Interesting Engineering/YouTube

Next, mark out some wedges on the two smaller pieces of wood, as shown in the video, and cut out, as required. 

diy arduino lable dispenser wedges
Source: Interesting Engineering/YouTube

On the larger of the pieces of wood, mark out a trapezoid, and cut out as shown in the video. 

diy arduino label dispenser trapezoid
Source: Interesting Engineering/YouTube

Sand down any burs and splinters of wood until nice and smooth to the touch. Round off any edges of the wood pieces as well. 

You can do this by hand, or using power tools—the choice is yours. If you haven't already, don't forget print out the 3D parts to avoid pipeline issues down the line (linked above in the materials list). 

Step 2: Build the microelectronics

With that step complete, now it is time to build the label dispenser's electronic gubbins'. Grab your custom PCB and stepper motor clamp, and mark out their drill holes onto the larger piece of wood. 

arduino label dispenser pcb
Source: Interesting Engineering/YouTube

Drill pilot holes, as shown in the video and image below. 

arduino lable dispenser drill holes
Source: Interesting Engineering/YouTube

Next, build out the PCB board with the required connectors, and other microelectronic components. For reference, we have included the circuitry schematic below. 

diy arduino label dispenser circuits
Source: Interesting Engineering/YouTube

Solder the components into place, as needed. The PCB should look something like this. 

arduino label dispenser complete pcb
Source: Interesting Engineering/YouTube

Insert the Arduino Nano, and A4988 driver, into their respective slots. Now, add some suitably sized bolts to the PCB board, and affix it to the larger piece of wood. 

diy arduino label dispenser affix pcb
Source: Interesting Engineering/YouTube

Also, attach the stepper motor socket too. Now, grab the NEMA 17 stepper motor and secure it to the socket. 

Most Popular
arduino label dispenser stepper motor
Source: Interesting Engineering/YouTube

Add the timing pulley to the stepper motor's axle. Ensure that it is securely fastened. 

Step 3: Build the mechanical parts

Next, wire up the stepper motor to the PCB board. Now, drill more pilot holes to the smaller pieces of wood as shown in the video. 

arduino label dispenser drill holes
Source: Interesting Engineering/YouTube

Now, grab the pillow bearings and fasten them to the centers of each of the smaller wood pieces. 

arduino label dispenser bearings
Source: Interesting Engineering/YouTube

With that stage complete, attach the smaller wooden pieces to the larger piece. Ensure the bearings face inwards. 

arduino label dispenser box complete
Source: Interesting Engineering/YouTube

Now grab the two types of smooth metal shafts, other timing pulleys, and the timing belt. Wrap the timing belt around the stepper motor timing pulley, insert one of the larger shafts into the eye of one of the bearings, and secure the other timing pulley to it. 

With the second timing pulley in place, wrap the other end of the timing pulley around it. 

arduino label dispenser 2nd timing pulley
Source: Interesting Engineering/YouTube

Push the shaft through the eye of the opposing bearing too. Make sure the timing belt is aligned correctly and is taught before fully securing the 2nd timing pulley. 

Test the movement, it should move freely. 

Now add the other larger shaft to its respective drill holes at the top of the wooden frame. You can ram this in by hand, or use a power drill to assist you. 

This will not freely rotate, so it needs to be as secure as possible. 

arduino label dispenser 2nd rod
Source: Interesting Engineering/YouTube

Repeat the process for the other smaller rods too. 

diy arduino label dispenser smaller rods
Source: Interesting Engineering/YouTube

Step 4: Build the top cover and add IR sensor

Next, grab the push button, rotary encoder knob, LCD screen, and the 3D printed top cover. Insert the button, and rotary encoder into their respective holes in the top cover, and also attach the LCD screen to the top.

Wire them up, as required. With that complete, place the cover over the top of the wooden frame to your Arduino label dispenser. 

arduino label dispenser button
Source: Interesting Engineering/YouTube

Drill the top cover into place. 

Next, assemble the IR sensor and IR sensor 3D part housing pieces, as shown. Superglue the IR sensor housing lid into place. 

arduino label dispenser IR sensor
Source: Interesting Engineering/YouTube

Next, add rubber feet to the base of the label dispenser—if required. 

arduino label dispenser rubber feet
Source: Interesting Engineering/YouTube

Step 5: Add the all-important code

With the previous steps complete, you can now upload your code to the Arduino Nano. The code is as follows: 

#include
#include "rgb_lcd.h"
rgb_lcd lcd;
#include
#include "BasicStepperDriver.h"

#define MOTOR_STEPS 200
#define RPM 400

#define DIR A0
#define STEP A1

 

#define MICROSTEPS 16
BasicStepperDriver stepper(MOTOR_STEPS, DIR, STEP);


int value = 0;
int IR = 10;
int PB = A2;
int SW = A3;
int knob = 2;
int val = 0;
int currentstate = 0;
int laststate = 0;
int state = 0;
void setup() {
stepper.begin(RPM, MICROSTEPS);
Serial.begin(9600);
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print ("LABEL DISPENSER");
lcd.setCursor(0, 1);
lcd.print ("MACHINE");
pinMode(knob, INPUT_PULLUP);
pinMode(PB,INPUT_PULLUP);
pinMode(SW,INPUT_PULLUP);
pinMode(IR,INPUT);
delay(2000);
stepper.rotate(700);
lcd.clear();
}

void loop() {

if (state == 0){
lcd.setCursor(0, 0);
lcd.print (" LABEL LENGTH");
lcd.setCursor(0, 1);
lcd.print (" MM = ");
lcd.setCursor(11, 1);
currentstate = digitalRead(knob);

if (currentstate != laststate){
val++;

lcd.print (val/2);
laststate = currentstate;

}

}
if (!digitalRead(PB) && state == 0){
delay(100);
state = 1;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print ("SET LENGTH =");
lcd.setCursor(13, 0);
lcd.print (val/2);
lcd.setCursor(0, 1);
lcd.print ("PRESS TO START");


}

if (state == 1 && !digitalRead(PB)){
state = 3;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print ("RUNNING....");
}


if (state == 3){
lcd.setCursor(0, 1);
lcd.print ("COUNTER = ");
lcd.setCursor(12, 1);

if ( digitalRead(IR)){
delay(200);
STEPPER();
}

}


}

void STEPPER (){
lcd.print (value);
stepper.rotate(900);
value++;
}

Step 6: Complete the label dispenser

With that done, now add the 3D printed washers to the metal shafts, as shown. You can also add your reel of labels at this point too. 

Be sure to secure the reel with the 3D printed caps to ensure the label reel is securely fixed to its mounting rod. 

Feed the reel through the rods, as shown below. 

arduino label dispenser reel
Source: Interesting Engineering/YouTube

With that, your Arduino-powered automatic label dispenser is basically complete. You can adjust the auto-reeling distance using the rotary encoder knob.

Now just power it up, and get to labeling stuff! Handily, the LCD screen will give you an accurate count of the number of stickers you've used too. 

arduino label dispenser complete
Source: Interesting Engineering/YouTube

Lucky you. 

message circleSHOW COMMENT (1)chevron