玩转树莓派 2017-07-09 22:52

呼吸灯

概述

上一篇 我们通过控制GPIO口输出高低电平来控制一只 LED 的亮灭。这次我们来控制 LED 的亮度,灯由暗渐渐变亮,再由亮渐渐边暗,反复循环,也就是呼吸灯的效果。按 Ctrl+C结束程序。

通过本节课,你能学习到:

脉冲宽度调制技术

所需硬件

树莓派 x1

面包板 x1

杜邦线 x2

LED灯 x1

名称解释

我们知道,通过LED的电流越大,LED越亮,电流越小,LED越暗。如果可以控制输出电流大小就可以控制LED的明暗了。但是树莓派的各引脚并没有直接调整输出电流大小的功能,要想别的办法。这里,我们需要了解以下2个名词:

脉宽调制(PWM)

脉冲宽度调制(PWM)是一种利用数字手段获得模拟结果的技术。数字控制用于创建方波,电平在高和低之间切换。简单的说,PWM技术就是不停的通断电路并控制通断持续的时间片段长度,从而控制用电器在单位时间内实际得到的电能。再简单点说,如果你的手足够快,打开电灯开关后马上关闭,如果这个时间间隔足够短,灯丝还没有全部亮起来就暗下去了。你再次打开电灯再关闭,再打开再关闭……如果你一直保持相同的频率,那么电灯应该会保持一个固定的亮度不变。理论上,你可以通过调整开灯持续的时间长度和关灯持续的时间长度的比例就能得到不同亮度了。

“导通时间”的持续时间称为脉冲宽度。要获得不同的模拟值,可以更改该脉冲的宽度。

占空比

一个脉冲循环内通电时间所占的比例。

连线图

在开始连接硬件电路之前,首先要做的事是将树莓派电脑关机,并断开电源。因为如果树莓派主板带电的时候,进行插接电路可能会导致电子元器件的烧毁,所以一定要记住:连接电路的时候主板必须断电。本次的接线图和上一篇(第一个GPIO控制LED小灯的程序)连线图完全一样

图片使用 Fritzing 绘制,更多示例图片请到 Fritzing官网 浏览。

电路原理图

示例代码截图防缩进失效!!!

保存文件为

breathing-light.py

,并运行之。

sudo python breathing-light.py

最终效果

python程序 led灯闪烁_树莓派python编程 做一个LED呼吸灯相关推荐

  1. python程序语言和机器人控制-利用树莓派+Python语言制作一部机器人就是如此简单!...

    前段时间,接触了一款在开源硬件界被称为是"人气之王"的树莓派(Raspberry Pi)袖珍计算机,功能强大的她拥有一颗SOC,集CPU.GPU.DSP和SDRAM为一体,以SD卡 ...

  2. 在python程序中嵌入浏览器_用Python中的wxPython实现最基本的浏览器功能

    通常,大多数应用程序通过保持 HTML 简单来解决大多数浏览器问题 ― 或者说,根据最低共同特性来编写.然而,即便如此,也仍然存在字体和布局的问题,发行新浏览器和升级现有浏览器时,也免不了测试应用程序 ...

  3. python程序运行结果不停_关于python:在进程运行时不断打印Subprocess输出

    要从我的python脚本启动程序,我使用以下方法: def execute(command): process = subprocess.Popen(command, shell=True, stdo ...

  4. 简述python程序的运行原理_谈谈 Python 程序的运行原理

    执行 python demo.py 后,将会启动 Python 的解释器,然后将 demo.py 编译成一个字节码对象 PyCodeObject. 在 Python 的世界中,一切都是对象,函数也是对 ...

  5. python程序如何执行死刑_「Python基础知识」Python生成器函数

    原标题:「Python基础知识」Python生成器函数 对于程序而言,内存也是很重要的,因为程序中很多数据都是保存在内存中的,如果内存中存储的数据过多,那么系统就会崩溃,这是人们不希望发生的. 可以采 ...

  6. python程序画漂亮图_用python画图代码:正弦图像、多轴图等案例

    python画图 正弦图像: #coding:utf-8 import numpy as np import matplotlib.pyplot as plt x=np.linspace(0,10,1 ...

  7. python程序基础网课答案_知到Python程序设计基础网课答案

    知到Python程序设计基础网课答案 更多相关问题 在创业过程中,无论创业者签署了哪些协议,如果协议的内容违反我国法律法规强制性规定,该协议就 所谓市场自由,我们应从如下几个方面来考虑().A.市场自 ...

  8. linux下运行python程序如何控制内存_用Python实现Linux系统占用指定内存,CPU满载,服务器压力测试,场景设计...

    背景 提出两个需求 占满系统CPU 占用大内存 通过上网查资料,做实验使用Python实现了上述两个需求. 先看效果 执行前 内存 CPU 执行后 内存 CPU 代码实现 环境说明:代码使用Pytho ...

  9. python程序设计基础李东方答案_李东方python程序设计基础答案

    转动须灵活,李东卡阻不得,2圈3圈4圈. 重点,程础答消灭火灾,战术并运)的用(措施,灾扑)火(库救时极疏救助人员汽车应积遇险散.. 序设购买专用值税的费的增减纳用可以抵应纳税控设备税人税额.额等现金 ...

最新文章

  1. 嵌入式Linux内存压力测试
  2. 蓝桥杯_算法训练_关联矩阵
  3. python树形_Python处理树形数组
  4. Nginx【学习笔记】
  5. linux lp 打印中文,Linux基础命令---lp打印文件
  6. 增强for循环 泛型
  7. qt android 悬浮窗,Qt悬浮窗实现
  8. 纯js开发android,js开发app_安卓app开发引擎
  9. 人口logistic模型公式_数学建模logistic人口增长模型
  10. AMS1117输入电源加反后换元件
  11. 显卡用什么软件作压力测试,推荐一个显卡的跑分跟压力测试的软件TimeSpy
  12. 数据结构21:递归可视化(谢尔宾斯基三角形)
  13. rollup 开发vue组件库及umd SDK 问题总结
  14. Thinkpad 笔记本电源状态指示灯
  15. 如何在iPhone或iPad上使用控制中心
  16. Nginx服务器支持.htaccess的方法
  17. H.264官方软件JM源代码简单分析-解码器ldecod(转载)
  18. DC report_timing 报告分析(STA)
  19. 程序中的地址转换(虚拟地址-物理地址)
  20. htc系统Android 7.1,HTC太强大,被誉为刷机之王,一路升到安卓7

热门文章

  1. 品牌是公司运营的核心价值,也是在消费者的价值体系中的一部分
  2. 计算机视觉:图像到图像的映射
  3. 第一次自己写脚本纪念一下(查看同一网段主机见间能否ping通)
  4. js 展开折叠动画原理,jquery的toggle切换效果
  5. Flutter Row 或者 Column 的拉伸效果,CrossAxisAlignment.stretch
  6. 负载均衡LVS之DR模式IP包调度过程及WRR算法实现的详细步骤
  7. 总结排查服务器上传下载慢的几种手段与查看服务器带宽的具体方法
  8. Vue3电商项目实战-结算支付 4【08-支付-支付页面-基础布局、10-支付-支付页面-信息展示、11-支付-支付流程】
  9. python的repr和str有什么不同_str和repr的区别?
  10. BIM工程师就业方向前景如何?