Új hozzászólás Aktív témák

  • Teasüti

    nagyúr

    Üdv urak!
    Nagy a baj.
    Elkezdtem menüt faragni 1604-es karakteres lcd-re és hozzá egy utasításkezelő rutint, viszont olyan hatalmas lett (és még nincs 100% kész), hogy máris elfogyott a rom. :O
    Nézegettem kész megoldásokat, viszont az osztálykezelés nekem kínai, így state machine-ben csináltam kézzel az összes lehetséges opciót. Nos ez zsákutca.
    Kérhetnék segítséget hogy lehetne az alábbit megoldani kisebb kóddal?
    Az osztályokban történő kódolás miben különbözik ettől? Azon kívül, hogy olyan bonyolult, hogy beleszagolni se tudok. :B
    Esetleg egy iszonyú szájbarágós tutorial osztálykezelésre? Igazából még azt sem tudom mire jó ez, csak láttam, hogy ebben írtak menüket mások.

    Az alsó semmi extra, csak sorszámozott képernyők az LCD-n. A menu változó hivatkozik egy adott oldalra, mely tartalmat jeleníti meg. A felső funkció pedig a távirányító egy adott gombjára* (külső switch) és adott oldalra menüben (belső switch) csinál vmit: lapozás, értékadás, stb.

    *pl. távirányító 1-9 számgombjai, vagy a kurzor nyilai a numerikus bill.-en vett helyei alapján 14 - balra, 16 - jobbra, 15 - OK, stb.

    void menuHandler(byte button) {
    if (inMenu) {
    lcd_update = true;
    switch (button) {
    case 10:
    switch (menu) {
    case 81:
    rtc[5] = 0;
    menu++;
    break;
    case 82:
    rtc[4] = 0;
    menu++;
    break;
    case 83:
    rtc[3] = 0;
    menu++;
    break;
    case 84:
    rtc[2] = 0;
    menu++;
    break;
    case 85:
    rtc[1] = 0;
    menu++;
    break;
    case 86:
    rtc[0] = 0;
    menu = 80;
    break;
    case 91:
    evening[3] = 0;
    menu++;
    break;
    case 92:
    evening[2] = 0;
    menu++;
    break;
    case 93:
    evening[1] = 0;
    menu++;
    break;
    case 94:
    evening[0] = 0;
    menu = 90;
    break;
    case 101:
    morning[3] = 0;
    menu++;
    break;
    case 102:
    morning[2] = 0;
    menu++;
    break;
    case 103:
    morning[1] = 0;
    menu++;
    break;
    case 104:
    morning[0] = 0;
    menu = 100;
    break;
    }
    break;
    case 1:
    switch (menu) {
    case 81:
    rtc[5] = 1;
    menu++;
    break;
    case 82:
    rtc[4] = 1;
    menu++;
    break;
    case 83:
    rtc[3] = 1;
    menu++;
    break;
    case 84:
    rtc[2] = 1;
    menu++;
    break;
    case 85:
    rtc[1] = 1;
    menu++;
    break;
    case 86:
    rtc[0] = 1;
    menu = 80;
    break;
    case 91:
    evening[3] = 0;
    menu++;
    break;
    case 92:
    evening[2] = 0;
    menu++;
    break;
    case 93:
    evening[1] = 0;
    menu++;
    break;
    case 94:
    evening[0] = 0;
    menu = 90;
    break;
    case 101:
    morning[3] = 0;
    menu++;
    break;
    case 102:
    morning[2] = 0;
    menu++;
    break;
    case 103:
    morning[1] = 0;
    menu++;
    break;
    case 104:
    morning[0] = 0;
    menu = 100;
    break;
    }
    break;
    case 2:
    switch (menu) {
    case 81:
    rtc[5] = 2;
    if (rtc[4] > 3) rtc[4] = 3;
    menu++;
    break;
    case 82:
    rtc[4] = 2;
    menu++;
    break;
    case 83:
    rtc[3] = 2;
    menu++;
    break;
    case 84:
    rtc[2] = 2;
    menu++;
    break;
    case 85:
    rtc[1] = 2;
    menu++;
    break;
    case 86:
    rtc[0] = 2;
    menu = 80;
    break;
    case 91:
    evening[3] = 0;
    menu++;
    break;
    case 92:
    evening[2] = 0;
    menu++;
    break;
    case 93:
    evening[1] = 0;
    menu++;
    break;
    case 94:
    evening[0] = 0;
    menu = 90;
    break;
    case 101:
    morning[3] = 0;
    menu++;
    break;
    case 102:
    morning[2] = 0;
    menu++;
    break;
    case 103:
    morning[1] = 0;
    menu++;
    break;
    case 104:
    morning[0] = 0;
    menu = 100;
    break;
    }
    break;
    case 3:
    switch (menu) {
    case 82:
    rtc[4] = 3;
    menu++;
    break;
    case 83:
    rtc[3] = 3;
    menu++;
    break;
    case 84:
    rtc[2] = 3;
    menu++;
    break;
    case 85:
    rtc[1] = 3;
    menu++;
    break;
    case 86:
    rtc[0] = 3;
    menu = 80;
    break;
    case 91:
    evening[3] = 0;
    menu++;
    break;
    case 92:
    evening[2] = 0;
    menu++;
    break;
    case 93:
    evening[1] = 0;
    menu++;
    break;
    case 94:
    evening[0] = 0;
    menu = 90;
    break;
    case 101:
    morning[3] = 0;
    menu++;
    break;
    case 102:
    morning[2] = 0;
    menu++;
    break;
    case 103:
    morning[1] = 0;
    menu++;
    break;
    case 104:
    morning[0] = 0;
    menu = 100;
    break;
    }
    break;
    case 4:
    switch (menu) {
    case 82:
    if (rtc[5] < 2) rtc[4] = 4;
    menu++;
    break;
    case 83:
    rtc[3] = 4;
    menu++;
    break;
    case 84:
    rtc[2] = 4;
    menu++;
    break;
    case 85:
    rtc[1] = 4;
    menu++;
    break;
    case 86:
    rtc[0] = 4;
    menu = 80;
    break;
    }
    break;
    case 5:
    switch (menu) {
    case 82:
    if (rtc[5] < 2) rtc[4] = 5;
    menu++;
    break;
    case 83:
    rtc[3] = 5;
    menu++;
    break;
    case 84:
    rtc[2] = 5;
    menu++;
    break;
    case 85:
    rtc[1] = 5;
    menu++;
    break;
    case 86:
    rtc[0] = 5;
    menu = 80;
    break;
    }
    break;
    case 6:
    switch (menu) {
    case 82:
    if (rtc[5] < 2) rtc[4] = 6;
    menu++;
    break;
    case 84:
    rtc[2] = 6;
    menu++;
    break;
    case 86:
    rtc[0] = 6;
    menu = 80;
    break;
    }
    break;
    case 7:
    switch (menu) {
    case 82:
    if (rtc[5] < 2) rtc[4] = 7;
    menu++;
    break;
    case 84:
    rtc[2] = 7;
    menu++;
    break;
    case 86:
    rtc[0] = 7;
    menu = 80;
    break;
    }
    break;
    case 8:
    switch (menu) {
    case 82:
    if (rtc[5] < 2) rtc[4] = 8;
    menu++;
    break;
    case 84:
    rtc[2] = 8;
    menu++;
    break;
    case 86:
    rtc[0] = 8;
    menu = 80;
    break;
    }
    break;
    case 9:
    switch (menu) {
    case 82:
    if (rtc[5] < 2) rtc[4] = 9;
    menu++;
    break;
    case 84:
    rtc[2] = 9;
    menu++;
    break;
    case 86:
    rtc[0] = 9;
    menu = 80;
    break;
    }
    break;
    case 15:
    switch (menu) {
    case 51:
    menu = 52;
    break;
    case 52:
    L1switch = analogRead(A1);
    break;
    case 53:
    menu = 54;
    break;
    case 54:
    L2switch = analogRead(A2);
    break;
    case 56:
    L1max = 0;
    L1min = 1023;
    L2max = 0;
    L2min = 1023;
    EEPROM.put(0, L1max);
    EEPROM.put(2, L1min);
    EEPROM.put(10, L2max);
    EEPROM.put(12, L2min);
    menu = 57;
    break;
    default:
    goto select;
    break;
    }
    break;
    case 14:
    if (menu >= 20 && menu < 30) menu = 11;
    else if (menu < 20) {
    menu = 1;
    inMenu = false;
    }
    if (menu >= 40 && menu < 50) menu = 12;
    if (menu == 60 || menu == 61) menu = 13;
    if (menu >= 70 && menu < 80) menu = 14;
    if (menu > 80 && menu <= 86) {
    menu--;
    break;
    }
    if (menu > 90 && menu <= 94) {
    menu--;
    break;
    }
    switch (menu) {
    case 30:
    menu = 20;
    EEPROM.put(4, Bmax);
    break;
    case 31:
    menu = 21;
    EEPROM.put(5, Bmin);
    break;
    case 32:
    menu = 22;
    EEPROM.put(6, standby_light);
    break;
    case 33:
    menu = 23;
    EEPROM.put(7, default_timeout);
    break;
    case 34:
    menu = 24;
    EEPROM.put(8, white);
    break;
    case 35:
    menu = 25;
    EEPROM.put(9, gamma_correction);
    break;
    case 50:
    menu = 40;
    break;
    case 51:
    menu = 41;
    break;
    case 52:
    menu = 41;
    EEPROM.put(14, L1switch);
    break;
    case 53:
    menu = 42;
    break;
    case 54:
    menu = 42;
    EEPROM.put(16, L2switch);
    break;
    case 55:
    menu = 43;
    break;
    case 56:
    menu = 44;
    break;
    case 57:
    menu = 44;
    break;
    case 64:
    menu = 60;
    EEPROM.put(18, lcd_light);
    break;
    case 63:
    menu = 61;
    EEPROM.put(19, lcd_maxBrightness);
    break;
    case 80:
    setRTC();
    menu = 70;
    break;
    case 90:
    EEPROM.put(20, evening);
    menu = 71;
    break;
    case 100:
    EEPROM.put(24, morning);
    menu = 72;
    break;
    }
    break;
    case 16:
    select:
    if (menu >= 80 && menu < 86) menu++;
    if (menu >= 90 && menu < 94) menu++;
    if (menu >= 100 && menu < 104) menu++;
    switch (menu) {
    case 9:
    menu = 10;
    break;
    case 10:
    menu = 11;
    break;
    case 11:
    menu = 20;
    break;
    case 12:
    menu = 40;
    break;
    case 13:
    menu = 60;
    break;
    case 14:
    menu = 70;
    break;
    case 20:
    menu = 30;
    break;
    case 21:
    menu = 31;
    break;
    case 22:
    menu = 32;
    break;
    case 23:
    menu = 33;
    break;
    case 24:
    menu = 34;
    break;
    case 25:
    menu = 35;
    break;
    case 40:
    menu = 50;
    break;
    case 41:
    menu = 51;
    break;
    case 42:
    menu = 53;
    break;
    case 43:
    menu = 55;
    break;
    case 44:
    menu = 56;
    break;
    case 51:
    menu = 52;
    break;
    case 53:
    menu = 54;
    break;
    case 60:
    menu = 64;
    break;
    case 61:
    menu = 63;
    break;
    case 70:
    menu = 80;
    break;
    case 71:
    menu = 90;
    break;
    case 72:
    menu = 100;
    break;
    }
    break;
    case 18:
    if (menu > 10 && menu < 20) menu--;
    if (menu >= 20 && menu <= 25) menu--;
    if (menu >= 40 && menu <= 44) menu--;
    if (menu == 30 && Bmax < 254) {
    Bmax += 1;
    if (Bmax > maxBrightness) Bmax = maxBrightness;
    }
    if (menu == 33 && default_timeout < 119) default_timeout++;
    if (menu == 52 && L1switch < L1max) L1switch++;
    if (menu == 54 && L2switch < L2max) L2switch++;
    if (menu == 60 || menu == 61) menu--;
    if (menu == 63 && lcd_maxBrightness < 255) lcd_maxBrightness += 5;
    if (menu >= 70 && menu <= 72) menu--;
    switch (menu) {
    case 10:
    menu = 14;
    break;
    case 19:
    menu = 25;
    break;
    case 39:
    menu = 44;
    break;
    case 31:
    Bmin += 1;
    if (Bmin > Bmax) Bmin = Bmax;
    break;
    case 32:
    standby_light = true;
    break;
    case 34:
    white = true;
    break;
    case 35:
    gamma_correction = true;
    break;
    case 50:
    auto_light = true;
    break;
    case 55:
    auto_dim = true;
    break;
    case 59:
    menu = 61;
    break;
    case 64:
    lcd_light = true;
    break;
    case 69:
    menu = 72;
    break;
    }
    break;
    case 12:
    if (menu < 15) menu++;
    if (menu >= 20 && menu <= 25) menu++;
    if (menu >= 40 && menu <= 44) menu++;
    if (menu == 31 && Bmin > 0) Bmin--;
    if (menu == 33 && default_timeout > 10) default_timeout--;
    if (menu == 52 && L1switch > L1min) L1switch--;
    if (menu == 54 && L2switch > L2min) L2switch--;
    if (menu == 60 || menu == 61) menu++;
    if (menu == 63 && lcd_maxBrightness > 20) lcd_maxBrightness -= 5;
    if (menu >= 70 && menu <= 72) menu++;
    switch (menu) {
    case 15:
    menu = 11;
    break;
    case 26:
    menu = 20;
    break;
    case 45:
    menu = 40;
    break;
    case 30:
    Bmax -= 1;
    if (Bmax < Bmin) Bmax = Bmin;
    break;
    case 32:
    standby_light = false;
    break;
    case 34:
    white = false;
    break;
    case 35:
    gamma_correction = false;
    break;
    case 50:
    auto_light = false;
    break;
    case 55:
    auto_dim = false;
    break;
    case 62:
    menu = 60;
    break;
    case 64:
    lcd_light = false;
    break;
    case 73:
    menu = 70;
    break;
    }
    break;
    }
    Serial.print(F("Menu: "));
    Serial.println(menu);
    }
    }

    void lcd_menu(uint16_t page) {
    byte temp;
    if (menu <= 80 || menu == 90 || menu == 100) {
    lcd.clear();
    lcd.setCursor(0, 0);
    }
    switch (page) {
    case 0: //welcome
    lcd.print(F("Stairlights v1.0"));
    lcd.setCursor(0, 1);
    lcd.print(F("by Istvan Kocsis"));
    break;
    case 1:
    if (mode == 0) lcd.print(F("Standby..."));
    else if (mode == 255) lcd.print(F("Adjusting..."));
    else lcd.print(F("Active..."));
    lcd.setCursor(0, 1);
    lcd.print(F("Press OK to menu"));
    break;
    case 2:
    if (mode == 0) lcd.print(F("Standby..."));
    else if (mode == 255) lcd.print(F("Adjusting..."));
    else lcd.print(F("Active..."));
    lcd.setCursor(0, 1);
    lcd.print(F("Press any to set"));
    break;
    case 3:
    if (mode == 0) lcd.print(F("Standby..."));
    else if (mode == 255) lcd.print(F("Adjusting..."));
    else lcd.print(F("Active..."));
    lcd.setCursor(0, 1);
    lcd.print(F("FPS:"));
    if (fps > 9) lcd.setCursor(5, 1);
    else lcd.setCursor(6, 1);
    lcd.print(fps);
    lcd.setCursor(8, 1);
    lcd.print(F("CPS:"));
    lcd.print(cps);
    break;
    case 4:
    readRTC();
    lcd.print(F("Time:"));
    lcd.setCursor(8, 0);
    lcd.print(rtc[5]);
    lcd.print(rtc[4]);
    lcd.print(F(":"));
    lcd.print(rtc[3]);
    lcd.print(rtc[2]);
    lcd.print(F(":"));
    lcd.print(rtc[1]);
    lcd.print(rtc[0]);
    lcd.setCursor(0, 1);
    lcd.print(F("FPS:"));
    if (fps > 9) lcd.setCursor(5, 1);
    else lcd.setCursor(6, 1);
    lcd.print(fps);
    lcd.setCursor(8, 1);
    lcd.print(F("CPS:"));
    lcd.print(cps);
    break;
    case 9: //inMenu
    lcd.write(byte(2));
    lcd.setCursor(2, 0);
    lcd.print(F("to scroll"));
    lcd.setCursor(0, 1);
    lcd.write(byte(0));
    lcd.setCursor(1, 1);
    lcd.print(F(" to go back"));
    break;
    case 10: //inMenu
    lcd.write(byte(1));
    lcd.setCursor(2, 0);
    lcd.print(F("or OK"));
    lcd.setCursor(0, 1);
    lcd.print(F("to select"));
    break;
    case 11: //LED settings
    lcd.write(byte(3));
    lcd.setCursor(3, 0);
    lcd.print(F("LED"));
    lcd.setCursor(0, 1);
    lcd.write(byte(4));
    lcd.setCursor(3, 1);
    lcd.print(F("settings"));
    break;
    case 12: //Sensor settings
    lcd.write(byte(3));
    lcd.setCursor(2, 0);
    lcd.print(F("Ambient light"));
    lcd.setCursor(0, 1);
    lcd.write(byte(4));
    lcd.print(F("sensor settings"));
    break;
    case 13: //LCD settings
    lcd.write(byte(3));
    lcd.setCursor(3, 0);
    lcd.print(F("Display"));
    lcd.setCursor(0, 1);
    lcd.write(byte(4));
    lcd.setCursor(3, 1);
    lcd.print(F("settings"));
    break;
    case 14: //time settings
    lcd.write(byte(3));
    lcd.setCursor(3, 0);
    lcd.print(F("Date/Time"));
    lcd.setCursor(0, 1);
    lcd.write(byte(4));
    lcd.setCursor(3, 1);
    lcd.print(F("setting"));
    break;
    case 20: //LED submenu
    lcd.write(byte(3));
    lcd.setCursor(3, 0);
    lcd.print(F("LED max"));
    lcd.setCursor(0, 1);
    lcd.write(byte(4));
    lcd.setCursor(3, 1);
    lcd.print(F("brightness"));
    break;
    case 21: //LED submenu
    lcd.write(byte(3));
    lcd.setCursor(3, 0);
    lcd.print(F("LED min"));
    lcd.setCursor(0, 1);
    lcd.write(byte(4));
    lcd.setCursor(3, 1);
    lcd.print(F("brightness"));
    break;
    case 22: //LED submenu
    lcd.write(byte(3));
    lcd.setCursor(3, 0);
    lcd.print(F("LED standby"));
    lcd.setCursor(0, 1);
    lcd.write(byte(4));
    lcd.setCursor(3, 1);
    lcd.print(F("running light"));
    break;
    case 23: //LED submenu
    lcd.write(byte(3));
    lcd.setCursor(3, 0);
    lcd.print(F("LED"));
    lcd.setCursor(0, 1);
    lcd.write(byte(4));
    lcd.setCursor(3, 1);
    lcd.print(F("timeout"));
    break;
    case 24: //LED submenu
    lcd.write(byte(3));
    lcd.setCursor(3, 0);
    lcd.print(F("LED color"));
    lcd.setCursor(0, 1);
    lcd.write(byte(4));
    lcd.setCursor(3, 1);
    lcd.print(F("set"));
    break;
    case 25: //LED gamma
    lcd.write(byte(3));
    lcd.setCursor(3, 0);
    lcd.print(F("LED gamma"));
    lcd.setCursor(0, 1);
    lcd.write(byte(4));
    lcd.setCursor(3, 1);
    lcd.print(F("correction"));
    break;
    case 30: //LED max brightness
    lcd.print(F("Max brightness:"));
    lcd.setCursor(0, 1);
    lcd.write(byte(2));
    lcd.setCursor(2, 1);
    lcd.print(Bmax);
    break;
    case 31: //LED min brightness
    lcd.print(F("Min brightness:"));
    lcd.setCursor(0, 1);
    lcd.write(byte(2));
    lcd.setCursor(2, 1);
    lcd.print(Bmin);
    break;
    case 32: //LED standby
    lcd.print(F("Standby light:"));
    lcd.setCursor(0, 1);
    lcd.write(byte(2));
    lcd.setCursor(2, 1);
    if (standby_light) lcd.print(F("ON"));
    else lcd.print(F("OFF"));
    break;
    case 33: //LED timeout
    lcd.print(F("LED timeout:"));
    lcd.setCursor(0, 1);
    lcd.write(byte(2));
    lcd.setCursor(2, 1);
    lcd.print(default_timeout);
    lcd.print(F(" sec"));
    break;
    case 34: //LED color
    lcd.print(F("Default mode:"));
    lcd.setCursor(0, 1);
    lcd.write(byte(2));
    lcd.setCursor(2, 1);
    if (white) lcd.print(F("White"));
    else lcd.print(F("Color"));
    break;
    case 35: //LED gamma
    lcd.print(F("Correction:"));
    lcd.setCursor(0, 1);
    lcd.write(byte(2));
    lcd.setCursor(2, 1);
    if (gamma_correction) lcd.print(F("ON"));
    else lcd.print(F("OFF"));
    break;
    case 40: //Sensor auto light
    lcd.write(byte(3));
    lcd.setCursor(3, 0);
    lcd.print(F("Ambient light"));
    lcd.setCursor(0, 1);
    lcd.write(byte(4));
    lcd.setCursor(3, 1);
    lcd.print(F("activating"));
    break;
    case 41: //Sensor adjust
    lcd.write(byte(3));
    lcd.setCursor(3, 0);
    lcd.print(F("Primary light"));
    lcd.setCursor(0, 1);
    lcd.write(byte(4));
    lcd.setCursor(3, 1);
    lcd.print(F("sensor"));
    break;
    case 42: //Sensor adjust
    lcd.write(byte(3));
    lcd.setCursor(1, 0);
    lcd.print(F("Secondary light"));
    lcd.setCursor(0, 1);
    lcd.write(byte(4));
    lcd.setCursor(3, 1);
    lcd.print(F("sensor"));
    break;
    case 43:
    lcd.write(byte(3));
    lcd.setCursor(3, 0);
    lcd.print(F("Auto dimming"));
    lcd.setCursor(0, 1);
    lcd.write(byte(4));
    lcd.setCursor(3, 1);
    lcd.print(F("in the dark"));
    break;
    case 44: //Sensor calibration
    lcd.write(byte(3));
    lcd.setCursor(3, 0);
    lcd.print(F("Light sensor"));
    lcd.setCursor(0, 1);
    lcd.write(byte(4));
    lcd.setCursor(3, 1);
    lcd.print(F("recalibration"));
    break;
    case 50:
    lcd.print(F("Only in dark?"));
    lcd.setCursor(0, 1);
    lcd.write(byte(2));
    lcd.setCursor(2, 1);
    if (auto_light) lcd.print(F("Auto ON"));
    else lcd.print(F("Always ACTIVE"));
    break;
    case 51:
    lcd.print(F("OK: read sensor"));
    lcd.setCursor(0, 1);
    lcd.write(byte(2));
    lcd.setCursor(1, 1);
    lcd.print(F(": to adjust"));
    break;
    case 52:
    temp = map(L1switch, L1min, L1max, 0, 100);
    lcd.print(F("Sensitivity:"));
    lcd.setCursor(0, 1);
    lcd.write(byte(2));
    if (L1switch > 99) lcd.setCursor(2, 1);
    else if (L1switch > 9) lcd.setCursor(3, 1);
    else lcd.setCursor(4, 1);
    lcd.print(L1switch);
    if (temp < 10 ) lcd.setCursor(7, 1);
    else lcd.setCursor(6, 1);
    lcd.print(temp);
    lcd.print(F("% of max"));
    break;
    case 53:
    lcd.print(F("OK: read sensor"));
    lcd.setCursor(0, 1);
    lcd.write(byte(2));
    lcd.setCursor(1, 1);
    lcd.print(F(": to adjust"));
    break;
    case 54:
    temp = map(L2switch, L2min, L2max, 0, 100);
    lcd.print(F("Sensitivity:"));
    lcd.setCursor(0, 1);
    lcd.write(byte(2));
    if (L2switch > 99) lcd.setCursor(2, 1);
    else if (L2switch > 9) lcd.setCursor(3, 1);
    else lcd.setCursor(4, 1);
    lcd.print(L2switch);
    if (temp < 10 ) lcd.setCursor(7, 1);
    else lcd.setCursor(6, 1);
    lcd.print(temp);
    lcd.print(F("% of max"));
    break;
    case 55:
    lcd.write(byte(2));
    lcd.setCursor(2, 0);
    lcd.print(F("Auto dimming"));
    lcd.setCursor(0, 1);
    if (auto_dim) lcd.print(F("ON: dim in dark"));
    else lcd.print(F("OFF: full power"));
    break;
    case 56:
    lcd.print(F("OK to reset"));
    lcd.setCursor(0, 1);
    lcd.print(F("stored values?"));
    break;
    case 57:
    lcd.print(F("Calibration data"));
    lcd.setCursor(0, 1);
    lcd.print(F("cleared!"));
    break;
    case 60:
    lcd.write(byte(3));
    lcd.setCursor(3, 0);
    lcd.print(F("LCD backlight"));
    lcd.setCursor(0, 1);
    lcd.write(byte(4));
    lcd.setCursor(3, 1);
    lcd.print(F("mode"));
    break;
    case 61:
    lcd.write(byte(3));
    lcd.setCursor(3, 0);
    lcd.print(F("LCD"));
    lcd.setCursor(0, 1);
    lcd.write(byte(4));
    lcd.setCursor(3, 1);
    lcd.print(F("brightness"));
    break;
    case 63:
    lcd.print(F("Brightness:"));
    lcd.setCursor(0, 1);
    lcd.write(byte(2));
    lcd.setCursor(2, 1);
    lcd.print(lcd_maxBrightness);
    break;
    case 64:
    lcd.write(byte(2));
    lcd.setCursor(2, 0);
    lcd.print(F("Auto dimming"));
    lcd.setCursor(0, 1);
    if (lcd_light) lcd.print(F("Always ON"));
    else lcd.print(F("Auto OFF"));
    break;
    case 70:
    lcd.write(byte(3));
    lcd.setCursor(3, 0);
    lcd.print(F("Set time"));
    lcd.setCursor(0, 1);
    lcd.write(byte(4));;
    break;
    case 71:
    lcd.write(byte(3));
    lcd.setCursor(3, 0);
    lcd.print(F("Set start of"));
    lcd.setCursor(0, 1);
    lcd.write(byte(4));
    lcd.setCursor(3, 1);
    lcd.print(F("night mode"));
    break;
    case 72:
    lcd.write(byte(3));
    lcd.setCursor(3, 0);
    lcd.print(F("Set end of"));
    lcd.setCursor(0, 1);
    lcd.write(byte(4));
    lcd.setCursor(3, 1);
    lcd.print(F("night mode"));
    break;
    case 80:
    lcd.print(F("Time:"));
    lcd.setCursor(8, 0);
    lcd.print(rtc[5]);
    lcd.print(rtc[4]);
    lcd.print(F(":"));
    lcd.print(rtc[3]);
    lcd.print(rtc[2]);
    lcd.print(F(":"));
    lcd.print(rtc[1]);
    lcd.print(rtc[0]);
    lcd.setCursor(0, 1);
    lcd.write(byte(0));
    lcd.write(byte(1));
    break;
    case 81:
    lcd.setCursor(8, 0);
    lcd.print(F("_"));
    lcd.print(rtc[4]);
    break;
    case 82:
    lcd.setCursor(8, 0);
    lcd.print(rtc[5]);
    lcd.print(F("_"));
    lcd.print(F(":"));
    lcd.print(rtc[3]);
    break;
    case 83:
    lcd.setCursor(9, 0);
    lcd.print(rtc[4]);
    lcd.print(F(":"));
    lcd.print(F("_"));
    lcd.print(rtc[2]);
    break;
    case 84:
    lcd.setCursor(11, 0);
    lcd.print(rtc[3]);
    lcd.print(F("_"));
    lcd.print(F(":"));
    lcd.print(rtc[1]);
    break;
    case 85:
    lcd.setCursor(12, 0);
    lcd.print(rtc[2]);
    lcd.print(F(":"));
    lcd.print(F("_"));
    lcd.print(rtc[0]);
    break;
    case 86:
    lcd.setCursor(14, 0);
    lcd.print(rtc[1]);
    lcd.print(F("_"));
    break;
    case 90:
    lcd.print(F("Evening starts at"));
    lcd.setCursor(0, 1);
    lcd.write(byte(0));
    lcd.write(byte(1));
    lcd.setCursor(7, 1);
    lcd.print(evening[3]);
    lcd.print(evening[2]);
    lcd.print(F(":"));
    lcd.print(evening[1]);
    lcd.print(evening[0]);
    break;
    case 91:
    lcd.setCursor(7, 1);
    lcd.print(F("_"));
    lcd.print(evening[2]);
    break;
    case 92:
    lcd.setCursor(7, 1);
    lcd.print(evening[3]);
    lcd.print(F("_"));
    lcd.print(F(":"));
    lcd.print(evening[1]);
    break;
    case 93:
    lcd.setCursor(8, 1);
    lcd.print(evening[2]);
    lcd.print(F(":"));
    lcd.print(F("_"));
    lcd.print(evening[0]);
    break;
    case 94:
    lcd.setCursor(10, 1);
    lcd.print(evening[1]);
    lcd.print(F("_"));
    break;
    case 100:
    lcd.print(F("Morning starts at"));
    lcd.setCursor(0, 1);
    lcd.write(byte(0));
    lcd.write(byte(1));
    lcd.setCursor(7, 1);
    lcd.print(morning[3]);
    lcd.print(morning[2]);
    lcd.print(F(":"));
    lcd.print(morning[1]);
    lcd.print(morning[0]);
    break;
    case 101:
    lcd.setCursor(7, 1);
    lcd.print(F("_"));
    lcd.print(morning[2]);
    break;
    case 102:
    lcd.setCursor(7, 1);
    lcd.print(morning[3]);
    lcd.print(F("_"));
    lcd.print(F(":"));
    lcd.print(morning[1]);
    break;
    case 103:
    lcd.setCursor(8, 1);
    lcd.print(morning[2]);
    lcd.print(F(":"));
    lcd.print(F("_"));
    lcd.print(morning[0]);
    break;
    case 104:
    lcd.setCursor(10, 1);
    lcd.print(morning[1]);
    lcd.print(F("_"));
    break;
    }
    }

Új hozzászólás Aktív témák