点亮你的创意,使用Python与树莓派制作呼吸灯的详细教程

这篇具有很好参考价值的文章主要介绍了点亮你的创意,使用Python与树莓派制作呼吸灯的详细教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

  在上一篇文章中,我们介绍了如何在树莓派上点亮一个LED灯,并让它以时间间隔为1秒进行闪烁。闪亮登场!在树莓派上点亮LED灯的简单详细方法_☞黑心萝卜三条杠☜的博客-CSDN博客。现在,我们将介绍如何制作一个呼吸灯。

PWM的介绍

  PWM是脉冲宽度调制(Pulse Width Modulation)的缩写。与STM32一样,树莓派也可以通过PWM输出来控制电子元件,例如控制电机的速度和方向、LED的亮度等。

  树莓派上的PWM输出通常是通过GPIO(General Purpose Input/Output)引脚来实现的。树莓派上有一些专门用于PWM输出的GPIO引脚,例如GPIO18、GPIO19等。在树莓派的Linux系统中,可以使用GPIO驱动程序和相关的库函数来控制PWM输出,以达到控制电子元件的目的。

  树莓派的系统支持软件PWM和硬件PWM两种实现方式。软件PWM是通过程序来模拟PWM信号,实现较为简单且灵活,但精度相对较低。硬件PWM是由树莓派上的专用PWM控制器来实现的,具有精度高、稳定性好等特点,但需要使用专用的GPIO引脚,且控制复杂、功能较为有限。

实现PWM控制LED亮度

  Python是一种十分流行的高级编程语言,也是许多树莓派项目中常用的编程语言之一。我们可以使用RPi.GPIO库来实现GPIO控制。
  在其原理图上模拟连接LED其效果图为:
点亮你的创意,使用Python与树莓派制作呼吸灯的详细教程

  下面是以Python语言为基础,实现PWM信号输出的详细步骤:

    1. 设置树莓派引脚编码方式,并实例化一个PWM对象;
    # 设置编码方式
    GPIO.setmode(GPIO.BCM)
    # 设置GPIO引脚
    GPIO.setup(GPIO_Pin, GPIO.OUT)
    # 实例化PWM对象
    pwmObject = GPIO.PWM(GPIO_Pin, frequency)
    1. 启动PWM;
    pwmObject.start(10)
    1. 使用函数ChangeDutyCycle()修改PWM的占空比,让LED灯呈现先逐渐点亮,再不断变暗的效果。
    1. 不需要使用PWM输出时,可调用函数stop()停止PWM输出;

下面是完整的源码:

def pwmControlLed(GPIO_Pin: int, frequency: int):
    """
    使用PWM控制LED呼吸灯
    :param GPIO_Pin: 可控制的引脚
    :param frequency: PWM的频率
    :return:
    """
    # 设置编码方式
    GPIO.setmode(GPIO.BCM)
    # 设置GPIO引脚
    GPIO.setup(GPIO_Pin, GPIO.OUT)
    # 实例化PWM对象
    pwmObject = GPIO.PWM(GPIO_Pin, frequency)

    # 启动PWM
    pwmObject.start(0)
    try:
        while True:
            for dc in range(0, 101, 5):
                pwmObject.ChangeDutyCycle(dc)
                time.sleep(0.05)
            for dc in range(100, -1, -5):
                pwmObject.ChangeDutyCycle(dc)
                time.sleep(0.05)
    except KeyboardInterrupt:
        pass

    # 停止PWM
    pwmObject.stop()
    GPIO.cleanup()

结果与分析

  我们可以看到,在这个实现PWM控制LED亮度的例子中,使用PWM实现呼吸灯的效果,保证了LED的亮度在一定范围内的平滑变化。通过修改PWM的占空比,LED的亮度可以实现从暗到亮再到暗的呼吸效果。

树莓派制作呼吸灯

  注意,在使用PWM控制LED亮度时,建议使用硬件PWM,效果更加稳定。同时,在使用软件PWM时,需要考虑CPU负载和精度的问题,以免影响PWM输出的稳定性和精度。

  最后,建议在使用PWM控制器时,注意控制器的输出频率和幅度等参数,以避免因输出不稳定而对电子元件造成损害。文章来源地址https://www.toymoban.com/news/detail-498804.html

