Fórum | MyPower.CZ | Obnovitelné zdroje energie - energetická soběstačnost | Právě je čtv črc 19, 2018 10:51 am


Začátky s Arduinem

Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
PředchozíDalší

Re: Začátky s Arduinem

Příspěvekod kodl69 » čtv črc 23, 2015 7:59 am

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.
ostrov 3000Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 2462
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 169

Re: Začátky s Arduinem

Příspěvekod bednar » čtv črc 23, 2015 10:31 am

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 presne :-( neviem kde môže byť problém. Ďakujem opäť za radu.


Řekl bych, že je třeba ošetřit zákmity toho tlačítka.
bednar
 
Příspěvky: 51
Registrován: čtv čer 07, 2012 1:15 pm
Reputation: 1

Re: Začátky s Arduinem

Příspěvekod Pavel.Z. » čtv črc 23, 2015 9:14 pm

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
Pavel.Z.
 
Příspěvky: 114
Registrován: ned lis 25, 2012 10:06 am
Reputation: 4

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » ned pro 27, 2015 8:44 pm

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
250w_gridfree
 
Příspěvky: 72
Registrován: pon zář 08, 2014 9:55 am
Reputation: 2

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » čtv led 14, 2016 1:46 pm

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
250w_gridfree
 
Příspěvky: 72
Registrován: pon zář 08, 2014 9:55 am
Reputation: 2

Re: Začátky s Arduinem

Příspěvekod kodl69 » čtv led 14, 2016 2:48 pm

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.
ostrov 3000Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 2462
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 169

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » čtv led 14, 2016 3:00 pm

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
250w_gridfree
 
Příspěvky: 72
Registrován: pon zář 08, 2014 9:55 am
Reputation: 2

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » pát led 15, 2016 1:13 pm

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) 49 krát
250w_gridfree
 
Příspěvky: 72
Registrován: pon zář 08, 2014 9:55 am
Reputation: 2

Re: Začátky s Arduinem

Příspěvekod solárník » pát led 15, 2016 1:24 pm

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.
solárník
 
Příspěvky: 1398
Registrován: pát bře 15, 2013 7:53 pm
Reputation: 51

Re: Začátky s Arduinem

Příspěvekod kodl69 » pát led 15, 2016 1:34 pm

jestli není problém desetinná tečka místo čárky...
ostrov 3000Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 2462
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 169

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » pát led 15, 2016 1:36 pm

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);
250w_gridfree
 
Příspěvky: 72
Registrován: pon zář 08, 2014 9:55 am
Reputation: 2

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » pát led 15, 2016 1:38 pm

potřeboval bych ukládat 18,45 místo18.45
250w_gridfree
 
Příspěvky: 72
Registrován: pon zář 08, 2014 9:55 am
Reputation: 2

Re: Začátky s Arduinem

Příspěvekod solárník » pát led 15, 2016 1:53 pm

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á.
solárník
 
Příspěvky: 1398
Registrován: pát bře 15, 2013 7:53 pm
Reputation: 51

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » pát led 15, 2016 1:55 pm

Třetí varianta se mi zdá nejsnažší... jdu testovat Díky
250w_gridfree
 
Příspěvky: 72
Registrován: pon zář 08, 2014 9:55 am
Reputation: 2

Re: Začátky s Arduinem

Příspěvekod solárník » pát led 15, 2016 2:08 pm

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.
solárník
 
Příspěvky: 1398
Registrován: pát bře 15, 2013 7:53 pm
Reputation: 51

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » pát led 15, 2016 2:20 pm

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
250w_gridfree
 
Příspěvky: 72
Registrován: pon zář 08, 2014 9:55 am
Reputation: 2

Re: Začátky s Arduinem

Příspěvekod solárník » pát led 15, 2016 2:27 pm

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.
solárník
 
Příspěvky: 1398
Registrován: pát bře 15, 2013 7:53 pm
Reputation: 51

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » pát led 15, 2016 2:38 pm

tak int funguje, už to ukazuje 1845 co se 2. řádku týká - viz obrázek
Přílohy
problem.jpg
250w_gridfree
 
Příspěvky: 72
Registrován: pon zář 08, 2014 9:55 am
Reputation: 2

Re: Začátky s Arduinem

Příspěvekod solárník » pát led 15, 2016 2:45 pm

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á
solárník
 
Příspěvky: 1398
Registrován: pát bře 15, 2013 7:53 pm
Reputation: 51

Re: Začátky s Arduinem

Příspěvekod kodl69 » pát led 15, 2016 3:01 pm

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áš.
ostrov 3000Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 2462
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 169

PředchozíDalší

Zpět na Arduino

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník

Reputation System ©'