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输入以将电压保持在低低步速,并随着步速的增加而提高

加速和惯性应对

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

    关注

    150

    文章

    3114

    浏览量

    147621
  • L298N
    +关注

    关注

    21

    文章

    224

    浏览量

    78718
  • Arduino
    +关注

    关注

    188

    文章

    6472

    浏览量

    187378
收藏 人收藏

    评论

    相关推荐

    EVL6480 步进电机驱动器评估板

    成解决方案,适用于驱动微步进两相步进电机。它结合了用于 N 沟道 MOSFET 功率级的双全
    的头像 发表于 11-27 17:58 355次阅读
    EVL6480 <b class='flag-5'>步进</b><b class='flag-5'>电机</b>驱动器评估板

    SS8844T-步进电机驱动IC-双通道H电流控制电机驱动器

    SS8844T是一款步进电机驱动IC,不仅拥有双通道H电流控制功能,更广泛适用于纺织机器、工业自动化、游戏机和机器人等多种场景;可替代市面
    的头像 发表于 11-06 10:50 269次阅读
    SS8844T-<b class='flag-5'>步进</b><b class='flag-5'>电机</b>驱动IC-双通道<b class='flag-5'>H</b><b class='flag-5'>桥</b>电流<b class='flag-5'>控制</b><b class='flag-5'>电机</b>驱动器

    探索TB62214FG:高性能步进电机驱动IC,助力精确控制

    电机控制领域,工程师们不断寻找能够在性能、可靠性和易于集成之间达到平衡的组件。东芝的TB62214FG步进
    的头像 发表于 10-31 11:08 285次阅读
    探索TB62214FG:高性能<b class='flag-5'>双</b><b class='flag-5'>极</b><b class='flag-5'>步进</b><b class='flag-5'>电机</b>驱动IC,助力精确<b class='flag-5'>控制</b>

    Toshiba东芝TB62269FTG步进电机驱动器英文手册

    单芯片驱动两相步进电机TB62269FTG 可通过单芯片实现对两相
    发表于 10-24 10:47 0次下载

    使用MSPM0 MCU为步进电机和有刷直流(BDC)电机实现优化的H驱动器控制

    电子发烧友网站提供《使用MSPM0 MCU为步进电机和有刷直流(BDC)电机实现优化的H驱动器
    发表于 09-02 09:49 0次下载
    使用MSPM0 MCU为<b class='flag-5'>步进</b><b class='flag-5'>电机</b>和有刷直流(BDC)<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>

    国产双通道集成电机一体化应用的电机驱动芯片-SS6951A

    SS6951A有两路H驱动,每个H可提供较大峰值电流4.0A,可驱动两个刷式直流电机,或者一个
    的头像 发表于 08-22 10:11 415次阅读
    国产双通道集成<b class='flag-5'>电机</b>一体化应用的<b class='flag-5'>电机</b>驱动芯片-SS6951A

    H电机驱动电路电路图 H电机驱动电路的工作原理和控制方式

    H电机驱动电路是一种广泛应用于电机控制领域的电子电路,其名称来源于其形状类似于英文字母“H”的
    的头像 发表于 06-21 16:34 9290次阅读
    <b class='flag-5'>H</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>驱动电路的工作原理和<b class='flag-5'>控制</b>方式

    步进电机的结构和特点

    步进电机(也称为两相步进电机)是一种特殊的电机
    的头像 发表于 06-20 16:30 674次阅读
    <b class='flag-5'>双</b><b class='flag-5'>极</b><b class='flag-5'>步进</b><b class='flag-5'>电机</b>的结构和特点

    极性步进电机的结构与控制模式

    在现代工业控制领域,步进电机以其独特的步进特性和精确的位置控制而备受青睐。其中,极性
    的头像 发表于 06-12 14:40 658次阅读

    什么是极性步进电机?它有哪些特点?

    在现代工业、自动化控制以及精密仪器等领域中,步进电机因其独特的步进特性和精确的位置控制而得到广泛应用。其中,
    的头像 发表于 06-12 11:50 1146次阅读

    硬件模块---L298N电机控制模块实现方法

    第一:L298N模块的介绍           L298N是ST公司生产的一种高电压、大电流电机驱动芯片,该芯片采用15脚封装。 主要特点是: 工作电压高,最高工作电压可达46V;输出电流大,瞬间
    的头像 发表于 05-11 09:20 7849次阅读
    硬件模块---<b class='flag-5'>L298N</b><b class='flag-5'>电机</b><b class='flag-5'>控制</b>模块<b class='flag-5'>实现</b>方法

    arduino控制步进电机代码

    中,我们将详细介绍如何使用Arduino控制步进电机的代码。 步进电机通常用于需要精确
    的头像 发表于 02-14 16:29 2087次阅读

    步进电机单极性和的优缺点

    步进电机连接和单极连接是指其电气接线方式,这两种方式影响电机的驱动方法、控制电路设计以及性
    的头像 发表于 02-06 10:42 2592次阅读
    <b class='flag-5'>步进</b><b class='flag-5'>电机</b>单极性和<b class='flag-5'>双</b><b class='flag-5'>极</b>的优缺点

    36V/1.6A两通道H驱动芯片-SS8812T可替代DRV8812

    由工采网代理的SS8812T是一款双通道H电流控制电机驱动器;每个 H 可提供输出电流1.6
    的头像 发表于 01-16 11:12 769次阅读
    36V/1.6A两通道<b class='flag-5'>H</b><b class='flag-5'>桥</b>驱动芯片-SS8812T可替代DRV8812

    arduino如何驱动步进电机

    随着物联网的不断发展,电机控制技术得到了广泛应用,其中步进电机作为一种常见的电机类型,在各行各业中得到了广泛应用。而作为一种强大、灵活的开源
    的头像 发表于 01-14 16:37 3716次阅读