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

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

3天内不再提示

如何使用L298N双电机控制器模块和Arduino控制DC和步进电机

454398 来源:网络整理 作者:佚名 2019-11-04 17:29 次阅读

步骤1:了解L298模块连接

如何使用L298N双电机控制器模块和Arduino控制DC和步进电机

首先,我们将遍历所有连接,然后说明如何控制直流电动机,然后是步进电动机。此时,请检查L298N H桥模块上的连接。

考虑图像–将数字与图像下方的列表匹配:

DC电动机1“ +”或步进电动机A +

DC电动机1“-”或步进电动机A-

12V跳线–如果使用的电源电压大于12V DC,则将其移除。这样可以为板载5V稳压器供电

在此处连接电动机电源电压,最大35V DC。如果》 12V DC

GND

如果有12V跳线,则移除5V输出,非常适合为Arduino

直流电动机1启用跳线。使用步进电机时,将其保留在原位。连接到用于直流电动机速度控制的PWM输出。

IN1

IN2

IN3

IN4

直流电动机2启用跳线。使用步进电机时,将其保留在原位。连接到用于直流电动机速度控制的PWM输出

直流电动机2“ +”或步进电动机B +

直流电动机2 “-”或步进电动机B-

步骤2:控制直流电动机

到使用L298N H桥模块控制一两个直流电动机非常容易。首先将每个电动机连接到L298N模块上的A和B连接。

如果您为机器人(例如)使用两个电机,请确保两个输入的电机极性相同。否则,当您同时将两个电动机都设置为正转而将其设置为倒退时,可能需要交换它们!

下一步,连接电源-将正极连接至模块上的引脚4,将负极/GND连接至引脚5。如果您提供的电压最高为12V,则可以保留12V跳线(上图中的点3),并且模块上的引脚6可以提供5V电压。

可以将其馈送到Arduino的5V引脚,以从电动机的电源为其供电。别忘了将Arduino GND连接到模块上的引脚5,以完成电路。现在,您将在Arduino上需要六个数字输出引脚,其中两个需要是PWM(脉冲宽度调制)引脚。

PWM引脚在引脚编号旁边由波浪号(〜)表示,例如在Arduino Uno的数字引脚图像中。

最后,将Arduino数字输出引脚连接到驱动程序模块。在我们的示例中,我们有两个直流电动机,因此数字引脚D9,D8,D7和D6将分别连接到引脚IN1,IN2,IN3和IN4。然后将D10连接到模块插针7(先卸下跳线),然后将D5连接到模块插针12(同样要卸下跳线)。

通过向驱动器发送HIGH或LOW信号来控制电动机的方向每个马达(或通道)。例如,对于电动机一,从IN1到HIGH的高电平和向IN2发出LOW的低电平将使它在一个方向上旋转,而到HIGH和LOW的低电平将使它在另一个方向上旋转。

但是,直到将HIGH设置为启用引脚(电机1为7,电机2为12)后,电机才会转动。并且它们可以通过低电平连接到同一引脚来关闭。但是,如果需要控制电动机的速度,则可以通过来自连接到使能引脚的数字引脚的PWM信号来解决这一问题。

这就是我们对直流电动机演示草图所做的工作。如上所述,连接了两个直流电动机和一个Arduino Uno,以及一个外部电源。然后输入并上传以下草图:

// connect motor controller pins to Arduino digital pins

// motor one

int enA = 10;

int in1 = 9;

int in2 = 8;

// motor two

int enB = 5;

int in3 = 7;

int in4 = 6;

void setup()

{

// set all the motor control pins to outputs

pinMode(enA, OUTPUT);

pinMode(enB, OUTPUT);

pinMode(in1, OUTPUT);

pinMode(in2, OUTPUT);

pinMode(in3, OUTPUT);

pinMode(in4, OUTPUT);

}

void demoOne()

{

// this function will run the motors in both directions at a fixed speed

// turn on motor A

digitalWrite(in1, HIGH);

digitalWrite(in2, LOW);

// set speed to 200 out of possible range 0~255

analogWrite(enA, 200);

// turn on motor B

digitalWrite(in3, HIGH);

digitalWrite(in4, LOW);

// set speed to 200 out of possible range 0~255

analogWrite(enB, 200);

delay(2000);

// now change motor directions

digitalWrite(in1, LOW);

digitalWrite(in2, HIGH);

digitalWrite(in3, LOW);

digitalWrite(in4, HIGH);

delay(2000);

// now turn off motors

digitalWrite(in1, LOW);

digitalWrite(in2, LOW);

digitalWrite(in3, LOW);

digitalWrite(in4, LOW);

}

