Есть проблема со скетчем, а задача следующая, нужно либо через терминал или блютуз модуль hc-06 отсылать комманду и путем отсылки одной и той же команды либо включить нагрузку, либо выключить, короче говоря требуется подобие триггера работающего по определенной команде посылаемого с UART либо через терминал либо блютуз модуль hc-06. Есть скетч, но с ним проблемы, работает как-то странно, не стабильно, подскажите в чем моя ошибка??? Код скетча такой: int ledPin_1 = 9; int ledPin_2 = 10; int ledPin_3 = 11; int ledPin_4 = 12; int ledPin_5 = 13; void setup() { Serial.begin(9600); pinMode(ledPin_1, OUTPUT); pinMode(ledPin_2, OUTPUT); pinMode(ledPin_3, OUTPUT); pinMode(ledPin_4, OUTPUT); pinMode(ledPin_5, OUTPUT); } void loop() { if (Serial.available() > 0) { int i = Serial.read()-48; if (i == 1)digitalWrite(ledPin_1, !digitalRead(ledPin_1)); if (i == 2)digitalWrite(ledPin_2, !digitalRead(ledPin_2)); if (i == 3)digitalWrite(ledPin_3, !digitalRead(ledPin_3)); if (i == 4)digitalWrite(ledPin_4, !digitalRead(ledPin_4)); if (i == 5)digitalWrite(ledPin_5, !digitalRead(ledPin_5)); } }
Так работает? Код (Text): void setup(){ Serial.begin(9600); //Set all the pins we need to output pins pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); } void loop (){ if (Serial.available()) { //read serial as a character char ser = Serial.read(); //NOTE because the serial is read as "char" and not "int", the read value must be compared to character numbers //hence the quotes around the numbers in the case statement switch (ser) { case '0': triggerPin(2); break; case '1': triggerPin(3); break; case '2': triggerPin(4); break; case '3': triggerPin(5); break; case '4': triggerPin(6); break; case '5': triggerPin(7); break; case '6': triggerPin(8); break; case '7': triggerPin(9); break; case '8': triggerPin(10); break; case '9': triggerPin(11); break; } } } void triggerPin(byte pin) { digitalWrite(pin, !digitalRead(pin)); }