完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
3.1 电机
直流电机内部有磁铁、转子和碳刷等组件组成,将电机的+、-极和电池相连,即可正转或逆转。 电机在运转时,碳刷和整流子之间会产生火花,进而引发干扰,影响到微处理器或无线遥控器的运行。为了消除噪声,通常在碳刷电机的+、-极之间焊接一个0.01~0.1uF的电容。
晶体管是最基本的驱动接口,微处理器只需要送出微小的信号,即可通过它控制外部装置。它很像水管中的阀门,平时处于关闭状态,但只要稍微施力,就能启动阀门,让大量水流通过。 晶体管有三只引脚,分别叫做B(基极)、C(集电极)和E(发射极),集电极(Collector) 代表收集电流,发射极(Emitter) 代表射出电流,基极(Base) 相当于控制台。 3.3 控制电机正反转的H桥式电机控制电路 3.3.1 使用专用IC(L298)控制电机 L298内部包含两组H桥式电路,可以驱动并控制电机的正反转, L298N内部原理图 3.3.2 L298N引脚图及功能 L298N 有两组电源输入脚,一个用于IC本身(芯片电源,5V),另一个用于电机;有两个使能引脚,用于决定是否供电给电机。L298N 有检测电机是否处于“堵转”状态,原理是:“当电机的负荷增加时,消耗的电流量也跟着增加,因此,从电流的消耗量,可得知电机是否运行平顺。”如果要启用这项功能,必须在“电流监测”脚位连接电阻;若不适用“电流监测”功能,请将电流监测的1和15脚位接地。 3.3.3 L298N驱动模块说明
L298N逻辑功能表 将IN1~4分别接到arduino上digital的口,初始化后使用digitalWrite就可以实现正反转了,将ENA/ENB(接到arduino上带 ~ 的端子(3 5 6 9 10 11,就是能输出PWM波的端子)初始化后使用analogWrite输出PWM波就可以调速了: [tr]使能A输入1A输入1B电机状态[/tr]
在需要精确定位的场合,可以将两个输入信号反转,造成“刹车”效果 有些L298N电机控制器,使用另一个IC(型号:74HC14)来简化电机正反转控制,每个输入端只有使能和正反转两个引脚这种控制器的输入输出关系表 [tr]EA/EB(使能)IA/IB(正反转)电机状态[/tr]
活动一:自动回避障碍物的自走车 实验说明: 采用一个L298N控制器以及超声波传感器,制作一个遇到前方有障碍物时,能自动转向的自走车。 实验材料: [tr]物品数量[/tr]
const byte TrigPin = 13; const int EchoPin = 12; const int dangerThresh =580; cont byte speed = 100; long distance ; const byte ENA = 5; const byte ENB = 6; const byte IN1 = 10; const byte IN2 = 9; const byte IN3 = 8; const byte IN4 = 7; byte dir = 0; void stop() { analogWrite(ENA, 0); analogWrite(ENB, 0); } void forward() { analogWrite(ENA, speed); digitalWrite(IN1, HIGH); dititalWrite(IN2, LOW); analogWrite(ENB, speed); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); } void backward() { analogWrite(ENA, speed); digitalWrite(IN2, HIGH); dititalWrite(IN1, LOW); analogWrite(ENB, speed); digitalWrite(IN4, HIGH); digitalWrite(IN3, LOW); } void turnLeft() { analogWrite(ENA, speed); digitalWrite(IN2, HIGH); dititalWrite(IN1, LOW); analogWrite(ENB, speed); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); } void turnRight() { analogWrite(ENA, speed); digitalWrite(IN1, HIGH); dititalWrite(IN2, LOW); analogWrite(ENB, speed); digitalWrite(IN4, HIGH); digitalWrite(IN3, LOW); } long ping() { digitalWrite(TrigPin, HIGH); delayMicroseconds(5); digitalWrite(TrigPin, LOW); return pulseIn(EchoPin, HIGH); } void loop() { distance = ping(); if (distance > dangerThresh) { if (dir != 0) { dir = 0; stop(); delay(500); } forward(); } else { if (dir != 1) { dir = 1; stop(); delay(500); } turnRight(); } delay(1000); } 实验结果: 编译与下载程序之后,两个电机将开始正转,若超声波传感器感知到遮挡,两个电机首先暂停0.5秒,接着,A电机将持续正转,B电机则会反转;若前方无障碍物,两个电机首先暂停0.5秒,再一起正转。每次在切换电机状态之前先暂停0.5秒,可以避免电机频繁地正、反转而导致寿命降低。 |
||||||||
|
||||||||
只有小组成员才能发言,加入小组>>
2431 浏览 0 评论
9083 浏览 4 评论
36748 浏览 19 评论
5021 浏览 0 评论
24707 浏览 34 评论
1513浏览 2评论
1731浏览 1评论
2172浏览 1评论
1539浏览 0评论
510浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 00:55 , Processed in 1.371280 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号