Stránka 1 z 1

obnova zapísaných hodnôt

Napsal: 12 pro 2018, 18:56
od mato2sk
Zdravým
Potreboval by som trochu poradiť s jedním mojím projektom.
Chcem aby zobrazilo maximálu a manimálnu hodnotu nameranú senzorom tlaku.
Keď som použil tento kód tak mi načita tieto hodonty hneď nazačiatku a počas bežania programu sa nezmenia.
Pri maximálnej hodnote mi to nevadí, ale pri minimálnej je problém lebo nazačiatku je tlak 0.
Viete mi poraďiť ako to spravyť aby to obnovovalo počas bežania programu cca každú 1-5 min, alebo iný spôsob.
if(pressure_kPa > pressure_max) {pressure_max = pressure_kPa;}
if(pressure_kPa < pressure_min) {pressure_min = pressure_kPa;}

Re: obnova zapísaných hodnôt

Napsal: 12 pro 2018, 19:49
od jankop

Kód: Vybrat vše

float pressure_max=0;       // tady nastav hodnotu mensi nez je nejmensi mozny tlak
float pressure_min=1000000; // tady nastav hodnotu vetsi nez je nejvetsi mozny tlak

void setup() {
  // put your setup code here, to run once:
}
void loop() {
  // put your main code here, to run repeatedly:
if(pressure_kPa > pressure_max) {pressure_max = pressure_kPa;}
if(pressure_kPa < pressure_min) {pressure_min = pressure_kPa;}
}

Re: obnova zapísaných hodnôt

Napsal: 17 pro 2018, 19:00
od mato2sk
Ok dik skúsim

Re: obnova zapísaných hodnôt

Napsal: 17 pro 2018, 19:37
od mato2sk
Ale nemyslím že to bude fungovať oprav ma ak sa mýlim ono nazačiatku nastavý tú hodnotu a potom nastavý hodnotu ktorú načita zo snímaču. Má to merať tlak oleja v motore ale pokial sa nenaštartuje tak tlak bude stále 0. Ja potrebujem aby zaznamenalo minimálny tlak počas bežania motora .

Re: obnova zapísaných hodnôt

Napsal: 17 pro 2018, 20:04
od jankop
Pak musíš spustit program, až bude motor v normálním chodu. Nebo zvolit nějaký normální tlak a při tomto tlaku teprve nastavíš hodnotu proměnné pro minimální tlak. Pokusil jsem se o to v příkladu

Kód: Vybrat vše

#define TLAK_VOLNOBEHU 200.0    // tady vloz nejakou rozumnou hodnotu volnobezneho tlaku 
float pressure_max = 0.0;       // tady nastav hodnotu mensi nez je nejmensi mozny tlak
float pressure_min = 1000000.0; // tady nastav hodnotu vetsi nez je nejvetsi mozny tlak
float pressure_kPa;
bool PriznakTlakVolnobehu = false; // neni volnobezny tlak

void setup() {
  // put your setup code here, to run once:
}
void loop() {
  // put your main code here, to run repeatedly:
  if (pressure_kPa > TLAK_VOLNOBEHU) {
    PriznakTlakVolnobehu = true;      //prekrocen tlak volnobehu
  }
  if (pressure_kPa > pressure_max) {
    pressure_max = pressure_kPa;
  }
  if (PriznakTlakVolnobehu) { //uz byl volnobezny tlak, zacni zapisovat minimalni tlak
    if (pressure_kPa < pressure_min) {
      pressure_min = pressure_kPa;
    }
  }
}
Pokud bys chtěl aby se to po nějakém čase obnovovalo, tak bys tam musel přidat nějaké časování a periodicky hodnoty obnovovat nebo spíš resetovat. Ale to nějak postrádá smysl. Pro daný účel by to nejspíš mělo vypadat tak, že to bude zobrazovat hodnotu tlaku se setrvačností, s tím, že max a min hodnota bude zobrazena okamžitě, když nastane. Ale návrat k normálnímu tlaku by byl pozvolný - zpomalený. Takhle nějak fungují často indikátory vybuzení audio signálu.

Re: obnova zapísaných hodnôt

Napsal: 21 pro 2018, 18:48
od mato2sk
to už šlape podla mojich predstáv vďaka