จะตั้งเวลาจาก keypad ให้ส่งไปที่ time Input

จะตั้งเวลาจาก keypad ให้ส่งไปที่ time Input ได้ไหมคะ และทำยังไง ขอคำแนะนำหน่อยนะคะ

อันนี้เป็นโค้ดการรับค่าจาก blynk

BLYNK_WRITE(V28)//Ligth//
{
  TimeInputParam t(param);
  /*Serial.print("HLOn = "); Serial.println(t.getStartHour());
    Serial.print("MLOn = "); Serial.println(t.getStartMinute());
    Serial.print("HLOff = "); Serial.println(t.getStopHour());
    Serial.print("MLOff = "); Serial.println(t.getStopMinute());*/
  EEPROM.write(19, t.getStartHour());
  EEPROM.write(20, t.getStartMinute());
  EEPROM.write(21, t.getStopHour());
  EEPROM.write(22, t.getStopMinute());
  HLOn = t.getStartHour();
  MLOn = t.getStartMinute();
  HLOff = t.getStopHour();
  MLOff = t.getStopMinute();
  TimerL_ON =   HLOn * 60;
  TimerL_ON = (TimerL_ON * 60) + (MLOn * 60);
  TimerL_OFF = HLOff * 60;
  TimerL_OFF = (TimerL_OFF * 60) + (MLOff  * 60);
  String PrintText = "TimeONOff1=" + String(HLOn) + ":" + MLOn + "-" + HLOff + ":" + MLOff;
  Serial.println(PrintText);
  ShowTime(9, 1, HLOn, MLOn);
  ShowTime(15, 1, HLOff, MLOff);
  StatusMode = 3;

อันนี้เป็นการตั้งค่าเพื่อให้ทำงานตามที่ตั้งเวลา
void SetTimeLigth() {
  char key;
  HLOn = EEPROM.read(19);
  MLOn = EEPROM.read(20);
  HLOff = EEPROM.read(21);
  MLOff = EEPROM.read(22);
  //---------01234567890123456789----
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(" --- TimeLigth --- ");
  lcd.setCursor(0, 1);
  lcd.print("Time Set");
  lcd.setCursor(0, 2);
  lcd.print("Time New");
  lcd.setCursor(0, 3);
  lcd.print("D:Exit *:Edit #:Save");
  lcd.setCursor(11, 2);
  lcd.print(":");
  lcd.setCursor(17, 2);
  lcd.print(":");
  lcd.setCursor(14, 2);
  lcd.print("-");

  ShowTime(9, 1, HLOn, MLOn);
  lcd.setCursor(14, 1);
  lcd.print("-");
  ShowTime(15, 1, HLOff, MLOff);

  while (1) {
    Blynk.run();
    Timer_Clock.run();
    key = keypad.getKey();
    if (key != NO_KEY) {  //ถ้ามีการกดคีย์
      if (key == '*') {
        GetTime(10, 3);
        TimerL_ON = Hours;
        TimerL_ON = (TimerL_ON << 8) + Min;
        EEPROM.write(19, Hours);
        EEPROM.write(20, Min);
        GetTime(16, 3);
        TimerL_OFF = Hours;
        TimerL_OFF = (TimerL_OFF << 8) + Min;
        EEPROM.write(21, Hours);
        EEPROM.write(22, Min);
      }
      if (key == 'D') {
        lcd.clear();
        SetTimer();
        break;
      }
    }
  }
}

ต้องการให้ตั้งค่าเพื่อส่งค่าเวลาให้ time Input แล้วให้ค่าใน time Input เปลี่ยนด้วยต้องทำยังไงคะ??

1 Like

ศึกษาการรับค่า Keypad จากกระทู้นี้ก่อนครับ

1 Like