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

相关课程目录

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux卸载命令_Linux系统中如何卸载东西

    Linux卸载命令_Linux系统中如何卸载东西微信设置水滴昵称,个性中带点萌第一步,apt-getremovexxx;就是卸载xxx 或者apt-getremove–purgexxx;卸载xxx并清除配置。 这两条命令对于依赖则是不管的。因为别的软件可能和此软件有相同的依赖,当然对依赖不能管了。第二步,apt-getautoremove;就是来对付那些不再被“依赖”的包,自动检测并删除他们(任何时候都可以执行此条命令)。 autoremove:isusedtoremovepackagesthat

    2025年10月11日
    5
  • SM4加密算法原理以及C语言实现

    SM4加密算法原理以及C语言实现SM4是一种轮询的数据加密算法,本文介绍了SM4算法的基本原理以及C语言实现,并通过程序算法实现了任意长度数据的加密与解密处理,实测可用,可供大家参考,谢谢!

    2022年10月5日
    2
  • Vue文件上传问题合集

    Vue文件上传问题合集目录1.背景2.环境3.问题集1)文件上传完成后,文件名的回显2)文件上传完成前的加载状态3)文件上传作为必填项1.背景在使用Vue+ElementUI进行前端工程开发中,遇到一些文件上传的问题,包括上传、回显、等待等。这里做一些记录,方便以后查看2.环境npm 6.14.12 vue-admin-template 4.4.0 axios 0.18.1 element-ui 2.13.2 3.问题集1)文件上传完成后,文件名

    2022年8月16日
    7
  • CDatabase::ExecuteSQL()

    CDatabase::ExecuteSQL()CDatabase::ExecuteSQLCallthismemberfunctionwhenyouneedtoexecuteaSQLcommanddirectly.当你要直接执行SQL命令的时候就访问这个成员函数voidExecuteSQL(  LPCTSTRlpszSQL );lpszSQLPointertoanull

    2022年5月21日
    42
  • Linux服务器如何做raid1,Linux下制作raid1

    Linux服务器如何做raid1,Linux下制作raid1制作raid1raid1是Linux服务器最常用的一种硬盘冗余备份的方案,它能在硬盘损坏的情况下保证硬盘数据内的安全。需要至少两块硬盘,最好是完全相同的两块硬盘,所创建的若磁盘中有谁损坏,则备用盘自动替补上去。一、搭建Linuxraid1环境1.准备好要制作raid1的硬盘,至少两块,最好是两块同型号同容量的硬盘。2.用fdisk工具对硬盘进行分区(用sda做示例…

    2022年7月15日
    26
  • linux root密码修改命令_centos7修改root用户密码

    linux root密码修改命令_centos7修改root用户密码作者:技术工程师–陈锐锐前言:最近遇到有将自己root密码忘记的情况,这里总结一下root密码修改的几种方法,仅供参考。一、Linux6.x以及以下版本1.重启系统,按e进入如下模式再次按e进入如图模式(选中kernel)2.按e进入编辑(空格+/init1或空格+singe或空格+1),三种选一种就行。3.修改完成后,按回车,退回上一界面,按b保存重启4.完成以上操作,即可进入单用户模式,passwd直接修改,然后重启即可二、Linu…

    2025年9月2日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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