Meřák k regulovatelnému zdroji

Všetko čo sa týka mikropočítačov + Sekcia Arduino

Moderátori: psichac, Moderátori

DanielK
Stály člen
Stály člen
Príspevky: 282
Dátum registrácie: 28 Feb 2015, 14:55

Meřák k regulovatelnému zdroji

Príspevok od používateľa DanielK » 03 Feb 2018, 18:15

Ahoj,

Vyrábím měřák ovládaný atmegou 8, pro regulovatelný zdorj. Chtěl bych poradit s čím by mohl být problém a co by bylo vhodné předělat.
Díky za reakce.

Vlastnosti:
měřenní napětí: 0-35V; 10mV krok
měření proudu: 0-3A; 10mA krok
měření teploty chladiče: 0-100 °C (při 60°C odpojení výstupu) , 1 °C krok, +- 3 °C přesnost
měření polohy potenciometru zdroje ovádající CC (přibližně)
stav zdroje CV/CC
tlačítkový vstup
ovládání relé
indikační led
ovládání ventiátoru (v závislosti od teploty)
ovládání jasu
ovládání podsvitu
výpis na display 16x2
Prílohy
V, A metr.sch
(989.71 KiB) 88 stiahnutí
0

DanielK
Stály člen
Stály člen
Príspevky: 282
Dátum registrácie: 28 Feb 2015, 14:55

Re: Meřák k regulovatelnému zdroji

Príspevok od používateľa DanielK » 04 Feb 2018, 10:38

Zkusím konkrétnější otázku. Mohl bybýt problém s napájením AVCC s obvodem lm2594 5V? Bylo by lepší pro napájení AD převodníku použít třeba 7805ku?

*1) Ve schámatu je chyba, IC9 má být 12V verze.
0

dan21
Ultimate člen
Ultimate člen
Príspevky: 3016
Dátum registrácie: 11 Apr 2007, 00:00
Bydlisko: ZA

Re: Meřák k regulovatelnému zdroji

Príspevok od používateľa dan21 » 04 Feb 2018, 11:43

Prve co ma napadlo je ze pri rozsahu 0-35V s pouzitim ADC atmega8 mas krok dany 35/1024 co je trosku viac ako 10mV.
Jedine zeby si urobil nejaky autorange voltmeter trebars 0-10Vs krokom +-10mv a potom 0-35V s krokom +-35/1024

Alebo pouzit externy ADC(12+ bitovy)
0

DanielK
Stály člen
Stály člen
Príspevky: 282
Dátum registrácie: 28 Feb 2015, 14:55

Re: Meřák k regulovatelnému zdroji

Príspevok od používateľa DanielK » 04 Feb 2018, 12:27

Dan21: sbírám 64 vzorků z 10bit ADC a udělm z toho průměr (hodnoty z ADC nejsou stabilní, proto to funguje). V nepájivém poli se zdá, že to funguje, tak snad na desce to bude taky fungovat.

Něco jako "autorange" tam je, a to kvůli malým hodnotám. Při hodnotách >1V, to 2.5x zesiluje lm324 IC6C a posílá do PC1, nad 2,5V na výstupu OZ se začíná činit zenerka, ale to už se napětí bere z děliče na PC0.
0

dan21
Ultimate člen
Ultimate člen
Príspevky: 3016
Dátum registrácie: 11 Apr 2007, 00:00
Bydlisko: ZA

Re: Meřák k regulovatelnému zdroji

Príspevok od používateľa dan21 » 04 Feb 2018, 13:06

priemer zo 64 vzorkov ti nezlepsi citlivost. Aku metodu pouzivas ? Scitas 64 hodnot a potom >>6 ? Alebo plavajuci priemer, alebo nieco ine ?
Stale tam mas iba 10bit ADC. Najvacsiu citlivost dosiahnes pri najmensom Aref :-) Podla schemy (tipujem) tam mas Aref=external 5V(Vcc)
takze citlivost by mohla byt 5mV(+-). Moja skusenost je taka ze pri takejto citlivosti my vzdy preskakovala hodnota na LCD. Zalezi na stabilite zdroja.
Ako riadis vystupne napatie ? Myslim potom ako precitas hodnotu s JP11 na PC5. PWM ?
0

DanielK
Stály člen
Stály člen
Príspevky: 282
Dátum registrácie: 28 Feb 2015, 14:55

Re: Meřák k regulovatelnému zdroji

Príspevok od používateľa DanielK » 04 Feb 2018, 13:33

Kód: Vybrať všetko

	unsigned long int prumer( int*pole, int delka ) 
	{
	unsigned long int sum = 0, i = 0;
	for( i = 0; i < delka; i++ ) 
		{
		sum += pole[i];
		}
		return sum/delka;
	}

int main()
{
unsigned int hodnoty[64] = {0,};

while(1)
            {
             if ( i == 64 ) 
               {
                napeti = prumer( hodnoty, 64 );

                výpis na display 

                i=0;
               }

            hodnoty[i] = ( read_ADC(0) ) * 34.22;
            i++;
           }
}

ADMUX=(1<<REFS0); // reference VCC

PC5, JP11 slouží pouze jako vstup, v regulovatelným zdroji bude 10k potenciometr ovládání proudu nahrazen dvojitým poťákem (společná hřídel), jedna dráha potenciometru bude klasicky řídit zdroj a druhá dráha bude snímána PC5 a při odpojeném výstupu chci připližně zobrazovat nastavený proud. (nooo, nejsem dobej ve vysvětlování :biggrin: )
0

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1537
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Re: Meřák k regulovatelnému zdroji

Príspevok od používateľa jirka.jirka. » 04 Feb 2018, 13:38

Ten výpočet je nějaký divný. Jelikož tam máš nějaké integery co pracují s floaty (co jsem tak zahlídl). Floatům bych se u AVR-ka vyhnul. A jde to.

Jinak pro přesně měření bych použil externí referenci. Např. 4,096V. Potom i přepočet napětí bude lépe vycházet.

EDIT: hodil jsem si to notepadu a co dělá toto?

Kód: Vybrať všetko

hodnoty[i] = ( read_ADC(0) ) * 34.22;
Když hodnoty jsou typu:

Kód: Vybrať všetko

unsigned int hodnoty[64] = {0,};
0

DanielK
Stály člen
Stály člen
Príspevky: 282
Dátum registrácie: 28 Feb 2015, 14:55

Re: Meřák k regulovatelnému zdroji

Príspevok od používateľa DanielK » 04 Feb 2018, 14:06

Jirka : ukládá do pole hodnoty z ADC ponásobené maximálním napětím před děličem s menší kalibrační úpravou.

hodnoty = ( read_ADC(0) ) * 34.22; // třeba ADC(0) = 512 ,,,,, 512 * 34,22 = 17 520 mV
0

dan21
Ultimate člen
Ultimate člen
Príspevky: 3016
Dátum registrácie: 11 Apr 2007, 00:00
Bydlisko: ZA

Re: Meřák k regulovatelnému zdroji

Príspevok od používateľa dan21 » 04 Feb 2018, 14:30

Ja osobne by som ukladal do pola hodnoty z ADC (bez nasobenia, delenia hocijakou konstantou) a az pri zobrazeni vysledku by som to prepocital. Ale ak potrebujes tu hodnotu este na nieco ine ............
Presne ako jirka.jirka napisal - treba sa vyhybat floatom !! A ide to !!!
Mne ako perfekna inspiracia posluzil tento clanok
https://svetelektro.com/clanky/laborato ... t-813.html
0

DanielK
Stály člen
Stály člen
Príspevky: 282
Dátum registrácie: 28 Feb 2015, 14:55

Re: Meřák k regulovatelnému zdroji

Príspevok od používateľa DanielK » 04 Feb 2018, 14:44

Tak jako jo, s programem si můžu hrát kdykoliv, mě šlo spíš o HW, abych nemusel dělat 5 verzí DPS, protože tomu nerozumim a nevidim v tom ty detaily. Jako student mám celkem omezené finance, tak by potom nefunkční HW celkem mrzel.
0

Používateľov profilový obrázok
Kado
Power user
Power user
Príspevky: 1625
Dátum registrácie: 02 Sep 2007, 00:00
Bydlisko: PB
Vek: 40

Re: Meřák k regulovatelnému zdroji

Príspevok od používateľa Kado » 04 Feb 2018, 14:58

pre meranie max. napatia 35V je rozlisenie zhruba 35V/1024 = 34,18mV/bit
pre meranie max prudu 3A je rozlisenie zhruba 3A/1024 = 2,93mA/bit

ak chces presnu referenciu jedine externu, napr REF3033

hodnoty priemeruj ako surove cisla z adc prevodnika, ziadne floaty ti tam netreba, kalibracnou konstantou si to vynasob az po spriemerovani

edit: moj meracik k lab zdroju je postaveny na MSP430Fxxxx s 16bit sigma delta adc (pouzivam iba 15bit), kukni video
https://www.youtube.com/watch?v=RkWhUsmGoHk
0
Naposledy upravil/-a Kado v 04 Feb 2018, 16:38, upravené celkom 2 krát.
Návrh zapojení s jednočipovými mikropočítačmi, tvorba programového vybavenia pre mikropočítače
http://www.jk-elektronika.info/index.html

predaj !!
http://svetelektro.com/modules.php?name ... 54#p549154

dan21
Ultimate člen
Ultimate člen
Príspevky: 3016
Dátum registrácie: 11 Apr 2007, 00:00
Bydlisko: ZA

Re: Meřák k regulovatelnému zdroji

Príspevok od používateľa dan21 » 04 Feb 2018, 16:12

Ja som cerpal inspiraciu (hlavne HW) pre moj zdroj (este stale nedokonceny) z tejto stranky
https://www.pocketmagic.net/digital-bench-power-supply/
miesto tlacidiel tam mam rotacny enkoder ................
0

Používateľov profilový obrázok
boraicho
Ultimate člen
Ultimate člen
Príspevky: 12406
Dátum registrácie: 03 Feb 2007, 00:00
Bydlisko: Prešov
Vek: 35
Kontaktovať používateľa:

Re: Meřák k regulovatelnému zdroji

Príspevok od používateľa boraicho » 04 Feb 2018, 16:22

Fakt su vnutorne referencie mcu nrepouzitelne? Lebo ja ich bezne pouzivam
0
"Aj nevinne vyzerajúca súčiastka, môže byť príčinou nefunkčnosti zariadenia a tou kondenzator 100% je"
3D REBEL II + PLA + PETG
CNC 1810 na DPS

Používateľov profilový obrázok
Kado
Power user
Power user
Príspevky: 1625
Dátum registrácie: 02 Sep 2007, 00:00
Bydlisko: PB
Vek: 40

Re: Meřák k regulovatelnému zdroji

Príspevok od používateľa Kado » 04 Feb 2018, 16:39

ale su pouzitelne, treba citat datashit ku konkretnemu mcu, tam je vsetko
pri tom rozliseni co bude mat pri merani max napatia 35V by som externu ref zavrhol
0
Návrh zapojení s jednočipovými mikropočítačmi, tvorba programového vybavenia pre mikropočítače
http://www.jk-elektronika.info/index.html

predaj !!
http://svetelektro.com/modules.php?name ... 54#p549154

dan21
Ultimate člen
Ultimate člen
Príspevky: 3016
Dátum registrácie: 11 Apr 2007, 00:00
Bydlisko: ZA

Re: Meřák k regulovatelnému zdroji

Príspevok od používateľa dan21 » 04 Feb 2018, 16:55

celkom presna metoda je pomocou bandgap zmerat napajacie napatie a to potom pouzit pri vypocte ako referenciu.
Bandgap je celkom stabilna pri roznych napajacich napatiach a teplotach
Toto je pre atmega8
Prílohy
m8.png
0

DanielK
Stály člen
Stály člen
Príspevky: 282
Dátum registrácie: 28 Feb 2015, 14:55

Re: Meřák k regulovatelnému zdroji

Príspevok od používateľa DanielK » 04 Feb 2018, 21:29

Kado: pěkné to máš, ty led dispalye se mi líbí, když jsem na to koukal, tak přehodnotím svůj nárok na rozlišení, proud chci mít s rozlišeím 1mA :biggrin:

Dan21: Jo, to by bylo pěkný, mě to stačí když to bude fungovat jako "vybavenější měřák"

zítra mrknu na tend bandgap

můžu se pokusit navrhnout desku tak, abych si potom hohl vybrat mezi externí uref a interním. Nebo bych si tím jen zbytečně zkomplikoval život?
0


Používateľov profilový obrázok
boraicho
Ultimate člen
Ultimate člen
Príspevky: 12406
Dátum registrácie: 03 Feb 2007, 00:00
Bydlisko: Prešov
Vek: 35
Kontaktovať používateľa:

Re: Meřák k regulovatelnému zdroji

Príspevok od používateľa boraicho » 09 Feb 2018, 19:27

ked sa tu riešilo presnosť merania. čo myslite čo by bolo presnejšie ktorý zápis?
v prvom sa spočitaju horne bity a dolne bity, potom sa osobitne spriemeruju a až tak sa spoja do jedneho čisla. v druhom sa hned spajaju do jedneho čisla a nakoniec spriemeruje. Alebo su v podstate obidva zapisi rovnake?

Kód: Vybrať všetko

int ADpot()
{
ADCON0bits.CHS = 0b00011;
hodnota=0;
hodnota2=0;
vysledok=0;
for (goad=0;goad<10;goad++)
{
ADCON0bits.GO = 1;
while(ADCON0bits.GO) continue;
hodnota+=ADRESH;
hodnota2+=ADRESL;
}

hodnota/=10;
hodnota2/=10;
vysledok=hodnota;
vysledok<<=8;
vysledok+=hodnota2;

return vysledok;

}

Kód: Vybrať všetko

int ADpot()
{
ADCON0bits.CHS = 0b00011;
hodnota=0;
hodnota2=0;
for (goad=0;goad<10;goad++)
{
hodnota=0;
ADCON0bits.GO = 1;
while(ADCON0bits.GO) continue;

hodnota=ADRESH;
hodnota<<=8;
hodnota+=ADRESL;
hodnota2+=hodnota;
}
hodnota2/=10;

return hodnota2;

}
0
"Aj nevinne vyzerajúca súčiastka, môže byť príčinou nefunkčnosti zariadenia a tou kondenzator 100% je"
3D REBEL II + PLA + PETG
CNC 1810 na DPS

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Meřák k regulovatelnému zdroji

Príspevok od používateľa peterple » 10 Feb 2018, 19:55

Tu je lepšie nemyslieť, ale vedieť. Prvý spôsob je nesprávny. Stačí si urobiť jednoduchý pokus. Dajme tomu že meraná hodnota je 15, ale raz z tých desať meraní príde hodnota 16. V prvom postupe ti vyjde priemer 13. Lebo dolná cifra bude (15*9 +0)/10 teda 13. Horná cifra bude 0 lebo (9*0+1)/10 je 0.
V druhom prípade to vyjde správne (15*9 +16)/10 = 15.1 teda 15.

Ešte pripomienka k zvolenému počtu vzorkovaní. Desať nie je moc šťastný počet. Samozrejme tebe je asi jedno ako dlho to trvá. Ale ak by si chcel vzorkovať čo najrýchlešie tak to delenie desiatimi trvá dosť času. Preto sa počet vzorkovaní volí z radu 2^N (2,4,8,16,32,64,..) A delenie sa potom realizuje posunmi. O čom ani nemusíš vedieť lebo to za teba optimalizuje prekladač.

No a na záver ešte spomeniem možnosť použiť kĺzavý priemer vďaka ktorému je možné získať pri každom meraní spriemerovanú hodnotu. Platí sa za to ale potrebou N prvkov dlhého poľa na zapamätanie posledných N vzoriek.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok