本帖最后由 小白mmd 于 2022-3-2 12:01 编辑
实验目的:想通过两个自锁开关来控制led灯亮度的大小(开关1,控制变小;开关2,控制变大)
问题:在运行时,brightness 的大小变化只要是减小到0了,再按开关2变大就只能0、1的跳。
操作流程:先按下开关1 亮度变小,然后按下开关2,想让亮度变大,可是brightness一直是0、1、0、1的跳(试过按起开关1和不按起开关1,都是一样的情况)
想知道是什么原因以及解决办法 希望大佬们指点,小弟在这谢谢了。
本人用的是ESP8266 Nodemcu 的板子
代码如下:
boolean pushButton1;
boolean pushButton2;
int ledPin = 14;
int brightness = 128;
void setup() {
// put your setup code here, to run once:
pinMode(16,INPUT_PULLUP);
pinMode(0,INPUT_PULLUP);
pinMode(ledPin,OUTPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
pushButton1=digitalRead(16);
pushButton2=digitalRead(0);
if(!pushButton1 && brightness >0){
brightness--;
} else if(!pushButton2 && brightness <255){
brightness++;
}
analogWrite(ledPin,brightness);
Serial.println(brightness);
Serial.println(pushButton1);
Serial.println(pushButton2);
delay(10);
}
|