Sari la conținut
ELFORUM - Forumul electronistilor

Sursa liniara controlata cu uC (PWM), cu LM317 si/sau AO


suirammarius

Postări Recomandate

Vezi exemplul din Help pentru ADC. Timpul de rulare al programului complet (inclusa afisarea LCD) este probabil de 10-15ms sau un pic mai mult, suficient sa faci o noua afisare de curent folosing simplu

current = ADC_Read(x)         in loc de curent = noa_citire_curent*0.1 + curent_anterior*0.9
si sa nu ai flickering pe LCD la update. O metoda buna este sa faci citirea si sa afisezi numai daca este diferita de cea precedenta.

 

Utilizarea lui INA este ca sa faci citirea mai elegant (si precis, zic eu).

Link spre comentariu
  • Răspunsuri 170
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • suirammarius

    74

  • Marian

    38

  • Dr.L

    27

  • Mircea

    18

Top autori în acest subiect

Imagini postate

(...)

current = ADC_Read(x)         (...)
(...)

 

Daca fac asa, valoarea afisata e foarte instabila; oricat ai incerca, un oarecare zgomot tot e (4mV/unitate la o referinta de 5V). Metoda implementata de mine iti schimba valoarea afisata (sau returnata de functie) cu doar 1% la fiecare citire. La mine a dat rezultate foarte bune in citirea temperaturilor, mai ales in medii foarte zgomotoase (viteza de afisare e muuult superioara vitezei variatiei de temperatura, citita cu un NTC).

Utilizarea lui INA este ca sa faci citirea mai elegant (si precis, zic eu).

Mda, am citit datasheet-ul si parea interesant dar, nu e foarte usor de gasit. Asa ca daca Dr.L zice ca merge la fel de bine si cu un TL081, cum e simplu de gasit, am sa-l folosesc.
Link spre comentariu

Marius, uite codul meu (in Basic) pe care il folosesc.

Sursa e simetrica, deci masor 3 tensiuni (vezi mai jos Iset) si 2 curenti, afisez numai o ramura (cea pozitiva). Am niste conditionari IF (ventilatorul porneste daca oricare dintre curenti > 1A, afisez simbolul ala in linia 2 character 16), si taie alimentarea daca oricare dintre curentii masurati depaseste valoarea setata (Iset este un potentiometru care seteaza limita de curent). Am pus intarzierile de 100ms pentru flickering pentru ca nu vreau sa fac alte comparari de valori. Nu misca nimic, valorile sunt fixe indiferent de cum variez sarcina. In poza atasata o sarcina din rezistente de putere.

 

' Voltage positive' Measure        adc_rd0 = ADC_read(0)        tlong0 = adc_rd0 * 5000 * 4.25        tlong0 = tlong0 >> 10        adc_rd0 = integer(tlong0)        ch0 = adc_rd0 div 10000        if ch0 = 0 then            Lcd_Out(1, 1," ")        else            Lcd_Chr(1, 1, 48+ch0)        end if        ch0 = (adc_rd0 div 1000) mod 10        Lcd_Chr(1, 2, 48+ch0)        Lcd_Chr(1, 3, ".")        ch0 = (adc_rd0 div 100) mod 10        Lcd_Chr(1, 4, 48+ch0)        Lcd_Out(1, 5,"V")    Delay_ms(100)' Current positive' Measure        adc_rd1 = ADC_read(1)        tlong1 = adc_rd1 * 5000 * 1        tlong1 = tlong1 >> 10        adc_rd1 = integer(tlong1)        ch1 = (adc_rd1 div 1000) mod 10        Lcd_Chr(1, 7, 48+ch1)        Lcd_Chr(1, 8, ".")        ch1 = (adc_rd1 div 100) mod 10        Lcd_Chr(1, 9, 48+ch1)        ch1 = (adc_rd1 div 10) mod 10        Lcd_Chr(1, 10, 48+ch1)        ch1 = (adc_rd1 div 1) mod 10        Lcd_Chr(1, 11, 48+ch1)        Lcd_Out(1, 12,"A")    Delay_ms(100)    ' Positive branch power        P1 = adc_rd0 * adc_rd1 / 1000000        P11 = ceil(P1)        BytetoStr(P11, txtP1)        Lcd_Chr(1, 14, txtP1[1])        Lcd_Chr(1, 15, txtP1[2])        Lcd_Out(1, 16, "W")

post-19977-139829686534_thumb.jpg

Link spre comentariu

Schema de curent este cu INA210, din datasheet. Iti pot pune film sa vezi ca nu joaca deloc la sarcina rezistiva. Este adevarat, am pastrat a 3-a zecimala ca sa umplu LCD-ul :nebun: . Este inutila, pentru ca, asa cum zicea cineva, la curenti f mici nu iti zice nimica. Am un rail-to-rail repetor dupa INA si nu vad curenti sub 25-30mA.

 

In atas: INA139 este inlocuit cu INA210, LM324 cu MCP6L04. Nu gasesc acuma fisierul original pentru schema lui INA210 (difera un pic pinii, vezi Ref).

 

Headerele alea sunt pentru aranjarea tip stack a PCB-urilor (module). PCB de curent pe PCB de Interfata (OPAMPS), PIC si LCD pe acelasi PCB de Interfata. "IN" in "OUT", "PIC" cuplata cu placa PIC (asta are PIC-ul, un pot de LCD si header de LCD).

 

LE: for your record - interfata an refacut-o de 2 ori, partea de curent doar o data :jytuiyu D-asta-i bine sa fie modular!

 

Link video:

sch.pdf

Link spre comentariu

Multumesc! :)

Eu incerc sa refac doar partea de forta. O montez si daca tot nu-mi place, o sa refac si pe cea de control. Desi... nu cred ca o sa fie nevoie (SPER).

Am sa alimentez vent. asa cum ai zis, din celalalt traf si asa cum mi-a recomandat Dr.L. Vedem ce iese.

Link spre comentariu

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



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări