嵌入式人工智能(9-基于树莓派4B的PWM-LED呼吸灯)

news2024/9/23 13:18:35

1、PWM简介

(1)、什么是PWM

脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是在具有惯性的系统中利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换和电机控速等的许多领域中。

(2)、PWM参数

        (a)频率 = 1 / Ts(是指1秒钟内信号从高电平到低电平再回到高电平的次数(一个周期);)

        (b)占空比 = Ton /  Ts(有效电平与周期之比

        (c)分辨率 = 占空比变化步距

2、控制亮度

通过PWM可以改变输出电压,RPi.GPIO库内置了PWM的相关方法,通过它3任意一个GPIO引脚都能进行PWM输出。LED灯的接线仍然不变,接第11脚,GPIO17。

3、代码

import RPi.GPIO as GPIO
import time

PWM_LED = 11
# 指定编号规则为BOARD
GPIO.setmode(GPIO.BOARD)

# 将11号引脚设置为输出模式
GPIO.setup(PWM_LED, GPIO.OUT)

# 创建一个 PWM 实例,需要两个参数:
# 第一个是GPIO端口号,这里我们用12号
# 第二个是频率(Hz),频率越高LED看上去越不会闪烁,相应对CPU要求就越高,设置合适的值就可以
pwm = GPIO.PWM(PWM_LED, 80)

# 启用 PWM,参数是占空比,范围:0.0 <= 占空比 >= 100.0
pwm.start(0)

try:
    while True:
        # 电流从小到大,LED由暗到亮
        for i in range(0, 101, 1):
            # 更改占空比,
            pwm.ChangeDutyCycle(i)
            time.sleep(0.02)

        # 再让电流从大到小,LED由亮变暗
        for i in range(100, -1, -1):
            pwm.ChangeDutyCycle(i)
            time.sleep(0.02)

# 捕捉 Ctrl+C 强制中断的动作,以便于清理GPIO引脚
except KeyboardInterrupt:
    pass

# 停用 PWM
pwm.stop()

# 清理GPIO引脚
GPIO.cleanup()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1929875.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux部署禅道(无脑复制版)

目录 环境部署1、下载&#xff0c;解压2、启动3、设置开机自启 登录禅道登录数据库1、设置账号2、网页登录数据库 环境 Linux系统 Centos7 《Linux一键安装包安装禅道》视频链接&#xff1a; https://www.zentao.net/zentao-install/zentao-linux-install-80523.html 部署 …

2025考研~数据结构试卷

作者主页&#xff1a;知孤云出岫 数据结构试题 [TOC](数据结构试题)数据结构试卷一、选择题&#xff08;每题2分&#xff0c;共20分&#xff09;二、填空题&#xff08;每题3分&#xff0c;共15分&#xff09;三、简答题&#xff08;每题10分&#xff0c;共40分&#xff09;四…

c/c++ 打印调用栈

打印调用栈可以在程序出现死机的时候&#xff08;如出现 SIGABRT、SIGSEGV等一些信号错误&#xff09;是很有用的信息&#xff0c;有可能就不需要 core file 来协助排查问题了。通过 man backtrace 可以得到一个例子的源码&#xff1a; #define SIZE 100 static void backTrac…

《javeEE篇》--多线程(1)

进程 在讲线程之前我们先来简单了解一下进程 什么是进程 进程是操作系统对一个正在运行的程序的一种抽象&#xff0c;又或者说&#xff0c;可以把进程看作程序的一次运行过程(通俗的讲就是跑起来的程序)。 而且在操作系统内部&#xff0c;进程是资源分配的基本单位 PCB P…

学生基本信息界面(MFC)

本文将引用MFC常用控件&#xff0c;写一个学生基本信息界面&#xff0c;最后将统计结果显示在提示框中&#xff0c;运行效果如下&#xff1a; 1.新建基于对话框的MFC项目&#xff0c;布局对话框&#xff0c;修改相应控件ID并绑定变量 注意:第一个单选控件的group属性 3.在构造…

《算法笔记》总结No.7——二分(多例题详解版)

一.二分查找 目前有一个有序数列&#xff0c;举个例子&#xff0c;假设是1~1000&#xff0c;让我们去查找931这个数字&#xff0c;浅显且暴力的做法就是直接从头到尾遍历一遍&#xff0c;直到找到931为止。当n非常大&#xff0c;比如达到100w时&#xff0c;这是一个非常大的量级…

获取欧洲时报中国板块前新闻数据(多线程版)

这里写目录标题 一.数据获取流程二.获取主页面数据并提取出文章url三.获取文章详情页的数据并提取整体代码展示 一.数据获取流程 我们首先通过抓包就能够找到我们所需数据的api 这里一共有五个参数其中只有第一个和第五个参数是变化的第一个参数就是第几页第五个是一个由时…

论文翻译 | Successive Prompting for Decomposing Complex Questions 分解复杂问题的连续提示

摘要 回答需要做出潜在决策的复杂问题是一项具有挑战性的任务&#xff0c;尤其是在监督有限的情况下。 最近的研究利用大型语言模型&#xff08;LMs&#xff09;的能力&#xff0c;在少量样本设置中通过展示如何在单次处理复杂问题的同时输出中间推理过程&#xff0c;来执行复杂…

【自学安全防御】二、防火墙NAT智能选路综合实验

任务要求&#xff1a; &#xff08;衔接上一个实验所以从第七点开始&#xff0c;但与上一个实验关系不大&#xff09; 7&#xff0c;办公区设备可以通过电信链路和移动链路上网(多对多的NAT&#xff0c;并且需要保留一个公网IP不能用来转换) 8&#xff0c;分公司设备可以通过总…

Jdk8 Idea Maven Received fatal alert: protocol_version

问题描述 使用idea开发工具&#xff0c;maven加载项目依赖时&#xff0c;出现错误&#xff1a; Could not transfer artfact xxxxxxx from/to maven-dep-repos https://XXXXXXX: Received fatal alert: protocol_version初步思路 用关键字protocol_version 去检索&#xff0…

Schematics,一个牛逼的python库用于数据验证和转换的库

目录 什么是Schematics&#xff1f; 为什么使用Schematics&#xff1f; 安装Schematics 定义模式 验证数据 自定义验证 转换数据 结语 什么是Schematics&#xff1f; 在Python的世界中&#xff0c;Schematics是一个用于数据验证和转换的库。它通过定义数据结构的模式(…

30秒学会UML-功能类图

目录 1、类图本体 三部分 修饰符 2、类与类直接关系 泛化关系 实现关系 简单关联关系 依赖关系 组合关系 聚合关系 1、类图本体 三部分 第一层&#xff1a;类名第二层&#xff1a;成员变量&#xff08;类的属性&#xff09;第三层&#xff1a;函数方法&#xff08;类…

PX4 运行 make px4_sitl_default gazebo 报错

报错原因&#xff1a;最开始我把依赖一直都是在base环境下安装的&#xff0c;没有conda deactivate&#xff0c;而pip install的东西应该装在系统环境&#xff0c;不能装在base环境下&#xff0c;sudo apt 是装在系统环境的 1.检查ros 用鱼香ros安装 wget http://fishros.…

SSL证书续费

讲解下域名证书如何续费&#xff08;以阿里云为例&#xff09; ‍ 提醒 一般云服务器厂商&#xff0c;都会提前和你一个月左右通知&#xff08;邮件、短信等&#xff09;&#xff0c;例如&#xff1a; 尊敬的 xxx&#xff1a;您域名 www.peterjxl.com 使用的 SSL 证书 xxxxx…

Linux编程(通信协议---udp)

UDP&#xff08;用户数据报协议&#xff09;是一种无连接的网络协议&#xff0c;主要用于快速传输数据。以下是UDP协议的一些主要特点&#xff1a; 1. **无连接**&#xff1a;UDP是无连接的协议&#xff0c;这意味着在数据传输之前不需要建立连接。每个UDP数据包都是独立的&am…

数据库操作太复杂?Python Shelve模块让你轻松存储,一键搞定!

目录 1、基本操作入门 &#x1f4da; 1.1 安装Shelve模块 1.2 创建与打开Shelve文件 2、存储与读取数据 &#x1f510; 2.1 写入键值对 2.2 读取存储的数据 3、高级功能探索 &#x1f9ed; 3.1 使用Shelve迭代键和值 3.2 键的管理&#xff1a;添加、删除与更新 4、异…

minishell

今天完成了minishell的制作 项目需求&#xff1a; 1. 获取终端用户输入的命令&#xff0c;并输出相应的执行结果。 touch cp mv ls ls -a ls -l mkdir rmdir pwd cd ln ln -s exit ---------…

鸿蒙开发HarmonyOS NEXT (四) 熟悉ArkTs (下)

一、动画 1、属性动画 animation,可以通过配置动画时间duration等参数&#xff0c;实现移动时的平滑过度 写了个小鱼游动的小案例 Entry Component struct ActionPage {State fish: Resource $r(app.media.fish_right) //小鱼图片State fishX: number 200 //初始化小鱼横坐…

Day07-员工管理-上传下载

1.员工管理-导出excel 导出员工接口返回的是二进制axios配置responseType为blob接收二进制流文件为Blob格式按装file-saver包&#xff0c;实现下载Blob文件npm install add file-saver导出员工excel的接口 (src/api/employee.js) export function exportEmployee(){return req…

【区块链 + 智慧政务】涉税行政事业性收费“e 链通”项目 | FISCO BCOS应用案例

国内很多城市目前划转至税务部门征收的非税收入项目已达 17 项&#xff0c;其征管方式为行政主管部门核定后交由税务 部门征收。涉税行政事业性收费受限于传统的管理模式&#xff0c;缴费人、业务主管部门、税务部门、财政部门四方处于 相对孤立的状态&#xff0c;信息的传递靠…