Sari la conținut
ELFORUM - Forumul electronistilor

Regulator voltaj PWM


Vizitator

Postări Recomandate

Consideram ca legam la atmega 328 un IRF540 pe portul 9 (PWM) pentru a comanda un motor DC 12V.

Tensiune alimentare atmega328 5V, extern insa avem o tensiune intre 9-15V.

Dorim sa avem 6V pe motor, constant, indiferent de tensiunea externa (9..15V).

 

Se doreste creearea unei functii de genul:

void motorOut(int voltage) { // ?? }

Ce idei aveti ?

Link spre comentariu

Este posibil.

 

In primul rand,pentru citirea tensiunii din care se face PWM, se poate utiliza un divizor rezistiv.

Tensiunea pe motor o poti face intr-un mod asemanator, printr-un filtru RC, desi nu este cea mai eleganta solutie.

 

Dar, daca vrei sa mentii motorul la turatie constanta, cred ca mai degraba curentul ar trebui sa il citesti.

Eu as opta pentru un circuit analogic pentru a face o medie a curentului prin motor (cu o rezistenta in serie) si a genera o tensiune proportionala cu acesta, care ar fi citita de micro la o intrare ADC.

 

Cu microcontroller posibilitatile sunt foarte multe, poti citi turatia motorului cu un senzor si ajusta PWM pentru a o controla bine.

Cred ca trebuie sa implementezi o functie PID, in functiile de inertiile din sistemul tau.

Link spre comentariu

Nu se doreste mentinerea turatiei, ar fi regulator de turatie.

Prima idee este ceea ce-mi trebuie, poti sa o dezvolti putin ?

 

Eu ma gandeam, sa "citesc" tensiunea de intrare 9..15V, sa-mi iau punct de referinta de exemplu 12V, unde voi sti ce valoare a PWM va fi ptr 6V, si sa fac o procedura de compensatie cu functia map(), in functie de acest voltaj citit.

 

Cum se citeste in mod corect tensiunea dupa un mosfet comandat in pwm ? trebuie un filtru ceva ? cred ca despre acest filtru rc spuneai..

Link spre comentariu

Zici ca nu este un regulator, dar alegi citirea turatiei ?

 

Divizorul rezistiv il poti face intre alimentare si masa. Exemplu: o rezistenta de 15K intre +9_15V si pinul analogic de intrare, iar intre acesta si masa o rezistenta de 5K. Astfel, vei avea un sfert din tensiunea de intrare pe pinul analogic. Faci o calibrare din soft.

 

De ce ai vrea sa stii tensiunea pe iesirea tranzistorului? 

Editat de one
Link spre comentariu

In mod normal nu m-ar fi interesat turatia. Vroiam doar sa compensez voltajul, in mod direct si turatia. Nu era critica turatia, dar la diferente de voltaj oscila.

 

Nu am reusit sa citesc de pe tranzistor voltajul, si cu citire de pe sursa externa..am observat ca diferentele nu sunt lineare, deci a trebuit sa apelez la RPM.

 

Tensiunea pe iesirea tranzistorului doream sa o cunosc pentru a echilibra rapid voltajul din PWM. Era cea mai rapida chestie, dar nu am reusit deloc sa imi dau seama cum se foloseste filtrul acela RC.

 

Oricum m-am intins si la un optocuplor, pentru ca nu imi deschidea mosfet-ul mai mult de 10V..si am ales sa citesc rpm si din pwm sa-l echilibrez, astfel ca voltajul nu mai conteaza. Totusi, sunt latente mari, datorita motorului destul de maricel, si timpului de schimbare a turatiei, din nou..neliniar.

 

Era posibil sa citesc tensiunea de pe iesirea tranzistorului ? Sunt in inca in faza de laborator,as putea revenii la prima idee, chiar daca am lucrat pana acum la senzorul hall, aliniere magneti etc..

 

Mai pe scurt, intentionam sa mentin o turatie relativa, chiar daca se modifica tensiunea pe sursa (bateria masinii: 11-14V).

Daca se poate...astept inca idei...sfaturi..

 

Multumesc.

Link spre comentariu

Daca sarcina e inductiva (motor) tensiunea la iesirea MOSFET-ului este aproape constanta indiferent de starea tranzistorului. Pentru a controla tensiunea pe motor trebuie masurate cele doua tensiuni la borne (fata de borna de masa a MC) si facuta diferenta intre ele. Daca se filtreaza tensiunile, cele doua filtre trebuie sa fie identice

Link spre comentariu

bun deci ce solutie este daca ai 12 .. 14V si vrei sa obtii 7.2V 10A cu arduino sau alt chip ?

 

Sarcina sa presupunem ca este un bec, sau o rezistenta de 1R.

Sigur ca in mod ingenios se poate ajusta prin teste, chiar si cu pwm, cu conditia ca tensiunea de intrare sa fie fixa, dar in caz contrar .. ce solutie ar fi ?

Link spre comentariu

Cand o sa faci sa-ti functioneze calumea bucla de reactie negativa ( presupun ca la asta te-ai gandit ) o sa compenseze variatia tensiunii de alimentare exact ca la o sursa liniara

In principiu se masoara tensiunea pe motor , rezistenta , bec , ce ai , cum a explicat colegul mai sus , numai ca trebuie filtrata partea dintre motor si tranzistor fiind PWM cu un filtru RC , cum se calculeaza depinde de frecventa PWM , se gaseste pe net cum se face

Ma rog pentru un motor trebuie stabilizata turatia , nu tensiunea ... ca asa o sa varieze in continuare turatia in functie de sarcina motorului ... poate daca se presupune ca sarcina e constanta tot timpul si nu esti prea pretentios

Editat de Depanatoru
Link spre comentariu

Este destul de ciudat ce vrei, eu nu prea inteleg.

 

Observatii la discutiile de pana acum:

 

 -IRF540 nu se poate folosi cu ARDUINO din cauza tensiunii de comanda pe grila care este insuficienta, trebuie cautat alt tranzistor cu tensiuni mai mici de comanda pe grila.

 

- Motorul este o sarcina inductiva si rationamentul trebuie sa tina cont de acest lucru. Pentru o inductanta curentul este valoarea care conteaza, tensiunea este ceva rezidual si depinde de rezistenta inductantei si de viteza de variatie a curentului prin inductor.

 

- pentru un motor tensiunea la borne este egala cu :  U= I x R + K x N   unde I = curentul prin motor, R= resistenta ohmica a motorului,  N = viteza de rotatie a motorului si K este un factor de proportinalitate.  Pentru a realiza  o turatie constanta tensiunea U de alimentare a motorului trebuie compensata in functie de curentul consumat de motor. Adica trebuie ca U - I x R = constant, aceasta functie este folosita si la regulatoarele de la vechile casetofoane unde tensiunea creste in functie de sarcina.

Editat de Fulgerik
Link spre comentariu

Admit ca nu ma exprim foarte bine.

Referinta mea era totusi la o sarcina  de genul unui bec.

In cazul in care ideile mele nu sunt bune, va rog dati-mi voi una corecta.

 

Sa presupunem ca aveti in mana o bujie incandescenta de 7.2V 10A, pe care trebuie sa o alimentezi la o baterie auto. Pe baterie este o tensiune cuprinsa intre 11 .. 14,5V

Ai nevoie sa reduci voltajul la aproximativ 6V, cum comanzi un tranzistor cu arduino sa ai 6V  pe bujie in orice situatie de 11..14,5V ?

 

IRF540 nu se poate folosi cu ARDUINO

 

folosesc IRF540 cu optocuplor, pentru ca am mai multe "pe stoc", dar in caz de ceva puteti sa-mi recomandati orice altceva.

 

Nota: Incercam sa pastrez titlul topicului "Regulator voltaj PWM" , dar problema era diferita de Motor.

Editat de Vizitator
Link spre comentariu

Eu văd două metode de principiu:

1. Metoda reacției ( negative ) -  ”Feedback” - tensiunea de la ieșire o măsori cu ADC inclus în µC , o compari cu o referință ( digitală, evident) și în funcție de rezultat crești sau cobori factorul de umplere al unui PWM. Metoda este general aplicabilă , poate fi lentă - dacă asta contează.

2. Metoda ”Feed forward” ( habar n-am să traduc corect în context ) - știi tensiunea de ieșire , măsori tensiunea de intrare și calculezi factorul de umplere . E aplicabilă numai la sarcină constantă dar e probabil mult mai rapidă. 

Link spre comentariu

Ce mosfet imi recomandati sa lugreze pe grila cu 5V, si proprietati similare lui  IRF540N si disponibil la [tme] sau [adelaida] ?

Editat de Vizitator
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