Jump to content
ELFORUM - Forumul Electronistilor
Sign in to follow this  
Vlad Mihai

Controlul turatiei unui motor DC

Recommended Posts

Am terminat ieri(in mare parte) si acest montaj, care consta in reglarea turatiei a unui motor de curent continuu utilizand tensiune medie aplicata prin PWM de la un microcontroller (pic16f876a), stiu ca mai am un topic pe la alimentatoare cu acesta tema dar e cam diferit, adica nu mi folosesc afisarea ci o trimit datele(tensiune si curent) pe serial prin bluetooth catre un telefon mobil care va avea o aplicatie in android(dezvoltata de mine cand voi avea timp).

Partea de forta este realizata cu un mosfet cu rds on mic, cu canal n, si partea de driver este un max627 pus in paralel care ii asigura un curent de 4A de comanda.

Momentan e gata partea din soft cea de control local prin push butoane, mai e pana termin si monitorizarea si comunicatia, dar pun ce am facut.

Schema:

Posted Image

PCB:

Posted Image

3D:

Posted Image

Finalizare:

Posted Image

Cod sursa:

 unsigned short current_duty1;void main() {ADCON1     = 0x80;                       // configure Vref, and analog channelsTRISA      = 0xFF;                       // designate PORTA as input TRISB.F3=0; TRISB.F5=0; PORTB.F5=0; PORTB.F3=0; TRISC.F4=1; TRISC.F5=1;PWM1_Init(6000);PWM1_Start();PWM1_Set_Duty(current_duty1);current_duty1 = 0;while(1){    if(PORTC.F4 == 0) {                      //If the switch is pressed     Delay_ms(10);                             //Switch Debounce     if(PORTC.F4 == 0) {                      //If the switch is still pressed         current_duty1 = current_duty1+5;        //scade pwm1        Delay_ms(100);       }    }    if(PORTC.F5 == 0) {                      //If the switch is pressed     Delay_ms(10);                             //Switch Debounce     if(PORTC.F5 == 0) {                      //If the switch is still pressed         current_duty1 = current_duty1-5;        //scade pwm1        Delay_ms(100);       }    }                   PWM1_Set_Duty(current_duty1);     PORTB.F5=~PORTB.F5;     PORTB.F3=~PORTB.F3;     DELAY_MS(300);      }       }
Video:

Share this post


Link to post
Share on other sites

Excelenta folosirea max627, mai ales in paralel! :aplauze

Share this post


Link to post
Share on other sites

Salutare. Adaug o intrebare aici, daca se poate sa fiu ajutat.

Vreau sa fac un sistem prin care sa inchid trapa la o teava de ventilatie. Mai exact sa automatizez trapa de inchis-deschis. Ma intereseaza sa gasesc un montaj ce comanda un motor dc, de urmatoarea maniera: cand apas butonul pentru deschis, motorul porneste si ridica trapa pina actioneaza un sistem de oprire (limitare cursa), dupa care se opreste. La o alta apasare, porneste in sens invers si inchide trapa, cu limitare in sens invers.

Aveti idee cum pot face un astfel de montaj sau daca gasesc unul?

Share this post


Link to post
Share on other sites

Te sfatuiesc sa te orientezi catre un servo. Daca te intereseaza ideea si o poti aplica, deschide un alt topic.

Share this post


Link to post
Share on other sites

Este același lucru cu automatizarea unei porți sau uși de garaj. Se găsesc scheme de la cele mai rudimentare, doar cu relee și microintrerupătoare, pâna la cele asistate de microprocesor.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • 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.