查看: 5968|回复: 0

[项目] [项目分享]Arduino切线机剪线机

[复制链接]

该用户从未签到

发表于 2020-7-9 10:15:26 | 显示全部楼层 |阅读模式
分享到:
本帖最后由 xinxi2014 于 2020-7-9 09:41 编辑


设置好所需长度和数量的线材后,自动完成切割。
硬件材料
1*Arduino UNO
1*电机驱动器
1*23步进电机
1*12v转5v稳压模块
1*支架、螺钉、垫片
2*轮胎
灵感来源
人工线轴上拉出几千根长20cm的22awg电线并不是一件有趣的事。它很无聊,而且很容易出现不准确。需要2个人花上2天才能手动拉完706个22awg电线。如果你只有一个线轴(一次拉1个线),则需要更长的时间。使用Arduino切线机,你需输入所需的长度和数量,即可预先输入所需的长度和数量,就可以自动完成。









  • #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);
  • }





回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /5 下一条



手机版|小黑屋|与非网

GMT+8, 2024-12-24 02:37 , Processed in 0.129057 second(s), 15 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.