Professional Documents
Culture Documents
7.6. Oheisrautaa Stepper
7.6. Oheisrautaa Stepper
7.6. Oheisrautaa Stepper
Stepper
17.11.2007, pva
Sisältö
Yleistä
1
Askelmoottorin ohjausesimerkki
Askelmoottorin demo-ohjelma
/**********************************************************
Project : stepper_32.c
Date : 15.09.2007
Author : pva
Software: WinAVR-20070525 + ConTEXT + avrdude
Hardware: PV-M32 + PV-EMO
Comments: pyörittää askelmoottoria vastapäivään
2
{
volatile unsigned int i;
for(i=0;i<2000;i++)
_delay_loop_2(time);
}
int main(void)
{
DDRD = 0xFF; // D-portti lähdöksi
PORTD = 0x00;
unsigned char step[] = {0x00, 0x02, 0x08, 0x04, 0x10 };
unsigned char i = 1; // taulukon indeksi
while(1)
{
PORTD = step[i]; // stepperin ohjaus
if(i > 4)
i = 0;
wait(50);
}
}
Analysointi
Komentorivillä
PORTD = step[i]; // stepperin ohjaus
haetaan taulukosta indeksiä i vastaava lukuarvo, esim. 0x02. Kun tuo luku on mikro-
ohjaimen D-portissa, sen neljä alinta bittiä viedään edelleen ULN2803-
puskurivahvistimen input-pinneihin. Piiri on invertoiva, joten pinniin 8 viety ykkönen
näkyy lähdössä nollana. Täten piiri maadoittaa askelmoottorin ’mustan käämin’ ja
moottori askeltaa yhden askeleen. Se missä järjestyksessä käämeihin johdetaan virtaa,
kerrotaan moottorin datalehdessä. Kommenteissa on kaikki muu oleellinen.
Harjoitus
1. Muuta ohjelmaa siten, että painamalla nappia moottori askeltaa yhden täyden
kierroksen.
2. Kokeile, mikä voi olla pienin viive, jolla moottori vielä askeltaa vakaasti.
ISO-teho-stepper