Keypad am 8 Fach Relais / Taster Hilfe

Moin zusammen,

ich bin einfach zu blond dafür, dem Keypad zu erklären, das ich gerne mit Taste '1' auf dem Keypad das Relais an und auch ausschalten will .
Villeicht kann mir jemand kurz helfen an der Stelle.

Danke schonmal für die Hilfe.

LG

LukeSeinVadder

#include <Keypad.h> //Keypad und Servo Library wird eingebunden


const byte ROWS = 4; //Hier wird angegeben wie viele Zeilen und Spalten das

const byte COLS = 3; //Tastenfeld besitzt

char keys[ROWS][COLS] = { //Die Ziffern und Zeichen des Tastenfelds werden angegeben

{'#', '0', '*'}, 
{'9', '8', '7'},
{'6', '5', '4'},
{'3', '2', '1'}

};

byte rowPins[ROWS] = {5, 6, 7, 8}; //Die Verbindung mit dem Arduino wird

byte colPins[COLS] = {2, 3, 4}; //festgelegt

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );





void setup()

{

pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(A2, OUTPUT);
pinMode(A3, OUTPUT);
pinMode(A4, OUTPUT);
pinMode(A5, OUTPUT);



}

void loop()

{

char key = keypad.getKey();

  if(key)  // Check for a valid key.
  {
    switch (key)
    {
      case '2':
        digitalWrite(12, LOW);
        break;
      case '1':
        digitalWrite(12, HIGH);
        break;
      default:
        Serial.println(key);
    }


if (key == '4')
{
   digitalWrite(11, HIGH);
}
if (key == '5')
{
   digitalWrite(11, LOW);
}

if (key == '7')
{
   digitalWrite(10, HIGH);
}
if (key == '8')
{
   digitalWrite(10, LOW);
}

if (key == '*') // alle Relais anschalten
{
   digitalWrite(12, HIGH);
   digitalWrite(11, HIGH);
   digitalWrite(10, HIGH);
   digitalWrite(9, HIGH);
   digitalWrite(A5, HIGH);
   digitalWrite(A4, HIGH);
   digitalWrite(A3, HIGH);
   digitalWrite(A2, HIGH);
}

if (key == '#')  // Alle Relais auschalten
{
   digitalWrite(12, LOW);
   digitalWrite(11, LOW);
   digitalWrite(10, LOW);
   digitalWrite(9, LOW);
   digitalWrite(A5, LOW);
   digitalWrite(A4, LOW);
   digitalWrite(A3, LOW);
   digitalWrite(A2, LOW);
}


  }
}

Lass dir doch im seriellen Monitor anzeigen, was deine Tasten ausgeben und prüfe, ob das mit deinen gewählten Werten übereinstimmt.

Versuche es mal so (ungetestet):

  if(key)  // Check for a valid key.
  {
    switch (key)
    {
      case '1':
        digitalWrite(12, !digitalRead(12));
        break;
      default:
        Serial.println(key);
    }

Sehr genial , das funzt , danke euch.

Hi

Warum war diese Funktionalität in Deinem Sketch nicht Mal ansatzweise vorhanden?
Dort wurde über 1 und 2 das Relais an bzw. aus geschaltet - zumindest ich sehe Da nicht Mal einen Krümmel an Versuch, Das über ein und die gleiche Taste zu realisieren.

Das Forum ist fiel zu 'weich' ... auf zu den Hausaufgaben-Threads ... Da sind noch Viele, Die auch nur den passenden Code haben wollen ...

MfG