Arduino - Analog Input - AREF

Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
kodl69
Příspěvky: 7627
Registrován: sob črc 19, 2014 8:56 pm
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: Arduino - Analog Input - AREF

Příspěvek od kodl69 »

INA3221 na destičce z aliexpresu taky skrývá nějaký úskalí, když máš problém s tímhle, tak nevím nevím... nakousnu to, že se na desce musí něco přerušit, něco odpájet a připojit externí bočníky, pokud chceš měřit víc než 1A. A bočníky pro víc než 26V musí být v - polu baterky. Google poradí...
A měření napětí? proč, to měří několik zařízení v systému, tak proč ještě jednou? u mě minimálně tři: 2x diyBMS a regulátor Midnite150. Kdybych přidal ještě další měření, tak už nevím, kterou hodnotu si vybrat :)
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.
Uživatelský avatar
ViktorEX
Příspěvky: 416
Registrován: stř zář 16, 2020 5:45 pm

Re: Arduino - Analog Input - AREF

Příspěvek od ViktorEX »

kodl ... odpoved asi takova: a je to napsano vyse, je videt, ze taky ctete polovinu tech nesmyslu co pisu ...
bude se opakovat

1) tu pitomost v zasade nepotrebuji, protoze vsechny ty hodnoty tady ve sklepe najdu
2) delam to hlavne kvuli dceri a jeji maturitni praci
3) celej bazmek mi je k nicemu, kdyz do nej nenacpu Volty na baterce
4) jakysi pofiderni ucel je na jednom displayi prehledne ukazat vsechna (priblizna) data
5) bonusem je, ze to funguje jako webserver na interni IP adrese, takze kdyz uz to stavime, nemusim furt dolu behat jak blazen a staci se mi kouknout na telefon

staci? dik. tak mi nerikej, ze uz ve sklepe volty mam. nema to logiku, bitte

jinak na jednom YT videu jsem to videl, objednal jsem to jen do foroty, protoze mi bylo blby objednat jen ten malej bazmek za 90 korun. pak se tady s tim muzu poprat a nekdo z vas mi do toho bude rad kafrat, aby bylo co resit. co mam jinak delat?, vsichni to mate vymysleny, a nikdo nenabizi nic hotovyho. takze se vymýšlí vyšlené a sám sebe okrádám o čas, když bych mohl dělat něco jinýho co umím, takže se učím, padám na hubu, dcera mi kouka pres rameno, a vy muzete predhazovat, proc merit Volty, kdyz uz ve sklepe jsou asi na 10ti mistech ... co byste jinak celej den delali? ze?

asi tak, jinak to novy arduino se chova trochu lip. ale furt se peru se syntaxí, programuji asi 100 let, ale na to arduino si nemuzu zvyknout. ma to problemy s promennyma, neumi to scitat a odcitat, hodiny stravim nad tim, jak napsat jednoduchou podminku. v tom jejich navodu na arduino je taky hovno. zadny priklady. pak ti nekde chybi mezera, uz to nefunguje. promenne int = int * float asi taky nic nedela jsem prave zjistil. asi tak. takze bud vsechno delas asi s milionem desetinnych mist, spousta pameti, a jak udelat int(x) nebo abs(x) tj. z promenne vzit jen celou cast jsem tam taky nikde nenasel. takze se to snazim vsechno jet v int a vše x100, abych neztratil presnost (ktera tam stejne neni) a na konci to vydelim 100. jednoduse receno seru se s volovinama, a jeste to nemeri dobre. ty hodnoty proud z GRIDU vcelku ok, z regulatoru taky, jen ten proud z baterky do baraku pise nesmysly. kdyz si koef odladim spotrebu na 500W, tak skutecnou spotrebu 2400W to ukaze jako 1600W apod. je to krám.

jinak to skakani asi dela to arduino. jsem to meril voltmetrem, dal jsem tam 5mikroF kondik, to by musela ta hodnota byt jako pribita, a furt to skace. takze zehlim na 100x prumer klouzavej, vysledek je, jako kdyz se honi pes za vocasem.

cipis: s diodou dik za tip, zkusim, asi jsem to pochopil.
(polo) - Ostrov 13,8 kWp (bude 15 kWp, už to tu leží), 2x Mppt Epever 5kW, Batt Lifepo4 18kWh, 3x invertor 6kW (čistý sinus) .... 300K CZK bez práce, všechno nějaká čína,

14.7. -31.12.2021
21,4 kwh/den, 57% soběstačnost
Celkem spotřeba ... 3,69 MWh

1.1. -27.3.2022,
20,6 kwh/den, 57% soběstačnost
Celkem spotřeba ... 1,8 MWh
Uživatelský avatar
beethowen
Příspěvky: 874
Registrován: pát čer 23, 2017 7:46 pm
Bydliště: Brno-venkov

Re: Arduino - Analog Input - AREF

Příspěvek od beethowen »

A proč to teda neudělá dcera, když je to její maturitní práce?
Uživatelský avatar
ViktorEX
Příspěvky: 416
Registrován: stř zář 16, 2020 5:45 pm

Re: Arduino - Analog Input - AREF

Příspěvek od ViktorEX »

jo, na tuhle otazku jsem cekal ... dalsi otazky, ktere by my zvedly tlak?

treba tohle:

if ((loadPower < 1000)){
loadPower = loadPower * 10;
}

nefunguje

if (loadPower < 1000){
loadPower = loadPower * 10;
}

nefunguje

if (loadPower<1000){
loadPower = loadPower * 10;
}

nefunguje

if (loadPower<1000) {
loadPower = loadPower * 10;
}

nefunguje

muze mi nekdo udelat tu laskavost, a namisto hloupych otazek mi pomoct, co je na tom zapisu spatne? dik ...

v tuto dobu jede promenna v hodnote kolem 600-700 (coz odpovida 6,0-7,0 A) a do te podminky to nechce vlezt! doprdele.... a s takovejme pitomostma tady bojujem... ja nevim co je spatne. pritom priklad na www:

if (x > 120) {
digitalWrite(LEDpin1, HIGH);
digitalWrite(LEDpin2, HIGH);
}
(polo) - Ostrov 13,8 kWp (bude 15 kWp, už to tu leží), 2x Mppt Epever 5kW, Batt Lifepo4 18kWh, 3x invertor 6kW (čistý sinus) .... 300K CZK bez práce, všechno nějaká čína,

14.7. -31.12.2021
21,4 kwh/den, 57% soběstačnost
Celkem spotřeba ... 3,69 MWh

1.1. -27.3.2022,
20,6 kwh/den, 57% soběstačnost
Celkem spotřeba ... 1,8 MWh
Uživatelský avatar
ViktorEX
Příspěvky: 416
Registrován: stř zář 16, 2020 5:45 pm

Re: Arduino - Analog Input - AREF

Příspěvek od ViktorEX »

tak vas pobavim

