Arduino教程--第四十一课Arduino直流电机
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四十一课Arduino 直流电机
在本章中,我们将使用Arduino板〔UNO〕连接不同类型的电机,并向你展示如何连接电机并从电路板上驱动它。
有三种不同类型的电机:
•DC motor 直流电机
•Servo motor 伺服电机
•Stepper motor 步进电机
直流电机〔DC—Direct Current motor〕是最常见的电机类型。
直流电动机通常只有两个引线,一个正极和一个负极。
如果将这两根引线直接连接到电池,电机将旋转。
如果切换引线,电机将以相反的方向旋转。
警告 - 不要直接从Arduino板引脚驱动电机。
这可能会损坏电路板。
使用驱动电路或IC。
我们将本章分为三个局部:
•只让你的电机旋转
•控制电机速度
•控制直流电机的旋转方向
必需的组件
你将需要以下组件:
•1x Arduino UNO 板
•1x PN2222 晶体管
•1x 小型6V直流电机
•1x 1N4001二极管
•1x 270Ω电阻
程序
按照电路图进展连接,如如下图所示。
预防措施
进展连接时,请采取以下预防措施:
•首先,确保晶体管以正确的方式连接。
如下列图,晶体管的扁平面应该面向Arduino 板。
•其次,根据图像中所示的排列,二极管的条纹端应朝向+5V电源线。
Arduino旋转控制代码
int motorPin = 3;
void setup() {
}
void loop() {
digitalWrite(motorPin, HIGH);
}
代码说明
晶体管就像一个开关,控制电机的功率。
Arduino引脚3用于打开和关闭晶体管,并在草图中命名为“motorPin〞。
结果
当Arduino引脚3变为高电平时,电机将全速旋转。
电机速度控制
以下是连接到Arduino板的直流电机的原理图。
Arduino代码
int motorPin = 9;
void setup() {
pinMode(motorPin, OUTPUT);
Serial.begin(9600);
while (! Serial);
Serial.println("Speed 0 to 255");
}
void loop() {
if (Serial.available()) {
int speed = Serial.parseInt();
if (speed >= 0 && speed <= 255) {
analogWrite(motorPin, speed);
}
}
}
代码说明
晶体管就像一个开关,控制电机的功率。
Arduino引脚3用于打开和关闭晶体管,并在草图中命名为“motorPin〞。
当程序启动时,它会提示你提供值以控制电机的速度。
你需要在串口监视器中输入介于0和255之间的值。
在“loop〞函数中,命令“Serial.parseInt〞用于读取在串口监视器中作为文本输入的数字,并将其转换为“int〞。
你可以在此处输入任何数字。
如果数字在0到255之间,下一行中的“if〞语句只使用此数字进展模拟写入。
结果
直流电机将根据通过串口接收的值〔0到250〕以不同的速度旋转。
旋转方向控制
为了控制直流电机的旋转方向,无需互换引线,可以使用称为H桥的电路。
H桥是可以双向驱动电机的电子电路。
H桥用于许多不同的应用中。
最常见的应用之一是控制机器人中的电机。
它被称为H桥,是因为它使用四个晶体管连接,使示意图看起来像一个“H〞。
我们将在这里使用L298 H桥IC。
L298可以控制直流电机和步进电机的速度和方向,并可以同时控制两个电机。
每个电机的额定电流为2A。
然而,在这些电流下,你将需要使用散热片。
必需的组件
你将需要以下组件:
• 1 × L298桥式IC
• 1 ×直流电机
• 1 × Arduino UNO
• 1 ×面包板
•10 ×跳线
程序
以下是Arduino Uno板的直流电机接口示意图。
上图显示了如何连接L298 IC控制两个电机。
每个电机有三个输入引脚,Motor1的Input1(IN1),Input2(IN2)和Enable1(EN1);Motor2的Input3,Input4和Enable2。
由于在这个例子中我们只控制一个电机,因此我们将把Arduino连接到L298 IC的IN1〔引脚5〕,IN2〔引脚7〕和Enable1〔引脚6〕。
引脚5和7是数字的,即ON或OFF输入,而引脚6需要脉冲宽度调制〔PWM〕信号来控制电机速度。
下表显示了电机根据IN1和IN2的数字值转动的方向。
IN1IN2电机行为
制动
1向前
1向后
11制动
IC L298的引脚IN1连接到Arduino的引脚8,而IN2连接到引脚9。
Arduino的这两个数字引脚控制电机的方向。
IC的EN A引脚连接到Arduino的PWM引脚2。
这将控制电机的速度。
为了设置Arduino引脚8和9的值,我们使用了digitalWrite()函数,而设置引脚2的值,我们必须使用analogWrite()函数。
连接步骤
•将IC的5V和接地分别连接到Arduino的5V和接地。
•将电机连接到IC的引脚2和3。
•将IC的IN1连接到Arduino的引脚8。
•将IC的IN2连接到Arduino的引脚9。
•将IC的EN1连接到Arduino的引脚2。
•将ICD的SENS A引脚接地。
•使用Arduino USB线连接Arduino,并使用Arduino IDE软件将程序上传到Arduino。
•使用电源,电池或USB线为Arduino板供电。
Arduino代码
结果
电机首先在顺时针〔CW〕方向运行3秒,然后逆时针〔CCW〕运行3秒。