在上节讲述了l298n驱动模块原理图,这里说一下接线,一个l298n可以驱动两个电机,左右两个用跳线帽占用的就是pwm线(也叫使能端口),高电平有效。
先说一下注意事项:l298n供电的5v如果是用另外电源供电的话(也就是说,l298n与单片机的电源不一致,举个例子:l298n是靠接电源的12v降压供的电,而单片机是靠电脑或者其他3.3v电池供电,这样得用面包板将他们的地线gnd连接在一起),只有这样单片机上过来的逻辑信号(3.3v,电表可测)才有参考零点,板载5v稳压芯片的输入引脚和电机供电驱动接线导通,这时OUTPUT1导通,可接电机。
所以正常接线操作是:12v电池正负接l298n12v和gnd,输出的5v可用于单片机供电也可不接,如果不接那要保证上述他们的gnd连接在一起,使能ENABLE接单片机定时器TIM的4个通道之一(为了调速),也可以随便接一个高电平引脚(甚至直接从面包板引出正极3.3v(高电平)就能试试是不是板子的引脚出问题了),IN1,IN2这些是控制正反转的,控制OUTPUTA,一般给其中一个0-1这样就能控制。
我后面买过一块l298的驱动板与l298n不同:
对于XY-160D模块,因为他给出了5v输入模块和gnd的排针,所以信号端的5v接口的给他供5v或者3.3v的电,而且要保证后面的ENA和INx都是相同的电压。同理这里的gnd和单片机也得一起共地。
以下是其参数,一般用于驱动双路中大型电机:
接下来讲一下步进电机相关的:
我用的步进电机和其驱动都是野火的:
先讲一下步进电机的参数和原理:
通常步进电机的转子为永磁体,当电流流过定子绕组时,定子绕组产生一矢量磁场。磁场会带动转子旋转一定的角度, 使得转子的一对磁场方向与定子的磁场方向一致。当定子的矢量磁场旋转一个角度。转子也随着该磁场转步距角。 每输入一个电脉冲,电动机转动一个角度前进一步。它输出的角位移与输入的脉冲数成正比、转速与脉冲频率成正比。 改变绕组通电的顺序,电机就会反转。所以可用控制脉冲数量、频率及电动机各相绕组的通电顺序来控制步进电机的转动。
57就是指的电机的端盖外形尺寸是57mm的正方形(不同电机可能有微小的差异),其安装孔距47mm。
输出力矩:1.3Nm(牛米)是指最大电流的时候输出的力矩。
使用电流:3A 是电机工作的最大电流,电流的大小决定了力矩的大小,并且步进电机的转矩与速度成反比,速度越快力矩越小。可根据机械转矩公式:
步进电机必须要有控制器和驱动器才可以使电机正常工作,控制器是stm32或者其它型号的MCU了,驱动器就是步进电机驱动器了。 为什么要使用驱动器呢?驱动器起到将控制器信号放大或者转换的作用,如下图所示,控制器输出方向信号和脉冲信号来控制步进电机驱动器, 驱动器将其功率放大然后作用到步进电机上。
这个步进电机是两相四线,电机线(黑色A+绿色A-红色B+蓝色B-),依次接好(其实AB相不用刻意区分)
步距角:1.8°指的是给一个脉冲电机旋转的角度。那么转一圈是多少个脉冲?转一圈是360°,360/1.8=200。就是200个脉冲就转一圈。只与个数相关,和速度无关,也就是说你一分钟给200脉冲和1秒钟给200脉冲,电机都只会转一圈。这也是步进电机与其他无刷电机最大的区别,它是靠脉冲信号来给其转速,而扭矩是靠电流大小。在一定功率下,普通的电机一般转速快扭矩就得小。
接下来来讲驱动器使用:
-
ENA功能说明:控制器的输出是通过该组信号使能,又称脱机信号。当此信号有效时,输出关闭,电机绕组电流为零, 电机为无力矩状态,可以自由转动电机,适合需要手动调整电机的场合。
-
DIR功能说明:电机的方向控制信号,当此信号有效时,电机顺时针转动,当此信号无效时,电机逆时针旋转。
-
PUL功能说明:电机的转动控制信号,驱动器接收到的脉冲信号电机就会按照既定的方向旋转。电机的角位移与脉冲的数量成正比, 速度与脉冲的频率成正比。通常脉冲的有效宽度>=5us,频率<=125KHz。
-
再讲一下接线方式:
有共阳和共阴极接法,这里我解释共阳极接法:
将使能ENA+,DIR+(方向+),脉冲+(PUL+)都接到单片机3.3v引脚上,将其他-的引脚可以接到单片机的pinA3,4,5引脚上,通过单片机发送高低电平来控制使能的启停(pinA5),pinA3控制脉冲信号控制电机旋转,驱动器的VCC和GND接电池的正负,千万不能接反否则会烧毁驱动器。最后单片机和驱动器(电源)要一起共地。
这几个开口需要自己手动拨动的
细分参数设置
驱动器的细分设置由拨码开关的SW1~SW3来设定,默认为2细分,一般的两相四线制步进电机的步进角都是1.8°, 因此电机旋转一圈需要360° /1.8° =200个脉冲,这里2细分转一圈 需要的脉冲数为200*2=400个。
怎么理解呢:把一个步距分成4个阶段,这个动作就是细分,叫4细分。如果再把这个过程细分,比如8,16,32等等就可以得到跟精确的位置。相对应的我们原来转一圈要200个脉冲(注意,不同电机有差别啊),那么4细分就要输入800个脉冲,8细分就要1600个脉冲。 所以如果使用细分可直接影响步距角的大小(比如选择),直接影响电机运行精度。
这里就得补充脉冲相关概念了:
脉冲(pulse)
1.电流、电压或某些其他物理量的瞬态改变。
2.在极短的时间内间歇性的电流或电压所产生的变化,可以为正或为负。
脉冲通常是指电子技术中经常运用的一种像脉搏似的短暂起伏的电冲击(电压或电流)。主要特性有波形、幅度、宽度和重复频率。脉冲是相对于连续信号在整个信号周期内短时间发生的信号,大部分信号周期内没有信号。就像人的脉搏一样。现在一般指数字信号,它已经是一个周期内有一半时间有信号。计算机内的信号就是脉冲信号,又叫数字信号。
我们把脉冲信号从低电压到高电压的沿称为上升沿,从高电压到低电压的沿称为下降沿,有些数据也称为前沿和后沿。低电压叫低电平,高电压叫高电平。
空比值:指脉冲宽度t1占周期T的百分比,为t1/T%。空的比值表示脉冲所占周期的空。空比值越大,脉冲宽度越接近周期T,脉冲信号平均值越大。
可以类比控制工程里的单位脉冲响应,单位脉冲顾名思义就是从零突然突变到1的瞬态过程。
事实上,一个完整的脉冲信号可以通过两次电平翻转来构成。具体来说,当控制脉冲信号的引脚从低电平切换到高电平时,称为一个电平翻转。当脉冲信号引脚再次从高电平切换回低电平时,称为第二个电平翻转。这两次翻转组成了一个完整的脉冲信号。因此,电平翻转两次就形成一个脉冲信号。
回到上述细分参数设置里,这里如果我给细分是8,SW1,SW2,SW3对应的(0,1,0)(0ff是0,on是1 ),也就是说8细分转一圈 需要的脉冲数为200*8=1600个,然后高低电平翻转两次为一个脉冲,所以需要3200个高低电平切换,此外,还需设置高低电平持续时间
脉冲频率是指单位时间内脉冲的数量,以赫兹HZ为单位,在计算输出脉冲时,可以将设置定时器
PWM波的频率(例如为1kHz)作为脉冲频率即(1kHz为一秒1000个脉冲)
脉冲频率 = 1 / 脉冲周期,而脉冲周期 = 高电平时间 + 低电平时间。
从上述公式可以看出,高低电平时间和脉冲周期是直接相关的。如果通过改变高低电平时间来调节脉冲周期,那么脉冲频率也会相应地改变,改变脉冲周期和脉冲频率,从而实现对步进电机的控制。
具体学习步进电机可以参考一下网址:
STM32驱动步进电机--IO口翻转方式_哔哩哔哩_bilibili