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

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

3天内不再提示

怎样与Arduino和L298N H桥配合使用以实现双极步进电机控制

454398 来源:wv 2019-10-24 09:43 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:您将需要什么

该项目将需要一些注意事项,如果您正在阅读此内容,则可能已经拥有:/p》

*某种风味的arduino(我正在使用UNO)

*步进电机(请查阅规格表)

* L298N驱动程序类似于图片中的电路板

*某种电源,至少可提供5V电压,但小于电机的最大电压

*连接线,剥线钳,电线推子等(在该项目上无需焊接)

数字万用表可能会有所帮助

第2步:将L298N连接到Arduino

怎样与Arduino和L298N H桥配合使用以实现双极步进电机控制

我在上一节中对此进行了描述,但让我们详细介绍一下:

L298N模块IN1-4上有四个引脚,有四个输出连接OUT1-4。模块的接线盒中还有一个+ V和GND。还有一个+ 5V端子(我们将不再使用)。

IN引脚可以连接到Arduino上的任何控制引脚。在我的情况下,我在UNO上有一个LCD屏蔽,因此我使用了模拟引脚(A1到4,这在以后很重要)。然后按如下方式连接它们:

A1-》 IN1

A2-》 IN2

A3-》 IN3

A4-》重要的是,还必须将arduino的接地引脚连接到公共接地端子,否则将无法正常工作!!!!!

然后我将+ V连接到可变电源,然后通过端子将地再次接地。

步骤3:为步进器接线

如果您查看规格表,它应该列出哪些导线是A + A- B +和B-有时,它们不使用此特定语言,但是您所拥有的是一盒带有4根导线的盒子,它们被分成两组。您可以通过测量电阻(或连接)来查看万用表,以查看配对的两个(如果没有说明)。为了使电动机真正旋转,您需要确保A +和B +分别挂接到OUT1和OUT3。如果您对电动机进行接线,而电动机刚刚振动,则其中一对会反转。

接线图基本上是:

A +(黑色)-》 OUT1

A-(绿色)-》 OUT2

B +(蓝色)-》 OUT3

B-(红色)-》 OUT4

第4步:编程:概述和警告

因此,当我第一次开始本奥德赛时,文档非常少,而且更糟糕的是,大多数示例仍然依赖于使用digitalWrite来处理引脚操作,或更糟糕的是,仍然依赖于内置的arduino步进器库,该库实际上实现了同一件事。但是,以这种方式进行操作存在很大的问题。 digitalWrite系统非常慢,而且,如果要执行的是digitalWrite,然后再执行另一个digitalWrite,则它确实是丑陋的,可怕的慢速代码。

如果您还不熟悉它,则应该阅读以下内容:

https://www.arduino.cc/zh/Reference/PortManipulati 。..

这允许我们要做的是,而不是一次写高电平或低电平引脚,只需通过寻址控制这些引脚的寄存器,就将整套引脚高电平或低电平写入即可。

警告:L298N H桥本质上是4个单独的开关,作为一个开关运行,如果与现有的arduino Stepper库一起使用,则有一个主要的坏习惯,或者如果您使用重复的digitalWrite()语句,也就是说,由于设置引脚之前的等待时间,则可能同时将IN1和IN2置于高电平。这会造成死机,并且可能不超过一两分钟,可能会冒烟检查您的桥梁。我花了几天的调试时间才能弄清楚桥为何要拉4安培的电流,并在运行约5秒钟后,散热器变得太热而无法触摸。

第5步:编程示例

因此,这里可能需要或可能不需要一些额外的东西,例如LCDShield的代码或检查主循环执行时间的代码。

如果您使用的是A1-A4,则应编译该代码(Arduino IDE 1.6.5),并使电动机旋转。这段代码大部分是我自己的,从Stepper.h文件中借来了或修改了一点。

注意:

“ StepFast”上的延迟以微秒为单位,因此2000仅为2毫秒,大多数情况下,如果尝试以小于1200的延迟步进电动机它会跳过一些步,尽管对于大多数电动机来说,800步是4整圈,但您可能会发现电动机只能转动四分之一圈。

此代码仅作为示例,目前不反向,它也不会吸收L298的反馈,也不会做我想做的其他很多事情。在查看现有的Stepper.h时,我可能会在接下来的几周中使用此方法来处理步骤,以重新编写它,因为现有的方法可能会损坏L298或任何其他H桥配置。

#include

#include

//Keypad Shield LCD pins

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

