Всем привет. Имею вот такой скетч Код (C++): #include <Keypad.h> const byte ROWS = 4; const byte COLS = 3; char keys[ROWS][COLS] = { {'#','0','*'}, {'9','8','7'}, {'6','5','4'}, {'3','2','1'}, }; byte rowPins[ROWS] = { 5, 4, 3, 2 }; byte colPins[COLS] = { 8, 7 ,6}; Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); int Relay = 10; int Relay2 = 11; int Relay3 = 12; int Relay4 = 13; void setup() { pinMode(Relay, OUTPUT); pinMode(Relay2, OUTPUT); pinMode(Relay3, OUTPUT); pinMode(Relay4, OUTPUT); } void loop() { char key = kpd.getKey(); if(key) { switch (key) { case '1': delay(50); digitalWrite(Relay, LOW); break; case '2': delay(50); digitalWrite(Relay, HIGH); break; } } if(key) { switch (key) { case '3': delay(50); digitalWrite(Relay2, LOW); break; case '4': delay(50); digitalWrite(Relay2, HIGH); break; } } if(key) { switch (key) { case '5': delay(50); digitalWrite(Relay3, LOW); break; case '6': delay(50); digitalWrite(Relay3, HIGH); break; } } if(key) { switch (key) { case '7': delay(50); digitalWrite(Relay4, LOW); break; case '8': delay(50); digitalWrite(Relay4, HIGH); break; } } } Подскажите пожалуйста, как осуществить включение/отключение реле с одной кнопки? Т.е. нажал 1-включилось реле 1, нажал еще раз 1-выключилось реле 1 и так далее.
Проверил, огромное спасибо! У меня был такой же код, только я флаги зачем-то использовал... А оказалось настолько все просто
какта так Код (C++): void loop() { char key = kpd.getKey(); if (!key) return; switch (key) { case '1': delay(50); digitalWrite(Relay, !digtalRead(Relay)); break; case '2': delay(50); digitalWrite(Relay2, !digtalRead(Relay2)); break; case '3': delay(50); digitalWrite(Relay3, !digtalRead(Relay3)); break; case '4': delay(50); digitalWrite(Relay4, !digtalRead(Relay4)); break; } }