电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>Arduino半步步进电机驱动器L298N

Arduino半步步进电机驱动器L298N

2022-12-09 | zip | 0.11 MB | 次下载 | 免费

资料介绍

描述

半步电机驱动器

该项目是如何更准确地驱动双极步进电机的示例。驱动是通过软件切换 IO(bitbanging)并使用 Arduino MKR 的 PWM 定时器来完成的。对于半桥,我们使用 ST L298N

为什么是半步?

双极步进电机通常通过切换线圈进行四相步进。添加中间步骤使其更加准确和平滑(但扭矩会小一些)。这是一个有趣的链接,用于说明整步和半步之间的区别。我们将切换以下图表:

 
 
 
 
pYYBAGOSpOqACYXNAAB0muNGQbY192.jpg
 
1 / 2半步状态
 

我们总共有 8 个状态,一个接一个地对微步进行排序。每个序列状态的时间将定义切换速度和电机速度。通过将线圈序列之一相移 180 度(4 微步),方向很容易控制。

Bitbanging 和 PWM

使用的 L298N 电机驱动器可以驱动全桥 MOSFET 并切换线圈电流的正向、负向(或关闭)。

 
 
 
 
poYBAGOSpPWAYZxWAABBWtlsvrw882.png
 
1 / 2全桥 MOSFET
 

这是通过软件 IO 切换 - 位转换 - IN1/IN2 和 IN3/IN4 输入来完成的。L298N 驱动器是内部设置的,以防止通过 IN 信号上的反相输入门在一条腿上出现捷径 - 很好 :)。也可以用 PWM 信号驱动电桥使能信号 ENA/ENB,在线性区域稍微控制电流。这是由 Arduino Micro 的硬件完成的。MKR 版本有一个 ATSAMD21,可以产生 25Khz PWM 信号。有关详细信息,请参阅我的其他高速 PWM 项目L298N 驱动程序在Arduino Motor Shield Rev3上设置,它将数字 IO 和感应 IO 连接到模拟输入,因此我们可以测量通过电机的电流。还将使用外部电源 (12V) 并在电机护罩上提供支持。(重要:拆焊 Vin 连接!)我们使用MKR2UNO转换板将它们连接在一起。

NEMA 17 步进器

对于这个项目,我们使用 NEMA 17 格式的双极步进电机。它有 200 步(每步 1.8 度),但使用半步驱动需要 400 步转一圈。每个线圈的最大电流为 0.75A,我们通过 SenseA 以 1.65V/Amp 测量 CoilA 上的电流。

软件代码

Arduino 代码写在一张草图中。我使用全局变量来定义关键数据,例如:

  • Sequencer[7][8]:每个驱动信号的 8 个 ustep 状态的序列。
  • CurrentArray0[32]:用于监视电流和计算锁定的滚动数据
  • ShadowArray[512]:调试数据数组,用于绘制电流图

关键例程如下,代码中自解释:

  • MotorLoop(int lps, int dir):驱动电机在任何方向上进行 x 步
  • int CalcArray():计算锁定状态,返回%电流偏差(*10)
  • MotorPowerDown():通过关闭半桥关闭电机。(无电流)
  • DataDump():通过串口转储监控和调试数据
  • SetupPWMTimers():在引脚 3 和 11(ENA 和 ENB)上设置 25Khz PWM 信号

电机回路

电机回路正在读取序列发生器阵列,写入 IO(EN1/EN2、EN3/EN4)并写入 PWM 占空比(ENA/ENB)。以微秒为单位的相位延迟也在定序器阵列中。方向是通过将 CoilB 的数组索引移动 0 或 4 来完成的。第一圈还有一个启动序列 (#define MOTORSTART)。它的启动速度稍慢(扭矩更大),然后按照编程保持在正常速度。

锁定监控

关键是理解锁仓计算。该程序在每第 3 个序列状态(最大电流驱动)中测量 CoilA 中的电流,并将其保存在监控数组中。然后计算当前*时间偏差。为什么?> Current*Time与Watt*Time成线性关系(假设电压恒定),相当于Newton*Meter,也就是系统中的能量变化量(焦耳)。测量这种能量变化并触发超过某个值,就会触发锁定。锁定触发器在代码中定义 (#define MOTORLOCK)

你的马达?

对于每个电机,此电流*时间行为都会不同。要理解这一点,您可以转储测量的电流数据(用分号分隔),并将其复制粘贴到 Xls 表,制作数据表,计算触发器和图表:

 
 
 
 
pYYBAGOSpPiATeT3AACeBC3N18U729.jpg
 
1 / 2ShadowBuffer[512] 当前数据到 Xls
 

当以不同的 PWM 电平或其他时序速度驱动时,您会在测量中看到严重的斩波尖峰。有一个设置可以使电流尖峰达到一定水平以上。(#define PEAKFILTER),改变并尝试。:)


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费