使用 NodeMCU 和 Tasmota 控制 LED 灯的亮度
PWM 是 Pulse Width Modulation 的缩写,中文叫脉冲宽度调制,指的是通过改变脉冲信号的宽度来调控输出。它能灵活调节电子设备的功率,比如是精准控制电机转速、LED 灯亮度。ESP8266 不支持硬件脉宽调制(PWM),不过,所有数字引脚均支持软件脉宽调制。而 Tasmota 支持将 GPIO 口设置为 PWM,再利用 PWM 控制器,就能灵活控制 LED 灯的亮度。
需求 🔗
使用 Tasmota 控制 LED 灯的开关和亮度。
物料 🔗
- 已经刷入 Tasmota 的 NodeMCU 开发版
- 5V LED 灯珠光源版
- PWM调节电子开关控制板
- 导线或者杜邦线,鳄鱼夹等
选择 5V 的光源版,是因为可以直接使用 NodeMCU 的 VIN 针脚作为 5V 输入。我所使用的光源版如下图所示,其价格在0.25元左右(不包邮)。不过这个光源版并没有排针,需要自行焊接,或者使用鳄鱼夹等连接。
我使用的PWM调节电子开关控制板在电商网站的标题里注明了“大功率MOS管 场效应管 触发开关驱动模块”。其工作电压为直流 5V-36V;触发信号源为数字量高低电平(直流3.3V-20V)。输出为支流4V到36V。用于控制5V的LED灯珠光源版,绰绰有余。在控制低压直流负载时,这个模块还可以用来代替继电器,并且在电路开闭时没有声音。价格为 0.86元(不包邮)。如下图所示:
接线 🔗
NodeMCU 开发板与 PWM调节电子开关控制板 🔗
假定使用 NodeMCU 的 D8 作为 的控制端,那么接线如下:
NodeMCU 开发板 | PWM调节电子开关控制板 |
---|---|
VIN | VIN+ |
任意一个GND | VIN- |
任意一个GND | GND |
PWM | D8 |
也可以使用其他的针脚,但要与 Tasmota 里的配置对应。
PWM调节电子开关控制板 与 LED 灯珠光源版 🔗
PWM调节电子开关控制板 | LED 灯珠光源版 |
---|---|
VOUT+ | + |
VOUT- | - |
Tasmota 设置 🔗
在浏览器中打开 Tasmota 的 WebUI,进入 “设置”-“模块设置”,将模块类型修改为 Generic(18)
(修改后需要重启)。然后修改 D8 GPIO15 为 PWM
,保留右侧的数字为 1
。然后保存。
保存之后会自动重启,几秒后打开 WebUI 的首页,就会看到 PWM 的控制开关和滑动条。
此时点击按钮可以控制 LED 的开关;左右拖动滑动条并放开后,就会看到 LED 灯的亮度发生了变化。