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

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

3天内不再提示

使用Raspberry Pi进行PWM控制

星星科技指导员 来源:嵌入式计算设计 作者:Cliff Ortmeyer 2022-06-14 11:04 次阅读

脉冲宽度调制 (PWM) 是一种广泛用于控制功率的调制技术。它通常用于电机控制应用中以控制电机的速度。Raspberry Pi 等单板计算机 (SBC) 可用于生成用于电机速度控制的 PWM 信号,但有一个限制:Raspberry Pi 上只有一个 PWM 硬件引脚可用。然而,使用Arduino 的支持 PWM 的 I/O 引脚,可以找到一种可行的解决方案,不仅适用于一个,而且适用于多个 PWM 输出。

PWM 概述

PWM 信号是一个方波,用于电子控制系统中,用于控制诸如舵机位置、电机速度和 LED 亮度之类的东西。它基于两个重要参数:频率和占空比。频率是波形在一秒钟内产生的重复周期数。占空比表示信号高与低的时间百分比。得到的波形平均值决定了传递给负载的功率量。

Raspberry Pi 和 Arduino Raspberry Pi 是一款信用卡大小的微型计算机

,部分由于其计算能力、尺寸和价格 而引起了相当多的关注。Raspberry Pi 基于 Broadcom BCM2835 嵌入式多媒体应用处理器。它配备了多个连接端口,可以通过插入电视或显示器和 USB 键盘轻松操作。它还与许多操作系统兼容;然而,为 Raspberry Pi 量身定制的 Linux 版本 Raspbian 是最常用的操作系统之一。

Arduino 是一个基于单板微控制器的平台,可为没有经验和有经验的用户提供嵌入式电子设计的简单快速入门。它是一种开源硬件设计,提供模数信号转换功能以及输入和输出控制以及 PWM 信号生成。Arduinos 还通过其板载 I/O 连接和可用的扩展板提供丰富的连接选项。

poYBAGKn-x2AXGuVAAFdOcg6Spo008.png

Raspberry Pi 上的 PWM:控制能力有限

考虑一个涉及构建机器人汽车的任务,您需要通过 Raspberry Pi 控制两个电机,Raspberry Pi 具有 26 个通用输入/输出 (GPIO) 引脚。在这些引脚中,只有一个易于访问的 PWM 输出引脚,它不足以驱动任何需要更多控制的东西,而不仅仅是开/关功能。伺服电机和 RGB LED 不能单独通过该引脚驱动。

增强 Raspberry Pi 的 PWM 功能的策略

已经提出了许多解决方案来克服Raspberry Pi的这一限制。很多人为此目的使用支持 I2C(内部集成电路)或 SPI(串行外设接口)的附件。这些设备由 Raspberry Pi 控制,它们生成 PWM 信号用于控制目的。PWM 发生器附件也可用于将支持 PWM 的输出引脚添加到 Raspberry Pi。

正在使用的另一种方法是在其他支持 GPIO 的引脚上执行软件 PWM。WiringPi 库是一个允许这种类型控制的示例库。它使用实时调度程序通过运行各个线程来优先生成 PWM 信号,但由于 Raspberry Pi 上使用的操作系统执行多任务处理,因此该解决方案不适合,因为它提供了低时序分辨率和高抖动。

Arduino:合适的解决

方案 轻松开发 PWM 信号的一种解决方案是使用 Arduino 开发套件。Arduino 板有多种配置。例如,Arduino Due 有 54 个数字引脚(其中 12 个可用于 PWM 输出)和 14 个模拟引脚。有了这么多可配置的 I/O 引脚,Arduino Due 和一般的 Arduino 板是与 Raspberry Pi 接口的外部传感和控制板的理想选择。

poYBAGKn-xeARYCVAANUCCad2v4371.png

通过 USB 连接 Arduino 和 Raspberry Pi

可以通过 匹配 Raspberry Pi 和 Arduino 平台的形式找到具有强大的 PWM 功能和高度可配置的用户界面的解决方案。基于 Arduino 的开发板可以与 Raspberry Pi 连接,以添加 PC 的功能、网络通信和多媒体工具、通过使用微控制器与环境交互的能力以及移动设备的便携性设备。如前所述,Arduinos 是一个基于微控制器的平台,非常适合为涉及传感和控制的应用程序运行代码。连接 Raspberry Pi 和 Arduino 板的一种非常方便、低成本且可靠的方法是通过USB 电缆。 这是一个方便的解决方案,因为它需要最少数量的硬件。此外,它通常提供具有精确实时响应的电机和电源控制,例如提供高精度和低抖动,这对于许多控制应用很重要。

通过使用每块板上的 USB 接口以及现成的 pySerial 库,可以从 Raspberry Pi 发送命令来控制 Arduino 的多个 I/O。而且,以相反的方式,当 Arduino 读取多种数据类型(如温度、速度或其他需要监控的外部数据)时,串行数据可以从 Arduino 发送回 Pi。

审核编辑:郭婷

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

    关注

    48

    文章

    6808

    浏览量

    147612
  • usb
    usb
    +关注

    关注

    59

    文章

    7422

    浏览量

    258046
  • PWM
    PWM
    +关注

    关注

    114

    文章

    4897

    浏览量

    209885
收藏 人收藏

    评论

    相关推荐

    震惊!居然有人给 Raspberry Pi 5 做 X 射线!

      Jeff Geerling 会做一些莫名其妙的怪事,比如用信鸽来对抗网速,不过这也是我们喜欢他视频的原因。最近,杰夫对 Raspberry Pi 5 进行了 X 光透视,揭示
    的头像 发表于 01-10 16:42 225次阅读
    震惊!居然有人给 <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 5 做 X 射线!

    Raspberry Pi 3 官方套件入门指南

    Raspberry Pi 3套件介绍Raspberry Pi 3套件安装Raspberry Pi
    发表于 10-09 07:53

    【树莓派Pi5】树莓派 Raspberry Pi 5 正式发布!

    革新得益于 Raspberry Pi 自家研发的 RP1 I/O 控制芯片,这是首次在旗舰产品上采用 Raspberry Pi 芯片! 上海
    的头像 发表于 09-28 17:30 1010次阅读
    【树莓派<b class='flag-5'>Pi</b>5】树莓派 <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 5 正式发布!

    使用Raspberry Pi Pico W和MicroPython开发物联网应用

    当我们提及物联网(IoT, Internet of Things)开发,可能首先想到的是Arduino或是ESP8266这样的微控制器开发板。然而,Raspberry Pi的微控制器开
    的头像 发表于 07-21 09:36 1018次阅读
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> Pico W和MicroPython开发物联网应用

    使用Raspberry PI和open CV进行图像处理

    电子发烧友网站提供《使用Raspberry PI和open CV进行图像处理.zip》资料免费下载
    发表于 07-06 15:13 1次下载
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>PI</b>和open CV<b class='flag-5'>进行</b>图像处理

    使用Raspberry Pi和BluPants进行编码

    电子发烧友网站提供《使用Raspberry Pi和BluPants进行编码.zip》资料免费下载
    发表于 07-05 11:21 0次下载
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和BluPants<b class='flag-5'>进行</b>编码

    使用Raspberry Pi和Arduino实现Web控制的LED动画

    电子发烧友网站提供《使用Raspberry Pi和Arduino实现Web控制的LED动画.zip》资料免费下载
    发表于 07-03 14:52 0次下载
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和Arduino实现Web<b class='flag-5'>控制</b>的LED动画

    通过USB对Raspberry Pi进行编程

    电子发烧友网站提供《通过USB对Raspberry Pi进行编程.zip》资料免费下载
    发表于 06-30 10:24 0次下载
    通过USB对<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b><b class='flag-5'>进行</b>编程

    使用Raspberry Pi进行客户满意度调查

    电子发烧友网站提供《使用Raspberry Pi进行客户满意度调查.zip》资料免费下载
    发表于 06-30 09:17 0次下载
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b><b class='flag-5'>进行</b>客户满意度调查

    Arduino和Raspberry Pi平台进行编码

    电子发烧友网站提供《Arduino和Raspberry Pi平台进行编码.zip》资料免费下载
    发表于 06-29 11:31 0次下载
    Arduino和<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>平台<b class='flag-5'>进行</b>编码

    使用Google Coral和Raspberry Pi进行ML鸟类识别

    电子发烧友网站提供《使用Google Coral和Raspberry Pi进行ML鸟类识别.zip》资料免费下载
    发表于 06-27 10:16 0次下载
    使用Google Coral和<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b><b class='flag-5'>进行</b>ML鸟类识别

    使用Raspberry Pi进行机器学习智能库存跟踪

    电子发烧友网站提供《使用Raspberry Pi进行机器学习智能库存跟踪.zip》资料免费下载
    发表于 06-26 11:02 0次下载
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b><b class='flag-5'>进行</b>机器学习智能库存跟踪

    使用ROS和Raspberry Pi进行Bittle远程操作

    电子发烧友网站提供《使用ROS和Raspberry Pi进行Bittle远程操作.zip》资料免费下载
    发表于 06-25 11:01 0次下载
    使用ROS和<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b><b class='flag-5'>进行</b>Bittle远程操作

    使用Raspberry Pi进行汽车诊断

    电子发烧友网站提供《使用Raspberry Pi进行汽车诊断.zip》资料免费下载
    发表于 06-20 09:31 0次下载
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b><b class='flag-5'>进行</b>汽车诊断

    Raspberry Pi的Teams Presence

    电子发烧友网站提供《Raspberry Pi的Teams Presence.zip》资料免费下载
    发表于 06-16 15:17 0次下载
    <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>的Teams Presence