使用 NodeMCU 和 Tasmota 控制 LED 灯的亮度

2024-12-29#NodeMCU#Tasmota#ESP8266#IoT

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元左右(不包邮)。不过这个光源版并没有排针,需要自行焊接,或者使用鳄鱼夹等连接。

LED Board

我使用的PWM调节电子开关控制板在电商网站的标题里注明了“大功率MOS管 场效应管 触发开关驱动模块”。其工作电压为直流 5V-36V;触发信号源为数字量高低电平(直流3.3V-20V)。输出为支流4V到36V。用于控制5V的LED灯珠光源版,绰绰有余。在控制低压直流负载时,这个模块还可以用来代替继电器,并且在电路开闭时没有声音。价格为 0.86元(不包邮)。如下图所示:

LED Board

接线 🔗

接线

NodeMCU 开发板与 PWM调节电子开关控制板 🔗

假定使用 NodeMCU 的 D8 作为 的控制端,那么接线如下:

NodeMCU 开发板PWM调节电子开关控制板
VINVIN+
任意一个GNDVIN-
任意一个GNDGND
PWMD8

也可以使用其他的针脚,但要与 Tasmota 里的配置对应。

PWM调节电子开关控制板 与 LED 灯珠光源版 🔗

PWM调节电子开关控制板LED 灯珠光源版
VOUT++
VOUT--

Tasmota 设置 🔗

在浏览器中打开 Tasmota 的 WebUI,进入 “设置”-“模块设置”,将模块类型修改为 Generic(18)(修改后需要重启)。然后修改 D8 GPIO15 为 PWM,保留右侧的数字为 1。然后保存。

保存之后会自动重启,几秒后打开 WebUI 的首页,就会看到 PWM 的控制开关和滑动条。

Tasmota PWM

此时点击按钮可以控制 LED 的开关;左右拖动滑动条并放开后,就会看到 LED 灯的亮度发生了变化。


加载中...