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

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

3天内不再提示

怎样用树莓派控制直流电机的方向和速度

454398 来源:wv 2019-09-25 09:36 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:DC的控制方向通过RPi电机

怎样用树莓派控制直流电机的方向和速度

使用RPi控制直流电机

我们的下一个任务是使用树莓派上的python脚本和GPIO头控制直流电动机,这将在我们的脑海中产生一幅“机器人如何工作”的图景。您可以根据外面的天气来控制房间的风扇(因为您知道rpi会使用传感器)。完成所有这些操作将使您了解机器人技术的基本规则。

我们将控制一个直流电动机,该电动机至少需要400mA的电流才能正常工作,但我们的RPi只能提供接近20mA的电流。这意味着我们必须在外部连接直流电源。这不成问题!我们在市场上有6V和9V的小型电池。

警告:请勿将电机直接连接到Raspberry Pi,否则会损坏Raspberry Pi。

显然,我们将需要一个电动机控制器IC来控制电动机的功能(顺时针或逆时针旋转)。最好从L293D电机控制器IC开始。

要求:

·预先装有Raspbian的SD卡的Raspberry Pi

·面包板

·一个L293D电机驱动器集成电路

·跳线(公对公,母对公)

·一台额定电压为6v的直流电动机

·一块6V或9V电池。

L293D

这是一个电机驱动器IC,我们可以一次控制2个电机。其引脚配置如下所示。它是一个16针IC,在一侧包括一个Vcc(上电),一个GND针,一个Enable针(用于打开和关闭电动机),两个输入对应两个输出。

连接:

·首先将L293D的Vcc引脚连接到5V(也可以使用3.3V)

·现在连接地线

·使用GPIO-2、3、4来控制IC。(分别将GPIO-02和GPIO-03分别作为输入1和2)

·将GPIO-04连接到IC的相应使能引脚。

·现在终于将输出1和2连接到电动机的两个连接上,如图所示。

Python代码:-

导入RPi.GPIO作为GPIO

从导入睡眠时间开始

GPIO.setmode(GPIO.BCM)

Motor1A = 02

Motor1B = 03

Motor1E = 04

的 GPIO.setup(Motor1A,GPIO.OUT)

GPIO.setup(Motor1B,GPIO.OUT)

GPIO.setup(Motor1E,GPIO.OUT)

打印“电动机要启动“

GPIO.output(Motor1A,GPIO.HIGH)#以顺时针方向运行电动机

GPIO.output (Motor1B,GPIO.LOW)#将其设置为高电平以使电动机沿逆时针方向旋转

GPIO.output(Motor1E,GPIO.HIGH)#启动时应始终为高电机

睡眠(5)

打印“停止电机”

GPIO.output(Motor1E,GPIO.LOW)#停止电动机后

GPIO.cleanup()

上面的代码,您的电动机将开始沿顺时针方向旋转5秒钟。通过修改以上代码,您可以将其反转。现在我们可以用两个或四个电动机来制造汽车。

使用RPi控制直流电动机的速度

您知道在某些地方我们需要也可以控制电动机的速度。通过以上主题,您了解了电动机的ON-OFF控制,但这还不够吗?现在您应该在脑海中思考一个问题,即我们如何从RPi的GPIO引脚产生模拟电压。没问题,因为我们可以通过PWM(脉冲宽度调制)从中产生电压脉冲并控制GPIO引脚的输出电压。

脉冲宽度调制

这是一个非常简单的过程,我们可以控制电源的电压频率。我们知道,PWM模块可用于RPi中的GPIO。

时间段= 1/频率

因此,如果我选择100Hz的频率,则意味着时间段为10m sec。 (电压被触发为“高”持续10m秒)。我们的电池为电动机提供9V的电压,为了降低速度,我们必须降低此电压。因此,如果要将速度降低一半,而不必将占空比(电压为高电平的时间段的百分比)更改为50。

由于供应给电动机的电压由电机驱动器IC-L293N的使能引脚,因此我们仅需将PWM应用于使能引脚即可改变速度。贝娄是理解PWM的python代码,需要上一主题中的上述连接(通过RPi控制直流电动机)。

》》》导入RPi.GPIO为GPIO#导入GPIO库。

》》从时间导入睡眠开始

》》》 GPIO.setmode(GPIO.BCM)

》》》 Motor1A = 02#将GPIO-02设置为控制器IC的输入1

》》》 Motor1B = 03#设置GPIO- 03作为控制器IC的输入2

》》》 Motor1E = 04#将GPIO-04设置为控制器IC的使能引脚1

》》》 GPIO.setup(Motor1A,GPIO.OUT)

》》》 GPIO.setup(Motor1B,GPIO.OUT)

》》》GPIO.setup(Motor1E,GPIO.OUT)

》》》pwm=GPIO.PWM(04,100)#配置启用引脚表示用于PWM的GPIO-04

》》》 pwm.start(50)#以50%的占空比启动它

》》》打印“前进”

》》》 GPIO.output(Motor1A,GPIO.HIGH)

》》》 GPIO.output(Motor1B,GPIO.LOW)

》》》 GPIO.output(Motor1E,GPIO.HIGH)

》》》 sleep(2)

##这将使电动机以50%的速度向前运行2秒。

》》》 pwm.ChangeDutyCycle(80)#将占空比增加到80

》》》打印“后退”

》》》 GPIO.output(Motor1A,GPIO.HIGH)

》》》 GPIO.output(Motor1B,GPIO.LOW)

》》》 GPIO.output(Motor1E,GPIO.HIGH)

》》》睡眠(2)

##通过提供80%的电池电压,电动机将以80%的速度反向运行2秒

》》》打印“立即停止”

》》》 GPIO.output(Motor1E,GPIO.LOW)

》 》》 pwm.stop()#从GPIO输出中停止PWM是必要的

》》》 GPIO.cleanup()

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

    关注

    36

    文章

    1786

    浏览量

    74346
  • 树莓派
    +关注

    关注

    122

    文章

    2086

    浏览量

    110931
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    GSK - 806 DC Motor Control Kit:高效直流电机控制解决方案

    GSK - 806 DC Motor Control Kit:高效直流电机控制解决方案 在电子工程领域,直流电机控制一直是一个重要的研究方向
    的头像 发表于 05-15 16:05 115次阅读

    为什么驱动直流电机跟振动直流电机对电源的干扰不一样,怎么解决。

    有大佬知道为什么驱动直流电机跟振动直流电机对 12 伏电源的干扰不一样吗,怎么解决
    发表于 03-31 13:53

    直流电机接线的相关问题

    直流电机作为工业生产和日常生活中常见的动力装置,其接线方式的正确性直接影响电机性能、使用寿命甚至安全。本文将从直流电机的基本结构、接线原理、常见接线方法、注意事项及故障排查五个方面展开详细解析,并
    的头像 发表于 12-31 07:43 1307次阅读
    <b class='flag-5'>直流电机</b>接线的相关问题

    流电机直流电机调速方法

    流电机直流电机作为现代工业中应用最广泛的两种电动机类型,其调速技术直接关系到生产效率、能源消耗和设备性能。随着电力电子技术、微处理器控制技术的快速发展,电机调速方法已从传统的机械式
    的头像 发表于 12-19 07:39 1558次阅读
    交<b class='flag-5'>流电机</b>与<b class='flag-5'>直流电机</b>调速方法

    探索用于Arduino的TLE94112ES直流电机控制盾牌

    探索用于Arduino的TLE94112ES直流电机控制盾牌 引言 在电子工程领域,电机控制一直是至关重要的部分。对于Arduino开发者而言,一款功能强大且易于使用的
    的头像 发表于 12-18 16:35 602次阅读

    直流电机的基本工作原理与结构

    线圈中 的交变的电流。 电磁力F的方向由两个因素决定;1,导体中的电流方向,2,气隙磁场的极性。改变其中之一就可以改变电磁力F的方向。 同一台直流电机即可作发
    发表于 10-28 05:25

    CW32电机控制基础——无刷直流电机换相控制原理

    与有刷直流电机相比,无刷直流电机除使用电子换相器取代有刷直流电机电刷机械换向,使用永磁体产生转子磁场外,从结构和工作原理上都和有刷直流电机相类似,故其
    的头像 发表于 10-09 17:15 5509次阅读
    CW32<b class='flag-5'>电机</b><b class='flag-5'>控制</b>基础——无刷<b class='flag-5'>直流电机</b>换相<b class='flag-5'>控制</b>原理

    单片机直流电机调速原理

    在工业自动化、智能设备等领域,直流电机的调速控制至关重要,而单片机凭借其灵活的控制能力,成为实现直流电机精准调速的核心部件。单片机直流电机
    的头像 发表于 07-17 13:42 1029次阅读

    浮思特 | 无刷电机与有刷直流电机的区别是什么,该如何选择?

    在精密运动控制领域,永磁直流电机因其优于交流电机的可控性,被广泛应用于需精准调节速度、扭矩或位置的场景。美蓓亚三美有刷直流电机当前主流
    的头像 发表于 07-16 10:15 4001次阅读
    浮思特 | 无刷<b class='flag-5'>电机</b>与有刷<b class='flag-5'>直流电机</b>的区别是什么,该如何选择?

    无刷直流电机双闭环控制的仿真研究

    摘 要:为了便于对无刷直流电机的运行特性和控制策略的研究,文章详细的介绍了无刷直流电机工作原理和数学模型,提出无刷直流电机控制策略,采用电
    发表于 07-08 18:33

    无刷直流电机模糊自适应PID控制的研究

    摘要:为了提高无刷直流电机控制系统的动、静态性能,将模糊控制结合PID控制算法应用到无刷直流电机速度
    发表于 07-07 18:29

    无刷直流电机改进型直接转矩控制研究

    摘要:研究了120”导通方式下的无刷直流电机直接转矩控制策略。通过分析了无刷直流电机转矩特性知道,只要保持定子磁链幅值恒定并控制其旋转速度
    发表于 06-27 16:45

    无刷直流电机控制研究

    摘一要:设计了一种采用 TMS320LF2407DSP作为主控制器,集成 IGBT 作为功率驱动元件的无刷直流电机控制器,对电机转速和电流的双闭环 PID 调节。通过在跑步机上的试验表
    发表于 06-26 13:39

    EtherCAT科普系列(10):EtherCAT技术在无刷直流电机驱动系统领域应用

    传统带碳刷的直流电机,所以又被称为电子式可调速直流电动机或电子式换向直流电机。BLDC电机的转子是永磁体,通过改变周围的线圈所产生的磁场的方向
    的头像 发表于 05-29 17:05 1241次阅读
    EtherCAT科普系列(10):EtherCAT技术在无刷<b class='flag-5'>直流电机</b>驱动系统领域应用

    直流电机EMC整改:怎么选择?功率多少?

    南柯电子|直流电机EMC整改:怎么选择?功率多少?
    的头像 发表于 05-29 09:36 1398次阅读
    <b class='flag-5'>直流电机</b>EMC整改:怎么选择?功率多少?