ESP32+Arduino IDE+PWM呼吸灯/舵机

前言

pwm在单片机里的应用还是很广泛滴,包括呼吸灯、电机、舵机等等,大一做校电赛的时候没搞懂pwm,一直念念不忘,最近认真学了一下感觉还是挺简单滴!有一些电路基础知识就可以很快掌握了。

PWM基本原理

PWM:全称Pulse Width Modulation:脉冲宽度调制(简称脉宽调制,通俗的讲就是调节脉冲的宽度),是电子电力应用中非常重要的一种控制技术。 

PWM频率:是指一秒钟内从高电平时间在到低电平时间,再从低电平跳到高电平的瞬间次数,也就是一秒钟内有多少个PWM的周期。f = T / 1(HZ)。

PWM周期:是指一秒钟内从高电平时间在到低电平时间,T = f / 1(s)。

PWM占空比:是指一个周期内高电平时间和总时间的比值。

例如:PWM的周期为1ms,高电平时间为0.5ms,低电平时间为0.5ms,则频率就为1kHz,占空比就为百分之五十。

接下来我将用呼吸灯和舵机举两个实际应用的例子。

PWM呼吸灯

原理部分

我们知道,单片机的IO口输出的是数字信号,IO口只能输出高电平1和低电平0,不能输出具体的电压信号,那么如果我要控制LED灯实现渐变效果,就不能使用生硬的高低电平——>而要输出不同大小的模拟电压,就要用到PWM,通过改变IO口输出的方波的占空比从而获得使用数字信号模拟成的模拟电压信号。

PWM使用的是面积等效法,当b的占空比为百分之百的时候,a输出为高电平,而当b在一个周期占空比为其他数值的时候,根据定积分产生不同的正弦波面积,经过多个周期不同占空比的时候,就会产生不同的面积波形。即产生了一个模拟信号,而LED也根据模拟信号的来产生渐变。

ESP32+Arduino IDE+PWM呼吸灯/舵机_第1张图片

当频率太小的时候,一个周期时间太长肉眼就能看到LED亮灭的过程,而当频率足够高的时候,LED的灯光的亮灭速度赶不上开关速度(LED灯还没完全亮就又熄灭了)由于视觉暂留作用 人眼不感觉电

你可能感兴趣的:(ide,c++,python,vscode,单片机,物联网)