[项目]Arduino切线机剪线机 精华

7856浏览
查看: 7856|回复: 4

[项目] Arduino切线机剪线机

[复制链接]
本帖最后由 Arduino_xy 于 2019-3-26 00:41 编辑

Arduino切线机剪线机图1
设置好所需长度和数量的线材后,自动完成切割。
硬件材料
1*Arduino UNO
1*电机驱动器
1*23步进电机
1*12v转5v稳压模块
1*支架、螺钉、垫片等
2*轮胎
灵感来源
人工线轴上拉出几千根长20cm的22awg电线并不是一件有趣的事。它很无聊,而且很容易出现不准确。需要2个人花上2天才能手动拉完706个22awg电线。如果你只有一个线轴(一次拉1个线),则需要更长的时间。使用Arduino切线机,你需输入所需的长度和数量,即可预先输入所需的长度和数量,就可以自动完成。
Arduino切线机剪线机图3
Arduino切线机剪线机图4
Arduino切线机剪线机图5
Arduino切线机剪线机图6
Arduino切线机剪线机图7
Arduino切线机剪线机图8
Arduino切线机剪线机图9
Arduino切线机剪线机图10
Arduino切线机剪线机图2
[mw_shl_code=applescript,true]#include <math.h>               //#math
#include <Servo.h> //From Library
Servo servoMain; // Define Servo
#include <SoftwareSerial.h> // soft serial for LCD
#define stp 2 //define stepper
#define dir 3 //define stepper
#define MS1 4 //define stepper
#define MS2 5 //define stepper
#define MS3 6 //define stepper
#define EN  7 //define stepper

float a;              //variable assignment qty
float b;              //variable assignment inches
float c;              //variable assignment required motor steps
float W;              //removed from functions for now, might need later.
char junk = ' ';      //any random character input.
char val;             // Data received from the serial port
char user_input;
int x;                //Probably over loaded on assignments, not sure. Remove later and test.
int y;
int state;
SoftwareSerial mySerial(0, 11); // pin 11 = TX

void setup()          // set up
{
  pinMode(15, OUTPUT); // set the pin to input
  servoMain.attach(9); // servo on digital pin 9
  pinMode(13, OUTPUT); // led on pin 13
  pinMode(stp, OUTPUT); //B.E.D
  pinMode(dir, OUTPUT); //B.E.D
  pinMode(MS1, OUTPUT); //B.E.D
  pinMode(MS2, OUTPUT); //B.E.D
  pinMode(MS3, OUTPUT); //B.E.D
  pinMode(EN, OUTPUT); //B.E.D
  resetBEDPins(); //Set step, direction, microstep and enable pins to default states
  Serial.begin(9600);   // set up Serial library at 9600 bps
  mySerial.begin(9600); // set up serial port for 9600 baud
  Serial.println("Lets Cut Some Wires!"); //welcome message in serial window
  Serial.println("");
  Serial.flush(); //clear the input que.
}

void loop()

{
  {
  mySerial.write("                "); // clear display
  mySerial.write("                ");

  mySerial.write(254); // move cursor to beginning of first line
  mySerial.write(128);

  mySerial.write("Solution Systems  Feed n Cut!");

  delay(2);
  }
  Serial.println("Enter Quantity, Press ENTER");        // user Input request qty
  while (Serial.available() == 0) ;                     // Wait here until input buffer has a character
  {
  
    a = Serial.parseFloat();                           // new command in 1.0 forward
    Serial.print("a = "); Serial.println(a, DEC);

    while (Serial.available() > 0)                      // .parseFloat() can leave non-numeric characters
    { junk = Serial.read() ; }                          // clear the keyboard buffer
  }

  Serial.println("Enter Length in Inches, Press ENTER");
  while (Serial.available() == 0) ;
  {
   
    b = Serial.parseFloat();
    Serial.print("b = "); Serial.println(b, DEC);
    while (Serial.available() > 0)
    { junk = Serial.read() ; }                          // clear the keyboard buffer

    c = (float( b*26 ));

    Serial.print("Motor Steps = ");
    Serial.println(c, DEC); Serial.println();
    }
   
  Serial.println("Ready to Begin? Press ENTER");        // user Input request Y or N?
  digitalWrite(EN, LOW);                                //Pull enable pin low to set FETs active and allow motor control
  while (Serial.available() == 0);                      // If data is available to read,
   {
     val = Serial.read();                               // read it and store it in val
     if (val == 'y')
     {
      Serial.println("Here We Go!");
      delay(10);
      for (a; a>0; a--){      // this step checks if the quantity entered (a) is greater than 0,...  and deducts 1 from a.
        Feedft();             // if it is it repeats the step feed and cut function again.
      }
     }
     else {
     Serial.println("Restarting Setup...");             // otherwise restart
     }
   delay(10);                                           // Wait 10 milliseconds for next reading
  }
  { junk = Serial.read() ; }                           // clear the keyboard buffer
  
}

  
//Reset Big Easy Driver pins to default states
void resetBEDPins(){
  digitalWrite(stp, LOW);
  digitalWrite(dir, LOW);
  digitalWrite(MS1, LOW);  // leaving wired and in sketch for now, not using micro-step control at this time.
  digitalWrite(MS2, LOW);
  digitalWrite(MS3, LOW);
  digitalWrite(EN, HIGH);
}

//Functions
void Feedft(){
  Serial.println("Feeding Wire at default step mode.");
  digitalWrite(dir, LOW);                   //Pull direction pin low to move "forward"
  for(x= 1; x<c; x++){                      //Loop the forward stepping enough times for motion to be visible
    digitalWrite(stp,HIGH);                 //Trigger one step forward
    delay(1);
    digitalWrite(stp,LOW);                  //Pull step pin low so it can be triggered again
    delay(1);
  }                                         //Need to add a stepper done moving function here!!!!!!!!!!!!!<==================
   ServoMainCut();                          //Run the Cut Function
   delay(2000);   
   Serial.println("Cutting Wire!");         //Fair Warning.....
  // RepeatCount();                           //Run the repeat function
  { junk = Serial.read();}                  //Clear the keyboard buffer
}

//funtion Servo Cut
void ServoMainCut(){
   digitalWrite(13, HIGH);
   delay(100);
   digitalWrite(13, LOW);
   servoMain.write(177); // CUT!! Turn Servo Left to 176 degrees
   delay(750);          // Wait 1.5 second
   servoMain.write(65); // Open Cutter Turn Servo Left to 65 degrees
   digitalWrite(13, HIGH);
   delay(100);
   digitalWrite(13, LOW);
}[/mw_shl_code]


本帖被以下淘专辑推荐:

  • · 趣玩|主题: 4, 订阅: 0

gada888  版主

发表于 2019-4-1 08:36:20

牛,要能弯成各种形状就好了
回复

使用道具 举报

20060606  高级技匠

发表于 2020-8-8 06:19:00

很实用的
回复

使用道具 举报

 初级技匠

发表于 2022-4-18 13:52:56

不错,很实用
回复

使用道具 举报

DFBkTibd8Vr  学徒

发表于 2022-8-22 11:37:55

步进电机应该是23×2.54=57。舵机型号没有写,不过跟钳子比起来应该比996r还要大一个级别
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail