用analogWrite()和两个自锁开关控制led灯亮度的增减-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1102|回复: 9

[未解决] 用analogWrite()和两个自锁开关控制led灯亮度的增减

[复制链接]
发表于 2022-3-1 23:21 | 显示全部楼层 |阅读模式
本帖最后由 小白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);
}
PZ4H$XU83XQT6`YYBR20T04.png
6D1})J9PTSW)ZO0~25IHV92.png
发表于 2022-3-2 06:50 | 显示全部楼层
brightness++后漏抄了;。将pinMode(0,INPUT_PULLUP); pushButton2=digitalRead(0);中的gpio0换成其它的端口试试。
 楼主| 发表于 2022-3-2 11:54 | 显示全部楼层
lwq1947 发表于 2022-3-2 06:50
brightness++后漏抄了;。将pinMode(0,INPUT_PULLUP); pushButton2=digitalRead(0);中的gpio0换成其它的端 ...

试了其他IO口  还是没法解决问题  
    大佬
发表于 2022-3-2 13:19 | 显示全部楼层
小白mmd 发表于 2022-3-2 11:54
试了其他IO口  还是没法解决问题  
    大佬

我用其它8266板子试过程序没问题,你查找 Nodemcu 的原因吧。
 楼主| 发表于 2022-3-2 17:11 | 显示全部楼层
lwq1947 发表于 2022-3-2 13:19
我用其它8266板子试过程序没问题,你查找 Nodemcu 的原因吧。

大佬  可以麻烦你拍张照片  我看看你的效果吗
发表于 2022-3-3 06:46 | 显示全部楼层
小白mmd 发表于 2022-3-2 17:11
大佬  可以麻烦你拍张照片  我看看你的效果吗

开关1可能有断不开的现象,建议都换成不自锁的按钮开关试一下。

WeMos D1

WeMos D1
发表于 2022-3-4 15:21 | 显示全部楼层
能贴一下,打印的结果吗
  Serial.print(brightness);
  Serial.print("-");
  Serial.print(pushButton1);  
  Serial.print("-");
  Serial.println(pushButton2);
 楼主| 发表于 2022-3-4 18:48 | 显示全部楼层
lwq1947 发表于 2022-3-3 06:46
开关1可能有断不开的现象,建议都换成不自锁的按钮开关试一下。

好的 谢谢大佬  
发表于 2022-3-6 11:42 | 显示全部楼层
没看懂你想干啥
发表于 2022-3-9 23:25 | 显示全部楼层
本帖最后由 topdog 于 2022-3-13 23:33 编辑

自锁开关按下去它的状态是不变化。你的意思是A开关按下去亮度增加,B开关按下去亮度减少。
以A开关为例,按下去不反弹,那么亮度只增加一个亮度,不解锁此值是不会变化的。但是允许B按下,亮度只减少一个亮度,不解锁此值是不会变化的。反之,亦然。



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 09:01 , Processed in 0.084400 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表