到了这里,关于点亮你的创意,使用Python与树莓派制作呼吸灯的详细教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 江科协STM32教程——STM32 使用串口助手进行LED灯的点亮熄灭灭控制全代码过程(USART串口通信的简单应用)

            使用USART串口通信,通过上位机串口助手发送符串给STM32执行LED灯点亮熄灭操作的流程。         基本的配置如下所示,GPIO口配置的为PA9推挽输出,用于LED灯的操作。其余注意USART_ITConfig和USART_Cmd开启USART接收中断和使能USART运行。         接下来要进行发送字

    2024年03月21日
    浏览(45)
  • STM32——led灯的点亮+闪烁+流水灯的实现

    1.原理 其方式有两种一种是寄存器方式一种是库函数方式,但其原理都是一样的。如原理图所示,与LED相连接的IO口置低电平即可点亮led灯 2.寄存器方式–代码 3.库函数–代码 (1)led.c:函数led_config() (2)main.c调用led_config 4.结果展示 原理:让连接的IO口先置零再置1可以使其先亮

    2024年02月08日
    浏览(42)
  • 51单片机点亮LED灯以及实现2盏LED灯的交替闪烁

    点亮LED灯,根据单片机原理图 将LED灯1和LED灯2介入单片机的口设为低电平即可 代码如下: #include “reg52.h” sbit led1= P3^7; void main() { led1 = 0;//给led1一个低电平,点亮 } 结果图: 图中有一盏LED灯为我这个51单片机自带的电源接通灯,被代码点亮的只有一盏 实现2盏LED灯的交替闪烁

    2024年02月07日
    浏览(32)
  • 【AI可视化---04】点亮数据之旅:发现Matplotlib的奇幻绘图世界!用Python挥洒数据音符的创意乐章——这四篇就够了!

      晴川历历汉阳树,芳草萋萋鹦鹉洲。 日暮乡关何处是,烟波江上使人愁。     🎯作者主页: 追光者♂🔥          🌸个人简介:   💖[1] 计算机专业硕士研究生💖   🌟[2] 2022年度博客之星人工智能领域TOP4🌟   🏅[3] 阿里云社区特邀专家博主🏅   🏆[4] CSDN-人工智能

    2024年02月15日
    浏览(31)
  • 闪亮登场!在树莓派上点亮LED灯的简单详细方法

      树莓派和STM32都是常用的嵌入式设备,都可以使用GPIO来控制LED灯。它们的点灯方式和使用的编程语言以及开发环境略有不同: 相同点: 控制LED的原理 都是使用GPIO输出高电平或低电平来点亮或关闭LED灯 。 都需要使用适当的电阻来限制电流,以保护LED和芯片不被烧坏。 在

    2024年02月10日
    浏览(55)
  • 嵌入式-stm32-用PWM点亮LED实现呼吸灯

    答:LED需要低电平才能亮,高电平是灯灭。 答:这是用到不同占空比来实现的,控制LED实现呼吸灯,就是通过占空比的高低电平和其持续时间来实现。 ①例如,要定时500ms,则:PSC=7199,ARR=4999,Tclk=72Mhz。 ②假如频率为 2kHz ,则:PSC=71,ARR=499, 频率和周期是描述波形的两个基

    2024年02月03日
    浏览(84)
  • Python使用AI photo2cartoon制作属于你的漫画头像

    官方效果图如下: 效果图1如下: 效果图2如下: 效果图3如下: 人像卡通风格渲染的目标是,在保持原图像 ID 信息和纹理细节的同时,将真实照片转换为卡通风格的非真实感图像。 但是图像卡通化任务面临着一些难题: 卡通图像往往有清晰的边缘,平滑的色块和经过简化的

    2024年02月02日
    浏览(61)
  • Python使用AI animegan2-pytorch制作属于你的漫画头像/风景图片

    官方效果图如下: 效果图v2 512模型如下: 效果图v1 512模型如下: 效果图v1 效果不太好如下: 效果图rece如下 人物会有一种病态的美,过于白了,风景上效果更好一些; 人物与photo2cartoon的效果图有点像; 效果图paprika 模型如下 人物纹理痕迹太过明显,更适合风景 下一张明兰

    2024年01月24日
    浏览(33)
  • Raspberry Pi 4b点亮树莓派桌面(官方烧录工具)

    准备材料:树莓派4b x1、读卡器、SD卡(16G以上)、笔记本电脑 准备软件:Raspberry Pi Imager(树莓派官方烧录工具)、putty 话不多说,直接上操作!!!! 一、Raspberry Pi Imager(树莓派官方烧录工具)安装 1、打开树莓派官方烧录工具下载页面Raspberry Pi OS – Raspberry Pi,根据自己的系统安

    2023年04月08日
    浏览(38)
  • STM32 HAL库 通用定时器介绍及相关应用例程 定时器中断 输出PWM (点亮LED呼吸灯、输出PWM、输入捕获) CubeMX

    (部分图引自于ATK) 前情提要(基本定时器) 点此进入 通用定时器类别 通用定时器和基本定时器相比大致的工作方式是相似的,不过通用定时器比基本定时器多了一些很好用的功能,比如: 外部输入捕获 输出比较 输出PWM 时钟源 CubeMX为我们提供了配置时钟的非常方便的工

    2024年04月15日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包