Fullt ut utnyttja kraften i en tryckknapp (6 / 8 steg)
Steg 6: Slå två lysdioder på och av individuellt av en enda tryckknapp
Det är använda en enda knapp som två knappar.
Button_06
Slå två lysdioder på och av individuellt genom en enda tryckknapp
Det är använda en enda knapp som två knappar
//
skapad av
2015-04-05
//
CONST int knappen = 12. Definiera knapp
CONST int LED_01 = 4; Definiera pin # 1: a led
CONST int LED_02 = 3; Definiera pin # 3nd LED
int Button_still_pressed = låg; Status för knappen
lång Button_count = 0; Spela in den akuta tiden
int LED_affected = 0; Drabbade LED: 0 (ingen LED påverkas), 1(LED_01), 2(LED_02)
//
//
void setup()
{pinMode (knapp, ingång);
digitalWrite (knappen, hög); Använd interna dra upp motstånd för knappen. Det sparade en resistor för knappen.
//
pinMode (LED_01, OUTPUT);
digitalWrite (LED_01, låg);
pinMode (LED_02, OUTPUT);
digitalWrite (LED_02, låg);
}
//
//
void loop()
{
göra {
om (digitalRead(Button) == låg) //if knapp trycks
{
Button_still_pressed = hög;
Button_count ++;
//
om (Button_count < 100000)
{
LED_affected = 1; för kort tryck påverkas LED_01
}
om (Button_count == 100000) //this värde anger den tid som krävs för långt tryck
{
LED_affected = 2; för långt tryck påverkas LED_02
digitalWrite (LED_02, digitalRead(LED_02) ^ 1); Läs statligt av LED_02, vända på det av XOR(^). Och slå på eller av följaktligen
}
}
annat
{
Button_still_pressed = låg;
}
} medan (Button_still_pressed);
//
//
om (LED_affected == 1) digitalWrite (LED_01, digitalRead(LED_01) ^ 1); Läs statligt av LED_01, vända på det av XOR(^). Och slå på eller av följaktligen
LED_affected = 0;
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.
}