EDU18 Keypad

Eduingo Mainboard

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);
    }
}

Tato stránka byla naposledy upravena 2025-12-30 12:53

Běží na Wiki|Docs

This page was last edited on 2025-12-30 12:53

Eduingo
info@eduingo.com

Běží na Wiki|Docs