Sari la conținut

Wattmetru cu PIC


pisica matache

Postări Recomandate

Vreau sa mentionez de la bun inceput,ca sunt total paralel cu PIC-urile si tot ce inseamna microcontroler.

Totusi vreau sa-mi construiesc un Wattmetru;am gasit aceasta schema si as vrea sa stiu daca e functionala.

http://homepages.par.../wattmeter.html

Daca exista si alte solutii mai simple,va rog sa le mentionati.

Multumesc anticipat pentru orice sfat.

Link spre comentariu
Distribuie pe alte site-uri

Multumesc de ajutor!

Mi-ar trebui pentru teste cu o eoliana,mi-ar mai trebui la ceva surse reglabile.La eoliana,tensiune,curent,putere,0-100V/0-50A/0-5000W,iar la surse,0-50V/0-50A/0-2500W.Una-doua zecimale,daca se poate..Am gasit ceva scheme cu PIC16F876 si LCD 2X16;exista la vanzare si o varianta cu PIC18F1320... ma indoiesc insa ca vanzatorul va da detalii despre programul folosit.

As fi interesat de varianta cu PIC16F876,dar orice solutie ai,e binevenita.

Link spre comentariu
Distribuie pe alte site-uri

Sa inteleg ca ai uC PIC16F876 si posibilitatea de al programa?

Am facut ceva asemanator, pentru silicipi din cealalalt forum, cu atmega8. La el afisam 3 tensiuni (panou, eoliana, acumulatori) si un curent (de incarcare, parca).

Am deja 3/4 din soft scris pentru orice PIC 16Fxxxx.

La partea de wattmetru te intereseaza puterea instantanee sau generata/consumata pe ora/zi/luna/de la pornire/etc?

Daca nu te grabesti prea tare, te ajut cu placere...

Link spre comentariu
Distribuie pe alte site-uri

Am comandat mai multe bucati PIC16F876,LCD-uri 2x16,cuarturi de 4Mhz.Am si programator,facut de @Nel65,caruia tin sa-i multumesc pentru ajutor.

Ma intereseaza deocamdata tensiune,curent,putere instantanee.Cum am sa folosesc asa ceva si la surse reglabile,m-am gandit si la posibilitatea unui reglaj digital al tensiunii/curentului de iesire,din patru butoane,doua pe tensiune,doua pe curent,Prin apasarea unuia sa creasca umplerea semnalului PWM,care dupa filtrare,sa constituie semnalul de referinta pentru comparatorul de tensiune,respectiv curent.Apasand al doilea buton,tensiunea/curentul sa scada.Dupa ce-am vorbit la telefon,cu doi colegi de pe celalalt forum,@Marian78,prezent si aici,si @Vlad Mihai,carora tin sa le multumesc pentru ajutor,am inteles ca se poate face asa ceva,cu acelasi PIC.

Astfel reglajul tensiunii de iesire cat si a curentului maxim,s-ar putea regla in pasi foarte mici;altfel ar fi nevoie de potentiometre multitura,sau doua potentiometre normale,inseriate,unul pentru reglaj brut,celalalt pentru reglaj fin.

Il rog pe Marian,cand are timp,sa puna aici codul sursa, pe care l-a conceput deja pentru VAW-metru.Ramane de rezolvat si partea de reglare tensiune/curent,orice sfat e binevenit.

Editat de pisica matache
Link spre comentariu
Distribuie pe alte site-uri

Am facut un cod separat pentru reglare pwm pe 2 canale, se folosesc 4 butoane puse pe portulB, butoanele sunt puse pull down(rezistente la masa-stare initiala), iar cand uC simte tranzitia in 1 logic executa comanda, pe Pinul 21 si 22 sunt butoanele pentru un PWM si pe 23 si 24 sunt pentru celelalte, o apasare modifica pwm cu 1%. simulat merge, rog sa se testeze practic, frecventa semnalului e de 15Khz(asa mi-a mers mie cel mai bine din teste folosite la examenul de licenta), se poate face un filtru pe pwm dublu cu 4,7K si condensator elctrolitic de 4.7uF(valoare condensatorului se poate tatona cu osciloscopul). Daca codul merge si practic atunci ramane sa le imbinam. si sa testam. Nu memoreaza setarile pwm, cand ii pica alimentarea e volatil o ia de la 0. nu stiu sa ma joc cu EEPROM. cristal de cuart folosit 4Mhz.

unsigned short current_duty1,current_duty2;


void main() {

TRISB.F0=1;
TRISB.F1=1;
TRISB.F2=1;			 //intrari pentru push-butoane
TRISB.F3=1;


ADCON1 = 0x80;				 // configure Vref, and analog channels
TRISA = 0xFF;				 // designate PORTA as input

PWM1_Init(15000);				 // f=15 KHz	 !!!!!!!!!!!!!!
current_duty1 = 0;
PWM1_Start();					 // start PWM1
PWM1_Set_Duty(current_duty1);	 // setare factor de umplere
PWM1_Init(15000);				 // f=15 KHz	 !!!!!!!!!!!!!!
current_duty2 = 0;
PWM2_Start();					 // start PWM1
PWM2_Set_Duty(current_duty2);	 // setare factor de umplere

while (1) {
 //control pwm
if (Button(&PORTB, 0, 1, 1)) {
 current_duty1 = current_duty1--;	 //scade pwm1
 delay_ms(100);
}
if (Button(&PORTB, 1, 1, 1)) {
 current_duty1 = current_duty1++; //creste pwm1
 delay_ms(100);
}
PWM1_Set_Duty(current_duty1);
if (Button(&PORTB, 2, 1, 1)) {
 current_duty2 = current_duty2--;	 //scade pwm2
 delay_ms(100);
}
if (Button(&PORTB, 3, 1, 1)) {
 current_duty2 = current_duty2++; //creste pwm2
 delay_ms(100);
}
PWM2_Set_Duty(current_duty2);
Delay_ms(100);
}
}

