Arduino schéma - arduino.sk

Ukladanie hodnoty

Programovanie arduina
Obrázok užívateľa
Príspevky: 44
Registrovaný: Str 25. Feb 2015 22:19:54
Bydlisko: Fintice

Ukladanie hodnoty

Poslaťod dzooky » Pia 10. Apr 2015 0:24:30

Ahojte.

Som zaciatocnik, prave mi doslo moje prve arduino, teda cinsky klon.
Skusam prvy programik na snimanie teploty (z blogu), ktory si skusam opravi tak aby mi vyposovalo hodnoty len ked sa zmeni teplota.
Kod vyzera takto

Kód: Vybrať všetko
  delay(2000);
  sensors.requestTemperatures();
  float tempC = sensors.getTempC(insideThermometer);
  float prev;
  if (tempC == -127.00) {Serial.print("Chyba, senzor neodpoveda");}
  else
    {
      if(tempC != prev)
        {
        Serial.print("Vnutorna teplota: ");
        Serial.print("C: ");
        Serial.print(tempC);
        Serial.print("\\");
        Serial.print(prev);
        prev = tempC;
        }
    }


prev premenu mam na ukladanie poslednej hodnoty
nechapem preco prev mi ukazuje vzdy 00.00 a neulozi si prmenu z tempC

Ked to upravim tak

Kód: Vybrať všetko
      if(tempC != prev)
        {prev = tempC;
        Serial.print("Vnutorna teplota: ");
        Serial.print("C: ");
        Serial.print(tempC);
        Serial.print("\\");
        Serial.print(prev);
        //prev = tempC;
        }

Hodnotu uz ulozi ale zase podmienku IF vykona aj ked sa hodnoty prev a tempC rovnaju
Absolutne nechapem.

Príspevky: 78
Registrovaný: Štv 04. Dec 2014 22:15:58
Bydlisko: Banská Bystrica

Re: Ukladanie hodnoty

Poslaťod Robo Ulbricht » Pia 10. Apr 2015 12:13:42

Tvoja premenna prev je lokalna v ramci funkcie (asi) loop. To znamena, ze zanikne za poslednou zatvorkou funkcie loop. Ak ju chces ukladat trvalo, musis ju urobit globalnou, t.j. definovat ju mimo tela funkcie.

Kód: Vybrať všetko
float prev;

void loop()
{
prev=... tvoj konkretny kod
}

Obrázok užívateľa
Príspevky: 44
Registrovaný: Str 25. Feb 2015 22:19:54
Bydlisko: Fintice

Re: Ukladanie hodnoty

Poslaťod dzooky » Pia 10. Apr 2015 14:01:41

Super diky za response
Ja som to uz pred tym skusal ale vypisovalo mi ze to nemam zadefinovane, asi som to capol niekde na blbe miesto.

Späť na Software