树莓派的PWM脉宽调制功能介绍

最近想用树莓派控制航模的电调,于是研究了下PWM,貌似控制电调比较麻烦,因为电调需要发送几个特定的信号启动,然后才能进入控制模式,今天先弄明白PWM,慢慢折腾。下面的程序亲测可用,我用的树莓派model B,12GPIO口是外面第6个针。

脉宽调制(PWM)是指用微处理器的数字输出来对模拟电路进行控制,是一种对模拟信号电平进行数字编码的方法。在树莓派上,可以通过对GPIO的编程来实现PWM。

创建一个 PWM 实例:

GPIO.PWM(channel, frequency)

启用 PWM:

p.start(dc)   # dc 代表占空比(范围:0.0 <= dc >= 100.0)

更改频率:

p.ChangeFrequency(freq)   # freq 为设置的新频率,单位为 Hz

更改占空比:

p.ChangeDutyCycle(dc)  # 范围:0.0 <= dc >= 100.0

停止 PWM:

p.stop()

注意,如果实例中的变量“p”超出范围,也会导致 PWM 停止。

以下为使 LED 每两秒钟闪烁一次的示例:

importRPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(12, GPIO.OUT)

p =GPIO.PWM(12, 0.5)
p.start(1)
input('点击回车停止:')   # 在 Python 2 中需要使用 raw_input
p.stop()
GPIO.cleanup()

以下为使 LED 在亮/暗之间切换的示例:

import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, GPIO.OUT)
GPIO.setup(12, GPIO.OUT)

p = GPIO.PWM(12, 50)
p11 = GPIO.PWM(11, 38)

p.start(0)
p11.start(0)

try:
    while 1:
        for dc in range(0, 101, 5):
            p.ChangeDutyCycle(dc)
            p11.ChangeDutyCycle(dc)
            time.sleep(0.1)
        for dc in range(100, -1, -5):
            p.ChangeDutyCycle(dc)
            p11.ChangeDutyCycle(dc)
            time.sleep(0.1)
except KeyboardInterrupt:
    pass

p11.stop()
GPIO.cleanup()

版权声明:本文为博主原创文章,转载请保留出处http://blog.csdn.net/offbye

时间: 2024-08-05 20:57:37

树莓派的PWM脉宽调制功能介绍的相关文章

Exchange2016正式版功能介绍及全新安装配置

Exchange2016功能介绍及全新安装配置 说到Exchange服务相信很多人都在关注,微软在2015年更新了很多服务,从功能上来说确实做了很多优化及提升,具体就不多说了,微软在2015年10月1日发布了Exchange2016正式版,版本还是分为标准版和企业版,此次发布为多语言版本 同样微软在2015年发布了那些新产品呢 : 我们还是说说Exchange2016,从安装及官网文档上看微软从Exchange2010到Exchange2016角色上缩减了很多,从Exchange2010的Mai

Python中生成器和迭代器的功能介绍

生成器和迭代器的功能介绍 1. 生成器(generator) 1. 赋值生成器 1. 创建 方法:x = (variable for variable in iterable) 例如:x = (i for i in range(10)) print(x) >>> <generator object <genexpr> at 0x00000000006B85C8> 返回值:generator #使用元祖推导式的时候回变成一个生成器. 2. 调用 方法:x.__nex

友盟新功能介绍:在线参数-备用

作为开发者您是否也碰到过这些挠头问题: 刚上线不久的应用就要修改说明文字?应用添加广告后,如何平衡用户流失和广告收入情况?如何对游戏中的道具进行合理定价? 为帮助开发者告别频繁地更新应用版本,更好的比较版本之间的用户行为及习惯,友盟针对Android开发者新推出在线参数功能.通过在线参数功能,开发者可以远程动态修改应用中的参数值,灵活调整运营策略.iOS版本近期推出. 获得更多信息和体验在线参数功能请访问www.umeng.com 什么是在线参数 在线参数是友盟推出的新功能,可以让您动态修改应用

Python中set的功能介绍

Set的功能介绍 1.集合的两种函数(方法) 1. 集合的内置函数 交集 格式:x.__and__(y)等同于x&y 例如:s1 = {'a',1,} s2 = {'b',1,} s3 = {'b','d'} print(s1.__and__(s2)) >>> {1} print(s1.__and__(s3)) >>> set() 返回值:set #y只能是集合,当两个集合没有交集时,返回值为空集合. 判断是否是包含关系 格式:x.__contains__(y)

EXCEL基础内容学习笔记(二)Excel文档的基本组成与功能介绍

一.基本组成 (一)工作簿.工作表与单元格 (1)工作簿:一个Excel文档即为一个工作簿. (2)工作表:工作簿中的每个表. (3)单元格:打开Excel文档,在工作表中单击,出现的加粗四边形即为单元格.单元格由行和列组成,命名时由行和列说明,称为单元格名称或地址. 一个工作簿中有若干个工作表,每个工作表有许多单元格组成. 二.功能介绍 (1)标题栏:Excel文档最上端. (2)选项卡 (3)工作区:每一个打开的选项卡都含有若干工作区. (4)名称框:所选择的单元格的名字. (5)编辑栏:可

keepalived高可用的常用功能介绍

Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器.本篇文章会介绍keepalived的安装,配置,还有keepalived的一些脚本,keepalived+nginx高可用实现和keepalived双机互为主从的实现. keep

vsphere(vCenter功能介绍)四

今天我们来讲vcenter的功能 让大家熟悉熟悉 这就是 一个容器罢了 大家根据公司的环境 自由搭建 这个会经常操作 做HA时会用运到以下配置 然后我们把esxi41-2 的配合改了 比如说改改网络 配置啥的 然后在附加上去 前提要进入维护模式  导入后在退出维护模式就行了 ok 今天就讲到这里 大家一定要多点 并不是我写的这些功能就是全部的  拜 vsphere(vCenter功能介绍)四,布布扣,bubuko.com

带你走近AngularJS - 基本功能介绍

AngularJS是Google推出的一款Web应用开发框架.它提供了一系列兼容性良好并且可扩展的服务,包括数据绑定.DOM操作.MVC设计模式和模块加载等.本文专注于AngularJS 指令的使用,在我们进入主题之前,我们将快速浏览AngularJS的基本用法. AngularJS 不仅仅是一个类库,而是提供了一个完整的框架.它避免了您和多个类库交互,需要熟悉多套接口的繁琐工作.它由Google Chrome的开发人员设计,引领着下一代Web应用开发.也许我们5年或10年后不会使用Angula

GPS接收器控件TGPS下载及功能介绍

TGPS是一个Delphi控件,包装了GPS接收器的相关接口.TGPS是一个GPS接收器接口,它可以用于所有发送NMEA 0183数据的GPS接收器,同时也可以连接计算机的串行通信端口. TGPS的功能特性包括: 可以获取位置.时间.速度.标题.方位.路标.线路等等(主要取决于GPS接收器提供的数据,不同的GPS接收器接收的数据也可能有一些差异) 包含两个组件:提供卫星位置的图片以及信号强度 自动识别COM端口,波特率等等 TGPS 组件在Delphi 3.0, 4.0, 6.0 和 7.0开发