nu reusesc sa atasez aici asa ca dau un link cu toata arhiva unde se gaseste si o imagine cu legarea butoanelor(se leaga la masa si la +5V), pinii 12 si 13 sunt pentru pwm.http://www.girlshare.ro/32990692.9

Editat de Blue_man
Link spre comentariu
Distribuie pe alte site-uri

Multumesc Mihai!

Astept sa-mi vina componentele,apoi o sa testez.S-ar putea face insa pasii mai mici de 1% din umplere?Presupun ca si tensiunea de referinta,obtinuta dupa filtrarea PWM-ului se va modifica tot cu pasi de 1%.Presupunand tensiunea maxima de 100V,ar insemna reglarea tensiunii din volt in volt;sau s-ar putea implementa un reglaj fin?Reglarea bruta cu pasi de 1%,cea fina cu pasi de 0,1%,de exemplu.Astfel s-ar putea regla cu o precizie de o zecime de volt.Chiar daca ar insemna doua butoane in plus.

Link spre comentariu
Distribuie pe alte site-uri

Daca ai nevoie de o rezolutie atat de buna (0.1% inseamna o rezolutie de 10 biti) nu cred ca PWM te ajuta prea mult. De exemplu la pic16F876, la 4 Mhz frecventa maxima a PWM cu 10 biti rezolutie (1024 de trepte) este de aproape 5Khz - cam mica. Daca filtrarea PWM nu este beton, o sa ai riplu la iesirea sursei in zona audio...cam naspa.

O varianta mai buna pentru referinta ar fi un DAC extern pe 10-12biti. Scapi de riplu, creste rezolutia, dar pui o componenta in plus. Ca recomandare poti merge pe MCP4921/4922 - este DAC pe 12biti (4096 trepte), simplu/dublu, comandat serial (SPI).

Link spre comentariu
Distribuie pe alte site-uri

de ce nu folositi un microcontroller decent? ceva la 50MHz cu PWM uri integrate ADC/DAC 12 biti (LPC de la Philips, sau ST )

ati ramas prizonieri cu PIC-urile.

 

Sau faceti PWM-ul extern cu un CPLD, si-i dati un semnal de CLK de 100MHz. (un CPLD e 1-2$)

RR

Link spre comentariu
Distribuie pe alte site-uri

Adevarul e ca, cel putin eu, sunt "prizonierul" PIC-urilor si Atmel-urilor. Asta se intampla din cauza mediului de programare folosit, compilatoarelor, interfatelor de programare, simulatoarelor si nu in ultimul rand faptului ca programez uC-uri de dragul stiintei, nu ca meserie . Efectiv imi este sila sa ma apuc sa invat alte arhitecturi.

Deci ii dau dreptate lui RR. Exista chiar si in familia PIC 16 uC-uri mai performante si mai ieftine deca 16F876...

Link spre comentariu
Distribuie pe alte site-uri

Eu am testat cu varianta de mai sus propusa de mine, si pentru sursa de alimentare a mers perfect, nu a trebuit sa ma joc cu DAC pe 12 biti sau mai stiu eu ce. nu e nevoie de resurse mari pentru asa ceva. Cat despre riplu se poate ajusta cu osciloscopul, aceasta tensiune va fi introdusa intr-un amplificator de eroare pe post de tensiune de referinta, forma semnalului e ok.

Link spre comentariu
Distribuie pe alte site-uri

Astept sa primesc componentele,apoi vad ce si cum.Daca nu se poate pasi mai mici de 1%,probabil voi folosi un potentiometru pentru reglarea fina tensiune/curent.Reglarea bruta din PWM,fina, din potentiometru.Nici eu nu cred ca filtrarea riplului va fi o problema,exista atatea filtre ce pot rejecta o anumita frecventa,dar ramane de testat.

Link spre comentariu
Distribuie pe alte site-uri

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
  • Navigare recentă   0 membri

    • Nici un utilizator înregistrat nu vede această pagină.

×
×
  • Creează nouă...

Informații Importante

Folosim cookie-uri și tehnologii asemănătoare pentru a-ți îmbunătăți experiența pe acest website, pentru a-ți oferi conținut și reclame personalizate și pentru a analiza traficul și audiența website-ului. Înainte de a continua navigarea pe www.tehnium-azi.ro te rugăm să fii de acord cu: Termeni de Utilizare.

ATENTIE !!! Functionarea Tehnium Azi depinde de afisarea de reclame.

Pentru a putea accesa in continuoare site-ul web www.tehnium-azi.ro, va rugam sa dezactivati extensia ad block din browser-ul web al vostru. Dupa ce ati dezactivat extensia ad block din browser dati clic pe butonul de mai jos.

Multumim.

Apasa acest buton dupa dezactivarea extensiei Adblock