【发布时间】:2019-11-16 00:24:59
【问题描述】:
您好,我想通过 mqtt 控制 LED,但我找不到将 LED 设置为我发送到 nodemcu 的值的方法。这就是我现在尝试这样做的方式,但它只能将值设为 0(然后关闭)或更高(然后打开)并且不会变暗。
if(topic=="ledstrip/red") {
Serial.print("Changing RED Lights to ");
if(messageTemp == "on"){
for (int r = 0; r < 1023; r++) {
analogWrite(ledstrip_red, r);
delay(1);
}
digitalWrite(ledstrip_red, HIGH);
Serial.print("On");
} else if(messageTemp == "off"){
digitalWrite(ledstrip_red, HIGH);
for (int r = 1023; r > 0; r--) {
analogWrite(ledstrip_red, r);
delay(1);
}
digitalWrite(ledstrip_red, LOW);
Serial.print("Off");
} else {
Serial.print("Changing RED Brightness to ");
digitalWrite(ledstrip_red, messageTemp.toInt());
Serial.print(messageTemp);
}
【问题讨论】:
-
我可以建议你去研究一下 PWM
-
我知道pwm是什么
-
那你知道怎么解决这个问题了
-
如果你做 digitalWrite(ledstrip_red, 1023); 通常不会它完全正确吗?但是当我收到消息并将其放在 1023 以外的地方时,为什么不呢
-
digitalWrite()只能将值设置为0或1