1173| 29
|
[项目] 【花雕学编程】Arduino动手做(226)---L298N驱动42步进电机 |
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百二十六:正反转PWM调速双H桥L298N模块驱动42步进电机 项目实验之四:不使用库,直接改变电压值控制步进电机持续正转 实验开源代码
|
本帖最后由 驴友花雕 于 2024-8-26 16:47 编辑 代码说明: 1、该程序首先包括 Arduino Stepper 库。步进库与 Arduino IDE 打包在一起,负责对发送到电机的脉冲进行排序。
2、包含库后,我们定义一个名为 stepsPerRevolution 的变量。顾名思义,它是您的电机额定每转的步数。在我们的例子中是 300。
3、接下来,我们创建 Stepper 库的对象。Stepper 类的构造函数将电机和 Arduino 引脚连接的每转步数作为参数。
4、在代码的设置部分,我们通过调用 setSpeed() 函数来设置步进电机的速度,并初始化串行通信。
5、最后,在代码的循环部分,我们只需调用 step() 函数,该函数使电机以 setSpeed() 函数设置的速度转动特定数量的步数。将负数传递给此函数将反转电动机的旋转方向。
6、请注意,step() 是一个阻塞函数。这意味着它将等到电机完成移动后,将控制权传递给程序中的下一行。例如,如果您将速度设置为 1 RPM 并在 100 步电机上调用 step(100),则此功能将需要整整一分钟才能完成。 |
实验开源代码
|
L298N 是专用驱动集成电路,属于H桥集成电路,与L293D的差别是其输出电流增大,功率增强。其输出电流为2A,最高电流4A,最高工作电压50V,可以驱动感性负载,如大功率直流电机,步进电机,电磁阀等,特别是其输入端可以与单片机直接相联,从而很方便地受单片机控制。当驱动直流电机时,可以直接控制步进电机,并可以实现电机正转与反转,实现此功能只需改变输入端的逻辑电平。 L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便。 L298N可接受标准TTL逻辑电平信号VSS,VSS可接4.5~7V电压。4脚VS接电源电压,VS电压范围VIH为+2.5~46V。输出电流可达2A,可驱动电感性负载。1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。5,7,10,12脚接输入控制电平,控制电机的正反转。EnA,EnB接控制使能端,控制电机的停转。 |
L298N电机驱动板模块的参数 1.驱动芯片:L298N双H桥直流电机驱动芯片 2.驱动部分端子供电范围Vs:+5V~+35V ; 如需要板内取电,则供电范围Vs:+7V~+35V 3.驱动部分峰值电流Io:2A 4.逻辑部分端子供电范围Vss:+5V~+7V(可板内取电+5V) 5.逻辑部分工作电流范围:0~36mA 6.控制信号输入电压范围: 低电平:-0.3V≤Vin≤1.5V 高电平:2.3V≤Vin≤Vss 7.使能信号输入电压范围: 低电平:-0.3≤Vin≤1.5V(控制信号无效) 高电平:2.3V≤Vin≤Vss(控制信号有效) 8.最大功耗:20W(温度T=75℃时) |
L298N电机驱动模块性能特点: 1:可实现电机正反转及调速。 2:启动性能好,启动转矩大。 3:工作电压可达到36V,4A。 4:可同时驱动两台直流电机。 5:适合应用于机器人设计及智能小车的设计。 情况一:用L298N驱动两台直流减速电机的电路。引脚A,B可用于PWM控制。如果机器人项目只要求直行前进,则可将IN1,IN2和IN3,IN4两对引脚分别接高电平和低电平,仅用单片机的两个端口给出PWM信号控制使能端A,B即可实现直行、转弯、加减速等动作。 情况二:用L298实现二相步进电机控制。将IN1,IN2和IN3,IN4两对引脚分别接入单片机的某个端口,输出连续的脉冲信号。信号频率决定了电机的转速。改变绕组脉冲信号的顺序即可实现正反转。 |
注意事项: 1.当你的驱动电压(上图标识为12V输入,实际可以接受的输入范围是7-12V)为7V-12V的时候,可以使能板载的5V逻辑供电,当使用板载5V供电之后,接口中的+5V供电不要输入电压,但是可以引出5V电压供外部使用。(这种即为常规应用!) 2.当驱动电压高于12V,小于等于24V(芯片手册中提出可以支持到35V,但是按照经验一般298保守应用最大电压支持到24V已经很了不起!)时,比如要驱动额定电压为18V的电机。首先必须拔除板载5V输出使能的跳线帽。然后在5V输出端口外部接入5V,5V使能即 一个电平为5V的控制信号,当此信号输入有效时,且电机驱动模块中电源供电正常时,电机驱动模块输出电流。否则即使电源供电正常,电机上也无电流。电压对L298N内部逻辑电路供电。(这种是高压驱动的非常规应用!) 3、L298N供电的5V如果是用另外电源供电的话,(即不是和单片机的电源共用),那么需要将单片机的GND和模块上的GND连接在一起,只有这样单片机上过来的逻辑信号才有个参考0点。此点非常重要,请注意。 |
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百二十六:正反转PWM调速双H桥L298N模块驱动42步进电机 项目实验之一:使用 L298N Arduino 的 NEMA 17 步进电机简单控制 实验开源代码
|
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百二十六:正反转PWM调速双H桥L298N模块驱动42步进电机 项目实验之二:使用 L298N控制步进电机正转三圈反转一圈 实验开源代码
|
实验开源代码
|
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed