亲,“电路城”已合并升级到更全、更大、更强的「新与非网」。点击查看「新与非网」

本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

DIY基于Arduino的线轴绕线机

发布时间:2021-03-31
分享到:

DIY基于Arduino的线轴绕线机

发布时间:2021-03-31
分享到:

您好,这篇文章是关于DIY基于Arduino的自动绕线机。

线轴是缝纫机中使用的小金属线轴,线轴上填充有针刺布。
该线轴经常变空,您需要一次又一次地用线程回绕。
因此,我使这台机器可以在一次运行中自动将线绕至最多12个梭芯。市场上已经有许多梭芯绕线机可用。
但是这里的价格超过500美元,但是我这台基于Arduino的DIY梭芯绕线机的价格可以低于100美元。

视频:

 

所需材料:

以下是我用来制造这台机器的项目清单,材料完全取决于您设计机器的方式。
Arduino Nano ——————— 1
L293D IC ————————- 1
A4988步进驱动器————– 2
Nema 17步进电机——– 2
775直流电动机——————– 1
电机夹钳———————— 1
SK8 8MM轴夹————- 5
SCL8UU轴承—————– 4
8mm光棒—————- 1mtr
T8导螺杆——————– 1mtr
T8螺母—————————— 2
20 x 20铝 简介—————— 2mtr
6mm亚克力板————– 8平方英尺
16×2液晶显示器————— 1
10k pot ————————- 1
按钮———————- 1
镍铬丝——————— 10cm
5V继电器—————————— 1

电路图:

Arduino 代码:

#include <Wire.h>     
#include "rgb_lcd.h"
rgb_lcd lcd;
#include <Servo.h>
Servo myservo;
int pos = 0;
int height = 128;
#include <Arduino.h>
#include "BasicStepperDriver.h"
#include "MultiDriver.h"
#include "SyncDriver.h"
#define MOTOR_STEPS 200
#define MOTOR_X_RPM 30
#define MOTOR_Y_RPM 30
// X motor
#define DIR_X A0
#define STEP_X A1
// Y motor
#define DIR_Y A2
#define STEP_Y A3
#define MICROSTEPS 16
BasicStepperDriver stepperX(MOTOR_STEPS, DIR_X, STEP_X);
BasicStepperDriver stepperY(MOTOR_STEPS, DIR_Y, STEP_Y);
//SyncDriver controller(stepperX, stepperY);
MultiDriver controller(stepperX, stepperY);
int Enable = 5;
int Mot = 4;
int pot = A7;
int val = 0;
int button = 2;
int state = 0;
int laststate = 0;
int relay = 6;
void setup() {
 //Serial.begin(9600);
 lcd.begin(16, 2);
lcd.setCursor(0, 0);
 lcd.print ("BOBBIN WINDING");
lcd.setCursor(0, 1);
 lcd.print ("MACHINE");  
 pinMode(Mot,OUTPUT);
 pinMode(relay,OUTPUT);
 pinMode(button,INPUT_PULLUP);
myservo.attach(11);
stepperX.begin(MOTOR_X_RPM, MICROSTEPS);
stepperY.begin(MOTOR_Y_RPM, MICROSTEPS);
myservo.write(180);
delay(2000);
controller.rotate(0, -600);
lcd.clear();
}
void loop() {
 
   
val = analogRead(pot);
val = map(val, 0, 700, 0, 100);
analogWrite(Enable,val);  
 lcd.setCursor(0, 0);
 lcd.print ("PRESS TO START");
 lcd.setCursor(0, 1);
 lcd.print ("SPEED");   
 lcd.setCursor(8, 1);
 lcd.print (val);
 lcd.setCursor(12, 1);
 lcd.print ("%");
 
if(!digitalRead(button)){
state = 1;
lcd.clear();
lcd.setCursor(0, 0);
 lcd.print ("RUNNING....");
 lcd.setCursor(0, 1);
 lcd.print ("PRESS TO STOP");
}
if (state==1)
{
controller.rotate(-750, 0);
controller.rotate(0, 100);
delay(200);
controller.rotate(750, 0);
servoUP();
delay(1000);
controller.rotate(-350, -250);
delay(1000);
servoDown();
delay(2000);
controller.rotate(-200, -50);
delay(500);
relayON();
delay(500);
windingON();
delay(75600);
windingSTOP();
delay(1000);
controller.rotate(550, 100);
controller.rotate(0, 100);
delay(1000);
}
                         
  }
 
void first(){
   controller.rotate(-560, 0);
    delay(1000);
    controller.rotate(560, 0);
    delay(1000);
 
}
void engage(){
   controller.rotate(-365, -110);
   
 }
 void disengage(){
   controller.rotate(365, 0);
   
 }
void SupportIN(){
   controller.rotate(0, -90);
   
 }
 void SupportOUT(){
   controller.rotate(0, 750);
   
 }
 
 void servoUP(){
  for (pos = 180; pos >= height; pos -= 1) {
    
    myservo.write(pos);              
    delay(30);                       
  }
 
 }
 void servoDown(){
  for (pos = height; pos <= 180; pos += 1) {
    myservo.write(pos);             
    delay(30);
  }
 }
 void windingON(){
 
digitalWrite(Mot,HIGH);
 
 }
 void windingSTOP(){
  digitalWrite(Mot,LOW);
 }
  void relayON(){
 
digitalWrite(relay,HIGH);
delay(1000);
digitalWrite(relay,LOW);  
 }

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论