Fórum | MyPower.CZ | Obnovitelné zdroje energie - energetická soběstačnost | Právě je stř lis 21, 2018 2:23 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 » stř kvě 20, 2015 10:17 am

asi to děláš moc složitě, tady v půlce stránky je funkce, jak uložit číslo integer (do 32000) do eeprom, vyzkoušel jsem to pro konstanty pro proudový čidla, je to ok: http://arduino8.webnode.cz/news/lekce-1 ... -a-eeprom/ takže jenom voláš eepromIntWrite(10, (hodnota)); nebo x=eepromintRead(10) - pozor, používá dvě adresy...
klidně bych zapisoval každou kWh, to nebude co 5s... eeprom prej vydrží 100000zápisů, to dřív vyměníš to arduino z jinýho důvodu. A nebo použít eeprom na i2c, některý rtc moduly mají 4kB paměti na sobě.
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 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: 2892
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 194

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » stř kvě 20, 2015 11:00 am

jj, studoval jsem to, ale z nějakýho důvodu se mi nepodařilo načíst zpět číslo, do mojí podoby to takhle zmutovalo z uvedeného návodu. Je pravda, za současných výkonových poměrů i při hodnotě zápisu po 1kWh při předpokládané životnosti eeprom mám vystaráno na 50 roků :) V příloze mám již zakomponováno do regulace, ještě jsem to nezkoušel - *sun* dnes nepracuje
Přílohy
solar_eeprom.ino
(2.87 KiB) 53 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 kodl69 » čtv kvě 21, 2015 7:34 am

díval jsem se na ten kod, to načtení z eepromm by mělo být v části setup, ne v deklaracích, funguje to i takto?
Funguje spolehlivě knihovna dallastemperature ? Já to načítám přímo přes 1-wire knihovnu a je to dost řádků programu.
Ještě bych chtěl nějak vymyslet, že pokud se vymění jedno čidlo teploty za jiný, tak se přepíše konfigurace adres uložená v eeprom, pokud se vymění obě, tak nevím jak to bez složitýho potvrzování přes tlačítka vyřešit (jako že zapojit jedno, zobrazit hlášku nové čidlo? a tlačítkem 1 nebo 2 přiřadit který to je, a potom to samý s druhým čidlem... ale to asi vymejšlím blbiny z nevyspání...
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 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: 2892
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 194

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » čtv kvě 21, 2015 8:21 am

Knihovna funguje spolehlivě již měsíc, téměř nepřetržitě zapnuto u regulátoru solárního ohřevu, doposud žádné komplikace, tedy ve verzi bez zápisu do eeprom, takto s eeprom to fungovalo doma na stole, měřené hodnoty jsem simuloval konstantními hodnotami. část kódu přesunu do setup.
Ještě jsem chtěl přidat modul reálného času ds3231, ale se shora uvedeným kódem to nějak nemaká - čínské znaky to ukazuje na LCD 1602, asi nějaký konflikt na i2c
S adresy čidel nevím, jak to udělat, to je na mne vyšší dívčí...
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 kvě 21, 2015 1:34 pm

tak to mám zmáklý, mrkni na tohle: displej teda byl 4 řádkový a v té definici jsou navíc jinak připojený vývody na převodník i2c, ale to je asi jediná změna proti tvýmu hw, je tam pro jistotu i ta správná I2cLCD knihovna, která to umožňuje. Dost sem se natrápil s tím lcd na I2c, ale rtc byl bez problému. Pak už nebrání nic logování na sd kartu a jednoduché web stránce na ethernet shieldu.
LiquidCrystal_I2C.zip
(464 KiB) 50 krát
i2c_rtc_lcd_time_date.ino
(4.31 KiB) 48 krát

ještě blbina pro kontrolu adres na i2c:
sken_i2c.ino
(1.11 KiB) 42 krát

na i2c můžeš mít navěšenejch víc věcí než si dokážeš představit. P.S. na tom rtc modulu je i 4kB eeprom..
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 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: 2892
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 194

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » pát kvě 22, 2015 7:50 pm

Díky, zítra to otestuju a zkusím vyměnit knihovnu, tuším, že zakopaný pes je tam. Chápu to správně, že ta knihovna podporuje 1602 i 2004?
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 » ned kvě 24, 2015 10:50 am

samozřejmě, to se definuje tady vytvoříš objekt s názvem lcd:
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE) 0x27 je adresa i2c, a ty čísla jsou vývody z převodníku , poslední je ovl. podsvětlení, zapne se log. 1
a v setup je toto: lcd.begin(20,4); // pocet znaku, pocet radku. -tím se vlastnmě ten displej aktivuje.
Úplně stejně to funguje s knihovnou liquid_krystal, akorát to není i2c, jsou to vývody přímo z arduina
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 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: 2892
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 194

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » ned kvě 24, 2015 7:20 pm

Ok, tak nyní pracuje LCD i RTC korektně na i2c, rovněž tak i regulace solárního ohřevu se záznamem do eeprom. Ještě jsem chtěl zprovoznit http://www.ebay.com/itm/400556844893?_t ... EBIDX%3AIT , ale to se mi nepodařilo. Vyzkoušel jsem všechny možné možnosti formátování, ale ani si to neškrtlo, kerta nedetekována, někde je zakopanej pes.
To ale bude muset chvíli počkat, pokusné arduino slouží u sousedova bazénu. Takže si dám záda do doby, než přijde nové.. Ještě malý dotaz: Zatížitelnost 200mA se týká jen výstupů, nebo se to sčítá i s napájením +5V?
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 milink » ned kvě 24, 2015 9:18 pm

A jak velkou SD kartu máte? Mně můj SD shield nefungoval s malou 8 MB kartou. Musel jsem použít větší 2 GB i když by mi těch 8 MB bohatě stačilo...
milink
 
Příspěvky: 19
Registrován: sob zář 24, 2011 9:19 am
Reputation: 0

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » ned kvě 24, 2015 9:29 pm

512Mb, 16 Gb ani jedna nezabrala, tuším, že by mohlo být něco v nepořádku s HW schieldu, jen doměnka
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 » pon kvě 25, 2015 11:46 am

na zatížení zdroje záleží, jaký tam pouštíš napětí, aby to ten stabilizátor zvládl, má maximum 1,1A, ale na plošňáku se neuchladí, musel bys přidat dost chladiče. Další možnost je napájet to přímo do 5V pinu, třeba modulem s lm2596nebo podobným, když potřebuješ větší proud.
Jaký máš arduino, mega? Tady ten shield je asi jenom pro uno, protože ty musíš mít připojeno miso, mosi, sck, a cs - u una je to 11,12,13,10(nevím pořadí, najdi si to na netu. a u arduina mega je to buď 50-53, nebo paralelně k tomu na tom šestipinovým konektoru uprostřed, plus vývod 10 jako CS. - pozor, na ethernet shieldu je CS pro čtečku na čísle 4, musí se to definovat. Nějakej sw tester na SPI sem zatím nikde nenašel. Vzhledem k tomu, že mi ethernet shield jede bez zaváhání, tak na něm snad bude fungovat i čtečka karet. Přije mi to dost drahý, rtc mám za $1.5 a ethernetshiel i s čtečkou za $8, stačí dopsat pár řádků do programu a můžeš se přes prohlížeč mrknout na teplotu v boileru (bazénu). Pokud máš zapojený dc18b20 na parazitní napájení, pozor na připojení třetího vývodu - má být na gnd, takže oba krajní gnd, prostředek data. když sem měl jeden drát volně, občas to měřilo 85 st. celsia, i když to nebyla pravda - to je informace o tom, že proběhl reset napájení....
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 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: 2892
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 194

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » pon kvě 25, 2015 7:16 pm

Mám tam 2 relé- 1 modul analog a 4 modul SSR, to by mělo být vpohodě. Kdyby bylo vše zapnuté, nepřesáhnu 400mA, nic se nehřeje a funguje již 3 měsíce. So se schieldu týká, mám UNO R3, ATmega328P
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 » pon kvě 25, 2015 9:34 pm

tak to by mělo být připojeno ok, jenom jestli je někde definován pin CS na 10, jak píšu výše. V příkladu dataloger co je u arduino ide, je potřeba změnit na ř.30: const int chipSelect = 4; na 10, a zakomentovat ř. 44: // pinMode(10, OUTPUT); protože to je pro ethernet shield, kde jsou ty vývody jinak, na 10 je cs pro ethernet..... tak to vyzkoušej a uvidíš. Prej je ale ten vývod 10 default CS, takže by mělo stačit SD.begin() bez parametru s číslem vývodu pro CS, ale nemám odzkoušeno, nemám žádnou přebytečnou microsd kartu...
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 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: 2892
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 194

Re: Začátky s Arduinem

Příspěvekod Pavel.Z. » sob čer 27, 2015 9:39 pm

Ahojte, prosím vás nemáte niekto napísaný program, kde by sa arduino správalo podobne, ako relé HRN 34 ? Delič, atď. zvládam, len ten program ,,minVoltage,, a hysteréza je problém :-(. Ujo google mi poradil len voltmetre. Prípadne nejaký program pre nakopnutie :-) ?. Vopred vďaka ;-)
Pavel.Z.
 
Příspěvky: 120
Registrován: ned lis 25, 2012 10:06 am
Reputation: 4

Re: Začátky s Arduinem

Příspěvekod kodl69 » ned čer 28, 2015 3:05 pm

v čem mje problém? zadáš si hodnotu maximální a hodnotu návratovou, možná bych tam zařadil třeba načtení za několik sekund, aby to nepřepínalo rychlostí blesku a je to:
něco jako:
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}
voild loop(){
int proud, min, max;
min=100; //minimální hodnota
max=600; //maximální hodnota

proud= anologread(A0);
if (max>proud) {
digitalWrite(13, LOW);
}
if (min<proud){
digitalWrite(13, HIGH);
}
delay(1000);
}

a to je asi celý, nebo si tam můžeš dát několik úrovní pro vypnutí a zapnutí. Asi bude potřeba vytunit průměrnou hodnotu proudu z několika hodnot a další detaily, ale do toho asi přijsdeš.
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 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: 2892
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 194

Re: Začátky s Arduinem

Příspěvekod Pavel.Z. » ned čer 28, 2015 5:39 pm

Diky, moc kodl. Len ešte budem mať veľa otázok onedlho, ale to až neskôr :-). Najskôr, keď bude čas po nociach, poskúšam. Mám nové UNO pár dní a môžem povedať že je to viac nákazlivejšie, ako nový mobil. :-D
Pavel.Z.
 
Příspěvky: 120
Registrován: ned lis 25, 2012 10:06 am
Reputation: 4

Re: Začátky s Arduinem

Příspěvekod kodl69 » pon čer 29, 2015 9:57 am

jo, souhlas, taky mi to sežralo pár nocí. Ale na nějaký větší projekty to uno není, najednou zjistíš, že má málo vstupů/výstupů, že ti kompilátor hlásí málo paměti... Mega o tolik víc na ebay nestojí.
Viděl jsem teď vícekanálový odpojovač zátěže, ten dokonce funguje tak, že po odepnutí části zátěže změří, o kolik proud poklesl a zapne zpátky, až je odpovídající rezerva, a to ve třech stupních - to by byla aspoň funkce. Akorát mám dojem, že si to možná za 4kKč koupím, než bych to vyráběl (prudový trafa, zesilovače/tvarovače ke vstupům a pak mnoho a mnoho programování. Ale uvažuju o hlavním jističi pro celý dům 3x20A, a mělo by to být včetně boileru a elektrotopení, bez jakýhokoliv omezení komfortu.
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 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: 2892
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 194

Re: Začátky s Arduinem

Příspěvekod rva » pon čer 29, 2015 11:23 am

Možná to je HJ 306, ten používám. Zatím teda pro jeden měnič a jeden stupeň, ale mám už od číňanů polotovary se kterýma zkusím odpínat zátěž bezdrátově.
_______________________________________________________________________
14kWp, 48V LiFePo4 350Ah,
EPSolar 60A/150V ET6415N + Axpert pwm 4kW PIP4048HS + Axpert mppt 4kW PIP4048MS
rva
 
Příspěvky: 968
Registrován: úte dub 23, 2013 9:21 am
Reputation: 85

Re: Začátky s Arduinem

Příspěvekod kodl69 » pon čer 29, 2015 1:00 pm

tak to by mě zajímalo, kdyžtak bych mohl spolupracovat na vývoji, já jaksi nemám kudy těch 6 drátů protáhnout.
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 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: 2892
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 194

Re: Začátky s Arduinem

Příspěvekod Pavel.Z. » stř črc 22, 2015 11:15 pm

Tak už, napätie snímam a podľa toho mením aj stavy. To už nie je problém. Skúšam už aj iné veci no len nad jednou si lámem hlavu :-(.
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.

int led =8;
int button = 3;
int ledState=0;
int buttonState = 0;
long lastJob1=0;
void setup() {
pinMode(led, OUTPUT);
pinMode(button, INPUT);
digitalWrite(led, LOW);
}
void loop() {
ledState = digitalRead(button);
if (ledState == HIGH)
{
digitalWrite(led, HIGH);
}
if (millis() > (5000 + lastJob1))
{
digitalWrite(led, LOW);
lastJob1 = millis();
}
}

Určite len nejaka banalita :-( či??
Pavel.Z.
 
Příspěvky: 120
Registrován: ned lis 25, 2012 10:06 am
Reputation: 4

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 ©'