18449| 15
|
[求助] 如何用两个按键一起控制同一个LED |
通过两个开关来控制led的亮度 int n=0; void setup () { pinMode(4,INPUT); pinMode(6,OUTPUT); pinMode(10,INPUT); } void loop() { int up =digitalRead(4); int down = digitalRead(10); if (up==HIGH) { n=n+5; if (n>=255) { n=255; } analogWrite(6,n); delay (300); } if (down==HIGH) { n=n-5; if (n<=0) { n=0; } analogWrite(6,n); delay (300); } } |
hejie13250 发表于 2016-7-28 08:36 我按你的方法试了一下,不过只是一个按钮控制LED但是效果并不理想,找不出原因了 int ledPin=2; int button_A=3; int lastLedState=LOW; //上一次LED的状态 int lastABS=LOW; //上一次A按钮的状态 int nowABS; //目前A按钮的状态 int nowLedState; //目前LED的状态 int ledState; long debounceTime; int debounceDelay=50; void setup() { pinMode(ledPin,OUTPUT); pinMode(button_A,INPUT); digitalWrite(ledPin,lastLedState); } void loop() { int reading_A=digitalRead(button_A); if(reading_A!=lastABS){ debounceTime=millis(); //记下按钮状态发生变化时的时间 } if((millis()-debounceTime)>debounceDelay){ //去抖 if(reading_A!=nowABS){ nowABS=reading_A; } } change(nowABS); lastABS=reading_A; } void change( int buttonState){ if(buttonState==HIGH){ ledState=!ledState; digitalWrite(ledPin,ledState); } } |
华仔 发表于 2016-7-28 16:36 我把4*4矩阵键盘的示例修改了下,16个按键任意一个都可以开关同一个LED,你可以把按改成两行一列就是两个按键了,只要三个IO,不用加下拉或上拉电阻,你可以看看
|
求帮写一个程序:两个轻触开关控制一个LED,当两个开关同时按下打开时,LED常亮20S,并实现报警, 开关其余状态(一开一关)不变(LED仍然常亮20S),当开关同时关闭时LED长灭,开关其余状态(一开一关)仍然长灭。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed