#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27 // I2C address for the LCD
#define SDA_PIN 21 // SDA pin on ESP32
#define SCL_PIN 22 // SCL pin on ESP32
#define BUTTON_SQUARE 18 // Digital pin for square button
#define BUTTON_CIRCLE 2 // Digital pin for circle button
#define BUTTON_PENTAGON 15 // Digital pin for pentagon button
#define BUTTON_HEXAGON 27 // Digital pin for hexagon button
#define BUTTON_STAR 13 // Digital pin for star button
#define BUTTON_TRIANGLE 12 // Digital pin for triangle button
LiquidCrystal_I2C lcd(I2C_ADDR, 16, 2);
int pressCountSquare = 0;
int pressCountCircle = 0;
int pressCountPentagon = 0;
int pressCountHexagon = 0;
int pressCountStar = 0;
int pressCountTriangle = 0;
void setup() {
Serial.begin(115200);
lcd.init(); // Initialize LCD
lcd.backlight(); // Turn on the backlight
lcd.setCursor(0, 0);
lcd.print("Press Counts:");
pinMode(BUTTON_SQUARE, INPUT_PULLUP);
pinMode(BUTTON_CIRCLE, INPUT_PULLUP);
pinMode(BUTTON_PENTAGON, INPUT_PULLUP);
pinMode(BUTTON_HEXAGON, INPUT_PULLUP);
pinMode(BUTTON_STAR, INPUT_PULLUP);
pinMode(BUTTON_TRIANGLE, INPUT_PULLUP);
}
void loop() {
if (digitalRead(BUTTON_SQUARE) == LOW) {
displayShape("Square", ++pressCountSquare);
delay(500); // Debouncing delay
}
if (digitalRead(BUTTON_CIRCLE) == LOW) {
displayShape("Circle", ++pressCountCircle);
delay(500);
}
if (digitalRead(BUTTON_PENTAGON) == LOW) {
displayShape("Pentagon", ++pressCountPentagon);
delay(500);
}
if (digitalRead(BUTTON_HEXAGON) == LOW) {
displayShape("Hexagon", ++pressCountHexagon);
delay(500);
}
if (digitalRead(BUTTON_STAR) == LOW) {
displayShape("Star", ++pressCountStar);
delay(500);
}
if (digitalRead(BUTTON_TRIANGLE) == LOW) {
displayShape("Triangle", ++pressCountTriangle);
delay(500);
}
}
void displayShape(const char *shape, int count) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(shape);
lcd.setCursor(0, 1);
lcd.print("Count: ");
lcd.print(count);
}
Loading
esp32-devkit-c-v4
esp32-devkit-c-v4
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
btn3:1.l
btn3:2.l
btn3:1.r
btn3:2.r
btn4:1.l
btn4:2.l
btn4:1.r
btn4:2.r
btn5:1.l
btn5:2.l
btn5:1.r
btn5:2.r
btn6:1.l
btn6:2.l
btn6:1.r
btn6:2.r