สอบถามหน่อยคะ ถ้าต้องการเขียนโค้ด i2ckeypad กับ nodemcu ลงจอ LCD

สอบถามหน่อยคะ ถ้าต้องการเขียนโค้ด i2ckeypad กับ nodemcu ลงจอ LCD ให้ขึ้นค่าตามที่เราคีย์เลขนั้นลงไป แล้วถ้ากด A ให้คีย์ค่าเลขที่ช่องนี้ กดC รีเซ็ตเท่ากับ 0 จะเขียนโค้ดยังใงได้บ้างคะ

#include <i2c_keypad.h>
#include <LiquidCrystal_I2C.h>
//============LCD===============//
LiquidCrystal_I2C lcd(0x27, 20, 4);
#include <Adafruit_AM2315.h>
#include <Wire.h>
Adafruit_AM2315 am2315;
// I2CKEYPAD key;
I2CKEYPAD key(4, 5); // if you use ESP8266 or ESP32 you can change SDA and SCL pin
int HimidityMin,HimidityMax;
void setup() {
  Serial.begin(9600);
  Serial.println("Start Keypad");
  key.begin(0x20, 100); // void begin(char addr = 0x20, long interval = 200) ;
  key.on(PRESS, [](char key) { // void on(KEYPAD_EVENT event, KeypadEventCallback callback) ;
    Serial.print("PRESS: ");
    Serial.println(key);
  });
  while (!Serial) {
    delay(10);
  }
  Serial.println("AM2315 Test!");

  if (! am2315.begin()) {
    Serial.println("Sensor not found, check wiring & pullups!");
    while (1);
    
  }
  lcd.begin();
  lcd.setCursor(0, 0); lcd.print(" ");!
  lcd.setCursor(7, 0); lcd.print("TEMP    HUMI");
  lcd.setCursor(11, 1); lcd.print((char)223);
  lcd.setCursor(12, 1); lcd.print("C");
  lcd.setCursor(19, 1); lcd.print("%");
  lcd.setCursor(0, 1); lcd.print("ROOM");
  lcd.setCursor(0, 2); lcd.print("SetMIN");
  lcd.setCursor(0, 3); lcd.print("SetMAX");
  lcd.setCursor(10, 2); lcd.print("%");
  lcd.setCursor(10, 3); lcd.print("%");
  lcd.setCursor(0, 3); lcd.print("");
  
  
//  key.on(DO, [](char key) {
//    Serial.print("DO:  ");
//    Serial.println(key);
//  });
//  key.on(RELEASE, [](char key) {
//    Serial.print("RELEASE:  ");
//    Serial.println(key);
//  });
  
}

void loop() {
  key.scand();
 
  float temperature, humidity;

  if (! am2315.readTemperatureAndHumidity(&temperature, &humidity)) {
    Serial.println("Failed to read data from AM2315");
    return;
  
  }
  Serial.print("Temp *C: "); Serial.print(temperature);
  Serial.print("  Hum %: "); Serial.println(humidity);

  
 
  lcd.setCursor(6, 1); lcd.print(temperature, 1);
  lcd.setCursor(14, 1); lcd.print(humidity, 1);
  lcd.setCursor(7, 2); lcd.print(HimidityMin);
  lcd.setCursor(7, 3); lcd.print(HimidityMax);
  delay(2000);
  
}

+++++ให้เลขค่าตรงที่วงไว้เปลี่ยมตามค่าที่เราคีย์คะ

ตอนนี้กดแล้วมันได้ผลอย่างไรครับ

จอ lcd มีขีดๆแบบนี้เพราะอะไรหรอครับ

ตั้งกระทู้ถามใหม่เลยครับ คนละประเด็นกัน