2019-03-26 [项目分享]Arduino切线机剪线机

设置好所需长度和数量的线材后,自动完成切割。

硬件材料

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);

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,283评论 0 10
  • basics analogreadserial bareminimum blink DigitalReadSeri...
    麦牛2013阅读 2,303评论 0 1
  • 墓碣文中的自己,往往要比事实中的更加真实,这是生命结束后,别人对你最直白的评论,扶心自食,预知本味,创痛酷烈,...
    施晨曦同学阅读 517评论 0 0
  • 第一次见你,是在朋友圈里; 第一次约你,是在一个夜里; 第一次抱你,该会是在哪里? 我想应该会在下一刻……
    新晴_love阅读 144评论 0 0
  • 01 小时候撒娇哭闹,父母就会一脸严肃地说道:“再哭就把你扔出去,我们不要你了,让外面的大花狗把你叼走。”这杀手锏...
    六六追剧乐园阅读 1,248评论 0 0