problem neni v tomhle: if (loadPower<1000) {

problem je v tomhle: loadPower = loadPower * 10;

to me poser... kdo tohle vymýšlel
(polo) - Ostrov 13,8 kWp (bude 15 kWp, už to tu leží), 2x Mppt Epever 5kW, Batt Lifepo4 18kWh, 3x invertor 6kW (čistý sinus) .... 300K CZK bez práce, všechno nějaká čína,

14.7. -31.12.2021
21,4 kwh/den, 57% soběstačnost
Celkem spotřeba ... 3,69 MWh

1.1. -27.3.2022,
20,6 kwh/den, 57% soběstačnost
Celkem spotřeba ... 1,8 MWh
Uživatelský avatar
lemra79
Příspěvky: 494
Registrován: sob bře 09, 2019 5:30 pm
Lokalita: Usteckoorlicko
Systémové napětí: 48V
Výkon panelů [Wp]: 12360
Kapacita baterie [kWh]: 10?
Bydliště: Usteckoorlicko

Re: Arduino - Analog Input - AREF

Příspěvek od lemra79 »

nemydlej se ti zeme tech vstupnich signalu? vsechno to ma jednu zem tak je idealni mit vsechny vstupy vzajemne galvanicky oddelene, coz s odporovyma delicema a bocnikama chce opatrnost, ale vim prd, jak to mas.
Jinko 225 W / 6,075 kWp, GWL/Sunny Mono 310Wp / 2,79 kWp, Energetica 385 Wp / 3,495 kWp
PIP 5048 MG, Fangpusun MPPT150/60TR, Epever 4415
li ion 350 Ah@58V, ICC@rpi3+, celkem instalováno 12,36 kWp, 460 m.n.m.
Uživatelský avatar
ViktorEX
Příspěvky: 416
Registrován: stř zář 16, 2020 5:45 pm

Re: Arduino - Analog Input - AREF

Příspěvek od ViktorEX »

jsou, jsou tam halovy snimace, je to napsany nahore. vsechny maj spolecny plus-minus, a k tomu 3x analog, z kazdyho jeden na to neni co zkazit, alespon si to myslim.

to programovaní ...
takze zapis, kterej uz umel i sinclair a = a + 1 ... asi nejde, musi byt a+= 1 (myslim, ze ta mezera mezi = a 1 tam musí byt, a+=1 nefunguje
zrejme to jde udelat i s minus, tj. a-=1
ale nejde udelat a*=10 (coz by tedy podle mohlo znamenat a = a * 10... to nejde
zrejme u nasobeni se musi pouzij druha promenna b = a * 10 a pak si ji dole zase strcis do a ... a = b.... hahaha, asi uz jsem na tuhle sragoru moc starej
(polo) - Ostrov 13,8 kWp (bude 15 kWp, už to tu leží), 2x Mppt Epever 5kW, Batt Lifepo4 18kWh, 3x invertor 6kW (čistý sinus) .... 300K CZK bez práce, všechno nějaká čína,

14.7. -31.12.2021
21,4 kwh/den, 57% soběstačnost
Celkem spotřeba ... 3,69 MWh

1.1. -27.3.2022,
20,6 kwh/den, 57% soběstačnost
Celkem spotřeba ... 1,8 MWh
kodl69
Příspěvky: 7627
Registrován: sob črc 19, 2014 8:56 pm
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: Arduino - Analog Input - AREF

Příspěvek od kodl69 »

nechápu, tohle normálně používám, nedojde ti k přetečení rozsahu čísla nebo tak něco? jak máš deklarovanou proměnnou loadPower ?
float nebo integer, a je to skutčně tak? s podobnou blbostí jsem se dost natrápil, mrkni na https://kmlinux.fjfi.cvut.cz/~fabiadav/ ... -konstanty - ostatně tady na té stránce dostaneš dost odpovědí k "C" jehož trochu zparchantělá verze je v arduino ide...
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.
Uživatelský avatar
ViktorEX
Příspěvky: 416
Registrován: stř zář 16, 2020 5:45 pm

Re: Arduino - Analog Input - AREF

Příspěvek od ViktorEX »

prosim te, uz to beha.

long loadPower
float ReadLoadCurrent[0]


loadPower = ReadLoadCurrent[0] / 6; //ReadLoadCurrent je bitova hodnota, takze cosi mezi 0-1023, obvykle 600-700 minus vynulovani 498 = cca 150/6 = vyjdou Ampery (podle senzoru to dela 6-13 bodu na 1 amperu a je to nelinearni)

// tady jsem to skokove vypodminkoval aby kdyz je 500W spotreba, aby alespon kolem 500 litalo, stejne tak i na 1500/2000 atd)
if (loadPower < 1000) {
ReadLoadCurrent[0] = loadPower * 11;
}
else if ((loadPower > 1000) && (loadPower < 2000)){
ReadLoadCurrent[0] = loadPower * 13;
}
else if ((loadPower > 2000) && (loadPower < 4000)){
ReadLoadCurrent[0] = loadPower * 15;
}
else if ((loadPower > 4000) && (loadPower < 6000)){
ReadLoadCurrent[0] = loadPower * 18;
}
else if ((loadPower > 6000) && (loadPower < 8000)){
ReadLoadCurrent[0] = loadPower * 21;
}
else if ((loadPower > 8000) && (loadPower < 20000)){
ReadLoadCurrent[0] = loadPower * 25;
}
loadPower = ReadLoadCurrent[0] / 10; // a tady v loadPower se objevi plus minus americky autobus mereny pocet A

ty koeficienty jsou zatim jen nastrel. musim pak doupravit, az se mi objevi ty spravne spotreby, taim jsem odchytil do 3000W

jo, ale treba tenhle zapis nikde u IF funkce nenajdes:
else if ((loadPower > 8000) && (loadPower < 20000)){
https://www.arduino.cc/reference/en/lan ... ucture/if/
s takovym navodem at se jdou vyprdet
(polo) - Ostrov 13,8 kWp (bude 15 kWp, už to tu leží), 2x Mppt Epever 5kW, Batt Lifepo4 18kWh, 3x invertor 6kW (čistý sinus) .... 300K CZK bez práce, všechno nějaká čína,

14.7. -31.12.2021
21,4 kwh/den, 57% soběstačnost
Celkem spotřeba ... 3,69 MWh

1.1. -27.3.2022,
20,6 kwh/den, 57% soběstačnost
Celkem spotřeba ... 1,8 MWh
Uživatelský avatar
ViktorEX
Příspěvky: 416
Registrován: stř zář 16, 2020 5:45 pm

Re: Arduino - Analog Input - AREF

Příspěvek od ViktorEX »

a tady je ta virgule na kouzavy prumer, kazdym prubehem se vse posune v registru od 2 do 1, od 3 do 2, od 4 do 3 atd,
a do koef 100 se ulozi nova hodnota, to se zprumeruje. nic lepsiho me v te hruze nenapadlo. jak rikam, na vstupu je 5mikroF + 100nF, signal hladkej jak detska prdelka
hodnota na displayi je jak kdyz se pes honi za vocasem. hahaha

ReadLoadCurrent[0] = 0;
for(i = 1; i < 101; i++){
ReadLoadCurrent = ReadLoadCurrent[i + 1];
}
ReadLoadCurrent[100] = (analogRead(3) - 498);
delay(10);
ReadLoadCurrent[100] = (analogRead(3) - 498);
for(i = 1; i < 101; i++){
ReadLoadCurrent[0]+= ReadLoadCurrent;
}

dal jsem tam i to tvoje prazdny mereni ...

ten webserver maka taky fajn, tady jen nahrubo, musime jeste doladit grafiku, ale u snidane budu vedet, co potrebuji
Přílohy
solar-web-sever.jpg
(polo) - Ostrov 13,8 kWp (bude 15 kWp, už to tu leží), 2x Mppt Epever 5kW, Batt Lifepo4 18kWh, 3x invertor 6kW (čistý sinus) .... 300K CZK bez práce, všechno nějaká čína,

14.7. -31.12.2021
21,4 kwh/den, 57% soběstačnost
Celkem spotřeba ... 3,69 MWh

1.1. -27.3.2022,
20,6 kwh/den, 57% soběstačnost
Celkem spotřeba ... 1,8 MWh
RoKur
Příspěvky: 7
Registrován: stř črc 28, 2021 11:39 am
Lokalita: Jeseníky
Systémové napětí: 48V
Výkon panelů [Wp]: 1900
Kapacita baterie [kWh]: 15
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Vrbno pod Pradědem

Re: Arduino - Analog Input - AREF

Příspěvek od RoKur »

Ahoj Viktore, problém u proměnných není tak v arduinu jak, v kompilátoru jazyka c++
Pro porovnávání hodnot v podmínce používej pouze hodnoty int, jinak bude problém.
Proto vše ukládej do int a pouze pro vyobrazení převeď na float a ušetříš si spoustu času. Dále ve složených podmínkách doporučuji používat co nejvíce závorek hlavně mezi and, nebo or. I když se ti to může zdát logické a musí to fungovat, tak to bez závorky fungovat nemusí.
Arduino mi řídí barák, kotelnu, solární kolektory..., už více jak 7 let a bez problému. Ale veškeré hodnoty jsou int včetně času. Pokud potřebuji vyobrazit desetinné číslo, tak ho převedu na float až před vyobrazením. Veškeré výstupy jsou oddělené optikou. Na vstupy, které jsou delší, jak 30 cm, tak používám sběrnice.

A teď k tomu měření. Problém je v hallové sondě. Na ní působí veškeré magnetické pole v okolí. Měnič, střídač, to jsou obrovské zdroje mag. rušení. Další chyby se ti mohou naindukovat na vedení mezi modulem a arduinem. Máš tam všude kolem vodiče, ve kterých běhají desítky ampér. A ty už vyprodukuji pořádné magnetické pole. Proto to v pracovně funguje a ve sklepě ne.

Doporučuji Ti, pokud mohu, přejít o level výš tím, že vyhodíš tu hallovou hračku a přejdeš na profi řešení s bočníkem a proudovým modulem INA219, nebo INA3221, jak doporučil kodl69. Komunikace mezi modulem a Arduinem běží po sběrnici digitálně, tak je podstatně přesnější, než analog.
Tak v prvé řadě si pořiď bočník. např. tady https://www.aliexpress.com/item/1005002 ... ueS7S&mp=1 Vyber ho na 100 mV.
Poté z modulu vypájíš ten velký odpor, protože to je bočník pro proud 1A. Pokud ho tam necháš, tak to bude zkreslovat skutečný proud. Tuto chybu ale můžeš ošetřit SW. Pokud modul nemá na vstupu odrušovací kondenzátor a odpory, tak je tam musíš dodat. Keramický kondenzátor N1 dáš místo toho původního odporu. Dva odpory 10 Ohmu zapojíš na ty přívody, co jdou od nového bočníku.
Veškeré vodiče musí být stíněné, a na obou koncích musí být stínění ukostřeno. Vyvedeno na společnou zem, nebo mínus pol. Vedení musí být co nejkratší a a co nejdéle od silových vodičů.
Modul umístit co nejblíže k bočníku, ale aby nebyl blízko silových vodičů, Alespoň 20 cm, ale ne dál jak 1 m.
To bude asi tak v hrubém základě vše, co by jsi měl udělat, aby Ti to měřilo.

Přeji Ti hodně úspěchu.
Uživatelský avatar
ViktorEX
Příspěvky: 416
Registrován: stř zář 16, 2020 5:45 pm

Re: Arduino - Analog Input - AREF

Příspěvek od ViktorEX »

Rokur: pecka, dekuji ...

v zasade už jsem laborovaním na všechny body prisel (nebo je tuším, říkám tomu duchařina, jednou to funguje, jednou ne). vsechno jedu v celych cislech (int, long), kde je potreba jedu o dva řády výše, a nakonec to vydelim deseti nebo stem. vypocty jsou presnejsi a nemam ty zahadne problemy s cisly s desetinnymi misty. Stejne tak ty podminky ... vychazim z popisu na www arduino, ale tam je uplny prd. Tak stahuji ruzne programy a studuji syntaxi zapisu.

merit napeti pres analog jsem zavrhnul, uplna pitomost. stacila by presnost na 1/10, ale pri kazdem spusteni jiny level, nekdy 0,5V min, nekdy vic, AREF pomohl pouze zcasti. Takze napeti budu merit tou destickou jak jsi psal. Jeden kolega doporucil koupit zenerku, abych 55V srazil do meritelne oblasti pod 26V. Jen jsem v tomto pripade stale rozervanej, jestli v propustnem nebo zavernem smeru. Ale to si zmerim, az to budu drzet v ruce.

Desticku na mereni proudu jsem si objednal taky. Ale to spise pro pozdejsi hrani. Ted uz nam to jaksitaksi chodi, maturita je stale blíže, už nemáme moc čas na nové laborování. Takze s tim prijdu pozdeji.

jeste jednou dik za supr prispevek.
(polo) - Ostrov 13,8 kWp (bude 15 kWp, už to tu leží), 2x Mppt Epever 5kW, Batt Lifepo4 18kWh, 3x invertor 6kW (čistý sinus) .... 300K CZK bez práce, všechno nějaká čína,

14.7. -31.12.2021
21,4 kwh/den, 57% soběstačnost
Celkem spotřeba ... 3,69 MWh

1.1. -27.3.2022,
20,6 kwh/den, 57% soběstačnost
Celkem spotřeba ... 1,8 MWh
Uživatelský avatar
ViktorEX
Příspěvky: 416
Registrován: stř zář 16, 2020 5:45 pm

Re: Arduino - Analog Input - AREF

Příspěvek od ViktorEX »

treba jsem v jednom programu nasel tento zapis:

for (byte ii=0;ii<8;ii++) { // teto casti rozumim
char c=lbuf[ii]; // tohle je taky jasny
if (c='\0') break; // tohle bych uz asi u tabule nevysvetlil
d=(d<<4)+(((c>='0') && (c<='9'))?(c-'0'):(((c>='A') && (c<='F'))?(c-'A'+10):0)); // no a tady jsem v prdeli jak bata s drevakama
}
return d;
}
(polo) - Ostrov 13,8 kWp (bude 15 kWp, už to tu leží), 2x Mppt Epever 5kW, Batt Lifepo4 18kWh, 3x invertor 6kW (čistý sinus) .... 300K CZK bez práce, všechno nějaká čína,

14.7. -31.12.2021
21,4 kwh/den, 57% soběstačnost
Celkem spotřeba ... 3,69 MWh

1.1. -27.3.2022,
20,6 kwh/den, 57% soběstačnost
Celkem spotřeba ... 1,8 MWh
glottis
Příspěvky: 2571
Registrován: stř úno 02, 2022 10:30 am
Lokalita: okolí Mělníka
Systémové napětí: 48V
Výkon panelů [Wp]: 13000
Kapacita baterie [kWh]: 15

Re: Arduino - Analog Input - AREF

Příspěvek od glottis »

if (c='\0') break; --- kdyz je c (znak z toho pole bytu) 0, je to konec retezce. Nevim proc to maj tak krkolomne.

ternarni vyrazy znas?
(d<<4)+
podminka (((c>='0') && (c<='9'))
pravda ?(c-'0')
nepravda :(((c>='A') && (c<='F'))?(c-'A'+10):0))

d<<4 bitovy posuv o 4 bity coz je v praxi nasobeni 2^4 coz je ... (d*16)+ neco a to neco je podle vseho prevod textove reprezentace hex cisla na normalni cislo
RoKur
Příspěvky: 7
Registrován: stř črc 28, 2021 11:39 am
Lokalita: Jeseníky
Systémové napětí: 48V
Výkon panelů [Wp]: 1900
Kapacita baterie [kWh]: 15
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Vrbno pod Pradědem

Re: Arduino - Analog Input - AREF

Příspěvek od RoKur »

Viktore, nemáš zač.
To napětí sraz pomocí dvou odporů. Když budou mít oba stejnou hodnotu, tak mezi něma budeš mít poloviční napětí.
Např. Určíme si max. napětí = 60 V. Proud 5 mA. Odpor bude podle Ohmova zákona R = U/I = 12 kOhmu
Pokud budeš chtít, aby v uzlu bylo napětí max 26 V tak ten odpor rozdělíš na dva ve stejném poměru (34:26) jako je napětí
Nebo si každou hodnotu můžeš spočítat podle Ohmova zákona.
Pro R1:
U1=34V
I = 0.005 A
R1 = U1/I

Pro R2:
U2 = 26V
I = 0.005A
R2 = U2/I

Ztrátový výkon na odporech bude kolem 0,15 Wattů
Mezi plusem a minusem zapojíš ty dva odpory do serie a mezi nimi proti mínusu bude výstup těch 26V, když na vstupu bude 60V.


Tak ať se daří.

glottis:
To je klasická syntaxe jazyka C, C++
Můžeš řetězit přiřazení v jednom příkaze.
Já raději zůstávám u klasiky a rozdělim si to na více řádků. Je to pak přehlednější.
Naposledy upravil(a) RoKur dne ned úno 06, 2022 11:13 am, celkem upraveno 1 x.
Uživatelský avatar
ViktorEX
Příspěvky: 416
Registrován: stř zář 16, 2020 5:45 pm

Re: Arduino - Analog Input - AREF

Příspěvek od ViktorEX »

me nadseni pro programovani zaclo nekdy v roku 82 na sinclairu a zahy na atari (basic)
ve skole potom cobol dalsi nepouzitelne jazyky pro hromadne zpracovani dat (to frcely derne stitky)
pak pauzicka, potom nekdy 1996-7 jsem v praci delal pomocne rutiny pro excel ve visual basicu, to jsem rozsiril o kompletni zpracovani ekonomickych dat v accessu (taky pomerne rozsahle programy ve VisualBasic). pak prisel update MS a pulka mi toho prestala pracovat, tak jsem se samostudiem a knihami prokousal k prvnim verzim PHP a vsechno i graficky predelal na php. prakticky to nebylo mou pracovni naplni, ale strasne mi zjednodusilo samotnou praci, a hlavne moje vysledky byly bez chyb, v ramci intranetu podniku meli vsichni vedouci potrebna data vcas a bez chyb. pak jsem 2005 zcela preklopil zivot a programovani mi skoro zmizelo ze zivota. php se mezitim zapisuje zpusobem, kteremu nerozumim, takze si na eshop najimam odbornika. a ted hold ve spojeni s mou elektrarnou a maturitou dcery se prokousavame arduinem.
ani bych se nebranil treba 2 mesicnimu vecernimu studiu programovani arduina nebo ty vylepseny verze.
(polo) - Ostrov 13,8 kWp (bude 15 kWp, už to tu leží), 2x Mppt Epever 5kW, Batt Lifepo4 18kWh, 3x invertor 6kW (čistý sinus) .... 300K CZK bez práce, všechno nějaká čína,

14.7. -31.12.2021
21,4 kwh/den, 57% soběstačnost
Celkem spotřeba ... 3,69 MWh

1.1. -27.3.2022,
20,6 kwh/den, 57% soběstačnost
Celkem spotřeba ... 1,8 MWh
Uživatelský avatar
ViktorEX
Příspěvky: 416
Registrován: stř zář 16, 2020 5:45 pm

Re: Arduino - Analog Input - AREF

Příspěvek od ViktorEX »

jeste jeden joke navrch:

ctu hodnotu z analogu:
long int voltageCell01 = 0;

voltageCell01 = analogRead (A0) * 100;
Serial.println (voltageCell01);

funguje, puvodni hodnota 58 (0-1023), vytiskne 5800

*********************************************************************

voltageCell01 = analogRead (A0) * 1000;
Serial.println (voltageCell01);

nefunguje, puvodni hodnota 58, vytiskne -7485 nebo cosi takovyho

************************************************************************
potrebovali jsme *10000, aby 58 * 10000 = 580000 / 1754 = 330 (= rozumeno jako 3,30V)
reseni je vytvorit si promennou koef2 jako int koef2 = 10000;

voltageCell01 = analogRead (A0) * koef2;
Cell01 = voltageCell01 / koef; // pak tam pridam jen tohle a hotovo.
Serial.println (voltageCell01);

funguje, puvodni hodnota 58, vytiskne 330

****************************************************************************

takze to jen pro nekoho, kdo si bude hrat s arduinem.
(polo) - Ostrov 13,8 kWp (bude 15 kWp, už to tu leží), 2x Mppt Epever 5kW, Batt Lifepo4 18kWh, 3x invertor 6kW (čistý sinus) .... 300K CZK bez práce, všechno nějaká čína,

14.7. -31.12.2021
21,4 kwh/den, 57% soběstačnost
Celkem spotřeba ... 3,69 MWh

1.1. -27.3.2022,
20,6 kwh/den, 57% soběstačnost
Celkem spotřeba ... 1,8 MWh
RoKur
Příspěvky: 7
Registrován: stř črc 28, 2021 11:39 am
Lokalita: Jeseníky
Systémové napětí: 48V
Výkon panelů [Wp]: 1900
Kapacita baterie [kWh]: 15
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Vrbno pod Pradědem

Re: Arduino - Analog Input - AREF

Příspěvek od RoKur »

Pokud použiješ int, tak ten je od -32 000 do + 32 000. Drobné schválně nepíši, protože se mi už z hlavy nechce dělit 65536.
Záporná čísla jsou označena nejvyšším bitem. Přetekla ti hodnota, proto máš výsledek záporný.
Pokud budeš pracovat pouze s kladnými čísly, tak proměnou deklaruj
unsigned int voltageCell01; 0 - 65 535
unsigned long CeleCislo; 0 - 4 294 967 295
glottis
Příspěvky: 2571
Registrován: stř úno 02, 2022 10:30 am
Lokalita: okolí Mělníka
Systémové napětí: 48V
Výkon panelů [Wp]: 13000
Kapacita baterie [kWh]: 15

Re: Arduino - Analog Input - AREF

Příspěvek od glottis »

ViktorEX píše:jeste jeden joke navrch:

ctu hodnotu z analogu:
long int voltageCell01 = 0;

voltageCell01 = analogRead (A0) * 100;
Serial.println (voltageCell01);

funguje, puvodni hodnota 58 (0-1023), vytiskne 5800

*********************************************************************

voltageCell01 = analogRead (A0) * 1000;
Serial.println (voltageCell01);

nefunguje, puvodni hodnota 58, vytiskne -7485 nebo cosi takovyho

************************************************************************
potrebovali jsme *10000, aby 58 * 10000 = 580000 / 1754 = 330 (= rozumeno jako 3,30V)
reseni je vytvorit si promennou koef2 jako int koef2 = 10000;

voltageCell01 = analogRead (A0) * koef2;
Cell01 = voltageCell01 / koef; // pak tam pridam jen tohle a hotovo.
Serial.println (voltageCell01);

funguje, puvodni hodnota 58, vytiskne 330

****************************************************************************

takze to jen pro nekoho, kdo si bude hrat s arduinem.
to neni ani tak joke jako spis ze by sis mel precist neco o datovych typech :)

pokud udelas to co delas
long x = analogRead (A0) * 1000;

tak analogRead vraci int a nasobis to cislem coz kompilator vezme taky jako int a vysledek int * int je kupodivu int :) a to ti samozrejme pretece driv nez to das do toho longu.

zkus tohle

long x = analogRead (A0) * 1000L;

int nasobis longem a vznikne long a nic nepretece
Uživatelský avatar
ViktorEX
Příspěvky: 416
Registrován: stř zář 16, 2020 5:45 pm

Re: Arduino - Analog Input - AREF

Příspěvek od ViktorEX »

tam ale neslo o promennou voltageCell01 (ta je deklarovana jako long int) ale o to číslo "1000"
kdyz jsem nahradil "1000" jako ciselnou hodnotu promennou koef2 = 1000 (resp 10000) ... zacalo to fungovat

takovy problemky jsou super ... to jsme nemeli ani na sinclairu ani na atari ... takovyhle lapalie
(polo) - Ostrov 13,8 kWp (bude 15 kWp, už to tu leží), 2x Mppt Epever 5kW, Batt Lifepo4 18kWh, 3x invertor 6kW (čistý sinus) .... 300K CZK bez práce, všechno nějaká čína,

14.7. -31.12.2021
21,4 kwh/den, 57% soběstačnost
Celkem spotřeba ... 3,69 MWh

1.1. -27.3.2022,
20,6 kwh/den, 57% soběstačnost
Celkem spotřeba ... 1,8 MWh

  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek