Arduino L293D电机驱动器屏蔽教程

电子说

1.3w人已加入

描述

Step 1:电动机和驱动器

电动机是许多机器人和电子项目不可分割的一部分,根据其应用可以使用不同的类型。以下是有关不同类型的电动机的一些信息:

直流电动机:直流电动机是可用于多种应用的最常见的发动机类型。我们可以在遥控车,机器人等中看到它。该电动机具有简单的结构。通过在其两端施加适当的电压来开始滚动,并通过切换电压极性来改变其方向。直流电动机的速度直接由施加的电压控制。当电压电平小于最大容许电压时,速度将降低。

步进电机:在某些项目中,例如3D打印机,扫描仪和CNC机床,我们需要知道准确地旋转电机。在这种情况下,我们使用步进电机。步进电动机是将整个旋转分为多个相等步长的电动机。每步的旋转量由电机结构决定。这些电动机具有非常高的精度。

伺服电动机:伺服电动机是具有位置控制服务的简单直流电动机。通过使用伺服器,您将能够控制轴的旋转量并将其移动到特定位置。它们通常尺寸较小,是机械臂的最佳选择。

但是我们不能将这些电机直接连接到微控制器或控制器板(例如Arduino)以控制它们,因为它们可能需要更多电流微控制器无法驱动,因此我们需要驱动程序。驱动器是电动机和控制单元之间的接口电路,以促进驱动。驱动器有许多不同的类型。在本说明中,您将学习如何在L293D电动机屏蔽罩上工作。

L293D屏蔽罩是基于L293 IC的驱动器板,可以同时驱动4个DC电动机和2个步进或伺服电动机。/p》

此模块的每个通道的最大电流为1.2A,如果电压大于25v或小于4.5v,则该通道不起作用。因此,请根据其标称电压和电流选择合适的电动机,以防万一。有关此屏蔽的更多功能,请提及与Arduini UNO和MEGA的兼容性,在非常规电压升高的情况下电动机的电磁和热保护以及断开电路的功能。

步骤2:如何使用Arduino L293D电动机驱动器屏蔽?

使用此屏蔽时有6个模拟引脚(也可以用作数字引脚),而arduino的引脚2和13则是免费的。 p》

使用伺服电机时,使用引脚9、10、2。

使用直流电机时,#1使用引脚11,#2使用引脚3,5使用引脚#3,#4的引脚6和所有引脚4、7、8和12都在使用中。

在使用步进电机的情况下,#1的引脚11和3、5和5 #2为6,所有引脚都为4、7、8和12。

您可以通过有线连接使用免费的引脚。

如果使用单独的电源为Arduino和屏蔽供电,请确保已断开屏蔽上的跳线。

步骤3:驱动直流电动机

#include

控制电动机所需的库:

AF_DCM电动机(1 ,MOTOR12_64KHZ)

定义正在使用的直流电动机。

第一个参数代表屏蔽中的电动机数量,第二个参数代表屏蔽中的电动机数量。代表电动机速度控制频率。对于1号和2号电动机,第二个参数可以是MOTOR12_2KHZ,MOTOR12_8KHZ,MOTOR12_8KHZ和MOTOR12_8KHZ,对于3号和4号电动机可以是MOTOR12_8KHZ,MOTOR12_8KHZ和MOTOR12_8KHZ,如果未选中,则默认为1KH。

motor.setSpeed(200);

定义电动机速度。可以在0到255之间设置。

void loop(){

电动机。 run(FORWARD);

delay(1000);

motor.run(BACKWARD);

delay(1000);

motor.run(RELEASE);

delay(1000);

}

功能motor.run()指定电动机的运动状态。状态可以是FORWARD,BACKWARD和RELEASE。释放与制动器相同,但是可能要花一些时间才能使电动机完全停止。

建议在每个电动机引脚上焊接一个100nF的电容器,以降低噪声。

第4步:驱动伺服电机

Arduino IDE库和示例适用于驱动伺服电机。

#include

驱动伺服电动机所需的库

Servo myservo;

定义伺服电机对象。

void setup()

{

myservo.attach(9);

}

确定连接到伺服的引脚。(伺服#1的引脚9和伺服#2的引脚10)

void loop()

{

myservo.write(val);

延迟(15);

}

确定电机旋转量。

第5步:驱动步进电机

#include 《 AFMotor.h》

确定所需的库

AF_Stepper motor(48,2);

定义步进电机对象。第一个参数是电机步进分辨率。 (例如,如果您的电动机的精度为7.5度/步,则表示电动机的步长分辨率为。第二个参数是连接到屏蔽罩的步进电动机的编号。

void setup(){

motor.setSpeed(10);

motor.onestep(FORWARD,SINGLE);

motor.release();

延迟(1000);

}

void loop(){

motor.step(100,FORWARD,SINGLE);

motor.step(100,BACKWARD,SINGLE);

motor.step(100,FORWARD,DOUBLE);

motor.step(100,BACKWARD,DOUBLE);

motor.step(100,FORWARD,INTERLEAVE);

motor.step(100,BACKWARD,INTERLEAVE);

motor.step(100,FORWARD,MICROSTEP);

motor.step(100,BACKWARD,MICROSTEP);

}

确定电机转速(rpm)。

第一个参数是移动所需的步长,第二个参数是确定方向(前进或后退),第三个参数确定步长类型:单(激活一个线圈),双(激活两个线圈以获得更大的扭矩) ,INTERLEAVED(线圈的数量从一到两个连续变化,反之亦然,直到双精度),但是,在这种情况下,速度减半)和MICROSTEP(缓慢改变步骤以提高精度)。在这种情况下,扭矩较低。)默认情况下,当电动机停止移动时,电动机将保持其状态。

您必须使用函数 motor.release() 》 释放电动机。

步骤6:购买Arduino L293D电动机驱动器护罩

从ElectroPeak购买Arduino L293D护罩

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分