Začátky s Arduinem
Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
-
- Příspěvky: 7811
- Registrován: sob črc 19, 2014 8:56 pm
- Reputace: 953
- Lokalita: severně od Brna
- Systémové napětí: 48V
- Výkon panelů [Wp]: 8kWp
- Kapacita baterie [kWh]: 12kWh
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
Re: Začátky s Arduinem
zkusil bych "unsigned long lastjob1=0" asi je to tím, jak přeteče registr časovače. Já na to používám knihovnu interval.h
je tam ošetřený i přetečení registru millis co je každých 72 hodin, zkus si to najít na webu.
je tam ošetřený i přetečení registru millis co je každých 72 hodin, zkus si to najít na webu.
ostrov skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
-
- Příspěvky: 81
- Registrován: čtv čer 07, 2012 2:15 pm
- Reputace: 3
Re: Začátky s Arduinem
Řekl bych, že je třeba ošetřit zákmity toho tlačítka.Pavel.Z. píše:Mám jednoduchý program, kde snímam stav tlačítka a chcem aby sa na x sekúnd zapla led napr. 5s. Všetko ide bez problémov, len keď to skúšam bez delay, tak raz svieti 2s, raz 5s, nikdy to nie je presneneviem kde môže byť problém. Ďakujem opäť za radu.
-
- Příspěvky: 164
- Registrován: ned lis 25, 2012 10:06 am
- Reputace: 5
Re: Začátky s Arduinem
díky moc. Tým tlačítkom to ale na 99perrcent nebude. Už mám aj taký program čo je ošetrené tlačítko a stále. Skúsim cez víkend tú knihovňu. Vďaka
-
- Příspěvky: 82
- Registrován: pon zář 08, 2014 10:55 am
- Reputace: 2
Re: Začátky s Arduinem
Ahoj, spustil sem arduino droid na xiaomi. Při kompilaci to nenajde knihovnu, ikdyž v přehledu dostupných je. Mám android 2. den, adresářovou strukturu mám stejnou jako u původních knihoven, které jdou kompilovat. Dělám někde chybu? Díky za info
-
- Příspěvky: 82
- Registrován: pon zář 08, 2014 10:55 am
- Reputace: 2
Re: Začátky s Arduinem
Tak jsem sw pro arduino na androidoi nerozchodil, ale vřera jsem se učil a sestrojil logovač. Na zkoušku připojen teploměr a hodiny. tady je výsledek https://www.facebook.com/pavel.taclik.3 ... nref=story Prosím, jak zkrotit proměnnou, aby se ukládal čas ve formátu 01:08 a ne 1:8 Teday aby v proměnné bylo 01 a ne jen 1 Díky za radu
-
- Příspěvky: 7811
- Registrován: sob črc 19, 2014 8:56 pm
- Reputace: 953
- Lokalita: severně od Brna
- Systémové napětí: 48V
- Výkon panelů [Wp]: 8kWp
- Kapacita baterie [kWh]: 12kWh
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
Re: Začátky s Arduinem
stačí se podívat na příklad s hodinami co je u knihovny rtc, prostě se do stringu dopíšou nuly, pokud je číslo menší než 10.
Ale pro další zpracování logovanejch dat to asi problém nebude, excel si to jistě přebere.
Ale pro další zpracování logovanejch dat to asi problém nebude, excel si to jistě přebere.
ostrov skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
-
- Příspěvky: 82
- Registrován: pon zář 08, 2014 10:55 am
- Reputace: 2
Re: Začátky s Arduinem
do výpisu na serial to tak funguje, jde jen o kosmetickou drobnost, graf excel zpracuje dobře i bez nul. Nevím, jak zneplatnit nulu v proměnný. Pak mi ji to tam přihazuje, i když už není potřeba
-
- Příspěvky: 82
- Registrován: pon zář 08, 2014 10:55 am
- Reputace: 2
Re: Začátky s Arduinem
Nuly mám vyřešené, ale problém s grafem. Pokud ukládám celé číslo z DHT11, graf se kreslí pěkně. S použitím DS18B20 se mi nedaří vyplodit graf. Přitom data uložená na SD jsou pěkně ztrukturovaná. Čím to?
- Přílohy
-
nejde mi graf.ods
- (8.57 KiB) Staženo 198 x
-
- Příspěvky: 1588
- Registrován: pát bře 15, 2013 7:53 pm
- Reputace: 70
Re: Začátky s Arduinem
DHT11 stojí pěkně za ho**. Chyba měření vlhkosti až 10% (nehledě na to, co tvrdí v datasheetu) a časem se ještě zhoršuje. Hrozný senzor, který se používá v nejlevnějších stolních meteostaničkách. Je to způsobené i tím, že u nás ve všech eshopech prodávají čínské kopie senzorů. Ale konkrétně DHT11 má ten nejhorší - odporový senzor na vlhkost. Ten už se nepoužívá v solidních zařízeních nikde. Už pouze kvalitní kapacitní.
Originál senzory se dají koupit už pouze na mouseru nebo farnellu. Tam mám potvrzeno, že tolerance koupených senzorů jsou přesně podle datasheetu.
Když to koupíte v obyčejném našem e-shopu, nebo nedej bože na ebay, tak na datasheet rovnou zapomeňte. Místo chyby 2% RH to bude mít deset.
Originál senzory se dají koupit už pouze na mouseru nebo farnellu. Tam mám potvrzeno, že tolerance koupených senzorů jsou přesně podle datasheetu.
Když to koupíte v obyčejném našem e-shopu, nebo nedej bože na ebay, tak na datasheet rovnou zapomeňte. Místo chyby 2% RH to bude mít deset.
-
- Příspěvky: 7811
- Registrován: sob črc 19, 2014 8:56 pm
- Reputace: 953
- Lokalita: severně od Brna
- Systémové napětí: 48V
- Výkon panelů [Wp]: 8kWp
- Kapacita baterie [kWh]: 12kWh
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
Re: Začátky s Arduinem
jestli není problém desetinná tečka místo čárky...
ostrov skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
-
- Příspěvky: 82
- Registrován: pon zář 08, 2014 10:55 am
- Reputace: 2
Re: Začátky s Arduinem
neumím ji nahradit, mám to tak:
sensors.requestTemperatures();
String teplota = String(sensors.getTempC(TEPLOMER)); //String teplota = String(sensors.getTempC(TEPLOMER)+ 0.06); korekce teplomeru v případě potreby
DateTime now = RTC.now();
char cas [20];
sprintf (cas, "%02d:%02d:%02d___%02d:%02d ", now.day (), now.month (), now.year (), now.hour (), now.minute ()); //, now.second () vyjmuto
Serial.print(cas);
Serial.print(" ");
Serial.println(teplota);
String data =cas+teplota;
File soubor = SD.open( "data.csv", FILE_WRITE);
sensors.requestTemperatures();
String teplota = String(sensors.getTempC(TEPLOMER)); //String teplota = String(sensors.getTempC(TEPLOMER)+ 0.06); korekce teplomeru v případě potreby
DateTime now = RTC.now();
char cas [20];
sprintf (cas, "%02d:%02d:%02d___%02d:%02d ", now.day (), now.month (), now.year (), now.hour (), now.minute ()); //, now.second () vyjmuto
Serial.print(cas);
Serial.print(" ");
Serial.println(teplota);
String data =cas+teplota;
File soubor = SD.open( "data.csv", FILE_WRITE);
-
- Příspěvky: 82
- Registrován: pon zář 08, 2014 10:55 am
- Reputace: 2
Re: Začátky s Arduinem
potřeboval bych ukládat 18,45 místo18.45
-
- Příspěvky: 1588
- Registrován: pát bře 15, 2013 7:53 pm
- Reputace: 70
Re: Začátky s Arduinem
Mně kreslí grafy rovnou Arduino na webovou stránku pomocí html5 canvasu. Ale když už to musíš exportovat, tak buď to vynásob 100 a ukládej jako 1845 a pak si to v excelu zas vyděl, nebo to musíš asi převést na String (řetězec) a pak v něm vyměnit tečku za čárku. Je asi sto způsobů, jak to vyřešit, při printu dát jen celou část čísla pak čárku a pak desetinnou část čísla, to už záleží na tvé představivosti a umu.
Ale původní průser vznikl proto, že v ČR používáme desetinnu čárku a ve většině ostatních zemí (včetně itálie, kde naprogramovali Arduino IDE) desetinnou tečku.
Když si otevřeš v počítači mezinárodní nastavení a tam dáš jako oddělovač desetinné části tečku, tak to do excelu načteš i takhle a graf ti to udělá.
Ale původní průser vznikl proto, že v ČR používáme desetinnu čárku a ve většině ostatních zemí (včetně itálie, kde naprogramovali Arduino IDE) desetinnou tečku.
Když si otevřeš v počítači mezinárodní nastavení a tam dáš jako oddělovač desetinné části tečku, tak to do excelu načteš i takhle a graf ti to udělá.
-
- Příspěvky: 82
- Registrován: pon zář 08, 2014 10:55 am
- Reputace: 2
Re: Začátky s Arduinem
Třetí varianta se mi zdá nejsnažší... jdu testovat Díky
-
- Příspěvky: 1588
- Registrován: pát bře 15, 2013 7:53 pm
- Reputace: 70
Re: Začátky s Arduinem
Ta druhá varianta by byla třeba
double teplota; //tohle jen pro pořádek, v tom máš už asi teplotu takže to tam psát nebudeš
String t1 = String(teplota, 2); // převede na řetězec s názvem t1 s přesností na 2 desetinná místa
String t2 = t1.replace(".", ","); // vymění v t1 místo tečku čárku a uloží výsledek do proměnné t2
a už můžeš tisknout t2, kde je místo tečky čárka. Doufám , že si to pamatuju dobře, píšu to z hlavy, kdyby ne tak soráč, není složité si to na netu ověřit.
double teplota; //tohle jen pro pořádek, v tom máš už asi teplotu takže to tam psát nebudeš
String t1 = String(teplota, 2); // převede na řetězec s názvem t1 s přesností na 2 desetinná místa
String t2 = t1.replace(".", ","); // vymění v t1 místo tečku čárku a uloží výsledek do proměnné t2
a už můžeš tisknout t2, kde je místo tečky čárka. Doufám , že si to pamatuju dobře, píšu to z hlavy, kdyby ne tak soráč, není složité si to na netu ověřit.
-
- Příspěvky: 82
- Registrován: pon zář 08, 2014 10:55 am
- Reputace: 2
Re: Začátky s Arduinem
Když to vynásobím 100, tak se mi ukazuje 1845.00
z druhé možnosti nefunguje
tento řádek String t2 = t1.replace(".", ","); // vymění v t1 místo tečku čárku a uloží výsledek do proměnné t2
z druhé možnosti nefunguje
tento řádek String t2 = t1.replace(".", ","); // vymění v t1 místo tečku čárku a uloží výsledek do proměnné t2
-
- Příspěvky: 1588
- Registrován: pát bře 15, 2013 7:53 pm
- Reputace: 70
Re: Začátky s Arduinem
A) vysledek 1845 prirad do celociselne (napriklad int tepl = teplota) proměnné a pak to teprv tiskni.
B) urcite jsi to dobre opsal? Jestli jo podivam se na net kde je chyba. Pomohlo by kdybys poslal chybovou hlasku.
B) urcite jsi to dobre opsal? Jestli jo podivam se na net kde je chyba. Pomohlo by kdybys poslal chybovou hlasku.
-
- Příspěvky: 82
- Registrován: pon zář 08, 2014 10:55 am
- Reputace: 2
Re: Začátky s Arduinem
tak int funguje, už to ukazuje 1845 co se 2. řádku týká - viz obrázek
-
- Příspěvky: 1588
- Registrován: pát bře 15, 2013 7:53 pm
- Reputace: 70
Re: Začátky s Arduinem
Zkus tam dát jen
double teplota; //tohle jen pro pořádek, v tom máš už asi teplotu takže to tam psát nebudeš
String t1 = String(teplota, 2); // převede na řetězec s názvem t1 s přesností na 2 desetinná místa
t1.replace(".", ",");
a pak tisknout t1, co to udělá
double teplota; //tohle jen pro pořádek, v tom máš už asi teplotu takže to tam psát nebudeš
String t1 = String(teplota, 2); // převede na řetězec s názvem t1 s přesností na 2 desetinná místa
t1.replace(".", ",");
a pak tisknout t1, co to udělá
-
- Příspěvky: 7811
- Registrován: sob črc 19, 2014 8:56 pm
- Reputace: 953
- Lokalita: severně od Brna
- Systémové napětí: 48V
- Výkon panelů [Wp]: 8kWp
- Kapacita baterie [kWh]: 12kWh
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
Re: Začátky s Arduinem
já se snažím všchny proměnný udržet jako int nebo unsigned int, procesor to má rychlej spočítaný, a když se to má třeba poslat jako řetězec do rádiovýho modulu, je to jednodušší. Mít víc než 5 platnejch míst je z technickýho hlediska blbina, jako třeba: Měřím výkon tak, že na jednom a/d mám proud, na druhým napětí, tj 10bit rozlišení v optimálním případě, tj 1024 hodnot. Pokud postupuju rozumně, vystačím si s int: P=Iměř*Uměř*koeficient kterej si spočítám bokem podle děličů napětí a výsledek bude třeba vynásobenej 10 nebo 100 aby to pěkně do toho int vyšlo. Hlavně poznámky do kódu, jinak se v tom sám nevyznáš.
A nebo I=Iměř*koefI, U=Uměř*koefU , P=U*I a tady už jsem v koncích, koeficienty jsou třeba 0,01587, takže výsledek je jistě float, a už se v tom vezu, přetypování a další blbiny. Je potřeba strávit pár nocí při bádání nad takovejma věcma co mají fungovat a nefungují, a pak už znovu tu blbost neuděláš.
A nebo I=Iměř*koefI, U=Uměř*koefU , P=U*I a tady už jsem v koncích, koeficienty jsou třeba 0,01587, takže výsledek je jistě float, a už se v tom vezu, přetypování a další blbiny. Je potřeba strávit pár nocí při bádání nad takovejma věcma co mají fungovat a nefungují, a pak už znovu tu blbost neuděláš.
ostrov skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
-
- Podobná témata
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 3 Odpovědi
- 1861 Zobrazení
-
Poslední příspěvek od dumi
Kdo je online
Uživatelé prohlížející si toto fórum: Claudebot [Bot] a 0 hostů