Fórum | MyPower.CZ | Obnovitelné zdroje energie - energetická soběstačnost | Právě je pát lis 16, 2018 6:40 pm


Gridfree & arduino

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

Gridfree & arduino

Příspěvekod 250w_gridfree » ned pro 21, 2014 4:46 pm

Ahoj,
pomrkávám po řízení výkonu mikroinvertoru a panelů pomocí arduina, má někdo zkušenosti s hW - jaké proudové snímače použít - osvědčily se, ev. zdrojáček? atp.
spotřeva > výroba = panel k invertoru připojen

Už mám na cestě uno, začnu se systémem s blikáním diodama, nějaké zkušenosti s PHP mám, tak to snad nějak půjde:)

Díky
250w_gridfree
 
Příspěvky: 72
Registrován: pon zář 08, 2014 9:55 am
Reputation: 2

Re: Gridfree & arduino

Příspěvekod 250w_gridfree » úte led 27, 2015 9:09 pm

Takže řízení fve zatímv nedohlednu, ale v arduinu sem pokročil, mám jednoduchou regulaci thermosolárního systému k bazénu. A baví mě to. Jen mám dotaz Má být mezi Arduinem a LCD 1602 přes i2c zapojen nějaký rezistor? Díky za info P.
250w_gridfree
 
Příspěvky: 72
Registrován: pon zář 08, 2014 9:55 am
Reputation: 2

Re: Gridfree & arduino

Příspěvekod 8milan8 » ned úno 01, 2015 3:47 pm

250w_gridfree píše:Takže řízení fve zatímv nedohlednu, ale v arduinu sem pokročil, mám jednoduchou regulaci thermosolárního systému k bazénu. A baví mě to. Jen mám dotaz Má být mezi Arduinem a LCD 1602 přes i2c zapojen nějaký rezistor? Díky za info P.


Nevím o tom, že by byl potřeba. ;) Takže ne.
8milan8
 
Příspěvky: 127
Registrován: čtv led 01, 2015 6:30 pm
Reputation: 3

Re: Gridfree & arduino

Příspěvekod 250w_gridfree » pon úno 02, 2015 4:53 pm

Díky...
250w_gridfree
 
Příspěvky: 72
Registrován: pon zář 08, 2014 9:55 am
Reputation: 2

Re: Gridfree & arduino

Příspěvekod 250w_gridfree » ned úno 08, 2015 10:00 pm

Efektivita zápisu - připadá mi část kódu zbytečně dlouhá, je možný efektivnější zápis?

if (rozdil < 100 && rozdil > 75)
{
digitalWrite(13, HIGH); //na pinu 13 pusť proud a sepni relé se zátěží 25w
digitalWrite(12, HIGH)); //na pinu 12 pusť proud a sepni relé se zátěží 25w
digitalWrite(11, HIGH)); //na pinu 11 pusť proud a sepni relé se zátěží 25w
digitalWrite(10, HIGH)); //na pinu 10 pusť proud a sepni relé se zátěží 25w
digitalWrite(9,LOW); //na pinu 9 vypni proud
digitalWrite(8,LOW); //na pinu 8 vypni proud
}

if (rozdil <= 75 && rozdil>50)
{
digitalWrite(13, HIGH); //na pinu 13 pusť proud a sepni relé se zátěží 25w
digitalWrite(12, HIGH)); //na pinu 12 pusť proud a sepni relé se zátěží 25w
digitalWrite(11, HIGH)); //na pinu 11 pusť proud a sepni relé se zátěží 25w
digitalWrite(10,LOW); //na pinu 10 vypni proud
digitalWrite(9,LOW); //na pinu 9 vypni proud
digitalWrite(8,LOW); //na pinu 8 vypni proud
}


if (rozdil < =50 && rozdil > 25)
{
digitalWrite(13, HIGH); //na pinu 13 pusť proud a sepni relé se zátěží 25w
digitalWrite(12, HIGH)); //na pinu 12 pusť proud a sepni relé se zátěží 25w
digitalWrite(11,LOW); //na pinu 11 vypni proud
digitalWrite(10,LOW); //na pinu 10 vypni proud
digitalWrite(9,LOW); //na pinu 9 vypni proud
digitalWrite(8,LOW); //na pinu 8 vypni proud
}


if (rozdil < =25 && rozdil > 0)
{
digitalWrite(13, HIGH); //na pinu 13 pusť proud a sepni relé se zátěží 25w
digitalWrite(12,LOW); //na pinu 12 vypni proud
digitalWrite(11,LOW); //na pinu 11 vypni proud
digitalWrite(10,LOW); //na pinu 10 vypni proud
digitalWrite(9,LOW); //na pinu 9 vypni proud
digitalWrite(8,LOW); //na pinu 8 vypni proud
}


Díky...
250w_gridfree
 
Příspěvky: 72
Registrován: pon zář 08, 2014 9:55 am
Reputation: 2

Re: Gridfree & arduino

Příspěvekod 8milan8 » ned úno 08, 2015 10:30 pm

250w_gridfree píše:Efektivita zápisu - připadá mi část kódu zbytečně dlouhá, je možný efektivnější zápis?

if (rozdil < 100 && rozdil > 75)
{
digitalWrite(13, HIGH); //na pinu 13 pusť proud a sepni relé se zátěží 25w
digitalWrite(12, HIGH)); //na pinu 12 pusť proud a sepni relé se zátěží 25w
digitalWrite(11, HIGH)); //na pinu 11 pusť proud a sepni relé se zátěží 25w
digitalWrite(10, HIGH)); //na pinu 10 pusť proud a sepni relé se zátěží 25w
digitalWrite(9,LOW); //na pinu 9 vypni proud
digitalWrite(8,LOW); //na pinu 8 vypni proud
}
...


Třeba takto

celej ten balast nahradit timto. ;) Ale jde fakt jen o efektivitu zápisu. Pokud je dobrý překladač, tak bude výsledný přeložený kód stejný (nebo se limitně tomu blížit).

digitalWrite(13, rozdil > 0 ? HIGH : LOW); //na pinu 13 pusť proud a sepni relé se zátěží 25w
digitalWrite(12, rozdil > 25 ? HIGH : LOW)); //na pinu 12 pusť proud a sepni relé se zátěží 25w
digitalWrite(11, rozdil > 50 ? HIGH : LOW)); //na pinu 11 pusť proud a sepni relé se zátěží 25w
digitalWrite(10, rozdil > 75 ? HIGH : LOW)); //na pinu 10 pusť proud a sepni relé se zátěží 25w
digitalWrite(9,LOW); //na pinu 9 vypni proud
digitalWrite(8,LOW); //na pinu 8 vypni proud
8milan8
 
Příspěvky: 127
Registrován: čtv led 01, 2015 6:30 pm
Reputation: 3

Re: Gridfree & arduino

Příspěvekod solárník » ned úno 08, 2015 10:44 pm

Záleží o co vám jde, jestli o přehlednost, nebo o rychlost.

Za použití konstrukce "else if", která by byla v prvním dlouhém zápisu na místě použít u druhého a dalších "if", protože se jednotlivé varianty vylučují, by se vyhodnocovaly vždy pouze dvě podmínky a proto by program pravděpodobně byl nejrychlejší. Samozřejmě by šel dál optimalizovat pouze na jednu vyhodnocovanou podmínku, a dále, protože třeba 8 a 9 dáváte LOW kdykoli, takže nemusejí figurovat v žádné podmínce.

U toho, co jste oba napsali, se bude vždy vyhodnocovat 4 (u obou variant určitě) až 8(u první varianty) podmínek, takže budou patřičně pomalejší.
solárník
 
Příspěvky: 1427
Registrován: pát bře 15, 2013 7:53 pm
Reputation: 53

Re: Gridfree & arduino

Příspěvekod 250w_gridfree » pon úno 09, 2015 1:02 pm

Díky za inspiraci, vyzkouším. Jde mi o rychlost. Překladač používám ten který je k Arduinu //1.0.6
250w_gridfree
 
Příspěvky: 72
Registrován: pon zář 08, 2014 9:55 am
Reputation: 2

Re: Gridfree & arduino

Příspěvekod solárník » pon úno 09, 2015 4:05 pm

Pokud je promenna rozdil typu integer, tak by to teoreticky melo jit resit i switchem:

switch(rozdil)
{
case 0 ... 25:
udelej neco;
break;
case 26 ... 50:
udelej neco jineho;
break;

atd,atd,

default:
tudy to jde kdyz neplati ani jedno;
break;
}

Ovsem jaka pak bude rychlost zpracovani netusim, nutno vyzkouset.
Neni to sice standardni ANSI C zapis, definovat interval pomoci "...", ale v Arduino IDE funguje bez problemu.
solárník
 
Příspěvky: 1427
Registrován: pát bře 15, 2013 7:53 pm
Reputation: 53

Re: Gridfree & arduino

Příspěvekod 250w_gridfree » pon úno 09, 2015 4:45 pm

Zatím nemám proudový snímač, hodnotu do proměnné zatím získám z teploměru. Číslo jako číslo Pozítří buádu ladit... Dík
250w_gridfree
 
Příspěvky: 72
Registrován: pon zář 08, 2014 9:55 am
Reputation: 2

Re: Gridfree & arduino

Příspěvekod 250w_gridfree » úte úno 24, 2015 3:10 pm

Ahoj, konečně jsem v laborování pokročil, proudový snímač http://www.ebay.com/itm/381099203483?_t ... EBIDX%3AIT zapojen, měření tímto koresponduje s měřením s wattmetrem do zásuvky. OK Ale hlava mi nebere, že tento snímač zobrazuje korektní hodnoty, ačkoliv je 5A a přitom ve zdrojáku je nastaveno 30A!
Zdroják:
#include "EmonLib.h" // Include Emon Library
EnergyMonitor emon1; // Create an instance
#include <OneWire.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
float Pwatt;
int rozdil = 0; //korekce na nulu
void setup(){
emon1.current(1, 30.0); //nastavení senzoru
lcd.init();
lcd.backlight();
}
void loop(){
double Irms = emon1.calcIrms(1480);
Pwatt = (Irms*230.0) + rozdil;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Watt: ");
lcd.print(Pwatt);
lcd.setCursor(0, 1);
lcd.print("Amper: ");
lcd.print(Irms);
}

Jaký senor používáte pro měření s horní hranicí 25 -30 A? Zapojeno podle tohoto šénu http://www.mindkits.co.nz/images/blog/c ... ly_bbR.png

Díky za info P.
250w_gridfree
 
Příspěvky: 72
Registrován: pon zář 08, 2014 9:55 am
Reputation: 2

Re: Gridfree & arduino

Příspěvekod tomas » úte úno 24, 2015 3:30 pm

250w_gridfree píše:Ale hlava mi nebere, že tento snímač zobrazuje korektní hodnoty, ačkoliv je 5A a přitom ve zdrojáku je nastaveno 30A!

Tam by jsi měl mít přece převod toho měřícího trafa proudu.
Například když mám měřící trafa 150A/5A tak do elektroměru musím nastavit převod 30 aby elektroměr zobrazoval správné kWh. Nebo neměřenou hodnotu násobím 30 pokud to elektroměr neumí.
Ty máš převod 5/0,005 = 1000
A 1mA na výstupu by měl odpovídat 1A na vstupu. Ale jsou tam zřejmě nějaké odpory a bočníky a arduinem měříš napětí, takže to bude asi nutné přepočítat i přes ty odpory.
Uživatelský avatar
tomas
 
Příspěvky: 1684
Registrován: pon bře 07, 2011 11:05 am
Bydliště: Třinec
Reputation: 59

Re: Gridfree & arduino

Příspěvekod 250w_gridfree » úte úno 24, 2015 3:44 pm

Díky, ale stejně tomu nerozumím. Chápu ještě ten převod 1 A vstup, 1mA výstup. Potřebuji bezpečně měřit AC proud do 5A, v krátkodobých špičkách až 25A a uložit do proměnné, se kterou se bude dále pracovat. Jaký senzor pro tento záměr použít? S poměrem 200/1 ?
250w_gridfree
 
Příspěvky: 72
Registrován: pon zář 08, 2014 9:55 am
Reputation: 2

Re: Gridfree & arduino

Příspěvekod 250w_gridfree » úte úno 24, 2015 5:12 pm

Že by tento? hlavně, aby z něho vedly 2 drátky... a bylo to napájeno 5V
http://www.ebay.com/itm/25A-SCT-013-025 ... 1519522013
250w_gridfree
 
Příspěvky: 72
Registrován: pon zář 08, 2014 9:55 am
Reputation: 2

Re: Gridfree & arduino

Příspěvekod 250w_gridfree » úte úno 24, 2015 7:11 pm

Ještě zajímavost, při vyčítání na serial monitoru se stále zobrazuje na analog vstupu hodnota 511 až 512 - polovina z 1024, a to i při korektním měření, i když je měřeno 100w nebo 500w, na serialu monitoru stále stejná hodnota, měřeno současně v jednom cyklu na analog1 :(
250w_gridfree
 
Příspěvky: 72
Registrován: pon zář 08, 2014 9:55 am
Reputation: 2

Re: Gridfree & arduino

Příspěvekod tomas » úte úno 24, 2015 7:57 pm

No podle toho obrázku zapojení to vypadá že by v klidu mělo být na vstupním pinu 2,5V, je tam dělič na polovinu z 5V poskládaný z těch dvou stejných odporů. 2,5V by mělo tedy odpovídat nule a to bude asi těch 511 až 512 - polovina z 1024. Ten měřený proud (napětí) by měl odpovídat té výchylce od 2,5V (511 až 512) krát ten převod.
A ještě je tam odpor 100 ohmů paralelně k vinutí trafu. Při 1mA by na něm mělo být 0,1V. Potom tedy 2,6V na vstupním pinu by mělo odpovídat 1A procházející měřeným obvodem. Jenže měříš sinusový proud, tak to bude kolísat od 2,4V do 2,6V a to už musíš nějak softwarově vyřešit a vyhodnotit.
Při proudu 2A by na vstupu do arduina mělo být sinusové napětí od 2,3V do 2,7V. Měla by to být efektivní hodnota, maximální bude vyšší. Ale nejlepší a nejistějí je to přece změřit, nebo nasimulovat:
http://www.spsemoh.cz/vyuka/zel/circuit/circuit.htm
Uživatelský avatar
tomas
 
Příspěvky: 1684
Registrován: pon bře 07, 2011 11:05 am
Bydliště: Třinec
Reputation: 59

Re: Gridfree & arduino

Příspěvekod 250w_gridfree » úte úno 24, 2015 8:02 pm

Začínám se v tom lehce orientovat, především mi jde o to, abych do arduina nepustil destruktivní hodnoty. Pokud se nemýlím, neměla by se překročit hodnota 5V. Díky
250w_gridfree
 
Příspěvky: 72
Registrován: pon zář 08, 2014 9:55 am
Reputation: 2

Re: Gridfree & arduino

Příspěvekod tomas » úte úno 24, 2015 8:10 pm

250w_gridfree píše:Že by tento? hlavně, aby z něho vedly 2 drátky... a bylo to napájeno 5V
http://www.ebay.com/itm/25A-SCT-013-025 ... 1519522013


Můžeš použít jakékoliv měřící trafa proudu které ti vyhoví výstupním proudem, převodem, výkonem a přesností. ;)
http://www.pmec.cz/index.php?page=sensors
A pozor na to že proudový transformátor musí být vždy něčím zatížený (odporem) nebo zkratovaný, jinak zničí arduino i sebe.
Uživatelský avatar
tomas
 
Příspěvky: 1684
Registrován: pon bře 07, 2011 11:05 am
Bydliště: Třinec
Reputation: 59

Re: Gridfree & arduino

Příspěvekod 250w_gridfree » úte úno 24, 2015 8:19 pm

Takže vzít měřák a hlídat hodnotu <5V na analogovém vstupu a postupně zvyšovat měřenou zátěž, tohle trafo má odpor již namontovaný http://www.ebay.com/itm/381099203483?_t ... EBIDX%3AIT
250w_gridfree
 
Příspěvky: 72
Registrován: pon zář 08, 2014 9:55 am
Reputation: 2

Re: Gridfree & arduino

Příspěvekod tomas » úte úno 24, 2015 8:24 pm

Ještě koukám že na tom měřícím trafu je také odpor.
http://www.ebay.com/itm/381099203483?_t ... EBIDX%3AIT
Co to je za hodnotu 10 ohmů?
Uživatelský avatar
tomas
 
Příspěvky: 1684
Registrován: pon bře 07, 2011 11:05 am
Bydliště: Třinec
Reputation: 59

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