步骤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()

打开APP精彩内容

点击阅读全文

树莓派控制电机转速_怎样用树莓派控制直流电机的方向和速度相关推荐

  1. Proteus基于51单片机通过PWM脉冲调制控制电机转速_按键与串口控制转速_电机转速可测

    文章目录 原理图 驱动电路 MOTOR-ENCODER详解 串口通信 电机测速原理 PWM 软件部分 成果 临近期末,学校的单片机课程需要做课程设计,主要内容是基于51单片机的可调速电机,具体要求如下 ...

  2. stm32pid算法控制电机转速_论文推荐 | 基于全阶状态滑模观测器的混合永磁记忆电机磁链观测...

    点击"公众号首页-论文导读-微刊"或页面下端"阅读原文"可在线浏览文章全文,如果你喜欢本文,请分享到朋友圈.2020年第28卷第2期基础研究基本信息 作者: 姜 ...

  3. vpwm的控制变频_变频器调速控制方式和PWM脉宽调整技术有什么不同

    展开全部 PWM是变频器的一种电压调制方式. 调速控制是指调整频率636f70793231313335323631343130323136353331333365646239的同时,其他一些参数也要协 ...

  4. [转载] 树莓派并行控制电机_使用由并行端口控制的软盘驱动步进电机的相机摇摄器

    参考链接: Python中的摩尔斯电码翻译器 树莓派并行控制电机 Here's a clever guy to watch, Ashish Derhgawen in New Delhi. He's a ...

  5. python控制风扇_三种树莓派温度控制风扇方案整理

    成本:L293D大概1~2块钱的样子. 缺点:还是比较大:管脚需要焊接,或插在面包板上用杜邦线引,需要单独放边上:线路比较复杂,接线多. 方案三:使用开关三极管 也是解决普通继电器无法激活的问题时,受 ...

  6. stm32pid算法控制电机转速_电机控制算法探讨ABB

    欢迎加入技术交流QQ群(2000人):电力电子技术与新能源 905723370 高可靠新能源行业顶尖自媒体 在这里有电力电子.新能源干货.行业发展趋势分析.最新产品介绍.众多技术达人与您分享经验,欢迎 ...

  7. 树莓派java游戏机_学用树莓派(8)-实战案例:基于树莓派JAVA的微型激光雕刻机-控制器/处理器-与非网...

    大学之前就希望做一个激光雕刻机,我对 JAVA 也非常感兴趣,正好呢树莓派有 pi4j 作为支持,那么刚好这次 e 络盟举行这个比赛,就打算用树莓派和 java 做一个激光雕刻机.我也希望通过这次比赛 ...

  8. python控制程控电源_程控开关稳压电源的控制方式对比

    程控开关稳压电源的控制方式对比开关稳压电源由多个电子器件构成,但本 质上, 开关稳压电源的核心是一个直流变压器. 所以想要对开关稳压电源进行分析并不难. 在本文中,小编将为大家介绍通过程控的开关稳压电 ...

  9. 树莓派人脸识别_最全树莓派资料分享 顺手秀一下自己的杰作

    可能有人会疑问,楼主上次分享资料之后咋失踪了.既然我回来了大家不用慌张,链接失效马上来重发.无力吐槽百度网盘.重新分类出来的链接放在文章最下面了. 树莓派已经陪我度过了五年,从15年的树莓派2B开始, ...

最新文章

  1. 【云计算的1024种玩法】轻松将其他云的对象储存迁移至阿里云OSS
  2. USACO 2.3.3 罗马数字
  3. 访问进程环境变量environ时的一个坑
  4. AD 脚本kixtart运用之六(outlook邮件批量生成签名)
  5. 为什么要娶就娶电力女?!
  6. Csv数据库CsvDb
  7. java中常量定义在interface中好还是定义在class中
  8. Mybatis的入门到精通这一篇文章就够了
  9. BZOJ4133 : Answer的排队
  10. AttributeError: module ‘tensorflow‘ has no attribute ‘xxx‘
  11. R语言| 中介效应分析,Mediation包和BruceR包,循环Process函数
  12. 开源自己的一个小android项目(美女撕衣服游戏)
  13. 全套web前端课程思维导图+视频+源码 web高端课程 深入学习 624个视频教程
  14. Freesurfer学习笔记——Introduction to Freesurfer Output(输出简介)
  15. Shader 常用函数
  16. 解决a标签下载网络图片直接打开的问题,通过浏览器下载网络文件
  17. CAD图纸可以转换成哪些格式呢?
  18. from vision import VisionDataset报错
  19. 如何给多个Word文档创建一个有连续页码的目录
  20. 一种新型勒索病毒在国内传播,目前无解

热门文章

  1. Shovels and Swords CodeForces - 1366A(二分)
  2. Swap Letters CodeForces - 1215C(贪心)
  3. Deep GSP : 面向多目标优化的工业界广告智能拍卖机制
  4. python探测端口_python检测远程服务器tcp端口的方法
  5. 《计算机网络》_学习笔记(一)
  6. get请求报500_http请求和响应的全过程
  7. 图论--关于最长路的探讨
  8. Swift 网络请求数据与解析
  9. 【Android】如何查看android cpu是32位还是64位
  10. 窗口背景颜色修改 备忘