| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 嵌入式 -> PWM工作原理----调光灯案例 -> 正文阅读 |
|
|
[嵌入式]PWM工作原理----调光灯案例 |
|
本项目通过单片机I/O口输出一个PWM脉宽调制信号来控制输送到LED灯的电压变化,从而实现控制发光二极管亮度的效果。通过两个按键控制灯的亮度。系统上电时,灯在最暗状态,按住其中一个键,灯的亮度逐渐增强,增到最亮时,再回到最暗;按住另外一个键,灯的亮度逐渐减弱,减到最暗时,再回到最亮。 1、PWM信号 ?? PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,也就是一种周期一定而高低电平可调的方波信号,在一个信号周期中,高电平持续时间的为T1,低电平持续时间的为T2 。 占空比:在一个信号周期中,高电平持续时间与信号周期的比值,即T1/Time。比如,Time=40,T1=20,则占空比=20/40=50%,即方波信号的占空比就是50%.
?? 当输出脉冲的频率(周期的倒数)一定时,输出脉冲的占空比越大,其高电平持续的时间越长,只要改变T1和T2的值,即改变波形的占空比,达到PWM脉宽调制的目的。 2、如何实现PWM信号输出 ? 实现PWM信号输出有两种方式可实现:一是可以直接通过芯片内部模块输出PWM信号,前提是这个I/O口要有集成模块,只需要配置好频率和占空比,简单几步就好了。这种自带有PWM输出的功能模块在程序设计更简便,同时数据更精确。如下图所示,引脚标明PWM的表示硬件支持;
??? 二是通过软件模拟实现PWM输出。如果对PWM频率要求不是很高的话,可以利用I/O口设置一些参数来输出PWM信号。因为PWM信号其实就是一高一低的一系列电平组合在一起。具体方法是通过定时器控制I/O的高低电平,对于你要求输出的PWM信号频率与你的定时器一致,用定时器中断来计数,通过调整计数值来改变占空比,当然如果要求不高也可以通过软件延时来实现。 3、PWM信号应用--调光灯案例 ??? 交流调光电路,高电平占多一点,也就是占空比大一点亮度就亮一点,占空比小一点亮度就减弱,前提是PWM的频率要大于我们人眼识别频率,要不然会出现闪烁现象。下面用单片机控制LED亮度,模拟调光灯效果。调光灯电路原理图如下所示,通过S2和S3调整LED的亮度。
全部实现代码见链接:PWM工作原理----调光灯案例 |
|
|
| 嵌入式 最新文章 |
| 基于高精度单片机开发红外测温仪方案 |
| 89C51单片机与DAC0832 |
| 基于51单片机宠物自动投料喂食器控制系统仿 |
| 《痞子衡嵌入式半月刊》 第 68 期 |
| 多思计组实验实验七 简单模型机实验 |
| CSC7720 |
| 启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
| STM32初探 |
| STM32 总结 |
| 【STM32】CubeMX例程四---定时器中断(附工 |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年12日历 | -2025/12/1 6:31:36- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |