Stap 6: Met behulp van knoppen
Dit is net als het vorige voorbeeld, maar nu de code slechts éénmaal uitgevoerd na het indrukken van een knop. De drukknop maakt gebruik van een pull-down weerstand zodat wanneer de knop wordt ingedrukt de invoer pin HIGH leest, anders leest het altijd laag.
Kopieer en plak deze schets in uw venster Arduino-
/*
* Voorbeeld 2
* LED controle met behulp van de knop input
* Dit voorbeeld zal knipperen twee LEDs en een andere LED vervagen wanneer een knop is ingedrukt en losgelaten
* Honus 2010
* Aangepast ten opzichte van Adafruit afwisselend switch code, http://www.adafruit.com
*/
int ledPin1 = 13; controle pin voor LED
int ledPin2 = 12;
int ledPin3 = 11;
int buttonPin = 14; knop is verbonden met pin 14 (analoge PIN 0)
int val; variabele voor het lezen van de Pinstatus
int buttonState; variabele te houden van de laatste status van de knop
VOID Setup {}
pinMode (buttonPin, INPUT); de pincode van de knop instellen als input
Serial.begin(9600); instellen van seriële communicatie 9600 bps
buttonState = digitalRead(buttonPin); Lees de begintoestand
pinMode (ledPin1, OUTPUT); Hiermee stelt u de LED-pin als uitvoer
pinMode (ledPin2, OUTPUT);
}
void loop {}
Val = digitalRead(buttonPin); Lees input waarde en sla het in de val
Als (val! = buttonState) {/ / de status van de knop veranderd!
Als (val == LOW) {/ / controleren als de knop wordt ingedrukt
Serial.println ("toets ingedrukt");
digitalWrite (ledPin1, hoge); Hiermee stelt u de LED pin HIGH (verandert het op)
delay(500); wacht 500 milliseconden
digitalWrite (ledPin2, hoge);
delay(500);
digitalWrite (ledPin1, laag); Hiermee stelt u de LED pin LOW (uitgeschakeld)
delay(500);
digitalWrite (ledPin2, laag);
delay(500);
fade-in van min tot max in stappen van 5 punten:
voor (int fadeValue = 0; fadeValue < = 255; fadeValue += 5) {}
Hiermee stelt u de waarde (bereik van 0 tot 255):
analogWrite (ledPin3, fadeValue);
wacht 30 milliseconden het dimmen effect zien
delay(40);
}
fade-out van max naar de min in stappen van 5 punten:
voor (int fadeValue = 255; fadeValue > = 0; fadeValue-=5) {}
Hiermee stelt u de waarde (bereik van 0 tot 255):
analogWrite (ledPin3, fadeValue);
wacht 30 milliseconden het dimmen effect zien
delay(40);
}
} else {/ / de is - niet - geklikt...
Serial.println ("button vrijgegeven");
digitalWrite (ledPin1, laag); het uitschakelen van de LED
digitalWrite (ledPin2, laag);
}
}
buttonState = val; de nieuwe staat in onze variabele opslaan
}