Hello friends this time I have made a arduino based label dispensing machine

I have used stepper motor and IR sensor in this project.

I also used a custom-made PCB in this project.

This project is great learning for 3D printing, Mechanics, electronics and programming

Label dispensing is a critical point in many industries like, E-comerce, FMCG, automobile and many more.

if you have small or large business you definitely preparing parcel of you final goods to dispatched.

for that parcel, you definitely need a label sticker to paste on the parcel. it may be a warning, invoice, receipt, or thanks for shopping wish.

Imagine you have hundreds of parcel to dispatch and manually pealing label one by one is very tough job to do.

So here my this auto label dispenser machine can help you to dispense label for you. and make our dispatch prosses fast

Supplies

Supplies

Supplies

Arduino Nano:

Nema 17 Stepper Motor:

A4988 Stepper Motor Driver:

20 x 20 Aluminium Profile:

3D Printed Parts:

5mm Smooth SS Rod:

8mm Smooth SS Rod:

8mm Pillow Bearing:

8mm Timing Belt Pulley:

8mm ID Toothed Pulley:

5mm ID Toothed Pulley:

SK8 Shaft Holder:

IR Sensor:

These components are integral to your electronics DIY project, serving various functions such as control, motion, structural support, and sensing, depending on the project's specific requirements.

  1. Arduino Nano
  2. Nema 17 stepper motor
  3. A4988 Stepper motor driver
  4. 20 x 20 Aluminium profile
  5. some 3D printed parts
  6. 5mm smooth SS rod
  7. 8mm smooth SS rod
  8. 8mm pillow bearing
  9. 8mm timing belt pulley
  10. 8mm ID teethed pulley
  11. 5mm ID teethed pulley
  12. SK8 shaft holder
  13. IR sensor

Supplies

Step 1: Making Machine Frame Using 20x20 Profile

Making Machine Frame Using 20x20 Profile

Making Machine Frame Using 20x20 Profile

Making Machine Frame Using 20x20 Profile

Making Machine Frame Using 20x20 Profile

Making Machine Frame Using 20x20 Profile

Making Machine Frame Using 20x20 Profile

Creating a Label Sticker Dispenser Machine Frame:

Making the frame for a label sticker dispenser machine is like building the skeleton of a robot. This frame will hold everything together and make sure the machine works smoothly. We'll use some materials like a 20x20 aluminum frame, a Nema 17 stepper motor, an 8mm smooth rod, 8mm pillow bearings, and some 3D printed parts.

Step 1: Get Your Materials Ready

Gather all the materials you need. These include the aluminum frame, the Nema 17 stepper motor, the 8mm smooth rod, 8mm pillow bearings, and 3D printed parts. Make sure everything is clean and in good condition.

Step 2: Assemble the Base

Lay out the 20x20 aluminum frame pieces on a flat surface to create the base of the machine. Make sure they fit together properly. You might need to use screws or brackets to secure them in place. This base will provide stability for your machine.

Step 3: Attach the Stepper Motor

Now, fix the Nema 17 stepper motor to the frame. It's like attaching the heart of the machine. This motor will help the machine move the stickers.

Step 4: Install the Smooth Rods

Slide the 8mm smooth rod into the pillow bearings. These bearings will make sure the rods can turn smoothly. Attach these rod and bearing assemblies to the frame. Think of them as the machine's arms that will carry the stickers.

Step 5: Add 3D Printed Parts

You might have some 3D printed parts that are custom-made for your machine. Attach these parts to the frame as needed. They can be like the hands and fingers of the machine, helping with the sticker dispensing process.

Step 2: Electrical Wiring and Custom PCB

Electrical Wiring and Custom PCB

Electrical Wiring and Custom PCB

Electrical Wiring and Custom PCB

Electrical Wiring and Custom PCB

Electrical Wiring and Custom PCB

Electrical Wiring and Custom PCB

Wiring Connection Details for Arduino-based Label Sticker Dispenser Machine:

In the assembly of your label sticker dispenser machine, it's important to have clear and accurate wiring connections to ensure proper functionality. Here's a detailed write-up on how the wiring is set up for your project:

  1. Arduino Placement:
  2. The Arduino Nano is securely placed on a multipurpose PCB (Printed Circuit Board). This PCB acts as a central hub for connecting various components, allowing for organized and efficient wiring.
  3. Stepper Motor Control:
  4. The Nema 17 stepper motor is controlled by an A4988 stepper motor driver. The A4988 driver is set to operate the stepper motor in 16th steps mode, which provides precise and smooth motion control.
  5. Wiring the A4988 Driver to the Arduino:
  1. Power Supply for Stepper Motor:
  2. The stepper motor is powered by a 12V DC power supply. This voltage level is suitable for the Nema 17 stepper motor's operation, providing the necessary power for its movements.
  3. IR Sensor Connection:
  4. An IR (Infrared) sensor is used in your project, and its output pin is connected to digital pin 4 on the Arduino. This connection enables the Arduino to receive signals from the IR sensor, which may be used for detecting objects or providing input based on proximity or presence.

