Stap 6: Zet twee LEDs in- en uitschakelen individueel door één enkele drukknop
Dat is één knop gebruik als twee knoppen.
Button_06
Twee LEDs in- en uitschakelen door één enkele drukknop afzonderlijk te schakelen
Dat is één knop gebruik als twee knoppen
//
gemaakt door
2015-04-05
//
Const int knop = 12; Knop definiëren
Const int LED_01 = 4; Define pin # van 1ste LED
Const int LED_02 = 3; Define pin # van 3nd LED
int Button_still_pressed = laag; Status van de knop
lange Button_count = 0; Neem de tijd te drukken
int LED_affected = 0; Getroffen LED: 0 (geen LED beïnvloed), 1(LED_01), 2(LED_02)
//
//
VOID Setup
{pinMode (knop INPUT);
digitalWrite (knop, hoge); Gebruik interne pull up weerstand voor de knop. Het opgeslagen een weerstand voor de knop.
//
pinMode (LED_01, uitvoer);
digitalWrite (LED_01, laag);
pinMode (LED_02, uitvoer);
digitalWrite (LED_02, laag);
}
//
//
void loop
{
{}
Als (digitalRead(Button) == LOW) //if knop is ingedrukt
{
Button_still_pressed = hoog;
Button_count ++;
//
Als (Button_count < 100000)
{
LED_affected = 1; voor kort indrukken, wordt LED_01 beïnvloed
}
Als (Button_count == 100000) //this waarde definieert de tijd die nodig is voor lang indrukken
{
LED_affected = 2; voor lang indrukken, wordt LED_02 beïnvloed
digitalWrite (LED_02, digitalRead(LED_02) ^ 1); Lees de stand van de LED_02, verso op door XOR(^). En zet hem in- of uitschakelen dienovereenkomstig
}
}
anders
{
Button_still_pressed = laag;
}
} terwijl (Button_still_pressed);
//
//
Als (LED_affected == 1) digitalWrite (LED_01, digitalRead(LED_01) ^ 1); Lees de stand van de LED_01, verso op door XOR(^). En zet hem in- of uitschakelen dienovereenkomstig
LED_affected = 0;
Button_count = 0;
delay(300); Een zeer eenvoudige manier om de knop stuiteren, maar de noodzaak van aanpassing van de vertragingstijd voor het optimaliseren van het resultaat.
}