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.
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.2 Proposed work

The human efforts in electrical wiring are high and the


material used for the manufacturing of the wires is costly.
Therefore it should be used very effectively. Therefore,
this project is proposed to design to minimise the human
efforts 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
Code for ardino board:-
• /------------------------------- librarys ----------------------------------

• #include <Wire.h>

• #include <rgb_lcd.h>

• #include <Servo.h>


• //------------------------------- lcd ----------------------------------

• rgb_lcd lcd;


• //------------------------------- stepper ----------------------------------

• #define stepPin 7

• #define dirPin 8


• //------------------------------- servo ----------------------------------

• Servo snippers;

• #define servo 10

• #define openAngle 90

• #define closedAngle 0


• //------------------------------- input ----------------------------------


• #define leftButton 3

• #define rightButton 2

• #define upButton 4

• #define downButton 5

• 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:

• confirm();

• break;

• case 4:

• currentlyCutting();

• break;

• case 5:

• finishedCutting();

• break;

• }


• }
• 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 confirm(){

• 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 finishedCutting(){
• 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);
• }
4. FUTURE SCOPE

This system can be used for the wireless automatic wire


cutting 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 application
can be developed [4]. These are the future aspects of
project development in this particular field.
Thank You

You might also like