Paso 3: codificación
Controlador de luces de fantasía / /Por AP / /
int switchPin = 2; Selector de modo está conectada al pin 2
int led1Pin = 12;
int led2Pin = 11;
int led3Pin = 10;
int led4Pin = 9;
int val; variable para lectura del estado del pin
int val2; variable para lectura del estado de retraso
int buttonState; variable que contenga el estado del interruptor de modo
int lightMode = 0;
void setup() {}
pinMode (switchPin, entrada); Configurar el conector de interruptor de modo como entrada
pinMode (led1Pin, salida);
pinMode (led2Pin, salida);
pinMode (led3Pin, salida);
pinMode (led4Pin, salida);
Serial.Begin(9600); Configurar la comunicación serial a 9600bps
buttonState = digitalRead(switchPin); Lee el estado inicial
}
void loop() {}
Val = digitalRead(switchPin); leer valor de entrada y almacena en val
Delay(10);
val2 = digitalRead(switchPin); Prevención de rebote clave
Si (val == val2) {}
Si (val! = buttonState) {}
Si (val == HIGH) {/ / comprobar si se presiona el botón de modo
Si (lightMode == 0) {}
lightMode = 1; encender LEDs
}
Else {}
Si (lightMode == 1) {/ / si en
lightMode = 2; hacer flash
}
Else {}
Si (lightMode == 2) {/ / si LED intermitente
lightMode = 3; hacer que la onda
}
Else {}
Si (lightMode == 3) {/ / si LEDs agitando,
lightMode = 0; Apagar el LED
}
}
}
}
}
}
buttonState = val; guardar el nuevo estado en nuestra variable
}
Ahora hacer lo que indica la lightMode
Si (lightMode == 0) {/ / LED apagado
digitalWrite (led1Pin, bajo);
digitalWrite (led2Pin, bajo);
digitalWrite (led3Pin, bajo);
digitalWrite (led4Pin, bajo);
}
Si (lightMode == 1) {/ / el LED
digitalWrite (led1Pin, HIGH);
digitalWrite (led2Pin, HIGH);
digitalWrite (led3Pin, HIGH);
digitalWrite (led4Pin, HIGH);
}
Si (lightMode == 2) {/ / LED intermitente
digitalWrite (led1Pin, HIGH);
digitalWrite (led2Pin, HIGH);
digitalWrite (led3Pin, HIGH);
digitalWrite (led4Pin, HIGH);
Delay(100);
digitalWrite (led1Pin, bajo);
digitalWrite (led2Pin, bajo);
digitalWrite (led3Pin, bajo);
digitalWrite (led4Pin, bajo);
Delay(100);
}
Si (lightMode == 3) {/ / LED-agitando
digitalWrite (led4Pin, bajo);
digitalWrite (led1Pin, HIGH);
Delay(100);
digitalWrite (led1Pin, bajo);
digitalWrite (led2Pin, HIGH);
Delay(100);
digitalWrite (led2Pin, bajo);
digitalWrite (led3Pin, HIGH);
Delay(100);
digitalWrite (led3Pin, bajo);
digitalWrite (led4Pin, HIGH);
Delay(100);
digitalWrite (led4Pin, bajo);
}
}