Arduino animatörerna-gör din awesome kostymer mer awesome! (6 / 15 steg)
Steg 6: Använda knappar
Detta är precis som i föregående exempel men nu koden körs endast en gång efter trycka på en knapp. På knappen använder en dra ner motstånd så när knappen trycks in PIN-koden läser högt, annars står det alltid låg.
Kopiera och klistra in denna skiss på din Arduino fönster-
/*
* Exempel 2
* LED kontroll med hjälp av knappen input
* Detta exempel kommer att blinka två lysdioder och tona en annan LED när en knapp är intryckt och släppt
* Honus 2010
* Modifierad från Adafruit omväxlande växlingskoden, http://www.adafruit.com
*/
int ledPin1 = 13. kontroll stift för LED
int ledPin2 = 12;
int ledPin3 = 11;
int buttonPin = 14. knappen är ansluten till stift 14 (analog i pin 0)
int val; variabel för att läsa pin status
int buttonState; variabel för att hålla den sista knapp staten
void setup() {
pinMode (buttonPin, ingång); ställa in knappen pin som indata
Serial.BEGIN(9600); Ställ in seriell kommunikation på 9600bps
buttonState = digitalRead(buttonPin); Läs det ursprungliga tillståndet
pinMode (ledPin1, produktionen); Anger den LED stiftet som utdata
pinMode (ledPin2, produktionen);
}
void loop() {
Val = digitalRead(buttonPin); Läs indatavärde och lagra den i val
om (val! = buttonState) {/ / knappen staten har förändrats!
om (val == låg) {/ / kolla om knappen trycks
Serial.println ("knappen");
digitalWrite (ledPin1, hög); Anger den LED pin HIGH (vänder det på)
Delay(500); Waits 500 millisekunder
digitalWrite (ledPin2, hög);
Delay(500);
digitalWrite (ledPin1, låg); Anger den LED stiftet låg (stänger av)
Delay(500);
digitalWrite (ledPin2, låg);
Delay(500);
tona in från min till max i steg om 5 poäng:
för (int fadeValue = 0; fadeValue < = 255; fadeValue += 5) {
anger värdet (varierar från 0 till 255):
analogWrite (ledPin3, fadeValue);
vänta 30 millisekunder att se ljusreglering effekten
Delay(40);
}
tona ut från max till min i steg om 5 poäng:
för (int fadeValue = 255; fadeValue > = 0; fadeValue-=5) {
anger värdet (varierar från 0 till 255):
analogWrite (ledPin3, fadeValue);
vänta 30 millisekunder att se ljusreglering effekten
Delay(40);
}
} annat {/ / knappen trycks - inte -...
Serial.println ("knappen släpps");
digitalWrite (ledPin1, låg); Inaktivera LED
digitalWrite (ledPin2, låg);
}
}
buttonState = val; spara den nya staten i våra variabel
}