Я пытаюсь создать небольшую программу для управления 3 светодиодами. Светодиоды подключены к контактам 11 (красный), 12 (желтый) и 13 (зеленый).
По некоторым неизвестным мне причинам следующий код, похоже, не работает. Если я введу 1 в последовательный вход, загорится желтый светодиод. Но примерно через 1 секунду он снова выключается и включается красный светодиод. Мне кажется, на последовательном входе всегда 0, но это не может быть правдой, не так ли?
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
if(Serial.available() > 0) {
changeLed(Serial.parseInt());
}
}
void changeLed(int color) {
turnAllLedsOff();
turnOnLed(color);
}
void turnOnLed(int ledPin) {
enum ledControl {RED, YELLOW, GREEN};
if(ledPin == RED) {
digitalWrite(11, HIGH);
}
if(ledPin == YELLOW) {
digitalWrite(12, HIGH);
}
if(ledPin == GREEN) {
digitalWrite(13, HIGH);
}
}
void turnAllLedsOff() {
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}