void demoTwo()

{

// this function will run the motors across the range of possible speeds

// note that maximum speed is determined by the motor itself and the operating voltage

// the PWM values sent by analogWrite() are fractions of the maximum speed possible

// by your hardware

// turn on motors

digitalWrite(in1, LOW);

digitalWrite(in2, HIGH);

digitalWrite(in3, LOW);

digitalWrite(in4, HIGH);

// accelerate from zero to maximum speed

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

{

analogWrite(enA, i);

analogWrite(enB, i);

delay(20);

}

// decelerate from maximum speed to zero

for (int i = 255; i 》= 0; --i)

{

analogWrite(enA, i);

analogWrite(enB, i);

delay(20);

}

// now turn off motors

digitalWrite(in1, LOW);

digitalWrite(in2, LOW);

digitalWrite(in3, LOW);

digitalWrite(in4, LOW);

}

void loop()

{

demoOne();

delay(1000);

demoTwo();

delay(1000);

}

那么该草图中发生了什么?在函数demoOne()中,我们打开电动机并以200的PWM值运行它们。这不是速度值,而是一次施加200/255的时间量的功率。

然后片刻之后,电动机反向运行(请参阅如何更改digitalWrite()函数中的HIGH和LOW?)。为了了解您的硬件可能的速度范围,我们在函数demoTwo()中遍历了整个PWM范围,这将打开电动机,并且它们通过零至255的PWM值运行,并通过两个for循环返回零。 。

最后,这是在此页面的视频中进行的演示–使用我们的破旧的坦克底盘和两个直流电动机。

第3步:使用Arduino控制步进电动机和L298N

步进电机可能看起来很复杂,但事实并非如此。在此示例中,我们控制一个典型的NEMA-17步进电机,该电机具有四根电线,如该步骤中的图像所示。

每转200步,并且可以60 RPM的速度运行。如果您还没有电动机的步进和速度值,请立即查找,并在草图中使用它。

成功进行步进电动机控制的关键是识别电线-即一个是哪个。您将需要确定A +,A-,B +和B-线。在我们的示例电动机中,它们是红色,绿色,黄色和蓝色。现在,让我们完成接线。

将来自步进电机的A +,A-,B +和B-线分别连接到模块连接1、2、13和14。将L298N模块随附的跳线放置在模块点7和12上的线对上。然后根据需要将电源连接到点4(正)和点5(负/GND)。

再次,如果您的步进电机的电源低于12V,则将跳线安装到模块的第3点,为您的Arduino提供整洁的5V电源。接下来,将L298N模块引脚IN1,IN2,IN3和IN4分别连接到Arduino数字引脚D8,D9,D10和D11。

最后,如果从模块中获取5V电压,则将Arduino GND连接至模块上的点5,将Arduino 5V连接至点6。借助Arduino IDE随附的Stepper Arduino库作为标准,从草图控制步进电机非常简单。

要演示您的电动机,只需加载Stepper库中随附的stepper_oneRevolution草图。要找到它,请在Arduino IDE中单击“文件”》“示例”》“步进器”菜单。

最后,检查草图中

const int stepsPerRevolution = 200;的值并将200更改为步进电机的每转步数,以及在以下行中预设为60 RPM的速度:myStepper.setSpeed(60);

现在,您可以保存和上传草图,这会将步进电机发送大约一转,然后再回来。这可以通过功能

myStepper.step(stepsPerRevolution); // for clockwise

myStepper.step(-stepsPerRevolution); // for anti-clockwise

实现。最后,在此步骤的视频中快速展示了我们的测试硬件。

责任编辑:wv

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

    关注

    149

    文章

    2929

    浏览量

    146044
  • L298N
    +关注

    关注

    19

    文章

    224

    浏览量

    78136
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184815
收藏 人收藏

    评论

    相关推荐

    arduino控制步进电机代码

    Arduino是一种开放源代码的电路板平台,它可以用于控制各种不同的电子设备,包括步进电机步进电机
    的头像 发表于 02-14 16:29 608次阅读

    步进电机控制器电路图分享

    步进电机控制器是一种能够发出均匀脉冲信号的电子产品,主要用于控制步进电机的运动。它发出的信号进入
    的头像 发表于 02-07 17:57 1168次阅读
    <b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>控制器</b>电路图分享

    步进电机控制方法 步进电机控制器参数设置

    控制,需要使用步进电机控制器步进电机控制器是一种电
    的头像 发表于 01-19 10:50 784次阅读

    arduino如何驱动步进电机

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

    Art-Pi+TMC2209步进电机细分控制测试

    前几天找出个步进电机,用L298N驱动测试了一下,具体见上篇文章简单的步进电机驱动调试。
    的头像 发表于 12-11 16:00 3145次阅读
    Art-Pi+TMC2209<b class='flag-5'>步进</b><b class='flag-5'>电机</b>细分<b class='flag-5'>控制</b>测试

    L298N驱动电机顿卡是什么原因?

    L298N驱动电机顿卡是什么原因
    发表于 11-01 06:56

    L298N 电机驱动模块--配套程序

    电子发烧友网站提供《L298N 电机驱动模块--配套程序.zip》资料免费下载
    发表于 10-18 09:43 4次下载
    <b class='flag-5'>L298N</b> <b class='flag-5'>电机</b>驱动<b class='flag-5'>模块</b>--配套程序

    L298N 电机驱动模块用户手册与原理图

    电子发烧友网站提供《L298N 电机驱动模块用户手册与原理图.zip》资料免费下载
    发表于 10-18 09:42 10次下载
    <b class='flag-5'>L298N</b> <b class='flag-5'>电机</b>驱动<b class='flag-5'>模块</b>用户手册与原理图

    CEPARK L298N(带光耦)电机驱动模块配套程序

    电子发烧友网站提供《CEPARK L298N(带光耦)电机驱动模块配套程序.zip》资料免费下载
    发表于 10-13 11:17 1次下载
    CEPARK <b class='flag-5'>L298N</b>(带光耦)<b class='flag-5'>电机</b>驱动<b class='flag-5'>模块</b>配套程序

    CEPARK L298N(带光耦)电机驱动模块原理图

    电子发烧友网站提供《CEPARK L298N(带光耦)电机驱动模块原理图.pdf》资料免费下载
    发表于 10-13 10:47 3次下载
    CEPARK <b class='flag-5'>L298N</b>(带光耦)<b class='flag-5'>电机</b>驱动<b class='flag-5'>模块</b>原理图

    ST的L6230芯片适合用来驱动步进电机或舵机吗?

    ST的L6230芯片官方说适合用来驱动PMSM和BLDC,1种是永磁同步电机,1种是无刷直流电机。 那适合用来驱动步进电机和舵机吗,和
    发表于 09-28 06:12

    plc如何控制步进电机的速度和方向?

    plc作为一种工业控制计算机,具有模块化结构、配置灵活、高速的处理速度、精确的数据处理能力、PLC对步进电机也具有良好的控制能力,利用其高速
    的头像 发表于 08-07 08:09 1190次阅读
    plc如何<b class='flag-5'>控制</b><b class='flag-5'>步进</b><b class='flag-5'>电机</b>的速度和方向?

    使用L298的双向电机控制器电路

    控制两个电机的H桥电机驱动器ICL298。让我们看看这个IC L298是如何工作的,以及如何在这个电机
    的头像 发表于 07-02 15:58 1917次阅读
    使用L<b class='flag-5'>298</b>的双向<b class='flag-5'>电机</b><b class='flag-5'>控制器</b>电路

    L298N电机驱动板

    1、输出 L298N模块拥有双通道输出,也就是输出A与输出B,可以实现对两路电机进行不同的控制与操作,输出A与输出B就是直接连电机的两端即
    发表于 05-16 15:39 0次下载
    <b class='flag-5'>L298N</b><b class='flag-5'>电机</b>驱动板

    步进电机控制器原理 步进电机控制器的应用设置

    步进电机控制器是一种能够发出均匀脉冲信号的电子产品,它发出的信号进入步进电机驱动器后,会由驱动器转换成
    发表于 05-05 14:16 4次下载
    <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>的应用设置