Close

hodiny

  • Toto téma obsahuje celkem 2 odpovědi. Do diskuze (2 diskutující) se naposledy zapojil uživatel Petr99 a poslední změna proběhla před 7 roky a 11 měsíci.
Aktuálně jsou na stránce zobrazeny 3 příspěvky - 1. až 3. (celkem z 3)
  • Autor
    Příspěvky
  • #9680
    Petr99
    Účastník

    Zdravím,
    Nemám s programováním moc zkušeností, a tak bych prosil o pomoc.
    Nahraju program a otevřu seriový monitor, tak prvním číslem nastavím hodiny, druhym minuty a třetím sekundy. Funguje to ale pouze s jednociferným číslem.
    Problém nastává, když zadám dvojciferné čislo. např. 22 tak mi to místo 22 hodin nastaví 2 hodiny a 2 minuty.
    Děkuji

    int s = 0;
    int m = 0;
    int h = 0;
    char znak;

    void setup() {
    Serial.begin(9600);
    Serial.println(„Hodiny“);
    while(h==0){
    if (Serial.available() > 0) {znak= Serial.read();
    h = znak-48;
    Serial.println(h);}

    }
    Serial.println(„Minuty: „);
    while(m==0)
    { if (Serial.available() > 0) {znak= Serial.read();

    m = znak-48;
    Serial.println(m);}
    }
    Serial.println(„Sekundy „);
    while(s==0){
    if (Serial.available() > 0) {znak = Serial.read();
    s = znak-48;
    Serial.println(s);}

    }
    }

    void loop() {

    s++;

    if (s > 59){s=0 ; m++;}
    if (m > 59){m=0 ; h++;}
    if (h > 23){h =0;}
    if (h<10) {Serial.print(„0“);}; Serial.print(h); Serial.print(„:“); if (m<10){Serial.print(„0“);}; Serial.print(m); Serial.print(„:“); if (s<10) {Serial.print(„0“);};Serial.println(s);
    delay(1000);
    }

    #9681
    BlindP
    Účastník

    Ahoj, serial.read přečte jeden byte. Zkus to takhle:

    while(Serial.available() > 0) {
        hodiny = Serial.parseInt();
        minuty = Serial.parseInt();
        sekundy = Serial.parseInt();
        if(Serial.read() == '\n') {
          break;
        }
      }
    

    Čas potom nastavíš posláním 22:23:24.
    https://www.arduino.cc/en/Reference/ParseInt
    BP

    #9684
    Petr99
    Účastník

    Díky, funguje 🙂

Aktuálně jsou na stránce zobrazeny 3 příspěvky - 1. až 3. (celkem z 3)
  • Pro reakci na toto téma se musíte přihlásit.