Arduino osciloskop na textovém displayi

Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
Uživatelský avatar
mypower.cz
R.I.P.
Příspěvky: 4927
Registrován: pát bře 04, 2011 11:36 am
Reputace: 521

Arduino osciloskop na textovém displayi

Příspěvek od mypower.cz »

Pro jeden projekt jsem potřeboval nakalibrovat bocnik, ktery meri proud na DC vstupni strane meho 3kW menice. Po ruce byl textový display a arduino. Inu nevahal jsem a naprogramoval jsem si osciloskop pro textový display na arduinu :mrgreen:

Obrázek

Zobrazuje v prvnim radku krivku prubehu proudu samplovanou po dobu 15 milisekund, ve druhem radku zobrazuje minimalni a maximalni namerenou hodnotu vzorku hexadecimalne a v 8 bitovem rozliseni, takze 00..FF max a za lomitkem se strida namerena frekvence v HZ a presna doba trvani samplovaci funkce, obvykle 15444 mikrosekund.

Video z mereni pri zaple 2kW rychlovarne konvici je zde: http://mypower.cz/docs/video/ac-cal.htm

Bocnik mam od mateje, ktery k nemu pridal operacni zesilovac a tak tedy je signal z bocniku zesilen kvuli lepsimu rozliseni na arduinu, nicmene zda se mi ze signal se prilis dlouho drzi v nule. V matejove zapojeni je trimr, kterym se da pohnout se signalem nahoru nebo dolu. Ja potrebuji o kousek nahoru a to tak, aby minimalni namereny vzorek idealne lehce problikaval mezi 00 a 01. Tim ziskam jistotu, ze signal neni zespoda orezan a ze tedy merim cely rozsah krivky.

Badal jsem proc behem 15ms vidim jednu a pul vlny. Preci na 50Hz jedna vlna trva 20ms a tak bych pri 15ms vzorkovani mel videt 3/4 jedne vlny. Puvodne jsem myslel ze menic jede na 60Hz i pres to ze na jeho displayi je zobrazeno 50Hz. Inu matej na to nakonec prisel a figl je v tom, ze bocnikem merim DC stranu. Ta je usmernena a kmita ne na 50Hz ale na 100Hz. Takze vlastne jedna cela vlna trva 10ms a na displayi vidim pri 15ms jednu a pul vlny, coz sedi ;)

Bomba, mam z toho radost, posunulo me to zase o kousek dal, chystam pro mistni komunitu obrovske prekvapeni a asi i konkurenci jistym komercnim resenim. S ohledem na to ze vysledek brzy vydam jako opensource, asi me nektere firmy nebudou mit moc rady, nebo me konecne zamestnaji a ja najdu konecne praci :mrgreen:

Nize prikladam zdrojovy kod tohoto Arduino AsciiArt Osciloskopu.

Kód: Vybrat vše


#define inputpin 11

// --------------------

#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

void setup()
{
Serial.begin(115200);
delay(1000);
pinMode(40, OUTPUT);
lcd.begin(16, 2); lcd.clear();
byte b[8];
for (byte x=0;x<8;x++)
  {
  for (byte l=0;l<8;l++)
    if (l==x) b[l]=B11111; else b[l]=B00000;
  lcd.createChar(7-x, b);
  }
}

int SamplerHZexec(int qmin,int qmax)
{
int xcnt=0;
byte qsmp;
int xr=0;
int lxr=0;
int qh=((qmax-qmin)/2)+qmin;
unsigned long xms=millis();
unsigned long xmq=xms;
unsigned long xme=xms+1000;
while (true)
  {
  qsmp=(byte)(analogRead(inputpin)>>2);
  if (qsmp>qh) xr=1; else xr=0;
  if ((lxr!=xr) && ((xms-xmq)>5))
    {
    if ((xr==0) && (lxr==1))
      {
      xmq=xms;
      xcnt++;
      }
    lxr=xr;
    }
  if (xms>=xme) break;
  xms=millis();
  }
return xcnt;
}

byte samples[128];

void SamplerExec()
{
for (int x=0;x<sizeof(samples);x++) samples[x]=0;
int xms,xm1;
xms=(int)(micros()>>6);
for (int x=0;x<sizeof(samples);x++)
  {
  samples[x]=(byte)(analogRead(inputpin)>>2);
  while (true) { xm1=(int)(micros()>>6); if (xm1!=xms) break; }
  xms=xm1;
  }
}

byte qt=0;
int xhz=0;

void loop()
{
qt++;
unsigned long qms,qme;
digitalWrite(40, HIGH);
qms=micros();
SamplerExec();
qme=micros();
digitalWrite(40, LOW);

int qpmin=0xFF;
int qpmax=0x00;
  
int qmin=0xFF;
int qmax=0x00;

int qdsmp[16];

for (int x=0;x<16;x++) qdsmp[x]=0;

for (int x=0;x<sizeof(samples);x++)
  {   
  byte xsmp=samples[x];
  qdsmp[x>>3]+=xsmp;
  if (xsmp<qmin) qmin=xsmp;
  if (xsmp>qmax) qmax=xsmp;
  }

for (int x=0;x<16;x++) 
  { 
  qdsmp[x]=(qdsmp[x]>>3);
  byte xf=qdsmp[x];
  if (xf<qpmin) qpmin=xf;
  if (xf>qpmax) qpmax=xf; 
  }

int rdif=qpmax-qpmin;
int qtx;

lcd.setCursor(0, 0);
for (byte i=0;i<16;i++)
  if (rdif==0)
    lcd.print(" ");
  else
    {
    qtx=(qdsmp[i]-qpmin)*7/rdif;
    lcd.print((char)(qtx));
    }

lcd.setCursor(0, 1);
char xstr[30]="";
if ((qt&0x02)==0) 
  sprintf(xstr,"%02X..%02X / %05dus",qmin,qmax,qme-qms);
else
  sprintf(xstr,"%02X..%02X / %05dhz",qmin,qmax,xhz);
  
lcd.print(xstr);

xhz=SamplerHZexec(qmin,qmax);

}
Poznamky: Mereni AC probiha na analogovem pinu 11, ktery se da definovat uplne nahore v programu, dioda je napevno na digitalnim pinu 40 a sviti jen po dobu samplovani - kazdou vterinu tedy zlehoucka problikne. Display je LCD Keypad Shield k sehnani napriklad ve zdejsim shopu, bocnik se zesilovacem je od mateje.

:wood:
goodbie
Příspěvky: 1453
Registrován: pát bře 08, 2013 7:19 pm
Reputace: 72
Bydliště:

Re: Arduino osciloskop na textovém displayi

Příspěvek od goodbie »

Bezva práce nebylo by schéma bočníku a zesilovače???i s fotem??díky.
Uživatelský avatar
mypower.cz
R.I.P.
Příspěvky: 4927
Registrován: pát bře 04, 2011 11:36 am
Reputace: 521

Re: Arduino osciloskop na textovém displayi

Příspěvek od mypower.cz »

Obrázek

schema ... to uz se spise poptat mateje ... treba se tu ukaze :)
goodbie
Příspěvky: 1453
Registrován: pát bře 08, 2013 7:19 pm
Reputace: 72
Bydliště:

Re: Arduino osciloskop na textovém displayi

Příspěvek od goodbie »

super díky s jakou přesností to pracuje a jak je to stabilní???nejmenší změřený proud na bočníku??a co je tam za operační zesilovač??
Uživatelský avatar
mypower.cz
R.I.P.
Příspěvky: 4927
Registrován: pát bře 04, 2011 11:36 am
Reputace: 521

Re: Arduino osciloskop na textovém displayi

Příspěvek od mypower.cz »

Co je mysleno tim pojmem "stabilni" ?
goodbie
Příspěvky: 1453
Registrován: pát bře 08, 2013 7:19 pm
Reputace: 72
Bydliště:

Re: Arduino osciloskop na textovém displayi

Příspěvek od goodbie »

mypower.cz píše:Co je mysleno tim pojmem "stabilni" ?
jak přesné je měření proudu,když bočníkem teče například 50A jestli to také 50A ukáže a zda se údaj nemění směrem dolu nebo nahoru,jako umích cívek tak jsem to myslel.
Uživatelský avatar
mypower.cz
R.I.P.
Příspěvky: 4927
Registrován: pát bře 04, 2011 11:36 am
Reputace: 521

Re: Arduino osciloskop na textovém displayi

Příspěvek od mypower.cz »

vystupem bocniku je napeti, ktere je primo umerne ubytku napeti na bocniku ktere je tak velke jak velky je aktualne protekajici (okamzity) proud bocnikem. Vystupem je tedy v mem pripade napeti, ktere se hybe na frekvenci 100hz od 0 do maximalne 5V pokud by bocnikem protekal maximalni proud na ktery je to zapojeni dimenzovano. Ty civky vam davaji nestabilni napeti na vystupu protoze jimi netece konstantni proud. Napriklad spinane zdroje s proudem skubou. Obdobne jako menic 100x za vterinu z baterky bere / nebere proud.

Edit: To co se da povazovat za stabilni je takzvana efektivni hodnota, coz se da spocitat arduinem leda tak, ze to nasamplujeme a pocitame efektivni hodnotu ze vsech samlu. Ef. hodnota se jinak pocita ze sinusu, jinak z pily, jinak z modif. sinusu, jinak z obdelniku. Na vse jsou vzorecky. Ja v mem pripade budu uvazovat sinus a pripadne i aritmeticky prumer (v pripadech kde to bude vhodne).

Edit2: Temer konstantni proud tece trebas zarovkou pripojenou k baterce (primo na DC), nikoliv uz ale napriklad pokud pripojime spinany zdroj k baterce (klasika DCDC menic) a napajime tim notebook. Pak je proud spinan a rozpinan treba na 100khz.
luge
Příspěvky: 750
Registrován: ned lis 13, 2011 5:52 pm
Reputace: 36
Bydliště: SK

Re: Arduino osciloskop na textovém displayi

Příspěvek od luge »

mypower.cz píše:Pro jeden projekt jsem potřeboval nakalibrovat bocnik, ktery meri proud na DC vstupni strane meho 3kW menice. Po ruce byl textový display a arduino. Inu nevahal jsem a naprogramoval jsem si osciloskop pro textový display na arduinu :mrgreen:

Obrázek

Zobrazuje v prvnim radku krivku prubehu proudu samplovanou po dobu 15 milisekund, ve druhem radku zobrazuje minimalni a maximalni namerenou hodnotu vzorku hexadecimalne a v 8 bitovem rozliseni, takze 00..FF max a za lomitkem se strida namerena frekvence v HZ a presna doba trvani samplovaci funkce, obvykle 15444 mikrosekund.

Video z mereni pri zaple 2kW rychlovarne konvici je zde: http://mypower.cz/docs/video/ac-cal.htm

Bocnik mam od mateje, ktery k nemu pridal operacni zesilovac a tak tedy je signal z bocniku zesilen kvuli lepsimu rozliseni na arduinu, nicmene zda se mi ze signal se prilis dlouho drzi v nule. V matejove zapojeni je trimr, kterym se da pohnout se signalem nahoru nebo dolu. Ja potrebuji o kousek nahoru a to tak, aby minimalni namereny vzorek idealne lehce problikaval mezi 00 a 01. Tim ziskam jistotu, ze signal neni zespoda orezan a ze tedy merim cely rozsah krivky.

Badal jsem proc behem 15ms vidim jednu a pul vlny. Preci na 50Hz jedna vlna trva 20ms a tak bych pri 15ms vzorkovani mel videt 3/4 jedne vlny. Puvodne jsem myslel ze menic jede na 60Hz i pres to ze na jeho displayi je zobrazeno 50Hz. Inu matej na to nakonec prisel a figl je v tom, ze bocnikem merim DC stranu. Ta je usmernena a kmita ne na 50Hz ale na 100Hz. Takze vlastne jedna cela vlna trva 10ms a na displayi vidim pri 15ms jednu a pul vlny, coz sedi ;)

Bomba, mam z toho radost, posunulo me to zase o kousek dal, chystam pro mistni komunitu obrovske prekvapeni a asi i konkurenci jistym komercnim resenim. S ohledem na to ze vysledek brzy vydam jako opensource, asi me nektere firmy nebudou mit moc rady, nebo me konecne zamestnaji a ja najdu konecne praci :mrgreen:

Nize prikladam zdrojovy kod tohoto Arduino AsciiArt Osciloskopu.

Kód: Vybrat vše


#define inputpin 11

// --------------------

#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

void setup()
{
Serial.begin(115200);
delay(1000);
pinMode(40, OUTPUT);
lcd.begin(16, 2); lcd.clear();
byte b[8];
for (byte x=0;x<8;x++)
  {
  for (byte l=0;l<8;l++)
    if (l==x) b[l]=B11111; else b[l]=B00000;
  lcd.createChar(7-x, b);
  }
}

int SamplerHZexec(int qmin,int qmax)
{
int xcnt=0;
byte qsmp;
int xr=0;
int lxr=0;
int qh=((qmax-qmin)/2)+qmin;
unsigned long xms=millis();
unsigned long xmq=xms;
unsigned long xme=xms+1000;
while (true)
  {
  qsmp=(byte)(analogRead(inputpin)>>2);
  if (qsmp>qh) xr=1; else xr=0;
  if ((lxr!=xr) && ((xms-xmq)>5))
    {
    if ((xr==0) && (lxr==1))
      {
      xmq=xms;
      xcnt++;
      }
    lxr=xr;
    }
  if (xms>=xme) break;
  xms=millis();
  }
return xcnt;
}

byte samples[128];

void SamplerExec()
{
for (int x=0;x<sizeof(samples);x++) samples[x]=0;
int xms,xm1;
xms=(int)(micros()>>6);
for (int x=0;x<sizeof(samples);x++)
  {
  samples[x]=(byte)(analogRead(inputpin)>>2);
  while (true) { xm1=(int)(micros()>>6); if (xm1!=xms) break; }
  xms=xm1;
  }
}

byte qt=0;
int xhz=0;

void loop()
{
qt++;
unsigned long qms,qme;
digitalWrite(40, HIGH);
qms=micros();
SamplerExec();
qme=micros();
digitalWrite(40, LOW);

int qpmin=0xFF;
int qpmax=0x00;
  
int qmin=0xFF;
int qmax=0x00;

int qdsmp[16];

for (int x=0;x<16;x++) qdsmp[x]=0;

for (int x=0;x<sizeof(samples);x++)
  {   
  byte xsmp=samples[x];
  qdsmp[x>>3]+=xsmp;
  if (xsmp<qmin) qmin=xsmp;
  if (xsmp>qmax) qmax=xsmp;
  }

for (int x=0;x<16;x++) 
  { 
  qdsmp[x]=(qdsmp[x]>>3);
  byte xf=qdsmp[x];
  if (xf<qpmin) qpmin=xf;
  if (xf>qpmax) qpmax=xf; 
  }

int rdif=qpmax-qpmin;
int qtx;

lcd.setCursor(0, 0);
for (byte i=0;i<16;i++)
  if (rdif==0)
    lcd.print(" ");
  else
    {
    qtx=(qdsmp[i]-qpmin)*7/rdif;
    lcd.print((char)(qtx));
    }

lcd.setCursor(0, 1);
char xstr[30]="";
if ((qt&0x02)==0) 
  sprintf(xstr,"%02X..%02X / %05dus",qmin,qmax,qme-qms);
else
  sprintf(xstr,"%02X..%02X / %05dhz",qmin,qmax,xhz);
  
lcd.print(xstr);

xhz=SamplerHZexec(qmin,qmax);

}
Poznamky: Mereni AC probiha na analogovem pinu 11, ktery se da definovat uplne nahore v programu, dioda je napevno na digitalnim pinu 40 a sviti jen po dobu samplovani - kazdou vterinu tedy zlehoucka problikne. Display je LCD Keypad Shield k sehnani napriklad ve zdejsim shopu, bocnik se zesilovacem je od mateje.

:wood:
Super práca. :yes: Určite sa nejeden z fora teší na prekvapenie.

Vďaka admin.
Uživatelský avatar
mypower.cz
R.I.P.
Příspěvky: 4927
Registrován: pát bře 04, 2011 11:36 am
Reputace: 521

Re: Arduino osciloskop na textovém displayi

Příspěvek od mypower.cz »

prisla mi mailem zprava proc 100Hz ... a jak merim tu + - 230V sinusovku co tam je videt.

Ta krivka co je na displayi neni +-230V napeti (tedy sinusovka), ale prubeh velikosti odebiraneho proudu z baterii v case, ktery v tomto pripade vypada taky jako sinusovka. Neni to ale napeti, je to proud. To je velky rozdil. Neni to sinusovka + a - ale "zadne zatizeni (zadny proud)" a "zatizeni dle maximalniho odberu spotrebice (plny proud jaky spotrebicem je schopen protect)".

100Hz protoze jeden hrb znamena, ze menic odebira z baterky proud a odbavuje jakoby +230V. Druhy hrb znamena ze menic prepnul polaritu a odbavuje na svem AC vystupu jakoby -230V. Proto 100Hz. Vysledkem je 50Hz +-230V vuci zemi (0V) nebo +115 a -115V vzajemne proti sobe - jak u ktereho menice.

Co se deje na DC strane s napetim kdyz vidime tuhle krivku meniciho se odberu proudu? IMHO napeti na bateriich klesa a stoupa dle zatizeni, tedy dle okamziteho odberu proudu nekde mezi 22 az 28V (u 24V systemu) podle toho jak jsou baterie nabity, kolik proudu do nich zrovna hrnou regulatory a jak moc velky proud v danem okamziku odebirame a jak moc se baterie chovaji jako takzvany tvrdy zdroj. Predstavme si ze mame baterky a pripojime k nim DC topne teleso v boileru. Napeti na baterkach ihned poklesne, protoze z baterek odebirame velky proud. Odpojime-li DC topne teleso, napeti se zvedne. Tohle dela menic 100x za vterinu. Pripojuje a odpojuje zatez a dela AC proud. 100x za vterinu je klid, 100x za vterinu je spotrebic zapnut pricemz 50x z tech 100 zapnuti tece spotrebicem proud v jednom smeru, 50x tece spotrebicem proud v opacnem smeru. Menic s cistym sinusem dela to, ze to spinani neni ostre ale plynule. Do sinusovky. Menic s modifikovanym sinusem na plynulost kasle a zapne, vypne, zapne naopak, vypne, zapne, vypne a tak porad dokola.

Polarita baterii se samozrejme nemeni, nicmene to napeti bude kolisat take do tvaru sinusovky nebo do tvaru takove krivky, jakou ma menic na svem vystupu a taky dle vstupnich filtru pouzitych v konstrukci menice, ktere ostre hrany zmen mohou vyhladit. Dochazi na nich jen k ubytku napeti (ruseni na 100Hz) podle toho jakou silou menic odebira proud, ktery z menice odebira spotrebic a hned potom neodebira v periodach 100 x za vterinu. Presne toto je videt na krivce. Tzn neni to sinusovka AC napeti, ale okamzita velikost odebiraneho proudu z baterii v case.

Cele to znamena, ze pokud zapneme menic a nejakou brutalni zatez, tak ani DC napeti na bateriich nejsme schopni zmerit beznym merenim v pravidelnych intervalech, protoze je tam obrovske ruseni a napeti se meni rychle v case. Trefime se tak intervalovym merenim do ruznych fazi onoho ruseni, proto se hodnoty neustale jakoby hybou. To je presne duvod proc goodbie stale rika ze se mu mereni na civkach nezda stabilni. Prave proto, ze ten proud protekajici civkami se hrozne rychle meni a goodbie meri jen jednotlive vzorky, tedy ted .... ted ..... ted ..... ted ... to znamena ze zmeri okamzitou hodnotu podle toho kdy se trefi tim "ted". V podstate se muze trefit do libovolne faze zmeny jak napeti tak proudu. Ani DC voltmetry si s tim nedokazi poradit a udaje na nich kolisaji, nebo je jejich mereni tak vyhlazeno, ze se meri nejaky prumer a tak se to zda ze je to bezezmen. Na osciloskopu by ale tyhle zmeny a ruzne ruseni bylo dost znatelne videt.

Snad jsem to nekde nespletl, kdyztak necht me nejaky elektroprofik opravi, nebo muj vyklad potvrdi. Dik :)
goodbie
Příspěvky: 1453
Registrován: pát bře 08, 2013 7:19 pm
Reputace: 72
Bydliště:

Re: Arduino osciloskop na textovém displayi

Příspěvek od goodbie »

mypower.cz píše:prisla mi mailem zprava proc 100Hz ... a jak merim tu + - 230V sinusovku co tam je videt.

Ta krivka co je na displayi neni +-230V napeti (tedy sinusovka), ale prubeh velikosti odebiraneho proudu z baterii v case, ktery v tomto pripade vypada taky jako sinusovka. Neni to ale napeti, je to proud. To je velky rozdil. Neni to sinusovka + a - ale "zadne zatizeni (zadny proud)" a "zatizeni dle maximalniho odberu spotrebice (plny proud jaky spotrebicem je schopen protect)".

100Hz protoze jeden hrb znamena, ze menic odebira z baterky proud a odbavuje jakoby +230V. Druhy hrb znamena ze menic prepnul polaritu a odbavuje na svem AC vystupu jakoby -230V. Proto 100Hz. Vysledkem je 50Hz +-230V vuci zemi (0V) nebo +115 a -115V vzajemne proti sobe - jak u ktereho menice.

Co se deje na DC strane s napetim kdyz vidime tuhle krivku meniciho se odberu proudu? IMHO napeti na bateriich klesa a stoupa dle zatizeni, tedy dle okamziteho odberu proudu nekde mezi 22 az 28V (u 24V systemu) podle toho jak jsou baterie nabity, kolik proudu do nich zrovna hrnou regulatory a jak moc velky proud v danem okamziku odebirame a jak moc se baterie chovaji jako takzvany tvrdy zdroj. Predstavme si ze mame baterky a pripojime k nim DC topne teleso v boileru. Napeti na baterkach ihned poklesne, protoze z baterek odebirame velky proud. Odpojime-li DC topne teleso, napeti se zvedne. Tohle dela menic 100x za vterinu. Pripojuje a odpojuje zatez a dela AC proud. 100x za vterinu je klid, 100x za vterinu je spotrebic zapnut pricemz 50x z tech 100 zapnuti tece spotrebicem proud v jednom smeru, 50x tece spotrebicem proud v opacnem smeru. Menic s cistym sinusem dela to, ze to spinani neni ostre ale plynule. Do sinusovky. Menic s modifikovanym sinusem na plynulost kasle a zapne, vypne, zapne naopak, vypne, zapne, vypne a tak porad dokola.

Polarita baterii se samozrejme nemeni, nicmene to napeti bude kolisat take do tvaru sinusovky nebo do tvaru takove krivky, jakou ma menic na svem vystupu a taky dle vstupnich filtru pouzitych v konstrukci menice, ktere ostre hrany zmen mohou vyhladit. Dochazi na nich jen k ubytku napeti (ruseni na 100Hz) podle toho jakou silou menic odebira proud, ktery z menice odebira spotrebic a hned potom neodebira v periodach 100 x za vterinu. Presne toto je videt na krivce. Tzn neni to sinusovka AC napeti, ale okamzita velikost odebiraneho proudu z baterii v case.

Cele to znamena, ze pokud zapneme menic a nejakou brutalni zatez, tak ani DC napeti na bateriich nejsme schopni zmerit beznym merenim v pravidelnych intervalech, protoze je tam obrovske ruseni a napeti se meni rychle v case. Trefime se tak intervalovym merenim do ruznych fazi onoho ruseni, proto se hodnoty neustale jakoby hybou. To je presne duvod proc goodbie stale rika ze se mu mereni na civkach nezda stabilni. Prave proto, ze ten proud protekajici civkami se hrozne rychle meni a goodbie meri jen jednotlive vzorky, tedy ted .... ted ..... ted ..... ted ... to znamena ze zmeri okamzitou hodnotu podle toho kdy se trefi tim "ted". V podstate se muze trefit do libovolne faze zmeny jak napeti tak proudu. Ani DC voltmetry si s tim nedokazi poradit a udaje na nich kolisaji, nebo je jejich mereni tak vyhlazeno, ze se meri nejaky prumer a tak se to zda ze je to bezezmen. Na osciloskopu by ale tyhle zmeny a ruzne ruseni bylo dost znatelne videt.

Snad jsem to nekde nespletl, kdyztak necht me nejaky elektroprofik opravi, nebo muj vyklad potvrdi. Dik :)
jenže mě to programuje kamarád a já to mu prd rozumím velebnosti :dontknow: a pak akorát vidím co to dělá za bordel a kamaráda k tomu musím vždy těžce dokopat a pak něco dělejte :wall:
Uživatelský avatar
mypower.cz
R.I.P.
Příspěvky: 4927
Registrován: pát bře 04, 2011 11:36 am
Reputace: 521

Re: Arduino osciloskop na textovém displayi

Příspěvek od mypower.cz »

Šak i kvuli tomu to vysvetluju :) Prekvapko ve forme celkem robustnejsiho opensource projektu ktery chystam tyto figle bude umet. I proto si ted hraju s temito ASCII osciloskopama a koketuju s rychle se menicimi velicinami :)
goodbie
Příspěvky: 1453
Registrován: pát bře 08, 2013 7:19 pm
Reputace: 72
Bydliště:

Re: Arduino osciloskop na textovém displayi

Příspěvek od goodbie »

mypower.cz píše:Šak i kvuli tomu to vysvetluju :) Prekvapko ve forme celkem robustnejsiho opensource projektu ktery chystam tyto figle bude umet. I proto si ted hraju s temito ASCII osciloskopama a koketuju s rychle se menicimi velicinami :)
se bojím,že to stejně pro mnohé bude španělská vesnice :(
Petr

Re: Arduino osciloskop na textovém displayi

Příspěvek od Petr »

goodbie píše:jenže mě to programuje kamarád a já to mu prd rozumím velebnosti :dontknow: a pak akorát vidím co to dělá za bordel a kamaráda k tomu musím vždy těžce dokopat a pak něco dělejte :wall:
Možná kamaráda nekopat, ale zaplatit mu? Jak sleduji, jsem přesvědčen, že i admin je schopen předpřipravit cokoliv co se programování týká, pokud to nebude za "tak dík". :twisted: Možná se adminovi u nás ve firmě zeptám na nějakou tu práci, ale zatím nic neslibuji. S prací je to v těchto dobách dost složité. Kde kdo chce totiž kde co nejlépe zadara a pak něco dělejte.
goodbie
Příspěvky: 1453
Registrován: pát bře 08, 2013 7:19 pm
Reputace: 72
Bydliště:

Re: Arduino osciloskop na textovém displayi

Příspěvek od goodbie »

Petr píše:
goodbie píše:jenže mě to programuje kamarád a já to mu prd rozumím velebnosti :dontknow: a pak akorát vidím co to dělá za bordel a kamaráda k tomu musím vždy těžce dokopat a pak něco dělejte :wall:
Možná kamaráda nekopat, ale zaplatit mu? Jak sleduji, jsem přesvědčen, že i admin je schopen předpřipravit cokoliv co se programování týká, pokud to nebude za "tak dík". :twisted: Možná se adminovi u nás ve firmě zeptám na nějakou tu práci, ale zatím nic neslibuji. S prací je to v těchto dobách dost složité. Kde kdo chce totiž kde co nejlépe zadara a pak něco dělejte.
nene v tom placení nebude chyba
Uživatelský avatar
Frenky
Příspěvky: 815
Registrován: pon led 21, 2013 6:36 pm
Reputace: 131
Lokalita: Doubravička
Systémové napětí: 48V
Výkon panelů [Wp]: 8700
Kapacita baterie [kWh]: 25
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Doubravička

Re: Arduino osciloskop na textovém displayi

Příspěvek od Frenky »

No konečně jsem se dozvěděl, proč mi arduino neustále měří kraviny při připojení nabíječky k bateriím a při používání měniče. Špekuluji nad tím cca druhý měsíc. Protože nemám doma osciloskop, tak jsem si to nemohl odměřit. Ta nabiječka je jen trafo s diodovým můstkem (Koupil jsem ji ze zoufalosti v nějakém marketu po cestě k rohlíkům). Pravděpodobně mám stejný problém. Vyřešil jsem to tím, že měřím víc vzorků (cca 100) a pak vypočítám aritmetický průměr. Nakalibroval jsem to na klešťový ampermetr s práce, a pomocí pišvejcovi konstanty jsem arduino donutil ukazovat stejné hodnoty jako klešťák. :write:
Nicméně jsem strašně nadržený na adminovo řešení a těším se na nový mikrolog. ::rolleyes::
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809
Uživatelský avatar
mypower.cz
R.I.P.
Příspěvky: 4927
Registrován: pát bře 04, 2011 11:36 am
Reputace: 521

Re: Arduino osciloskop na textovém displayi

Příspěvek od mypower.cz »

Frenky píše:No konečně jsem se dozvěděl, proč mi arduino neustále měří kraviny při připojení nabíječky k bateriím a při používání měniče. Špekuluji nad tím cca druhý měsíc. Protože nemám doma osciloskop, tak jsem si to nemohl odměřit. Ta nabiječka je jen trafo s diodovým můstkem (Koupil jsem ji ze zoufalosti v nějakém marketu po cestě k rohlíkům). Pravděpodobně mám stejný problém. Vyřešil jsem to tím, že měřím víc vzorků (cca 100) a pak vypočítám aritmetický průměr. Nakalibroval jsem to na klešťový ampermetr s práce, a pomocí pišvejcovi konstanty jsem arduino donutil ukazovat stejné hodnoty jako klešťák. :write:
Nicméně jsem strašně nadržený na adminovo řešení a těším se na nový mikrolog. ::rolleyes::
Schvalne zkuste (pokud to neni prilis slozite, je po ruce stejny display a pokud bude chvilka casu na hrani) do arduina hodit vyse uvedeny program, zapojit treba baterky pres vhodny odporovy delic na pin 11 a pustit menic, nebo tu nabijecku. Ta krivka se kresli tak, ze se vzdy snazi zarovnat na namerene minimum a maximum, aby na displayi byla co nejvetsi, takze i kdyz bude napeti kolisat o malinko, stale bude videt prubeh krivky. Bud sinus, nebo to co se tam deje. Pravda pracuje se ale jen s 8mi bity, takze s tim pocitat, ze ta presnost je mensi. Ja to delal vlastne jen kvuli tomu abych videl co mi vlastne ve skutecnosti leze z bocniku a abych mohl decentne postouchnout trimr na bocniku aby mi to nerezalo spodni hrany. Ovsem ten programek se muze hodit na ledacos i jineho :)

Edit: jedna carecka na displayi (1 znak) = prumer 8mi po sobe jdoucich vzorku, protoze "qdsmp[x>>3]+=xsmp;"
Uživatelský avatar
Frenky
Příspěvky: 815
Registrován: pon led 21, 2013 6:36 pm
Reputace: 131
Lokalita: Doubravička
Systémové napětí: 48V
Výkon panelů [Wp]: 8700
Kapacita baterie [kWh]: 25
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Doubravička

Re: Arduino osciloskop na textovém displayi

Příspěvek od Frenky »

Tak jsem to nahral do arduino uno, mam i stejnej display sheild jako na obrazku, ale nic mi to neukazuje, jake napeti mam nastavit pomoci delice na ten pin 11 (trochu me desi ze na digitalni pin, nemelo by to bzt spise na analogu ?)
Horni displej neukazuje nic a ten dolni 00..00 / 1542us (00000hz)
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809
Uživatelský avatar
mypower.cz
R.I.P.
Příspěvky: 4927
Registrován: pát bře 04, 2011 11:36 am
Reputace: 521

Re: Arduino osciloskop na textovém displayi

Příspěvek od mypower.cz »

Samozrejme ze na analogovy pin. Dioda je na digitalnim pinu. Mereni je na analogovem. Delic tak aby bylo mozno merit co nejvetsi rozsah. Pokud mame 24V system tak idealne 0-30V => 0-5V, pokud 12V tak 0-15V=>0-5V

A jestli je to UNO tak pin zmenit trebas na A5 a diodu netreba ani resit, ta je tam celkem nepodstatna.
Uživatelský avatar
Frenky
Příspěvky: 815
Registrován: pon led 21, 2013 6:36 pm
Reputace: 131
Lokalita: Doubravička
Systémové napětí: 48V
Výkon panelů [Wp]: 8700
Kapacita baterie [kWh]: 25
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Doubravička

Re: Arduino osciloskop na textovém displayi

Příspěvek od Frenky »

JO jo, kdybych se tak naucil drive cist a pak psat. Takze to us maka :uh: , prepsal jsem si program na arduino UNO analog=pin1 a digital na pin 11 pro LEDKU.

Situace
- 1 arduino MEGA, maká a ukazuje údaje o FVE (napeti, proudy pres cidla AMPLOC a odpor delice.)
- 2 arduino UNO s upraveným programem "osciloskop"
- analogovy vstup arduina c2 pripojeno na analogovy vstup arduina c1, kde merim proud do baterie pres AMLOC cidlo
- napajeni arduina 1 je pres DC/DC menic z 12V aku FVE.
- napajeni arduina 2 je radeji pres trafickozdroj do zásuvky (chtel jsem se vyvyrovat zemnich smycek, pri napajeni pres USB s pocitace to bere nejeke sumy)

Mereni1: není zapnuty zadny stridac ani nabijecke
displej ukazuje 3F..3F / 0hz a horni krivka zadnz prubeh

Mereni2: zapnuta nabijecka, vypnute oba stridace
displej ukazuje 3F..4B / 100hz (okolo) horni krivka ukazuje kopecky, (jenom horni ), typicky prubeh po usmerneni diodovym mustkem.

Mereni3: nabijecka vypnuta, sinus stridac zapnut na zatez cca 50W (je to maly stridac do 180W)
displej ukazuje 34..3F / 100hz (okolo) horni krivka ukazuje typickou sinusovku

Mereni4: nabijecka vypnuta, sinus stridac vypnut, trapez stridac zapnut na zatez 100W zarovka (trapez je 600W mede in china)
displej ukazuje 39..3C / 100Hz (okolo) horni krivka ukazuje typickou sinusovku

GOOD práce, v životě by mě nenapadlo, že vlastně arduinem měřím kraviny na druhou. Proto ty pišvejcovi konstanty při mém měření :eek2:

Hned si program zaradim do meho a venuji mu jednu obrazovku. :comp:

Nicmene to nemeni nic na tom, ze se strasne tesim na budouci mikrolog a kdybych mohl byt necim uzitecny, tak se hlasim do party. Pokud by projekt vyzadoval nejake finance, tak se taky hlasim.
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809
Uživatelský avatar
Frenky
Příspěvky: 815
Registrován: pon led 21, 2013 6:36 pm
Reputace: 131
Lokalita: Doubravička
Systémové napětí: 48V
Výkon panelů [Wp]: 8700
Kapacita baterie [kWh]: 25
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Doubravička

Re: Arduino osciloskop na textovém displayi

Příspěvek od Frenky »

Jeste jsem se tedy zapomnel zeptat tvurce, jestli mohu. Licenci samozrejmne zaplatim na pristim setkanim tekutym platidlem :-)
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809

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