You are on page 1of 28

Arduino based wire

cutting machine
PROJECT MEMBERS:

• 1.SYED SAQUIB MOHAMMED


• 2.SHAIKH ANEES
• 3.SAFIULLAH SIDDIQUI
• 4.VIKRAM
• 5.TEJAS RAJPUT
Abstract
During the past few decades, the electronic
industry has shown great progress in automatic control of
different system. Same as the automatic barrier control
system, the manual handling of any system results in less
accuracy as compare to the microcontroller based control
system. This project is basically gave an initial theme that
how we can approach to a barrier control system using
microcontroller.
so we had designed an automatic wire

machine which give more accuracy and reduces the human

error ,man power, reliable work done and save the wastage

of wire.
Key Words: Microcontroller, DC motor driver, LCD display,
Keypad, Cutter.
1. INTRODUCTION
In electrical industry there is huge requirement of wires

and its measurement [1]. The Heavy wire weight is needed

to be measured accurately. The wire measurement and

cutng is traditonal and human eforts are required for it.

The proposed project will automatcally calculate wire

length and cutng machine will cut it

The project is based on microcontroller platorm which

can easy to use and fexible. The system can measure wire

length accurately as per given input.

he motors are driven by microcontroller with required speed (revoluton


per meter).
Ths cutting tool is precisely designed to

measured wire length in proper format.


The length of the wire can be decided by the user as per
requirement. An embedded system for color detection of
insulated electrical wire, which is to cut, stripped by an
automatic WCM (wire cutting machine). These wire
segments would be used in the assembly of Wire Harness.
It describes the subsystems which together will compose
the required application. Design of the system is
performed using Image Processing, Embedded Software,
Micro-controller Programming, and hardware design.
Apparatus required
1.) STEPPER MOTOR.

A stepper motor, also known as step motor or


stepping motor, is a brushless DC electric motor that
divides a full rotation into a number of equal steps.
The motor's position can then be commanded to
move and hold at one of these steps without any
position sensor for feedback (an open-loop
controller), as long as the motor is carefully sized to
the application in respect to torque and speed.

Switched reluctance motors are very large stepping


motors with a reduced pole count, and generally are
closed-loop commutated.
2.) SERVO MOTOR.

A servomotor is a rotary actuator or


linear actuator that allows for precise
control of angular or linear position,
velocity and acceleration.[1] It consists
of a suitable motor coupled to a sensor
for position feedback. It also requires a
relatively sophisticated controller,
often a dedicated module designed
specifically for use with servomotors.

Servomotors are not a specific class of


motor although the term servomotor is
often used to refer to a motor suitable
for use in a closed-loop control system.

Servomotors are used in applications


such as robotics, CNC machinery or
automated manufacturing.
3.)P.C.B BOARD

A printed circuit board (PCB) mechanically supports


and electrically connects electronic components or
electrical components using conductive tracks, pads
and other features etched from one or more sheet
layers of copper laminated onto and/or between
sheet layers of a non-conductive substrate.
Components are generally soldered onto the PCB to
both electrically connect and mechanically fasten
them to it.

Printed circuit boards are used in all but the simplest


electronic products. They are also used in some
electrical products, such as passive switch boxes.
4.) L.E.D DISPLAY

LED Display (light-emitting diode display) is a


screen display technology that uses a panel of
LEDs as the light source. Currently, a large
number of electronic devices, both small and
large, use LED display as a screen and as an
interaction medium between the user and the
system. Modern electronic devices such as
mobile phones, TVs, tablets, computer
monitors, laptops screens, etc., use a LED
display to display their output.
LED Display is one of the main screen displays
that are being commercially used. The biggest
advantage of the LED display is its efficient and
low-energy consumption, which is especially
needed for handhelds and chargeable devices
such as mobile phones and tablets.
5.)ARDINO NANO

POWER:- The Arduino Nano can be powered


via the Mini-B USB connection, 6-20V
unregulated external power supply (pin 30),
or 5V regulated external power supply (pin
27). The power source is automatically
selected to the highest voltage source.
MEMORY:- The ATmega328 has 32 KB, (also
with 2 KB used for the bootloader. The
ATmega328 has 2 KB of SRAM and 1 KB of
EEPROM.
INPUT AND OUTPUT:- Each of the 14 digital
pins on the Nano can be used as an input or
output, using pinMode(), digitalWrite(), and
digitalRead() functions. They operate at 5
volts. Each pin can provide or receive a
maximum of 40 mA and has an internal pull-
up resistor (disconnected by default) of 20-
50 kOhms. In addition, some pins have
specialized functions:
ELECTRICAL OVERVIEW
1.1 Problem identifcation

The human eforts in electrical wiring are high and the


material used for the manufacturing of the wires is costly.
Therefore it should be used very efectively. Therefore,
this project is proposed to solve the above problem to
minimise the human eforts and to avoid the wastage of
the wires.
1.2 Proposed work

The human eforts in electrical wiring are high and the


material used for the manufacturing of the wires is costly.
Therefore it should be used very efectively. Therefore,
this project is proposed to design to minimise the human
eforts and to avoid the wastage of the wires .
This system can accurately measured wire length and
cutting machine can cut wire into number of pieces .The
system operates very flexibly by using proper input given
by keyboard and displaying the input given on LCD.
2. Block diagram
Fig-1 shows the flow of work to be done. Firstly power
supply is ON, here we are using +5v supply. Then input is
given by keypad to microcontroller. Here the required
length of wire to be cut is given as input to microcontroller
and the microcontroller gives information to LCD. It will
be displayed to the LCD, input given by keypad to
microcontroller. Thus the interfacing between micro
controller and motor driver, then the both motors will
start to operate.
Firstly the motor were the bundle of wire
is placed on the shaft it will rotate for particular time,
according to specified duration of rotation. As the
wire will
be out of the bundle, it will move through conveyor
belt to
cutting area. After that second motor were the
cutting foil
is placed will start to run and thus the wire will be cut
as
per user requirement.
Image of wire cutting machine
/------------------------------- librarys ----------------------------------

Code for ardino board:-


#include <Wire.h>

#include <rgb_lcd.h>

#include <Servo.h>

//------------------------------- lcd ----------------------------------

rgb_lcd lcd;

//------------------------------- stepper ----------------------------------

#defne stepPin 7

#defne dirPin 8

//------------------------------- servo ----------------------------------

Servo snippers;

#defne servo 10

#defne openAngle 90

#defne closedAngle 0

//------------------------------- input ----------------------------------

#defne leftButton 3

#defne rightButton 2
//------------------------------- user settings ----------------------------------
unsigned int wireLength = 0;
unsigned int wireQuantity = 0;

//------------------------------- system settings ----------------------------------


int state = 0;
int incrementSpeed = 1;
int previousWireLength = 0;
int previousWireQuantity = 0;
float mmPerStep = 0.18096;

void setup() {
Serial.begin(9600);

lcd.begin(16, 2); //LCD columns and rows


lcd.setRGB(255,255,0); //backlight colour

pinMode(upButton, INPUT_PULLUP);
pinMode(downButton, INPUT_PULLUP);
pinMode(leftButton, INPUT_PULLUP);
pinMode(rightButton, INPUT_PULLUP);

pinMode(stepPin,OUTPUT);
pinMode(dirPin,OUTPUT);

snippers.attach(servo);

snippers.write(openAngle);

delay(1000);
•}
void loop() {
if (!digitalRead(rightButton)){
if(state == 5){
state = 0;
}
else{
state += 1;
}
delay(200);
lcd.clear();
}
if (!digitalRead(leftButton) && state > 0 && state < 4){
state -=1;
delay(200);
lcd.clear();
}

switch (state){
case 0:
homeScreen();
break;
case 1:
chooseWireLength();
break;
case 2:
chooseWireQuantity();
break;
case 3:
confrm();
break;
case 4:
currentlyCutting();
break;
case 5:
fnishedCutting();
break;
}

•}
void homeScreen(){
lcd.setCursor(0, 0);
lcd.print("WIRE CUTTER");
lcd.setCursor(11, 1);
lcd.print("NEXT>");
delay(100);
}

void chooseWireLength(){
wireLength = changeValue(wireLength);

//clear LCD if required


if(previousWireLength != wireLength){
lcd.clear();
previousWireLength = wireLength;
}

//Display information on LCD


lcd.setCursor(0, 0);
lcd.print("LENGTH:" + (String)wireLength + "mm");
displayNavigation();
•}
void chooseWireQuantity(){
wireQuantity = changeValue(wireQuantity);

//clear LCD if required


if(previousWireQuantity != wireQuantity){
lcd.clear();
previousWireQuantity = wireQuantity;
}

//Display information on LCD


lcd.setCursor(0, 0);
lcd.print("QUANTITY:" + (String)wireQuantity);
displayNavigation();
}

void confrm(){
lcd.setCursor(0, 0);
lcd.print((String)wireLength + "mm x " + (String)wireQuantity + "pcs");
lcd.setCursor(0, 1);
lcd.print("<BACK");
lcd.setCursor(10, 1);
lcd.print("START>");
delay(100);
}

void currentlyCutting(){
lcd.setCursor(0, 0);
lcd.print((String)0 + "/" + (String)wireQuantity);
lcd.setCursor(0, 1);
lcd.print("???s");
int stepsToTake = (int)wireLength/mmPerStep;
for(int i = 0; i < wireQuantity; i++){
unsigned long timeForOneCycle = millis();
digitalWrite(dirPin,HIGH);
for(int x = 0; x < stepsToTake; x++) {
digitalWrite(stepPin,HIGH);
delayMicroseconds(500);
digitalWrite(stepPin,LOW);
delayMicroseconds(500);
• }
lcd.setCursor(0, 0);
lcd.print((String)(i+1) + "/" + (String)wireQuantity);

snippers.write(closedAngle);
delay(600);
snippers.write(openAngle);
delay(600);

lcd.setCursor(0, 1);

unsigned long timeRemaining = ((millis() - timeForOneCycle)*(wireQuantity - (i+1)))/1000;


lcd.print((String)timeRemaining + "s ");

}
wireLength = 0;
wireQuantity = 0;
state = 5;
}

void fnishedCutting(){
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("CUTTING COMPLETE");
lcd.setCursor(11, 1);
lcd.print("NEXT>");
delay(100);
}

int changeValue(int currentValue){
if (!digitalRead(upButton)) {
currentValue += incrementSpeed;
incrementSpeed ++;
}
if (!digitalRead(downButton)) {
if(currentValue - incrementSpeed >= 0){
currentValue -= incrementSpeed;
incrementSpeed ++;
}
else{
currentValue = 0;
}
}
if (digitalRead(downButton) && digitalRead(upButton)){
incrementSpeed = 1;
}
return currentValue;
}

void displayNavigation(){
lcd.setCursor(0, 1);
lcd.print("<BACK");
lcd.setCursor(11, 1);
lcd.print("NEXT>");
delay(100);
•}
3. CONCLUSIONS

As our proposed, Wire cutting system is


automatic, easy
to handle, reduces man power, save wires from
damage
because it is automatic with zero error with
reliable
process. It is advantageous for the industries
and for
workers.
4. FUTURE SCOPE

This system can be used for the wireless automatc wire


cutng system using GPS and GSM [3]. This will have a
great impact on the electrical industry. And in order to
operate it from mobile or cell phone, Android applicaton
can be developed [4]. These are the future aspects of
project development in this partcular field.
Thank You

You might also like