circuit de comandă microstep pentru motor pas-cu-pas bipolar
TRANSCRIPT
Universitatea Universitatea ““Dunărea de JosDunărea de Jos”” GalaGalaţţiiFacultatea deFacultatea de AutomaticăAutomatică,Calculatoare,Calculatoare,,Inginerie Electrică Inginerie Electrică șși i
ElectronicăElectronică
Circuit de Circuit de comandă comandă microstepmicrosteppentru motor pentru motor paspas--cucu--paspas bipolarbipolar
Absolvent : Florin MIHAIUAbsolvent : Florin MIHAIUÎÎndrumătorndrumător: asistent : asistent SilviuSilviu EPUREEPURE
20201111
CuprinsCuprins
ØØ IntroducereIntroducereØØ Schemă blocSchemă blocØØ Proiectare hardwareProiectare hardwareØØ Proiectare Proiectare ssoftwareoftwareØØ Organigrama programuluiOrganigrama programuluiØØ Realizare practicRealizare practicăă
IntroducereIntroducere
ØMicrostepingØMotorul pas-cu-pas: dispozitiv
electromagnetic ce converteşte impulsurile electrice în mişcare.
ØDomenii de utilizare:– Sisteme de poziţionare ;– Aplicaţii industriale ;– Comercial .
Schema blocSchema bloc
Schema Schema electricelectricăă
Schema Schema electricelectricăăcontinuarecontinuare
ComponenComponențțaa circuituluicircuitului
ØØ sursa desursa de alimentarealimentare cucu tensiune stabilizattensiune stabilizatăăfolosindfolosind stabilizatostabilizatoaarreelle LM7805 e LM7805 şşi i LM7905;LM7905;
ØØ Punte dublă H Punte dublă H –– L298;L298;ØØ amplificatorulamplificatorul LM3LM35858NN ;;ØØ microcontrolerulmicrocontrolerul PIC1PIC188FF25502550;;
FuncFuncţţionareionare
Ø Comandă dată cu unul din cele două butoane S2(RA0) sau S3(RA1).
Ø Microcontrolerul,prin intermediul softului, realizeazăvalorile PWM ;
Ø Valoare PWM trece printr-un filtru RC;ØØ C3, C4, Y1 C3, C4, Y1 formeazformeazăă oscilatorul care oscilatorul care genereazgenereazăă semnalul semnalul
de de ceasceas necesarnecesar pentru funcpentru funcţţionareionarea a microcontroleruluimicrocontrolerului;;ØØ Amplificator Amplificator şşi comparator realizat cu LM358i comparator realizat cu LM358..
L298L298 –– PuntePunte HH
Ø Tensiune de saturaţie mică;Ø Protecţie la temperatură ridicată;ØNivel de 0 logic la intrare de până la 1,5V ;Ø funcționează în gama de temperaturi -25 °C /+130
°C;Ø funcționează la tensiuni de până la 46V;Ø Curent continuu suportat de până la 3A.
Microcontrolerul PIC18F252
Specificații tehnice
Ø Viteza de lucru : 10Mhz → ciclu de 100µs;Ø Toate instrucţiunile se execută într-un
singur ciclu de ceas (excepţie fac instrucţiunile de test);
Ø Memorie program 16kb;Ø Memoria RAM are 2k octeţi;Ø Memoria EEPROM are 256 de octeţi;Ø Până la 10 canale de comunicație;Ø Multiple surse de întrerupere (până la 19);Ø Posibilitate de programare cu o tensiune de
5V.
Sursa de alimentare
Ø Transformator 220V/2x9Vavând izolare galvanică;Ø Punte cu diode având rol de redresare;Ø Circuite integrate LM7805 şi LM7905 cu rol de
stabilizatoare .
OrganigramOrganigramaa programprogramuluiului îînscris nscris îîn n microcontrolermicrocontroler
PProgramrogramulul scris scris îîn n MikroCMikroCl //initializarel int oldstate, oldstate1, pas, current_duty, current_duty1, count;l int duty[]={25, 51, 74, 97, 120, 142, 160, 181, 196, 211, 224, 237, 243, 249, 253, 255};l void main() {l ADCON1=0b00001111; //configurare convertor A/Dl TRISB=0b00000000; // setare PORTB ca iesirel PORTB=0b00000000; //stergere PORTBl TRISA=0b11111111; //setare PORTA ca intrarel TRISC=0b00000000; //setare PORTC ca iesirel CMCON=0b00000111; //dezactivare comparatorl PORTC.F7=1; //setare pinul 7 al portului C ca intrarel PORTC.F6=1; //setare pinul 6 al portului C ca intrarel current_duty=0; //setare factorul de umplere curent pe 0 pentru PWM1l current_duty1=0; //setare factorul de umplere curent pe 0 pentru PWM2l PWM1_Init(20000); // Initializare modul PWM1 la 20KHzl PWM2_Init(20000); // Initializare modul PWM2 la 20KHzl pas=0; //setare pas pe 0l count=0; //setare contor pe 0l PWM1_Start(); // start PWM1l PWM2_Start(); // start PWM2l PWM1_Set_Duty(current_duty); // Setare factorul de umplere pentru PWM1l PWM2_Set_Duty(current_duty1); // Setare factorul de umplere pentru PWM2
PProgramrogramulul scris scris îînn MikroCMikroC
l // secventă program principal realizare comanda+pwml start:l //secventa pas inaintel if (Button(&PORTA, 0, 1, 1)) oldstate = 1; // verifica daca butonul de pe RA0 arel valoarea 1 logic si starea anterioara 1l if (oldstate && Button(&PORTA, 0, 1, 0)) //verifica daca butonul are val 0 timp de 100l ms si daca valoarea anterioara este 0l { oldstate=0;l if (count<16)l { PORTB.F3=1;l PORTB.F2=0;l PORTB.F1=1;l PORTB.F0=0;l PWM1_Set_Duty(duty[pas]); // Seteaza factorul de umplere pentru PWM1, parcurge vector de la
stânga spre dreaptal PWM2_Set_Duty(duty[15-pas]); // Seteaza factorul de umplere pentru PWM2, parcurge vector de la
dreapta spre stânga l }
RealizareaRealizarea practicăpractică a a circuituluicircuitului
ConcluziiConcluzii
Ø Lucrarea poate fi utilizată cu succes în cadrul :
Ø Sisteme de poziţionare; Ø Exemplificare ca lucrare de laborator.
VVÃ Ã MULTUMESC!MULTUMESC!