arduinouno+tb6600+42步进电机自制自动绕线机

arduinouno+tb6600+42步进电机⾃制⾃动绕线机⾃动绕线机 V1.0
记录分享⼀下,后续有需要会迭代新版本。
⽬录
1.  各组件介绍:
1.1  arduino uno :最简洁的控制板。
1.2  tb6600:步进电机控制模块
可以很⽅便的调节脉冲细分和电流⼤⼩。
我在这家买的,不知道为啥⽐别⼈家便宜很多。
1.3  42步进电机:
四线两相电机,也是这家买的,属实便宜,还送线。
1.4  键盘显⽰模块板(⾃制)
这块板⼦是我⾃⼰画的,可以根据⾃⼰的需要⾃⼰调整
1.4.1  原理图与PCB
这⾥我使⽤了⽴创eda来进⾏画板⼦。怎么画板⼦bilibili有教程,我就不细说了。
放个教程链接:
在⽴创商城⾥根据⾃⼰需要选好元器件,放置好,这⾥我画的⽐较丑,不过也⽆所谓了。
这⾥主要就⼀个液晶1602,按照管脚功能连好就完事了。
⾃动⽣成pcb,调整⼀下元件位置,布好线后,预览⼀下。
1.4.2  画好的板⼦3d预览
⽣成gerber⽂件后就可以在嘉⽴创下单助⼿免费下单打样了,记住板⼦要画成10cm*10cm以内的,这样才能⽩嫖。
1.5  光耦检测器
因为我想要根据绕线端每绕⼀圈这边排线的⼀端就往前⾛个0.2mm之类的,好让排的线⽐较整齐,所以需要⼀个光耦检测器来进⾏输出⼀个信号。
这个换成霍尔传感器也可以。
1.6  机械结构
家⾥本来就有⼀台传送带的架⼦我拿过来⽤了,等我新电脑到了,我再重新画⼀个结构。
2.  各个模块接线说明
2.1  tb6600 与 arduino 接线说明
这⾥我采⽤共阴极接法。因为arduino 输出不超过5v,所以下图的电阻可以省略。只需要接pus+(脉冲),dir+(⽅向),还有公共地线 三根线到arduino。
电机接线就很简单:A+A-B+B-接到tb6600就好了。
联合签名
两相四线(红蓝绿⿊或者红绿黄蓝对应接A+A-B+B-) 相数是指电机内部的线圈组数,⽬前常⽤的有⼆相-五相步进电机。电机相数不同,其步距⾓也不同,⼀般⼆相电机的步距⾓为0.9°/1.8°。 然后四线就是说电机出线有四根线。
tips:
1.  注意tb6600模块的供电⼀定要12v-24v直流电源,不然即使控制器灯亮也不会⼯作。
2.  怎么判别步进电机是否是同⼀相:步进电机什么都不接,转动轴的话是很轻松的。随便拿两根线接在⼀起,转动轴费劲的话就是同⼀相。
3.  tb6600 的细分要设置好,最好多些倍数(4倍8倍16倍都可,我程序⾥是设置的4倍细分,也就是频率需要乘以4),好让tone()函数能发送的频率⾼⼀些,需要注意tone()函数只能⽣成31hz以上的频率,当设置成31hz以下时,它⽣成的就不知道是多少hz了,时快时慢。
2.2  arduino 与键盘液晶接⼝板的接线与功能说明
1602液晶有⼏种接线⽅式,这⾥为了省端⼝,我将4个数据线的接法。剩余线的接法因为每个⼈需要的功能不同,接⼝板的设计也不⼀样。
这⾥我的板⼦主要有四个按键,两个b5k电位器,⼀个lcd1602
2.2.1  具体功能设计:
制氮气排线电机:这⾥控制的步进电机是排线电机,只负责控制线的横向位移,从⽽达到⾃动排线的⽬的。
绕线电机:另有⼀个电机在那边带着被绕的线圈不停转动。这个轴上放置⼀个纸⽚⽤于遮挡光耦检测器。(此电机可以使⽤普通的马达即可。需要外接开关控制是否转动,当时忘了考虑这⼀茬了,板⼦上就没有画。)
key1:设定往返绕线位置。
key2:步进电机右转微调
key3:步进电机左转微调
key4:  ⾃动检测绕线是否进⾏开关,根据光耦检测器输出,绕线电机的轴上每转⼀圈,控制排线电机转动多少(需要根据与电机连接的螺纹杆的参数和线径⾃⾏计算,在程序中进⾏设置。也可以不看线径,直接⽤sw电位器⾃⼰调整)。
第⼀个电位器⽤于控制lcd1602液晶显⽰屏光栅,⽤于调整液晶显⽰效果,调整好以后可以换成固定电阻。
第⼆个电位器 sw ⽤于调整线径⼤⼩,是可以直接调整绕线电机转动⼀圈,排线电机转动多少的旋钮。
球墨铸铁管qiumogg2.2.2  操作顺序:
1. ⾸先转动sw电位器,调整好线径
2. 按下key4, 打开⾃动监测绕线运⾏
折叠篮3. 打开绕线电机开关,调整好挡板位置,开始绕线
4. 等待第⼀次绕线,绕到合适的宽度时,按下key1按键,保存当前位置。
5. 然后排线电机就会反向转动到起始位置,再反向,循环往复。
3.  代码
具体程序如下
#include<LiquidCrystal.h>
// 管脚定义
兑换频率限制const int sw = A1, rs = 3, rw = 4, en = 5;
const int d4 = 10, d5 = 11, d6 = 12, d7 = 13;
const int k1 = A5, k2 = A4, k3 = A3, k4 = A2, detect = A0;
const int dir = 6, cp = 7, stepenb = 8;//tb6600 控制器,共阴极接法。
LiquidCrystal lcd(rs, rw, en, d4, d5, d6, d7); //LiquidCrystal 对象名称(寄存器选择, 使能, 数据脚, 数据脚, 数据脚,数据脚);
unsigned int speedx = 500;
unsigned int cpNum = 0;
unsigned int cpSetNum = 9999;
boolean lastHide = true;
boolean autorun = false;
boolean lastdir = false; //上⼀次的⽅向,默认false
void setup() {
lcd.begin(16, 2);    //设置LCD的⾏列数
lcd.clear();
lcd.print("hello, world!");  //在屏幕上打印hello, world!
pinMode(sw, INPUT);
pinMode(k1, INPUT);
pinMode(k2, INPUT);
pinMode(k3, INPUT);
pinMode(k4, INPUT);
pinMode(detect, INPUT);
pinMode(dir, OUTPUT);
pinMode(cp, OUTPUT);
digitalWrite(dir, LOW);//默认顺时针
}
void keyScan() {
boolean val;
val = digitalRead(k1);
if (val) {
noTone(cp);
lcd.clear();
lcd.print("1 set position:");
cpSetNum = cpNum;
}
val = digitalRead(k2);
if (val) {
lcd.clear();
lcd.print("2 dir=R");
管式热交换器digitalWrite(dir, LOW);//⽅向设置成顺时针
lastdir = false; //记录⽅向

本文发布于:2024-09-22 01:35:36,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/318723.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:电机   绕线   需要   调整   转动
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议