上图是一个方波,周期一样,但是占空比不一样,如果我们将这个方波接到led上即可驱动led的亮度。这是什么事理呢?大家可以看到上面的方波占空比分别为25%、50%、75%。占空比是什么意思便是高电平的韶光除上周期,一个周期便是高电平的韶光加上低电平的韶光,比如占空比为25%便是高电平的韶光除上周期的韶光。
esp8266的PWMesp8266没有硬件的PWM模块,不能像STM32的单片机那样配置好定时器之后就可以在IO口输出PWM方波,esp8266是利用高精度的定时器加上软件仿照PWM的方法,以是精度有限,由 FRC1 在软件上实现,可实现同频率、不同占空⽐的多路 PWM,可⽤来掌握彩灯、蜂鸣器和电机等设备。 FRC1 是⼀个 23 bits 的硬件定时器。 PWM 的特性如下所示。 使⽤ NMI(Non Maskable Interrupt)中断,更加精确。 可扩展最多 8 路 PWM 旗子暗记。 小于14 bit 分辨率,最⼩分辨率 45 ns。 ⽆需配置寄存器,调⽤函数接⼝即可完成配置。
上图是一个方波,PWM我们关系几个知识点,便是频率,还有占空比。周期:T = 高电平+低电平的韶光。频率:HZ = 1/T。即是周期的倒数,比如周期为1s,频率便是1HZ,周期为0.5s,周期便是2HZ。

占空比(duty cycle): duty = 高电平T / 周期T。
PWM掌握电机速率的事理
MCU的GPIO的电平是3.3V,我们利用MCU输出PWM方波,幅值3.3v的PWM方波经由电机驱动芯片后会将方波放大为12V的PWM方波,12是由于电机驱动的电源便是12V,放大的幅值和电机驱动芯片的电压有关,详细可以参考电机驱动芯片的手册。为啥须要经由驱动芯片,由于是MCU的IO口的电平只有3.3V,驱动电机的能力有限,以是须要放大到12v。MCU可以通过修正PWM的duty,便是占空比可以实现调节电机速率的浸染,事理是高电平的时候有电机两端有12v的电压,以是电机开始迁徙改变,通过调节占空比便是调节12V导通的韶光长度,韶光越长速率越快,如果占空比为0,电机逐步地会停滞迁徙改变,如果占空比为1,那么电机全速迁徙改变,占空比为50%,电机以50%的速率进行迁徙改变。