long unsigned int lasttime;

long unsigned int timer;

int timeuntil;

float exectime;

int smallcount;

void setup()

{

lcd.begin(16, 2);

lcd.print(“Motor Test”);

delay(2500);

lcd.clear();

}

void StepFast(long int steps,long unsigned wait)

{

DDRC = B00011110; //set arduino ports A1-A4 output remember this works backwards!

// ^-pin 7^-pin 0

int pattern = 0;

int mydelay = 0;

for (int i = 0;i 《 steps; i++)

{

switch (pattern)

{

case 0: // 1010

PORTC = B00001010; //arduino analog port we‘re using pins A1-A4 So we’re only going to change those

break;

case 1: // 0110

PORTC = B00001100;

break;

case 2: //0101

PORTC = B00010100;

break;

case 3: //1001

PORTC = B00010010;

break;

}

pattern++;

if (pattern 》 3) {pattern = 0; }

delayMicroseconds(wait);

}

PORTC = B00000000; //de-energize to motor

}

void loop()

{

lasttime = timer;

timer = millis();

exectime = (timer - lasttime)/1000;

if (timeuntil 《 timer)

{

lcd.clear();

lcd.setCursor(0,0);

lcd.print(“Clockwise ”);

lcd.print(exectime);

lcd.setCursor(0,1);

lcd.print(timer);

lcd.print(“ ”);

lcd.print(lasttime);

timeuntil = timer + 1500;

}

StepFast(800,2000); //steps,delay in microseconds

delay(5000);

}

注意:

此代码在〜300RPM的中等步进速度(步进率为1ms左右)下可以很好地工作,因为您尝试将其提高到1000RPM,除非电压升高,否则它将开始丢失步骤,但是,如果以》 5V在60RPM(5ms)下运行电动机,则L298N会开始变得很热。

步骤6:事后的想法和补充

所以我在原始文章中没有真正提到的一些事情我非常重视在处理过程中。其中的主要问题是:

随着步进速度的增加,电源电压也必须增加

使用引脚ENA和ENB作为PWM输入以将电压保持在低低步速,并随着步速的增加而提高

加速和惯性应对

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 步进电机
    +关注

    关注

    152

    文章

    3216

    浏览量

    151556
  • L298N
    +关注

    关注

    21

    文章

    224

    浏览量

    80296
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

    195964
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电机驱动和控制技术解析

    控制板通过相应的算法输出PWM信号,作为驱动电路的驱动信号,来改逆变器的输出功率,以达到控制三相永磁式同步交流伺服电机的目的。 H
    发表于 11-27 08:04

    ‌DRV8821 步进电机控制器与驱动器技术文档总结

    该DRV8821提供步进步进电机控制器/驱动器 打印机、扫描仪和其他办公自动化设备应用的解决方案。 两个独立的步进
    的头像 发表于 10-21 11:27 404次阅读
    ‌DRV8821 <b class='flag-5'>双</b>路<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>控制</b>器与驱动器技术文档总结

    ‌DRV8843 H电机驱动器技术文档总结

    该DRV8843为打印机提供集成的 H 电机驱动器解决方案, 扫描仪和其他自动化设备应用。该设备可用于驱动一两个 有刷直流电机
    的头像 发表于 10-21 09:29 541次阅读
    ‌DRV8843 <b class='flag-5'>双</b><b class='flag-5'>H</b><b class='flag-5'>桥</b><b class='flag-5'>电机</b>驱动器技术文档总结

    ‌DRV8833H电机驱动芯片技术文档总结‌

    DRV8833器件提供电机驱动器 用于玩具、打印机和其他机电一体化应用的解决方案。 该器件具有两个 H 驱动器,可驱动两个直流有
    的头像 发表于 10-20 14:03 531次阅读
    ‌DRV8833<b class='flag-5'>双</b><b class='flag-5'>H</b><b class='flag-5'>桥</b><b class='flag-5'>电机</b>驱动芯片技术文档总结‌

    ‌DRV8834步进/直流电机驱动器技术文档总结

    该DRV8834为玩具、打印机、相机和 其他机电一体化应用。该器件有两个 H 驱动器,旨在驱动 步进
    的头像 发表于 10-20 10:52 463次阅读
    ‌DRV8834<b class='flag-5'>双</b><b class='flag-5'>桥</b><b class='flag-5'>步进</b>/直流<b class='flag-5'>电机</b>驱动器技术文档总结

    ‌DRV8846 H步进电机驱动器技术文档总结

    该DRV8846为相机、打印机、投影仪和其他自动化设备应用提供高度集成的步进电机驱动器。该器件具有两个 H 和一个微步进分度器,旨在驱动
    的头像 发表于 10-17 13:59 488次阅读
    ‌DRV8846 <b class='flag-5'>双</b><b class='flag-5'>H</b><b class='flag-5'>桥</b><b class='flag-5'>步进</b><b class='flag-5'>电机</b>驱动器技术文档总结

    ‌DRV8833C H电机驱动器技术文档总结‌

    该DRV8833C为玩具、打印机和其他设备提供电机驱动器解决方案 机电一体化应用。 该器件有两个 H ,可以驱动两个直流有刷
    的头像 发表于 10-17 11:28 504次阅读
    ‌DRV8833C <b class='flag-5'>双</b><b class='flag-5'>H</b><b class='flag-5'>桥</b><b class='flag-5'>电机</b>驱动器技术文档总结‌

    ‌DRV8848 H电机驱动器技术文档总结

    该DRV8848为家用电器和其他机电一体化应用提供 H 电机驱动器。该器件可用于驱动一个或两个直流电机、一个
    的头像 发表于 10-17 11:23 670次阅读
    ‌DRV8848 <b class='flag-5'>双</b><b class='flag-5'>H</b><b class='flag-5'>桥</b><b class='flag-5'>电机</b>驱动器技术文档总结

    ‌DRV8428E/P H电机驱动器技术文档总结

    DRV8428E/P 器件是 H 电机驱动器,适用于各种工业应用。这些器件可用于驱动两个直流电机或一个
    的头像 发表于 10-15 09:50 299次阅读
    ‌DRV8428E/P <b class='flag-5'>双</b><b class='flag-5'>H</b><b class='flag-5'>桥</b><b class='flag-5'>电机</b>驱动器技术文档总结

    DRV8425EH电机驱动器技术文档总结

    DRV8424E/P、DRV8425E/P 器件是 H 电机驱动器,适用于各种工业应用。这些器件可用于驱动两个直流电机或一个
    的头像 发表于 10-14 14:38 375次阅读
    DRV8425E<b class='flag-5'>双</b><b class='flag-5'>H</b><b class='flag-5'>桥</b><b class='flag-5'>电机</b>驱动器技术文档总结

    ‌DRV8421 18V 2AH步进电机驱动器技术文档总结

    该DRV8421为家用电器和其他机电一体化应用提供 H 电机驱动器。该器件可用于驱动一个或两个直流电机、一个
    的头像 发表于 10-11 15:15 1004次阅读
    ‌DRV8421 18V 2A<b class='flag-5'>双</b><b class='flag-5'>H</b><b class='flag-5'>桥</b><b class='flag-5'>步进</b><b class='flag-5'>电机</b>驱动器技术文档总结

    基于L298N的STM32的直流电机PWM调速控制

    基于L298N与stm32的直流电机调速,实验结果良好,可以根据调节STM32的PWM占空比来进行直流电机的调速。实验系统图如下: L298N驱动模块 纯分享贴,有需要可以直接
    发表于 05-14 15:01

    我用9V电源给L298N供电,但是接线后l298n输入端电压变成了3V多,请问这是咋了?

    我用9V电源给L298N供电,L298N未接负载,9V电源空载时确实是9V,但是接线后l298n输入端电压变成了3V多,此时测量电源两端电压也是3V多,我用另一个独立电源给L298N
    发表于 03-29 14:59

    L298N-驱动直流电机步进电机的详细资料大总结

    电机转速控制电路(PWM信号)主要采用 L298N ,通过单片机的 I/O 输入改变芯片控制端的电平,即可以对电机 进行正反转,停止的操作,
    发表于 02-26 16:02

    可以驱动两个直流有刷电机、一个步进电机H电机驱动芯片-SS8833E

    电机驱动芯片 - SS8833E是一种电机驱动器,具有两个H驱动器,可以驱动两个直流有刷
    的头像 发表于 02-12 09:43 932次阅读
    可以驱动两个直流有刷<b class='flag-5'>电机</b>、一个<b class='flag-5'>双</b><b class='flag-5'>极</b><b class='flag-5'>步进</b><b class='flag-5'>电机</b>的<b class='flag-5'>双</b><b class='flag-5'>H</b><b class='flag-5'>桥</b><b class='flag-5'>电机</b>驱动芯片-SS8833E