Fullt ut utnyttja kraften i en tryckknapp (7 / 8 steg)
Steg 7: Värde ändra hastighet baserat på att trycka på tiden av en tryckknapp
Om knappen trycks en gång, kommer att värdet öka med ett.
Men om knappen används kontinuerligt, värdet kommer att öka med ett kontinuerligt vid de
början. Och senare värdet höjs med 10 kontinuerligt. Och sedan 100 om hålla på
trycka på knappen.
Button_07
Kontroll ändra hastighet baserat på att trycka på tiden av en tryckknapp
//
skapad av uvvvvw
2015-04-05
//
#include
#include
LiquidCrystal_I2C lcd(0x27,16,2); Ange adressen som LCD till 0x27 för en 16 tecken och 2 raders display
//
CONST int knappen = 12. Definiera knappen pin
int Button_still_pressed = låg; Status för knappen
lång Button_count = 0; Spela in den akuta tiden
långa värde = 0; Värde som kommer att öka när knappen är nedtryckt
//
//
void setup()
{
pinMode (knapp, indata);
digitalWrite (knappen, hög); Använd interna dra upp motstånd för knappen. Det sparade en resistor för knappen.
//
LCD.init();
Delay(400);
LCD.init();
LCD.Clear();
LCD.cursor();
LCD.Blink();
LCD.backlight();
//
lcd.setCursor(0,0);
LCD.Print(Value);
}
//
//
void loop()
{
göra {
om (digitalRead(Button) == låg) //if knapp trycks
{
Button_still_pressed = hög;
Button_count ++;
//
om (Button_count < 20)
{
Värdet ++;
lcd.setCursor(0,0);
LCD.Print(Value);
LCD.Print("");
}
annat
{
om (Button_count < 100)
{
Värde = värde + 10.
lcd.setCursor(0,0);
LCD.Print(Value);
LCD.Print("");
}
annat
{
Button_count = 100;
Värde = värde + 100.
lcd.setCursor(0,0);
LCD.Print(Value);
LCD.Print("");
}
}
}
annat
{
Button_still_pressed = låg;
Button_count = 0;
}
Delay(300); Ett mycket enkelt sätt att hantera knappen studsande, men behovet av att justera fördröjningstiden att optimera resultatet.
} medan (Button_still_pressed);
//
}