int brightness = 0;
int fade_amount = 5;
int btn_state;
int last_btn_state = LOW;
unsigned long last_debounce_time = 0;
void setup()
{
Serial.begin(9600);
pinMode(2, INPUT);
digitalWrite(10, LOW);
}
void loop()
{
int reading = digitalRead(2);
if (reading != last_btn_state) last_debounce_time = millis();
if ((millis() - last_debounce_time) > 50)
{
if (reading != btn_state)
{
btn_state = reading;
if (btn_state == LOW) chg_brightness();
}
else
{
if ((millis() - last_debounce_time) > 1000)
if (btn_state == LOW) chg_brightness();
}
}
last_btn_state = reading;
}
void chg_brightness()
{
brightness = brightness + fade_amount;
if (brightness > 255)brightness = 255;
if (brightness < 0)brightness = 0;
if (brightness == 255 || brightness == 0)fade_amount = -fade_amount;
analogWrite(10, brightness);
Serial.println(brightness);
delay(30);
}
沒有留言:
張貼留言