Cum se utilizează PWM pentru a controla direcția unui motor de curent continuu?
Nov 10, 2025
Hei acolo! Dacă ești pasionat de electronică sau robotică, probabil te-ai întrebat cum să folosești modularea în lățime a impulsurilor (PWM) pentru a controla direcția unui motor de curent continuu. Ei bine, ești în locul potrivit! În calitate de furnizor PWM, am o mulțime de experiență cu aceste lucruri și sunt încântat să o împărtășesc cu voi.
Ce este PWM?
În primul rând, să vorbim despre ce este PWM. PWM este o tehnică folosită pentru a controla puterea furnizată unui dispozitiv electric prin pornirea și oprirea rapidă a alimentării. Raportul dintre timpul în care este pornită puterea și timpul total al ciclului se numește ciclu de funcționare. Schimbând ciclul de funcționare, puteți controla puterea medie furnizată dispozitivului.
De exemplu, dacă aveți un semnal PWM de 100 Hz cu un ciclu de lucru de 50%, alimentarea va fi pornită timp de 5 ms și oprită timp de 5 ms în fiecare ciclu de 10 ms. Dacă creșteți ciclul de funcționare la 70%, alimentarea va fi pornită timp de 7 ms și oprită timp de 3 ms în fiecare ciclu. În acest fel, puteți controla viteza și direcția unui motor de curent continuu.
Controlul direcției unui motor de curent continuu cu PWM
Pentru a controla direcția unui motor de curent continuu folosind PWM, veți avea nevoie de câteva lucruri:
- Un motor de curent continuu
- Un circuit H-bridge
- Un microcontroler capabil să genereze semnale PWM
Circuitul H-bridge
Podul H este un circuit care vă permite să controlați direcția unui motor de curent continuu prin inversarea polarității tensiunii aplicate motorului. Este format din patru comutatoare (de obicei tranzistori) dispuse în formă de „H”. Pornind diferite combinații de comutatoare, puteți face ca motorul să se rotească în orice direcție.
Iată o diagramă simplă a unui circuit H-bridge:
[Inserați aici o diagramă simplă a circuitului H-bridge]
Când comutatoarele S1 și S4 sunt închise, curentul trece printr-un singur sens prin motor, determinându-l să se rotească în sensul acelor de ceasornic. Când comutatoarele S2 și S3 sunt închise, curentul trece prin motor în sens opus, determinându-l să se rotească în sens invers acelor de ceasornic.
Generarea semnalelor PWM
Pentru a controla viteza motorului, va trebui să generați semnale PWM. Majoritatea microcontrolerelor au module PWM încorporate care pot fi folosite pentru a genera aceste semnale. Puteți ajusta ciclul de lucru al semnalului PWM pentru a controla puterea medie furnizată motorului și, prin urmare, viteza acestuia.
Iată un exemplu despre cum să generați un semnal PWM folosind un Arduino:
// Definiți pinul conectat la motor const int motorPin = 9; void setup() { // Setați pinul motorului ca pin de ieșireMode(motorPin, OUTPUT); } void loop() { // Setați ciclul de lucru la 50% analogWrite(motorPin, 127); întârziere (1000); // Setați ciclul de lucru la 70% analogWrite(motorPin, 180); întârziere (1000); // Setați ciclul de lucru la 30% analogWrite(motorPin, 76); întârziere (1000); }
În acest exemplu,analogWrite()funcția este utilizată pentru a seta ciclul de lucru al semnalului PWM. Valoarea transmisă funcției poate varia de la 0 (ciclu de funcționare 0%) la 255 (ciclu de funcționare 100%).
Controlul direcției cu PWM
Pentru a controla direcția motorului folosind PWM, va trebui să utilizați circuitul H-bridge în combinație cu semnalele PWM. Puteți utiliza două semnale PWM pentru a controla cele două părți ale podului H. Prin ajustarea ciclurilor de lucru ale acestor semnale, puteți controla viteza și direcția motorului.
Iată un exemplu despre cum să controlați direcția unui motor de curent continuu folosind un Arduino și un pod H:
// Definiți pinii conectați la puntea H const int motorPin1 = 9; const int motorPin2 = 10; void setup() { // Setați pinii motorului ca ieșiri pinMode(motorPin1, OUTPUT); pinMode(motorPin2, OUTPUT); } void loop() { // Rotiți motorul în sensul acelor de ceasornic cu viteza de 50% analogWrite(motorPin1, 127); analogWrite(motorPin2, 0); întârziere (2000); // Rotiți motorul în sens invers acelor de ceasornic cu viteza de 70% analogWrite(motorPin1, 0); analogWrite(motorPin2, 180); întârziere (2000); // Opriți motorul analogWrite(motorPin1, 0); analogWrite(motorPin2, 0); întârziere (2000); }
În acest exemplu,analogWrite()funcția este utilizată pentru a seta ciclurile de lucru ale celor două semnale PWM. CândmotorPin1are un ciclu de funcționare diferit de zero șimotorPin2are un ciclu de funcționare zero, motorul se rotește în sensul acelor de ceasornic. CândmotorPin2are un ciclu de funcționare diferit de zero șimotorPin1are un ciclu de funcționare zero, motorul se rotește în sens invers acelor de ceasornic.
Produsele noastre PWM
În calitate de furnizor PWM, oferim o gamă de produse PWM de înaltă calitate, perfecte pentru controlul motoarelor de curent continuu. NoastreControler de încărcare solară PWM 30Aeste o alegere excelentă pentru aplicațiile care necesită o capacitate mare de curent. Dispune de un modul PWM încorporat care poate fi utilizat pentru a controla curentul de încărcare al unei baterii.
Dacă aveți nevoie de o capacitate de curent mai mică, sistemul nostruControler de încărcare solară PWM 20AşiControler de încărcare solară PWM 10Asunt, de asemenea, opțiuni excelente. Sunt compacte, eficiente și ușor de utilizat.
Concluzie
Controlul direcției unui motor de curent continuu folosind PWM este o tehnică puternică și versatilă care poate fi utilizată într-o gamă largă de aplicații. Utilizând un circuit H-bridge și generând semnale PWM, puteți controla viteza și direcția motorului cu precizie.
Dacă sunteți interesat de produsele noastre PWM sau aveți întrebări despre utilizarea PWM pentru a controla motoarele de curent continuu, nu ezitați să ne contactați pentru mai multe informații și pentru a discuta cerințele dumneavoastră specifice. Suntem aici pentru a vă ajuta să găsiți cea mai bună soluție pentru proiectul dvs.
Referințe
- „Noțiunile de bază ale modulației în lățime a impulsurilor (PWM)” - Tutoriale electronice
- „H-Bridge Motor Driver Circuit” - Totul despre circuite
- „Referință Arduino - analogWrite()” - Documentație Arduino
