python控制灯_树莓派python编程 做一个LED呼吸灯「建议收藏」

呼吸灯概述上一篇我们通过控制GPIO口输出高低电平来控制一只LED的亮灭。这次我们来控制LED的亮度,灯由暗渐渐变亮,再由亮渐渐边暗,反复循环,也就是呼吸灯的效果。按Ctrl+C结束程序。通过本节课,你能学习到:脉冲宽度调制技术所需硬件树莓派x1面包板x1杜邦线x2LED灯x1名称解释我们知道,通过LED的电流越大,LED越亮,电流越小,LED越暗。如果可以控制输出电流大小就可…

大家好,又见面了,我是你们的朋友全栈君。

呼吸灯

概述

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

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

脉冲宽度调制技术

所需硬件

树莓派 x1

面包板 x1

杜邦线 x2

LED灯 x1

名称解释

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

脉宽调制(PWM)

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

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

占空比

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

beepress1-1540734246.jpeg

连线图

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

beepress4-1540734246.jpeg

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

电路原理图

beepress2-1540734246.jpeg

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

beepress9-1540734247.jpeg

beepress8-1540734247.jpeg

保存文件为

breathing-light.py

,并运行之。

sudo python breathing-light.py

最终效果

beepress5-1540734247.gif

相关课程目录

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/127963.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 混合开发hybrid原理_混合开发是什么意思

    混合开发hybrid原理_混合开发是什么意思(一)开发移动三种模式(1)NativeApp:(原生APP)写App的同学,比如ios,安卓等(2)HybridApp:(混合开发),h5页面嵌入App中(3)WebApp:用手机浏览器打开h5页面(二)优缺点:(1)NativeApp:基本可以操作任何手机系统,比如(视频、扫码、获取通讯录、打电话)等(2)HybridApp:混合开发,如果想要h5操作手机系统,需要app同学配合前端,给前端提供相应的操作api前端也可以自己做混合开发,需要借助.

  • 数据库连接池技术 之 Druid[通俗易懂]

    数据库连接池技术 之 Druid[通俗易懂]数据库连接池技术之Druiddruid不仅仅为数据源,还能sql拦截等功能。下面示例中用到的Dept类,请参考:Dept源代码JDBC版本第一步:创建一个MavenWeb项目,添加依赖<dependency><groupId>mysql</groupId><artifactId>mysql-connector-……

  • hashlib

    hashlib使用Python中的hashlib来进行hash加密是非学简单的,下面是一段简单代码:[python] viewplaincopyimport hashlib  md5 = hashlib.md5() #创建一个MD5加密对象  md5.update(“JGood is a handsome boy”)  #更新要加密的数据  prin

  • 5G NR 逻辑信道、传输信道和物理信道

    5G NR 逻辑信道、传输信道和物理信道无线接口可分为三个协议层:物理层(L1)、数据链路层(L2)和网络层(L3)。L1:主要用于为高层业务提供传输的无线物理通道。L2:包括四个子层MAC(MediumAccessControl)媒体接入控制RLC(RadioLinkControl)无线链路控制PDCP(PacketDataConvergenceProtocol)分组数据汇聚协议SDAP(ServiceD…

  • clion 激活码[在线序列号]

    clion 激活码[在线序列号],https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • arping指令linux,arping命令详解「建议收藏」

    arping指令linux,arping命令详解「建议收藏」1版本arping主要就是查看ip的MAC地址及IP占用的问题。arping有两个版本,一个版本是ThomasHabets这个人写的,这个版本有个好处是可以arping,也就是说我们可以通过MAC地址得到IP;还有一个版本是Linuxiputilssuite的,这个版本就不能通过MAC地址,解析出IP地址了。可以使用arping-V查看系统的arping的版本[root@dev-…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号