Jump to content
ELFORUM - Forumul electronistilor

Rezistor variabil - controlat din microcontroller


mcb

Recommended Posts

Salut.

 

Programator cu experienta aici; cunostiinte mici de electronică, pasionat de Arduino de vreo 6 luni, am o situație pe care vreau s-o discut cu cei mai experimentați în electronică:

 

Controlez un motor cu PWM + Mosfet.
Oricât ai încerca să filtrezi semnalul cu RC/Low Pass filter (și un electrolitic pe lângă), în esență pe output tot pulsații ai (porniri și opriri de înaltă frecvență), motorul tot o să facă zumzetul specific acestui lucru, indiferent dacă scazi sau crești frecvența PWM-ului ( https://playground.arduino.cc/Code/PwmFrequency ).

 

Mă gândeam atunci, să creez un soi de rezistor variabil, cu ajutorul căruia să pot controla viteza împreună cu un LM2596 spre exemplu.

Un exemplu am văzut aici [ http://www.yoctopuce.com/EN/article/building-a-usb-driven-variable-resistor ], doar că soluția prezentată acolo are numeroase dezavantaje: folosește relee (care implică și o parte mecanică - deci nu-s fiabile, plus că iau spațiu și sunt lente), iar pentru fiecare releu ar trebui să ocupi un pin digital al microcontroller-ului... dacă vrei să ai 10 pași de viteză, îți trebuie 10 pini.

 

Întrebare de principiu e: există vreo piesă electronică (sau vreun montaj), care să se comporte ca un releu/optocuplor și să se activeze atunci când îi este furnizat un PWM cu o anumită frecvență pe care s-o poți seta?

Ideea e că dacă s-ar putea face o transpunere a montajului cu relee într-un mod electronic, și de preferat controlabil pe un singur pin, ar fi parfum...

Orice idee este apreciată.


Mulțumesc!

Edited by mcb
Link to comment

Later reply (expirase timpul de edit):

 

Un optocuplor în mod normal, este un led + o fotodiodă, care comandă un tranzistor. Nu există o piesă care în loc de tranzistorul comandat, să aibă un foto-rezistor? Pentru că intensitatea LED-ului se poate controla prin PWM... iar valoarea foto-rezistorului ar fi direct proporțională cu intensitatea acestuia (în cazul în care foto-rezistorul nu ține cont de frecvența luminii).

Link to comment

Un optocuplor este de obicei un led care comanda un fototranzistor... :) 

Personal am comandat o multime de motoare cu PWM si n-am sesizat sa "faca zgomot" da` daca zici tu....

Exista potentiometre digitale care fac ce vrei fara sa te complici cu optocuploare, fotorezistente si alte d-astea... dar rezistenta respectivului nu-i una de putere ca sa poti s-o intercalezi pe alimentarea unui motor. (https://www.microchip.com/design-centers/analog/data-converter/digital-potentiometer)

Fa o sursa liniara de tensiune comandata cu un potentiometru d-asta (sau cu un DAC daca preferi) si o sa ai caderea de tensiune pe regulatorul serie in loc de rezistente.

Link to comment

@informer, in special ventilatoarele fac sunetul ala. Incearca un venitilator de PC, Mosfet si PWM, si da-i turatia undeva intre 40-100 (analogWrite). O sa-l auzi. “Humming noise” ii spun astia pe forumuri...

Cat despre solutia propusa de tine... scopul meu e sa pot crea o sursa liniara din PWM-ul generat de microcontroller (0-255 sa controleze intre 0-12V CC). O sa incerc azi cu un LM358, gasisem ceva pe net. Cum spuneam, inca mai am de invatat :)

 

@gauss - ai vreun cod pt. unul din fabrica? Eu doar pe Wikipedia am citit despre ele, si in mare parte spunea ca nu se mai folosesc ( https://en.m.wikipedia.org/wiki/Resistive_opto-isolator ).

Pentru ca da, cu ajutorul rezistentei interne vreau sa merg mai departe intr-un LM2596 pt. variatia de tensiune.

Mi-am luat cele necesare (led, fotorezistor) si vreau sa creez unul astazi - “manufacturat”. Sper doar ca foto-rezistorul sa nu tina cont de frecventa luminii, pt. ca altfel nu ma ajuta PWM-ul. Vedem ce iese. Oricum... n-o sa se compare cu unul din fabrica, aia e clar :)

 

OffTopic: cate posturi trebuie sa am, pentru a nu mai fi necesar sa imi fie replicile aprobate de moderator?

Edited by mcb
Link to comment
57 minutes ago, mcb said:

@informer, in special ventilatoarele fac sunetul ala. Incearca un venitilator de PC, Mosfet si PWM, si da-i turatia undeva intre 40-100 (analogWrite). O sa-l auzi. “Humming noise” ii spun astia pe forumuri...

Cat despre solutia propusa de tine... scopul meu e sa pot crea o sursa liniara din PWM-ul generat de microcontroller (0-255 sa controleze intre 0-12V CC). O sa incerc azi cu un LM358, gasisem ceva pe net. Cum spuneam, inca mai am de invatat :)

 

@gauss - ai vreun cod pt. unul din fabrica? Eu doar pe Wikipedia am citit despre ele, si in mare parte spunea ca nu se mai folosesc ( https://en.m.wikipedia.org/wiki/Resistive_opto-isolator ).

Pentru ca da, cu ajutorul rezistentei interne vreau sa merg mai departe intr-un LM2596 pt. variatia de tensiune.

Mi-am luat cele necesare (led, fotorezistor) si vreau sa creez unul astazi - “manufacturat”. Sper doar ca foto-rezistorul sa nu tina cont de frecventa luminii, pt. ca altfel nu ma ajuta PWM-ul. Vedem ce iese. Oricum... n-o sa se compare cu unul din fabrica, aia e clar :)

 

OffTopic: cate posturi trebuie sa am, pentru a nu mai fi necesar sa imi fie replicile aprobate de moderator?

Depinde de fotorezistor . Adica sa aiba sensibilitatea  ( eventual ) maxima in domeniul lungimii de unda a led - ului , si sa fie suficient de rapid .  N - am mai stat sa caut pe net , eu am exemplare mai din vechime . De fabrica , recunosc . Dar am si manufacturat ... , poate fi un pic de lucru . De obicei se folosesc led - uri in infrarosu ... merg cele de la telecomenzi ,  dar puteti incerca si cu normale , eventual culori diferite , pentru randament ( factor de transfer ) . Trebuie tatonata In special distanta dintre elemente , si corpul opac in care sa realizati  montajul ... la rigoare , varnis negru sau ceva termocontractibil . Probele sa le faceti inainte de rigidizarea ansamblului , se poate inseria fotorezistenta cu ceva sursa de tensiune ( o baterie ) , sau in sistem divizor ( inseriat un potentiometru ) , fotorezistenta la masa , iar semnalul preluat paralel , la firul cald ( opus conexiunii de masa , minusul bateriei ) printr - un condensator ( de calculat reactanta la frecventa PWM ) si vizualizat cu ceva osciloscop . La rigoare ,  voltmetru cu ac , si frecventa joasa . Nu se " vad " tremuraturile acului functie de frecventa , dar ceva activitate ar trebui sa fie ... se regleaza pe maximul deviatiei , eventual se injecteaza intr - un amplificator audio , cu potrivirea sensibilitatii acestuia . 

Edited by gauss
Link to comment

De ce nu folosesti un potentiometru digital ?

https://www.google.com/search?client=firefox-b-d&ei=cZ-CXI2AMa3AlAapkpO4Bw&q=digital+potentiometer+ic&oq=digital+potentiometer+ic&gs_l=psy-ab.3..35i39j0i203l5j0i22i30l4.211264.212462..212587...1.0..0.133.395.0j3......0....1..gws-wiz.......0i67j0j35i304i39j0i13i30j0i13i5i30.PS_79TDH9jc

 

sau un DAC ?

 

sunt nenumarate modele .... pentru toate aplicatiile.

Aia cu PWM-ul filtrat si trasformat intr-o tensiune variabila mi se pare un mare bullshit.

Link to comment

@gauss - Mulțumesc pentru răspuns. M-am apucat sa-mi construiesc unul înainte sa editezi mesajul in toată complexitatea lui, am luat un led, fotorezistor, și tuburi termocontractabile. N-am fost suficient de inspirat să fac teste înainte să le încălzesc, și am obținut doar o variație mică (PWM 1-10, pt. valori de la 20Ohm la +20MegaOhmi... ) și foarte instabilă (gen, niciodată nu era constantă mai mult de 1 secundă), și toate astea cu rezistență de 680K înseriată pe LED, pt. 5V. Da, cu siguranță trebuie jonglat mult cu valorile, cu opacitatea ledului, etc.
Trebuie să admit că e o soluție 'amatoroicească', dar interesantă. O să caut să văd dacă există astfel de piese prefabricate.
Oricum - mulțumesc de răspuns și idei :)

 

@Thunderer2018, @mihaicozac - Din documentația de pe arduino.cc (care are 328P ca standard):

 *   - Base frequencies:
 *      o The base frequency for pins 3, 9, 10, and 11 is 31250 Hz.
 *      o The base frequency for pins 5 and 6 is 62500 Hz.
 *   - Divisors:
 *      o The divisors available on pins 5, 6, 9 and 10 are: 1, 8, 64,
 *        256, and 1024.
 *      o The divisors available on pins 3 and 11 are: 1, 8, 32, 64,
 *        128, 256, and 1024.

În prezent motoarele mele rulează pe pinurile 9 și 10, deci frecvența de bază e ~32kHz - zumzetul e prezent.
Am încercat să modific frecvența la 62kHz pt. pinurile 5 și 6, și a luat-o razna microcontrollerul; gen, nu mai aveam niciun output stabil pe pin-uri (9 era constant on, 10 era constant off) și frecvența ceasului a crescut considerabil. O să încerc varianta cu potențiometrele digitale...


@djvas, @informer - Într-o oră o să am și 2-3 potențiometre digitale, și o să experimentez cu ele. Sincer nu am știut de existența lor până acum. Cum spuneam - sunt încă novice în domeniu și învăț... cu ajutorul vostru.

 

Mulțumesc tuturor! Apreciez.

Link to comment

seteaza frecventa PWM la maxim, pune filtre cu un AO adaptor de impedanta o sa obtii la iesire o tensiune curent continuu intre 0 si 5V. Eventual tensiunea de iesire o poti stabiliza tot cu ajutorul microcontrolerului. Dar pentru a obtine o stabilizare buna, trebuie sa te feresti sa faci calcule cu microcontrolerul, lucru care se poate face doar in asm.

 

exista optocupluri digitale care merg la frecvente mari, de la 10MHz pana la 100MHz.

 

exista si potentiometre digitale care pot fi controlate prin I2C sau SPI si au valori intre 500 ohmi si 100K (AD84xx, AD52xx). Mai sunt potentiometre digitale care pot fi controlate doar cu ajutorul a 2 butoane sau a 2/3 iesiri de la un microcontroler (gen DS1666) sau potentiometre 1-wire (DS2980)

Link to comment

@mcb, nu ne-ai aratat codul tau. Numai tu stii ce ai scris acolo. Daca insa zumzetul este si la zeci de kHz, atunci nu stiu ce sa zic de motorul tau.

 

Lucrezi cu un clock de 16MHz?

 

As atrage atentia ca sunt foarte putine potentiometre digitale care accepta mai mult de 5V pe pinii rezistentei variabile.

 

Un potentiometru digital pus in reactia (feedback) lui 2596 poate vedea mai mult de 5V intre pini.

 

De asemenea, un potentiometru digital nu accepta decat un anumit curent maximum prin rezistenta variabila. E bine de considerat.

Edited by Thunderer
Link to comment

Dacă vrei să foloseşti comandă analogică spre un modul PWM cu LM2596 sau XL4015 îţi recomand un DAC extern pe 12 biţi de tip MCP4725. E ieftin şi precis, l-am folosit în câteva aplicaţii şi e OK. Tensiunea dată de el se poate introduce în FB-ul controllerului PWM şi astfel tensiunea CC de la ieşire va fi variabilă.

Link to comment

Nu are voie sa se mai audă "zumzait" la frecvente de PWM de peste citiva kHz. Sigur ai ceva greșeli pe acolo.

Ai pus un osciloscop pe iesire ca să vezi dacă într-adevăr ai PWM pe o frecventa de citiva KHz - zeci de Khz? 

Cunosc problema cu zgomotul creat de ventilatoarele alimentate cu PWM. Soluția găsită de mine a fost folosirea unei frecvente de PWM foarte joase, sub 10 Hz, și filtrarea curentului spre ventilator cu o bobina marisoara ca valoare (poate fi și o simpla rezistenta dacă nu ai nevoie de toată puterea la motor) și un condesator pe motor. 

Care ar fi schema de alimentare folosita la motor? Poți pune un desen? 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines