Fancy blinkande lysdioder med arduino (3 / 5 steg)
Steg 3: kodning
Fancy ljus Controller / /Av AP / /
int switchPin = 2; mode-omkopplaren är ansluten till stift 2
int led1Pin = 12;
int led2Pin = 11;
int led3Pin = 10;
int led4Pin = 9;
int val; variabel för att läsa pin status
int värde2; variabel för att läsa försenad status
int buttonState; variabel att hålla mode switch staten
int lightMode = 0;
void setup() {
pinMode (switchPin, ingång); Ange läge switch stiftet som indata
pinMode (led1Pin, produktionen);
pinMode (led2Pin, produktionen);
pinMode (led3Pin, produktionen);
pinMode (led4Pin, produktionen);
Serial.BEGIN(9600); Ställ in seriell kommunikation på 9600bps
buttonState = digitalRead(switchPin); Läs det ursprungliga tillståndet
}
void loop() {
Val = digitalRead(switchPin); Läs indatavärde och lagra den i val
Delay(10);
värde2 = digitalRead(switchPin); Viktiga Bounce förebyggande
om (val == värde2) {
om (val! = buttonState) {
om (val == hög) {/ / kolla om mode-knappen trycks
om (lightMode == 0) {
lightMode = 1; Aktivera lysdioder
}
annat {
om (lightMode == 1) {/ / om lysdioderna på
lightMode = 2; göra det flash
}
annat {
om (lightMode == 2) {/ / om lysdioder blinkar
lightMode = 3; göra det våg
}
annat {
om (lightMode == 3) {/ / om lysdioder vinka,
lightMode = 0; Inaktivera lysdioder
}
}
}
}
}
}
buttonState = val; spara den nya staten i våra variabel
}
Nu gör vad lightMode indikerar
om (lightMode == 0) {/ / lysdioder-off
digitalWrite (led1Pin, låg);
digitalWrite (led2Pin, låg);
digitalWrite (led3Pin, låg);
digitalWrite (led4Pin, låg);
}
om (lightMode == 1) {/ / lysdioder-på
digitalWrite (led1Pin, hög);
digitalWrite (led2Pin, hög);
digitalWrite (led3Pin, hög);
digitalWrite (led4Pin, hög);
}
om (lightMode == 2) {/ / blinkande lysdioder
digitalWrite (led1Pin, hög);
digitalWrite (led2Pin, hög);
digitalWrite (led3Pin, hög);
digitalWrite (led4Pin, hög);
Delay(100);
digitalWrite (led1Pin, låg);
digitalWrite (led2Pin, låg);
digitalWrite (led3Pin, låg);
digitalWrite (led4Pin, låg);
Delay(100);
}
om (lightMode == 3) {/ / lysdioder-viftande
digitalWrite (led4Pin, låg);
digitalWrite (led1Pin, hög);
Delay(100);
digitalWrite (led1Pin, låg);
digitalWrite (led2Pin, hög);
Delay(100);
digitalWrite (led2Pin, låg);
digitalWrite (led3Pin, hög);
Delay(100);
digitalWrite (led3Pin, låg);
digitalWrite (led4Pin, hög);
Delay(100);
digitalWrite (led4Pin, låg);
}
}