By following these wiring connections, you ensure that your label sticker dispenser machine is set up to control the stepper motor accurately, receive input from the IR sensor, and run on the appropriate power supply. This organized and well-connected system is crucial for the successful operation of your project.

Step 3: CUSTOM PCB

Unlock Innovation with JLCPCB - Your Ultimate PCB Solution

We're excited to introduce our latest project, made possible with JLCPCB's exceptional PCB service. We ordered our PCBs from JLCPCB, and the results have been outstanding.

One PCB, Infinite Possibilities

Our multipurpose PCB is a game-changer, designed to serve a multitude of projects. With JLCPCB's top-quality boards, you can now rely on a single PCB for a wide range of applications. Say goodbye to the hassle of designing new PCBs for every project.

Quality Meets Affordability

JLCPCB is our trusted partner because they offer the best in PCB quality without breaking the bank. The precision and reliability of their boards are unparalleled, making our projects run seamlessly every time.

Your Projects, Simplified

No matter your project - be it electronics, automation, or innovation - our multipurpose PCB, crafted with JLCPCB's expertise, will be your go-to solution. It's the smart choice for streamlining your work and reducing costs.

Experience Excellence with JLCPCB

Join the league of innovators who rely on JLCPCB for the best quality PCBs at incredibly affordable rates. Get ready to take your projects to new heights with JLCPCB as your trusted PCB partner.

so order the best quality PCB visit the link

JLCPCB 1-20 Layer PCB from $2, Sign up to Get $54 Coupons here: https://jlcpcb.com/?from=MrI

Step 4: Arduino Code

#include <Arduino.h>
#include "BasicStepperDriver.h"

// Motor steps per revolution. Most steppers are 200 steps or 1.8 degrees/step
#define MOTOR_STEPS 200
#define RPM 120
int flag = 0;

// Since microstepping is set externally, make sure this matches the selected mode
// If it doesn't, the motor will move at a different RPM than chosen
// 1=full step, 2=half step etc.
#define MICROSTEPS 16

// All the wires needed for full functionality
#define DIR A0
#define STEP A1
//Uncomment line to use enable/disable functionality
//#define SLEEP 13

// 2-wire basic config, microstepping is hardwired on the driver
BasicStepperDriver stepper(MOTOR_STEPS, DIR, STEP);

//Uncomment line to use enable/disable functionality
//BasicStepperDriver stepper(MOTOR_STEPS, DIR, STEP, SLEEP);

void setup() {
    stepper.begin(RPM, MICROSTEPS);
    // if using enable/disable on ENABLE pin (active LOW) instead of SLEEP uncomment next line
    // stepper.setEnableActiveState(LOW);
    pinMode(4,INPUT);
    Serial.begin(9600);
}

void loop() {

if (flag == 1 && !digitalRead(4) ){
  delay(1200);
  flag = 0;
}

  
 if (!digitalRead(4)){
   stepper.stop();
   flag = 1;
 }

 
 if (digitalRead(4)&& flag == 0){
   stepper.rotate(1);
  }

}

Here's a detailed explanation of the code:

#include <Arduino.h> #include "BasicStepperDriver.h" 

The code includes the necessary libraries for Arduino and the "BasicStepperDriver" library for controlling the stepper motor.

#define MOTOR_STEPS 200 #define RPM 120 int flag = 0; 

Here, constants are defined for the number of motor steps per revolution (200) and the desired revolutions per minute (RPM). The variable flag is also initialized to 0.

#define MICROSTEPS 16 

This constant defines the number of microsteps per full step. In this case, it's set to 16, which means the motor will perform 16 microsteps for each full step, providing smoother and more precise motion.

#define DIR A0 #define STEP A1 //Uncomment line to use enable/disable functionality //#define SLEEP 13 

Here, the digital pins used for controlling the stepper motor are defined. DIR is the direction pin (A0), and STEP is the step pin (A1). There is also a line of code that can be uncommented to define an additional pin for enabling/disabling the motor, but it is currently commented out in this code.

BasicStepperDriver stepper(MOTOR_STEPS, DIR, STEP); 

An instance of the BasicStepperDriver class is created, specifying the number of motor steps, the direction pin, and the step pin. This class simplifies the control of the stepper motor.

void setup() { stepper.begin(RPM, MICROSTEPS); // if using enable/disable on ENABLE pin (active LOW) instead of SLEEP, uncomment the next line // stepper.setEnableActiveState(LOW); pinMode(4, INPUT); Serial.begin(9600); } 

In the setup() function:

void loop() { if (flag == 1 && !digitalRead(4)) { delay(1200); flag = 0; } if (!digitalRead(4)) { stepper.stop(); flag = 1; } if (digitalRead(4) && flag == 0) { stepper.rotate(1); } } 

In the loop() function:

This code appears to control a stepper motor based on input from an IR sensor, stopping and starting the motor's rotation depending on the sensor's state and the flag variable.

Step 5: VIDEO