EDU18 Keypad
|
Použití: Kalkulačka, Ovládací menu, Zadávání pinu Mikrokontrolér: ESP32 S3 mini |
Popis
Keypad je tlačítková klávesnice, která se často používá pro zadávání čísel nebo kódů – podobně jako u kalkulačky. Nejčastěji má 4 řady a 3 nebo 4 sloupce (např. 4x3 = číslice 0–9, *, #).
Zapojení
Zapojeno přes I2C, slouží nám k tomu převodník starající se o záznam stisknutí.

Ukázkový kód
#include <Arduino.h>
#include <Wire.h>
#include <Keypad.h>
#include <Keypad_I2C.h>
// Keypad
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'A', 'B', 'C', 'D'},
{'3', '6', '9', '#'},
{'2', '5', '8', '0'},
{'1', '4', '7', '*'}
};
byte rowPins[ROWS] = {7, 6, 5, 4}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {0, 1, 2, 3}; //connect to the column pinouts of the keypad
Keypad_I2C keypad = Keypad_I2C(makeKeymap(keys), rowPins, colPins, ROWS, COLS, 0x20);
void setup(void) {
// Serial init
Serial.begin(115200);
// I2C init
Wire.begin(14, 15); // SDA, SCL
// Keypad init
keypad.begin(makeKeymap(keys));
}
char pressedKey = NO_KEY;
KeyState keyStatePrev = IDLE;
auto myHold = false;
void loop()
{
char key = keypad.getKey();
KeyState keyState = keypad.getState();
if (keyStatePrev != keyState && keyState != IDLE)
{
keyStatePrev = keyState;
pressedKey = key;
Serial.print("State: ");
Serial.print(keyState);
Serial.print(" Key: ");
Serial.println(pressedKey);
}
}