#include <Keypad.h>
#include <string.h>
#include <stdio.h>
#define ROWS 4
#define COLS 4
char cKeys[ROWS][COLS] =
{
{ '1', '2', '3', 'A' },
{ '4', '5', '6', 'B' },
{ '7', '8', '9', 'C' },
{ '*', '0', '#', 'D' }
};
uint8_t iColPins[COLS] = { 5, 4, 3, 2 }; // Pins connected to C1, C2, C3, C4
uint8_t iRowPins[ROWS] = { 9, 8, 7, 6 }; // Pins connected to R1, R2, R3, R4
Keypad oKeypad = Keypad(makeKeymap(cKeys), iRowPins, iColPins, ROWS, COLS);
int iSollwert;
char cSollwert;
char sSollwert[100];
// -----------------------------------------------------------------
void AllesAnzeigenMenu (void)
{
char sText [40];
char cKey;
Serial.println ("Anzeige - Menü");
sprintf (sText,"iSollwert=%i" ,iSollwert);Serial.println(sText);;
sprintf (sText,"cSollwert=%c" ,cSollwert);Serial.println(sText);;
sprintf (sText,"sSollwert=<%s>",sSollwert);Serial.println(sText);;
Serial.println("=>Taste");
do
{
cKey = oKeypad.getKey();
} while (cKey==NO_KEY);
}
// -----------------------------------------------------------------
void CEingabeMenu (void)
{
char cKey;
char sText [40];
Serial.println ("cSollwert eingeben - Menü");
Serial.println ("=> A oder B oder C oder D");
Serial.println ("=> bitte eingeben");
do
{
cKey = oKeypad.getKey();
} while (cKey==NO_KEY);
switch (cKey)
{
case 'A':
case 'B':
case 'C':
case 'D':
cSollwert=cKey;
sprintf (sText,"Eingabe:%c",cSollwert);
break;
default:
sprintf (sText,"falsche Eingabe");
break;
}
Serial.println(sText);
}
// -----------------------------------------------------------------
void AendernMenu (void)
{
char cKey;
Serial.println ("Ändern - Menü");
Serial.println ("1 .. iSollwert");
Serial.println ("2 .. cSollwert");
Serial.println ("3 .. sSollwert");
Serial.println ("=> bitte wählen");
do
{
cKey = oKeypad.getKey();
} while (cKey==NO_KEY);
switch (cKey)
{
case '1':;break;
case '2':CEingabeMenu();break;
case '3':;break;
default:break;
}
}
// -----------------------------------------------------------------
void TopMenu (void)
{
char cKey;
Serial.println ("Top - Menü");
Serial.println ("1 .. alles anzeigen");
Serial.println ("2 .. ändern");
Serial.println ("3 .. speichern");
Serial.println ("=> bitte wählen");
do
{
cKey = oKeypad.getKey();
} while (cKey==NO_KEY);
switch (cKey)
{
case '1':AllesAnzeigenMenu();break;
case '2':AendernMenu();break;
default:break;
}
}
void setup()
{
Serial.begin(9600);
iSollwert=10;
cSollwert='?';
strcpy (sSollwert,"??");
}
void loop()
{
for (;;) TopMenu ();
}