当前位置: 首页 > news >正文

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

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 timePWM_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.lryc.cn/news/403668.html

相关文章:

  • python-NLP:1中文分词
  • iOS 开发包管理之CocoaPods
  • Windows搭建RTMP视频流服务器
  • VS2019安装MFC组件
  • Python学习—open函数,json与pickle知识点,Os模块详解
  • 基于SSM的高考志愿选择辅助系统
  • 引领小模型潮流!OpenAI发布功能强大且成本低的GPT-4o mini
  • 【考研数学】线代满分经验分享+备考复盘
  • Java项目:基于SSM框架实现的海鲜自助餐厅系统【ssm+B/S架构+源码+数据库+毕业论文】
  • 前端面试题日常练-day97 【Less】
  • 压缩视频大小的方法 怎么减少视频内存大小 几个简单方法
  • JVM:GraalVM
  • 海外营销推广:快速创建维基百科(wiki)词条-大舍传媒
  • 【HarmonyOS】HarmonyOS NEXT学习日记:五、交互与状态管理
  • 处理uniapp刷新后,点击返回按钮跳转到登录页的问题
  • 工厂方法模式java
  • java模拟多ip请求【搬代码】
  • 微软史诗级的蓝屏
  • HALCON数据结构
  • 数据库系统概论:事务与并发一致性问题
  • Python编程基础:元组类型、字典类型、集合类型
  • day2 单机并发缓存
  • ECMP等价多路由机制,大模型训练负载均衡流量极化冲突原因,万卡(大规模)集群语言模型(LLM)训练流量拥塞特点
  • Linux 注意事项
  • 力扣SQL50 指定日期的产品价格 双重子查询 coalesce
  • MySQL8的备份方案——全量(完全)备份(CentOS)
  • JVM监控及诊断工具-命令行篇--jcmd命令介绍
  • c++信号和槽机制的轻量级实现,sigslot 库介绍及使用
  • 云原生项目纪事系列 - 项目管理的鲜活事例
  • 【Vite】快速入门及其配置