#include <Keypad.h>
//Hier wird die größe des Keypads definiert
const byte COLS = 3; //3 Spalten
const byte ROWS = 4; //4 Zeilen
//Die Ziffern/Zeichen:
char hexaKeys[ROWS][COLS]={
{'#','0','*'},
{'9','8','7'},
{'6','5','4'},
{'3','2','1'}
};
byte colPins[COLS] = { 8, 7, 6 }; //Definition der Pins für die 3 Spalten
byte rowPins[ROWS] = { 5, 4, 3, 2 };//Definition der Pins für die 4 Zeilen
char Taste; //pressedKey entspricht in Zukunft den gedrückten Tasten
Keypad Tastenfeld = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); //Das Keypad kann absofort mit myKeypad angesprochen werden
int i, j;
char zahlen[100];
String zahl="hallo";
int num;
int LED1 = 9;
int LED2 = 10;
int LED3 = 11;
int LED4 = 12;
void setup()
{
Serial.begin(9600);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
i=0;
j=0;
}
void Fehlermeldung()
{
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
delay(200);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
delay(200);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
delay(200);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
delay(200);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
delay(200);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
delay(200);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
delay(200);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
}
void loop()
{
Taste = Tastenfeld.getKey(); //pressedKey entspricht der gedrückten Taste
if (Taste) {
// If the first input is not '*', show error and exit
if (i == 0 && Taste != '*') {
Fehlermeldung();}
Serial.print("Die Taste ");
Serial.print(Taste);
Serial.print(" wurde gedrueckt");
Serial.println();
// Store the input in an array
zahlen[i] = Taste;
i++;
}
if(Taste=='#')
{
Serial.print(zahlen[i]);
zahl="";
for(int a=1; a<i-1; a++)
{
zahl=zahl +zahlen[a];
}
num=zahl.toInt();
Serial.print(num);
if(num>=0&& num<16)
{
if(num==1||num==3||num==5||num==7||num==9||num==11||num==13||num==15)
{
digitalWrite(LED1, HIGH);
}
if(num==2||num==3||num==6||num==7||num==10||num==11||num==14||num==15)
{
digitalWrite(LED2, HIGH);
}
if(num==4||num==5||num==6||num==7||num==12||num==13||num==14||num==15)
{
digitalWrite(LED3, HIGH);
}
if(num==8||num==9||num==10||num==11||num==12||num==13||num==14||num==15)
{
digitalWrite(LED4, HIGH);
}
if(num==0)
{
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
}}
else
{
Fehlermeldung();
}}}
//