Sunteți pe pagina 1din 17

Universitatea Dunrea de Jos Galai

Facultatea de Automatic,Calculatoare,Inginerie Electric i


Electronic

Circuit de comand microstep


pentru motor pas-cu-pas bipolar
Absolvent : Florin MIHAIU
ndrumtor: asistent Silviu EPURE
2011

Cuprins

Introducere
Schem bloc
Proiectare hardware
Proiectare software
Organigrama programului
Realizare practic

Introducere
Microsteping
Motorul

pas-cu-pas: dispozitiv

electromagnetic ce convertete
impulsurile electrice n micare.
Domenii

de utilizare:

Sisteme de poziionare ;
Aplicaii industriale ;
Comercial .

Schema bloc

Schema electric

Schema electric
continuare

Componena circuitului

sursa de alimentare cu tensiune stabilizat

folosind stabilizatoarele LM7805 i


LM7905;
Punte dubl H L298;
amplificatorul LM358N ;
microcontrolerul PIC18F2550;

Funcionare

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 formeaz oscilatorul care genereaz semnalul
de ceas necesar pentru funcionarea microcontrolerului;
Amplificator i comparator realizat cu LM358.

L298 Punte H
Tensiune

de saturaie mic;
Protecie la temperatur ridicat;
Nivel de 0 logic la intrare de pn la 1,5V ;
funcioneaz n gama de temperaturi -25 C /+130
C;
funcioneaz la tensiuni de pn la 46V;
Curent continuu suportat de pn la 3A.

Microcontrolerul PIC18F252
Specificaii tehnice

Viteza de lucru : 10Mhz ciclu de 100s;


Toate instruciunile se execut ntr-un
singur ciclu de ceas (excepie fac
instruciunile de test);
Memorie program 16kb;
Memoria RAM are 2k octei;
Memoria EEPROM are 256 de octei;
Pn la 10 canale de comunicaie;
Multiple surse de ntrerupere (pn la 19);
Posibilitate de programare cu o tensiune de
5V.

Sursa de alimentare

Transformator 220V/2x9Vavnd izolare galvanic;


Punte cu diode avnd rol de redresare;
Circuite integrate LM7805 i LM7905 cu rol de
stabilizatoare .

Organigrama programului nscris n


microcontroler

Programul scris n MikroC


l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l

//initializare
int oldstate, oldstate1, pas, current_duty, current_duty1, count;
int duty[]={25, 51, 74, 97, 120, 142, 160, 181, 196, 211, 224, 237, 243, 249, 253, 255};
void main() {
ADCON1=0b00001111; //configurare convertor A/D
TRISB=0b00000000; // setare PORTB ca iesire
PORTB=0b00000000; //stergere PORTB
TRISA=0b11111111; //setare PORTA ca intrare
TRISC=0b00000000; //setare PORTC ca iesire
CMCON=0b00000111; //dezactivare comparator
PORTC.F7=1; //setare pinul 7 al portului C ca intrare
PORTC.F6=1; //setare pinul 6 al portului C ca intrare
current_duty=0; //setare factorul de umplere curent pe 0 pentru PWM1
current_duty1=0; //setare factorul de umplere curent pe 0 pentru PWM2
PWM1_Init(20000); // Initializare modul PWM1 la 20KHz
PWM2_Init(20000); // Initializare modul PWM2 la 20KHz
pas=0; //setare pas pe 0
count=0; //setare contor pe 0
PWM1_Start(); // start PWM1
PWM2_Start(); // start PWM2
PWM1_Set_Duty(current_duty); // Setare factorul de umplere pentru PWM1
PWM2_Set_Duty(current_duty1); // Setare factorul de umplere pentru PWM2

Programul scris n MikroC


l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l

// secvent program principal realizare comanda+pwm


start:
//secventa pas inainte
if (Button(&PORTA, 0, 1, 1)) oldstate = 1; // verifica daca butonul de pe RA0 are
valoarea 1 logic si starea anterioara 1
if (oldstate && Button(&PORTA, 0, 1, 0)) //verifica daca butonul are val 0 timp de 100
ms si daca valoarea anterioara este 0
{ oldstate=0;
if (count<16)
{ PORTB.F3=1;
PORTB.F2=0;
PORTB.F1=1;
PORTB.F0=0;
PWM1_Set_Duty(duty[pas]); // Seteaza factorul de umplere pentru PWM1, parcurge vector de la
stnga spre dreapta
PWM2_Set_Duty(duty[15-pas]); // Seteaza factorul de umplere pentru PWM2, parcurge vector de la
dreapta spre stnga
}

Realizarea practic a circuitului

Concluzii
Lucrarea

poate fi utilizat cu succes


n cadrul :
Sisteme de poziionare;
Exemplificare ca lucrare de laborator.

V MULTUMESC!

S-ar putea să vă placă și