stepper motor kontroll ved hjelp av bilde 16f872

W

wada

Guest
Jeg ønsker å designe og implementere en stepper motor kontrolleren bygget rundt et bilde 16f872.Ønsker å bruke motorer finnes i LX300 Punktmatrise skrivere.Kan noen hjelpe meg med ideer til hvordan jeg skal kunne gjennomføre dette.

 
Du må finne en stepper motor kontrolleren for å styre motoren.
Kontrolleren vil bli styrt av PIC.
Den beste måten å gjøre det bruker PIC's tidtakere og avbryter å generere pulser til motoren kontrolleren.Avhengig av hvilken frekvens du trenger å flytte motor

 
hei,

Se dette nettstedet:
http://www.discovercircuits.com/M/motor-cont.htm

best regrads,

 
Bruk L293D eller TLE4726 for grensesnitt og denne algoritmen (full pass) for kontroll (CCS Compiler):

char port_a;
# byte port_a = 0x05 / / Initial adressen til Porta_A

char port_c;
# byte port_c = 0x07 / / Initial adressen til Porta_C

/ / Det
er avhengig av pinner som du bruker
# define BOB1B port_a, 4
# define BOB1A port_a, 5

# define BOB2B port_c, 4
# define BOB2A port_c, 5/ / Variabler
static unsigned int8 flag_step; / / Motor posisjon flagg;
static unsigned int32 trinn; / / pass countervoid Close_Motor (void)
(
bryteren (flag_step) / / Neste pass
(
case 1:
bit_set (BOB1B); / / Pass 1
bit_clear (BOB1A);
bit_clear (BOB2B);
bit_set (BOB2A);
flag_step = 2;
trinn -; / / desember passerer flere variable
break;
case 2:
bit_clear (BOB1B); / / Pass 2
bit_set (BOB1A);
bit_clear (BOB2B);
bit_set (BOB2A);
flag_step = 3;
trinn -; / / desember passerer flere variable
break;
case 3:
bit_clear (BOB1B); / / Pass 3
bit_set (BOB1A);
bit_set (BOB2B);
bit_clear (BOB2A);
flag_step = 4;
trinn -; / / desember passerer antall variable break;
sak 4:
bit_set (BOB1B); / / Pass 4
bit_clear (BOB1A);
bit_set (BOB2B);
bit_clear (BOB2A);
flag_step = 1;
trinn -; / / desember passerer flere variable
break;
)
return;
)void Open_Motor (void)
(
bryteren (flag_step) / / Neste pass
(
case 1: / / Pass 1
bit_clear (BOB1B);
bit_set (BOB1A);
bit_set (BOB2B);
bit_clear (BOB2A);
flag_step = 4;
trinn ; / / Inc passere flere variable
break;
case 2: / / Pass 2
bit_set (BOB1B);
bit_clear (BOB1A);
bit_set (BOB2B);
bit_clear (BOB2A);
flag_step = 1;
trinn ; / / Inc passere flere variable
break;
case 3: / / Pass 3
bit_set (BOB1B);
bit_clear (BOB1A);
bit_clear (BOB2B);
bit_set (BOB2A);
flag_step = 2;
trinn ; / / Inc passere flere variable
break;
case 4: / / Pass 4
bit_clear (BOB1B);
bit_set (BOB1A);
bit_clear (BOB2B);
bit_set (BOB2A);
flag_step = 3;
trinn ; / / Inc passere flere variable
break;
)
return;
)

void main (void)
(
trinn = 1; / / Initial verdien av pass
)

Så du må legge inn en forsinkelse rutine mellom pass (følges høyeste operative frekvensen av motor) og fart som du trenger.

leomecma

 

Welcome to EDABoard.com

Sponsor

Back
Top