Jak vypsat hodnotu před 10min?
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Jak vypsat hodnotu před 10min?
na 16x2 lcd mi jde hodnota z mg811 CO2 senzoru.
lcd.setCursor(0, 1);
lcd.print(" CO2 ppm= ");
if (hodnota <400) {
lcd.print( "<400" );
} else {
lcd.print(hodnota);
}
delay(1000);
je mozny na druhej radek vypsat hodnotu 10minut starou?
prosim
lcd.setCursor(0, 1);
lcd.print(" CO2 ppm= ");
if (hodnota <400) {
lcd.print( "<400" );
} else {
lcd.print(hodnota);
}
delay(1000);
je mozny na druhej radek vypsat hodnotu 10minut starou?
prosim
Re: Jak vypsat hodnotu před 10min?
ajo
lcd.setCursor(0, 1);
lcd.print(" CO2 ppm ");
if (hodnota <400) {
lcd.print( "<400" );
} else {
lcd.print(hodnota);
}
delay(1000);
lcd.setCursor(0, 0);
lcd.print(" -10 min ");
if (hodnota <400) {
lcd.print( "<400" );
} else {
lcd.print(hodnota);
}
delay(600000);
lcd.setCursor(0, 1);
lcd.print(" CO2 ppm ");
if (hodnota <400) {
lcd.print( "<400" );
} else {
lcd.print(hodnota);
}
delay(1000);
lcd.setCursor(0, 0);
lcd.print(" -10 min ");
if (hodnota <400) {
lcd.print( "<400" );
} else {
lcd.print(hodnota);
}
delay(600000);
Re: Jak vypsat hodnotu před 10min?
S tou dlouhou pauzou to určitě nepůjde.
Musíš si aktuální hodnoty někam odkládat. Nejlepší je asi do nějakého pole.
A z toho pole si pak můžeš brát ty starší uložené hodnoty a zobrazovat je.
Tady je takový rychlý nástřel, jak by to mohlo vypadat. (Doplň si tam čtení aktuální hodnoty a knihovny pro práci s displejem)
Prvních 10 minut to bude ukazovat starou hodnotu nulovou, ale pak už se by měly zobrazovat skutečně změřené staré hodnoty.
Musíš si aktuální hodnoty někam odkládat. Nejlepší je asi do nějakého pole.
A z toho pole si pak můžeš brát ty starší uložené hodnoty a zobrazovat je.
Tady je takový rychlý nástřel, jak by to mohlo vypadat. (Doplň si tam čtení aktuální hodnoty a knihovny pro práci s displejem)
Prvních 10 minut to bude ukazovat starou hodnotu nulovou, ale pak už se by měly zobrazovat skutečně změřené staré hodnoty.
Kód: Vybrat vše
int pole_starych_hodnot[9]; // polozky v poli jsou cislovane od 0 do 9
byte pocitadlo_sekund=0; // pomocne pocitadlo sekundovych smycek
void setup(void)
{
// doplnit, co je treba
}
void loop(void)
{
// int hodnota = .......... // tady se vlozi prikaz pro cteni aktualni hodnoty z cidla
pocitadlo_sekund ++ ; // Kazda smycka trva 1 sekundu. Tady je pocitadlo smycek.
if (pocitadlo_sekund == 60) // Kazdych 60 pruchodu smyckou (to je kazdou minutu) se ...
{
pocitadlo_sekund = 0; // ... vynuluje pocitadlo sekund ...
for (byte index_pole = 1 ; index_pole <10 ; index_pole++) // ... a cele pole starych hodnot ...
{
pole_starych_hodnot[index_pole - 1] = pole_starych_hodnot[index_pole]; // ... se posune o jednu pozici "dolu".
}
pole_starych_hodnot[9] = hodnota; // Na uvolnenou nejvyssi pozici se ulozi aktualni namerena hodnota.
}
// zobrazeni aktualni hodnoty na displeji:
lcd.setCursor(0, 1);
lcd.print(" CO2 ppm= ");
if (hodnota <400) {
lcd.print( "<400" );
} else {
lcd.print(hodnota);
}
// zobrazeni 10 minut stare hodnoty na displeji:
lcd.setCursor(0, 0);
lcd.print("-10 minut= ");
if (pole_starych_hodnot[0] <400) { // 10 minut stara hodnota je ulozena v promenne 'pole_starych_hodnot[0]'
lcd.print( "<400" );
} else {
lcd.print(pole_starych_hodnot[0]);
}
delay(1000);
}
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: Jak vypsat hodnotu před 10min?
CO2 plánuji vyčítat jednou za 5 min - již jsem to testoval - simulací hodnot poťákem.
Do pole ukládám 12 hodnot co 5 minut - historie za hodimu,
každých 5 minut vyčtu novou hodnotu, posunu ukazovátko na proměnnou v poli o jedna a uložím
ze starších hodnot (ukazovátko -1, -2 atd.) budu asi dělat graf, nebo průměr, ještě nevím
do budoucna přidám LAN modul a budu to ukládat na WWW server do databáze - hudba budoucnosti
Do pole ukládám 12 hodnot co 5 minut - historie za hodimu,
každých 5 minut vyčtu novou hodnotu, posunu ukazovátko na proměnnou v poli o jedna a uložím
ze starších hodnot (ukazovátko -1, -2 atd.) budu asi dělat graf, nebo průměr, ještě nevím
do budoucna přidám LAN modul a budu to ukládat na WWW server do databáze - hudba budoucnosti
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Re: Jak vypsat hodnotu před 10min?
moc dekuju
Re: Jak vypsat hodnotu před 10min?
Tak po 10min. kdy se ma vypsat stara hodnota se Nano restartuje. Zkusim to na Unu. Je to jenom detajl ktetej nepotrebuju nutne. Restart arduina po nejaky dobe pripadne vypnuti ale budu taky resit tak se to hodi.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 11 hostů