【发布时间】:2014-01-06 20:40:01
【问题描述】:
我必须编写一个程序,其中每次单击开关时开关都会导致 LED 改变亮度。下面的代码使 LED 根据需要改变亮度,但如果按住开关,它不会停止变化。每次单击开关时,我只需要更改一次。如何让它在点击时改变一次而不循环其他亮度?
const int ledPin = 10;
int brightness = 0;
boolean up = 1;
int steps = 0;
int inpin = 2;
int reading;
void setup()
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode (inpin, INPUT);
}
void loop() {
do{
reading = digitalRead(inpin);
}while (reading != HIGH);
analogWrite(ledPin, brightness);
delay(1000);
if (up)
{
brightness = brightness + 63;
}
else {
brightness = brightness - 63;
}
steps = steps + 1;
if (steps == 4)
{
up = !up;
steps = 0;
}
}
【问题讨论】: