#include <Keypad.h>
const uint8_t ROWS = 4;
const uint8_t COLS = 4;
char keys[ROWS][COLS] = {
{ '1', '2', '3', 'A' },
{ '4', '5', '6', 'B' },
{ '7', '8', '9', 'C' },
{ '*', '0', '#', 'D' }
};
uint8_t colPins[COLS] = {2, 0, 4, 32};
uint8_t rowPins[ROWS] = {25, 33, 27, 26};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
boolean num[11][8] = {
{1, 1, 1, 1, 1, 1, 0, 0}, // 0
{0, 1, 1, 0, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1, 0}, // 2
{1, 1, 1, 1, 0, 0, 1, 0}, // 3
{0, 1, 1, 0, 0, 1, 1, 0}, // 4
{1, 0, 1, 1, 0, 1, 1, 0}, // 5
{1, 0, 1, 1, 1, 1, 1, 0}, // 6
{1, 1, 1, 0, 0, 0, 0, 0}, // 7
{1, 1, 1, 1, 1, 1, 1, 0}, // 8
{1, 1, 1, 1, 0, 1, 1, 0} // 9
};
#define A 12
#define B 13
#define C 14
#define D 15
#define E 16
#define F 17
#define G 18
#define DP 19
void setup() {
Serial.begin(9600);
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(DP, OUTPUT);
}
void loop() {
char key = keypad.getKey();
if (key) {
Serial.print("ไหน...กดเหี้ยไรต่อไป: ");
Serial.println(key);
if (key >= '0' && key <= '9') {
int numToDisplay = key - '0';
show_num(numToDisplay);
}
else if (key == '#') {
digitalWrite(DP, HIGH);
}else if (key == '*') {
digitalWrite(DP, LOW);
}
}
}
void show_num(int a) {
for (int i = A; i <= DP; i++) {
digitalWrite(i, num[a][i - A]);
}
}
Loading
esp32-devkit-c-v4
esp32-devkit-c-v4