อยากสอบถามเกี่ยวกับการกด keypad 4x3 ออกจอ LCDครับ

ตอนนี้ผมใช้ keypad ต่อกับ arduino แล้วอยากแสดงผมเวลากดออกจอ LCD จากที่ดูในคอมพิวเตอร์การกดค่าแสดงออกมาตรงแล้ว  แต่ที่ผมต้องการคือ
1.เวลากด keypad จะแสดงตำแหน่งไหนก็ได้ทีจอ LCD ที่เราจะกำหนด  
2.เมื่อกดเลขซ้ำ เลขที่กดครั้งแรกจะไม่นำมานับซ้ำ

ผมเลยอยากสอบถามเผื่อท่านใดช่วยแนะนำผมหน่อยนะครับ

void setup()
{

  Serial.begin(9600);
  keypad.addEventListener(keypadEvent); //add an event listener for this keypad


  lcd.begin(24,4);
  lcd.setCursor(0,0);
  lcd.print("Press any key");
  lcd.setCursor(0,1);
  lcd.print("Bed=");
  lcd.setCursor(8,1);
  lcd.print("ร้องไห้C.C)=");
  lcd.setCursor(0,2);
  lcd.print("01=100 C.C");
  lcd.setCursor(11,2);
  lcd.print("*= enter");
  lcd.setCursor(0,3);
  lcd.print("02=1000C.C");
  lcd.setCursor(11,3);
  lcd.print("#= reset");
////////////////////// ในส่วนนี้ ผมต้องการแบบว่า กดเลขครั้งแรกตรง Bed  ครั้งที่2 ตรง C.C  แต่ติดปัญหาคือมันแสดงซ้ำๆตรงกดครั้งแรกนะครับ
}
void loop()
{
  keypad.getKey();
  
}



void keypadEvent(KeypadEvent eKey)
{
  switch (keypad.getState())
{   //////////////////////////////////////////////////////////////////////////////////////////////
    case PRESSED:                                     อันนี้ผมลองเขียนตามที่คิดออกมาน่ะครับ
         if(eKey=='1')                                     แต่ ตรงนี้ล่ะครับที่ผมต้องการว่าเวลากดเลขแล้วให้มันแสดงแบบไม่ซ้ำ เช่น กดเลขครั้งที่1
        {                                                         ออกเลข 1 ตรง 5,1   พอกดเลข1 อีกครั้ง ให้ไปแสดงที่ 16,1  น่ะครับ ช่วยผมทีนะครับ
            lcd.setCursor(5,1);                           ส่วนpassword ผมใช้งานในลูปอื่นแล้วครับ มีติดแค่ในส่วนนี้เท่านั้น
            lcd.print("1");      
        }          
        if(eKey=='0')
        {
            lcd.setCursor(15,1);
            lcd.print("0");
            
        }
        if(eKey=='1')
        {
            lcd.setCursor(16,1);
            lcd.print("1");
            
        }
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    
    
    Serial.print("Pressed: ");
    Serial.println(eKey);
    switch (eKey){
      case '*': checkPassword1();
                    checkPassword2();
                    checkPassword3();
                    checkPassword4();
                    checkPassword5();
                    checkPassword6();
                    checkPassword7();
                    checkPassword8();          
                    break;
      case '#': password1.reset();
                    password2.reset();
                    password3.reset();
                    password4.reset();
                    password5.reset();
                    password6.reset();
                    password7.reset();
                    password8.reset();
                    break;
      default: password1.append(eKey);
                   password2.append(eKey);
                   password3.append(eKey);
                   password4.append(eKey);
                   password5.append(eKey);
                   password6.append(eKey);
                   password7.append(eKey);
                   password8.append(eKey);
     }
  }
}
แก้ไขข้อความเมื่อ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่