【Arduino步进电机】【4.1】PWM控制基础

零.基础

共阴极接法

原理篇
arduino控制步进电机接线
https://blog.csdn.net/RickyWasYoung/article/details/132301936?spm=1001.2014.3001.5501

接线篇
arduino控制步进电机接线+控制[2]
https://blog.csdn.net/RickyWasYoung/article/details/132405984?spm=1001.2014.3001.5501

控制篇
arduino控制步进电机/电缸/电推杆接线+控制【3】
https://blog.csdn.net/RickyWasYoung/article/details/132458029?spm=1001.2014.3001.5501

书接上文

一.PWM简介,简单总结一下

0.PWM(脉冲宽度调制) 是一种数字信号,最常用于控制电路。该信号在预定义的时间和速度中设置为高(如5v或3.3v)和低(0v)。通常,我们将PWM的高电平称为1,低电平为0。
1.PWM属于速度控制的方式之一,速度控制有三种方式:PWM脉冲调制,PPM脉位调制,PAM时脉幅调制
2.步进电机最常用的调速方式是PWM
3.PWM的原理:PWM 是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。
4.PWM 信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用 PWM 进行编码
5.PWM的占空比简单理解:就是在改变一个周期内高低电平时间
因此
电平高低持续时间 是PWM控制的两大关键变量。
6.对于步进电机控制而言,由于电平的高低是固定的,而电机位移的大小取决于速度(delay的时长)与该速度对应的脉冲的持续时间(总脉冲步数)。

因此

delay的时长 与 该时长下的脉冲步数 是步进电机PWM控制的关键

二.步进电机delay时长、总步数与位移的关系

二点一.基础***************************************************************

电机参数参考:
https://blog.csdn.net/RickyWasYoung/article/details/132458029?spm=1001.2014.3001.5501

电机控制的核心代码如下所示:

  for (int x = 0; x < 1000; x ++) {
    digitalWrite(STEPPIN, HIGH);
    delayMicroseconds(125);//Microseconds是微秒
    digitalWrite(STEPPIN, LOW);
    delayMicroseconds(125);//Microseconds是微秒

如以上代码所示,总步数为1000步,一步脉冲的时长为250微秒(250=125*2即高低电平相加总时长)

对于28K-2R-25.4电机而言,TB6600的细分数为200时,总伸缩行程刚好为1000步
则以上代码对应的推杆位移-时间/步数关系为:
在这里插入图片描述在这里插入图片描述图注:上图中 周期一步脉冲的时长
PS:实际上两图应该是阶梯状的,近似于直线

以上两图可得出结论:

1.细分数固定后,脉冲步数与总位移数的关系 是 固定的(斜率即整步步长,对于28K-2R-25.4电机而言为0.0254mm)

2.每步脉冲的周期(每步脉冲的时长)(当然也可称之为频率)固定后,电机伸缩速率即固定

结论:因此可通过调整 脉冲频率对应速率的持续时间 调整电机的 速率位移

二点二.时长固定调斜率************************************************

代码如下所示

  for (int x = 0; x < A; x ++) {
    digitalWrite(STEPPIN, HIGH);
    delayMicroseconds(B);//Microseconds是微秒
    digitalWrite(STEPPIN, LOW);
    delayMicroseconds(B);//Microseconds是微秒

A是对应脉冲的总数,B是脉冲持续时间大小

A影响位移大小,B影响速率大小

想让电机模仿一周期函数(如正弦函数)运动,不是调A就是调B(也可以两个都调),最简单的是 固定A调B

A固定,调整B(时长固定调斜率)

效果如下所示:
在这里插入图片描述一个函数按周期平均分为10段,每段时长固定,每段用直线连接在这里插入图片描述一个函数按周期平均分为20段,每段时长固定,每段用直线连接

则平均分的段数越多,每段时长越短,得到的时间-位移图线越接近于原函数

参考

1.单片机之步进电机速度控制篇
https://blog.csdn.net/qq_58006265/article/details/124783434

2.PWM知识详解
https://blog.csdn.net/dgut13432976621/article/details/120062700?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169309978016800188589052%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=169309978016800188589052&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-2-120062700-null-null.142v93chatgptT3_2&utm_term=PWM&spm=1018.2226.3001.4187

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值