Ukládání časových hodnot
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Ukládání časových hodnot
Zdravím !
Jako totální začátečník bych potřeboval poradit :(nejlépe kdyby mi někdo prosím napsal vzor programu )
Potřeboval bych měřit čas sepnutí kontaktu a ukládat ho tak, abych občas kdyby byla potřeba píchnul noťas na arduino uno a hodnoty zkouknul jestli se mění . Zbytek okolo už zvládám .
Děkuji za pomoc R
Jako totální začátečník bych potřeboval poradit :(nejlépe kdyby mi někdo prosím napsal vzor programu )
Potřeboval bych měřit čas sepnutí kontaktu a ukládat ho tak, abych občas kdyby byla potřeba píchnul noťas na arduino uno a hodnoty zkouknul jestli se mění . Zbytek okolo už zvládám .
Děkuji za pomoc R
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: Ukládání časových hodnot
Pokud to chápu, chceš program, který ti bude měřit (třeba), jak dlouho je log."1" na vstupu ?
Není nic jednoduššího, ale ....
1) kolik posledních měření chceš ukládat ? Paměť je dost omezená a po výpadku napájení, nebo když se Arduino kousne, o data přijdeš.
2) je možnost i ukládat min. a max. hodnoty
Výpis:
- v pohodě po sériové lince (USB) po odeslání nějakého příkazu do Arduina ti Arduino vysype uložené hodnoty.
- nebo SD karta do nějakého souboru, tu SD si pak přečteš v PC klidně
chce to definovat více i kolem HW - jak dlouhé časy předpokládáš a jakou chybu pažaduješ (podle toho se musí ošetřit HW nějakými odpory a kondikem tzv. zákmity kontaktu)
Klidně pomohu s tou verzí bez SD karty až to upřesníš .... kolik toho ukládat atd.
Není nic jednoduššího, ale ....
1) kolik posledních měření chceš ukládat ? Paměť je dost omezená a po výpadku napájení, nebo když se Arduino kousne, o data přijdeš.
2) je možnost i ukládat min. a max. hodnoty
Výpis:
- v pohodě po sériové lince (USB) po odeslání nějakého příkazu do Arduina ti Arduino vysype uložené hodnoty.
- nebo SD karta do nějakého souboru, tu SD si pak přečteš v PC klidně
chce to definovat více i kolem HW - jak dlouhé časy předpokládáš a jakou chybu pažaduješ (podle toho se musí ošetřit HW nějakými odpory a kondikem tzv. zákmity kontaktu)
Klidně pomohu s tou verzí bez SD karty až to upřesníš .... kolik toho ukládat atd.
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: Ukládání časových hodnot
Díky za zájem, časová hodnota by měla být okolo 3 minut a počet hodnot by byl tak okolo 15ti denně . Nevím jestli je to možné , ale stačili by hodnoty do velikosti paměti a staré přepisovat . Určitě by stačilo 50 posledních hodnot .Když dojde k výpadku, tak se nic neděje protože přijdou další data. Verzi bez SD karty bych ocenil . Zakmitnutí řeším optočlenem a rcčlenem, takže v tom bych potíž asi nečekal.
Jak píšu, v programování těchto věcí jsem malej kluk Díky
Jak píšu, v programování těchto věcí jsem malej kluk Díky
Re: Ukládání časových hodnot
Případně si data ukládej na SD, nebo do databáze.
Re: Ukládání časových hodnot
Mě bohatě stačí ty data porovnat. Zálohování nepotřebuji.
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: Ukládání časových hodnot
50 hodnot není problém, u GSM meteostanic ukládám i 200 hodnot, když nejdou odeslat.rickmann píše: ↑01 led 2020, 18:12Díky za zájem, časová hodnota by měla být okolo 3 minut a počet hodnot by byl tak okolo 15ti denně . Nevím jestli je to možné , ale stačili by hodnoty do velikosti paměti a staré přepisovat . Určitě by stačilo 50 posledních hodnot .Když dojde k výpadku, tak se nic neděje protože přijdou další data. Verzi bez SD karty bych ocenil . Zakmitnutí řeším optočlenem a rcčlenem, takže v tom bych potíž asi nečekal.
Jak píšu, v programování těchto věcí jsem malej kluk Díky
Ale těch 3 minut se bojím - někdo tu dělal nějaké 5min intervaly a chtěl dost přesnost, nevím jak je Arduino přesné. Třeba to někdo zkoumal ....
A přesnost co požaduješ, jestli to spouštět od "přerušení"...
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"
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: Ukládání časových hodnot
Tak mám to hotové,
ale musím to doladit
lidi, nefunguje mi ukládání do
int elapsed[10];
sem tam tam přetečou nesmysly, heeelp
ale musím to doladit
lidi, nefunguje mi ukládání do
int elapsed[10];
sem tam tam přetečou nesmysly, heeelp
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"
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: Ukládání časových hodnot
Tak uz to funguje
STAR/STOP je na BIN 2 HIGH=start LOW=stop - jde to předělat
když po serialmonitoru napíšeš "p" a odešleš vypíše to všechny měření - lze upravit
je to složenina z mých projektů a z serialkomunikace je z místního budíku od někoho
PS: dělal jsem to na tabletu, tak uvidíme
STAR/STOP je na BIN 2 HIGH=start LOW=stop - jde to předělat
když po serialmonitoru napíšeš "p" a odešleš vypíše to všechny měření - lze upravit
je to složenina z mých projektů a z serialkomunikace je z místního budíku od někoho
Kód: Vybrat vše
/*
Mereni delky pulzu pomoci millis();
*/
byte casuji = 0;
byte cislomereni = 0;
unsigned long start, finished, over; // ulozeni casu START,STOP
unsigned long elapsed[10]; // vysledny napereny cas - pole pro 10 mereni
void setup()
{
Serial.begin(9600);
pinMode(2, INPUT); // start/stop
}
void loop()
{
if (digitalRead(2)==HIGH && casuji==0) //START
{
start=millis();
delay(200); // potlaceni zakmitu
Serial.println("Start...");
casuji = 1;
}
if (digitalRead(2)==LOW && casuji==1) //STOP
{
finished=millis();
delay(200); // potlaceni zakmitu
Serial.println("Stop...");
casuji = 0;
elapsed[cislomereni]=finished-start;
Serial.print("Zmereno c.");
Serial.println(cislomereni + 1);
cislomereni++;
if(cislomereni==9) cislomereni=0;
}
SerialComm(); //vycteni dat ze seriove linky
}
void OdeslatVysledky()
{
for(int x=0; x<=9; x++) {
float h,m,s,ms;
elapsed[x];
h=int(elapsed[x]/3600000);
over=elapsed[x]%3600000;
m=int(over/60000);
over=over%60000;
s=int(over/1000);
ms=over%1000;
Serial.print("Zaznam ");
Serial.print(x+1);
Serial.print(" Raw time: ");
Serial.print(elapsed[x]);
Serial.print(" Time: ");
Serial.print(h,0);
Serial.print("h ");
Serial.print(m,0);
Serial.print("m ");
Serial.print(s,0);
Serial.print("s ");
Serial.print(ms,0);
Serial.println("ms");
}
}
//serial communication with PC
void SerialComm() {
//first char - type of data
//second and third char - data
//there are used only "printable" characters
if (Serial.available() > 0) {
byte receivedCommand;
receivedCommand = Serial.read(); //read first char
delay(10); //wait for other char
byte receivedDataTens;
receivedDataTens = Serial.read();
receivedDataTens -= 48; // ASCII code for "0" is 48
byte receivedDataOnes;
receivedDataOnes = Serial.read();
receivedDataOnes -= 48; // ASCII code for "0" is 48
byte receivedData;
receivedData = (receivedDataTens * 10) + receivedDataOnes;
if (receivedData > 99) {
//maximal value is 99
receivedData = 0; //value is out of range
}
switch (receivedCommand) {
case 112:
//112 = p
if (receivedData > 1) {
receivedData = 1;
}
OdeslatVysledky();
break;
}
//flush serial data
Serial.flush();
}
}
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: Ukládání časových hodnot
Pozor na stav, kdy se připojí k Arduinu USB kabel od notebooku.
Při tom se obvykle provádí automatický reset Arduina, takže se data z RAM smažou (ještě před tím, než se stačí stáhnout).
Tady jsou popsané detaily, jak to řešit:
https://playground.arduino.cc/Main/Disa ... onnection/
Při tom se obvykle provádí automatický reset Arduina, takže se data z RAM smažou (ještě před tím, než se stačí stáhnout).
Tady jsou popsané detaily, jak to řešit:
https://playground.arduino.cc/Main/Disa ... onnection/
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: Ukládání časových hodnot
díky, to mne nenapadlo, já to dělám na Arduinu bez USB, tak bych na to nepřišel ....AstroMiK píše: ↑01 led 2020, 21:49Pozor na stav, kdy se připojí k Arduinu USB kabel od notebooku.
Při tom se obvykle provádí automatický reset Arduina, takže se data z RAM smažou (ještě před tím, než se stačí stáhnout).
Tady jsou popsané detaily, jak to řešit:
https://playground.arduino.cc/Main/Disa ... onnection/
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"
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 19 hostů