This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:examples:motor:stepper [2010/02/22 14:07] – mikk.leini | et:examples:motor:stepper [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | < | ||
| ====== Samm-mootor ====== | ====== Samm-mootor ====== | ||
| - | //Vajalikud teadmised: [HW] [[et: | + | //Vajalikud teadmised: |
| + | [HW] [[et: | ||
| + | [AVR] [[et: | ||
| + | [LIB] [[et: | ||
| + | [LIB] [[et: | ||
| ===== Teooria ===== | ===== Teooria ===== | ||
| Line 15: | Line 20: | ||
| Muutuva magnetilise takistusega samm-mootorites on hambulised mähised ja hambuline rauast rootor. Suurim tõmbejõud tekib mõlema poole hammaste kattumisel. Püsimagnetiga samm-mootorites on, nagu nimigi ütleb, püsimagnet, | Muutuva magnetilise takistusega samm-mootorites on hambulised mähised ja hambuline rauast rootor. Suurim tõmbejõud tekib mõlema poole hammaste kattumisel. Püsimagnetiga samm-mootorites on, nagu nimigi ütleb, püsimagnet, | ||
| - | Sõltuvalt samm-mootori mudelist läheb mootori võlli ühe täispöörde (360 kraadi) tegemiseks vaja sadu kommuteerimissamme. Stabiilse ja sujuva liikumise tagamiseks kasutatakse sobivat juhtelektroonikat, | + | Sõltuvalt samm-mootori mudelist läheb mootori võlli ühe täispöörde (360 kraadi) tegemiseks vaja sadu kommuteerimissamme. Stabiilse ja sujuva liikumise tagamiseks kasutatakse sobivat juhtelektroonikat, |
| - | + | ||
| - | ~~PB~~ | + | |
| **Unipolaarne samm-mootor** | **Unipolaarne samm-mootor** | ||
| - | |||
| - | [{{ : | ||
| Unipolaarne samm-mootor on viie või kuue juhtmega. Vastavalt ajami skeemile käivitatakse korraga ainult üks neljandik mähistest. //Vcc// liinid on tavaliselt ühendatud mootori positiivse toitepingega. Mähiste otsad 1a, 1b, 2a, ja 2b ühendatakse kommuteerimisel läbi transistoride ainult maaga, mistõttu nende juhtelektroonika on suhteliselt lihtne. | Unipolaarne samm-mootor on viie või kuue juhtmega. Vastavalt ajami skeemile käivitatakse korraga ainult üks neljandik mähistest. //Vcc// liinid on tavaliselt ühendatud mootori positiivse toitepingega. Mähiste otsad 1a, 1b, 2a, ja 2b ühendatakse kommuteerimisel läbi transistoride ainult maaga, mistõttu nende juhtelektroonika on suhteliselt lihtne. | ||
| **Bipolaarne samm-mootor** | **Bipolaarne samm-mootor** | ||
| - | |||
| - | [{{ : | ||
| Bipolaarne samm-mootor erineb unipolaarsest samm-mootorist selle poolest, et mähiste polaarsust muudetakse kommutatsiooni ajal. Korraga aktiveeritakse pooled mähised, mis tagab võrreldes unipolaarse samm-mootoritega suurema efektiivsuse. Bipolaarsetel samm-mootoritel on neli juhet, mis ühendatakse kõik eraldi poolsillaga. Kommuteerimisel rakendavad poolsillad mähiste otstele kas positiivset või negatiivset pinget. Unipolaarseid samm-mootoreid saab käivitada ka bipolaarse ajuri abil: selleks tuleb ühendada vaid mähiste liinid 1a, 1b, 2a ja 2b (//Vcc// jääb ühendamata). | Bipolaarne samm-mootor erineb unipolaarsest samm-mootorist selle poolest, et mähiste polaarsust muudetakse kommutatsiooni ajal. Korraga aktiveeritakse pooled mähised, mis tagab võrreldes unipolaarse samm-mootoritega suurema efektiivsuse. Bipolaarsetel samm-mootoritel on neli juhet, mis ühendatakse kõik eraldi poolsillaga. Kommuteerimisel rakendavad poolsillad mähiste otstele kas positiivset või negatiivset pinget. Unipolaarseid samm-mootoreid saab käivitada ka bipolaarse ajuri abil: selleks tuleb ühendada vaid mähiste liinid 1a, 1b, 2a ja 2b (//Vcc// jääb ühendamata). | ||
| + | [{{ : | ||
| + | [{{ : | ||
| Mõlemat liiki mähisega samm-mootori juhtimiseks vajalikku kommutatsiooni täissammu ja poolsammu režiimis kujutab järgnev tabel. Kuna unipolaarsete samm-mootorite ajurite puhul toimub vaid transistoride avamine, siis nende samme on kujutatud loogiliste arvudega 0 ja 1. Bipolaarse samm-mootori juhtimine võib vajada rohkem signaale, ja selle samme on kujutatud ajuri väljundite polaarsusega. | Mõlemat liiki mähisega samm-mootori juhtimiseks vajalikku kommutatsiooni täissammu ja poolsammu režiimis kujutab järgnev tabel. Kuna unipolaarsete samm-mootorite ajurite puhul toimub vaid transistoride avamine, siis nende samme on kujutatud loogiliste arvudega 0 ja 1. Bipolaarse samm-mootori juhtimine võib vajada rohkem signaale, ja selle samme on kujutatud ajuri väljundite polaarsusega. | ||
| Line 50: | Line 51: | ||
| | 8 ^ 1 | 0 | 0 ^ 1 ^ + | - | - ^ + | | | 8 ^ 1 | 0 | 0 ^ 1 ^ + | - | - ^ + | | ||
| + | ~~CL~~ | ||
| ===== Praktika ===== | ===== Praktika ===== | ||
| - | Harjutuse eesmärk | + | Kombomoodulil |
| - | Bipolaarse samm-mootori | + | Samm-mootorite |
| <code c> | <code c> | ||
| - | // | + | // Viikude seadistamine väljundiks |
| - | // Bipolaarse samm-mootori juhtimise ettevalmistamine | + | |
| - | // | + | |
| void bipolar_init(void) | void bipolar_init(void) | ||
| { | { | ||
| Line 66: | Line 66: | ||
| } | } | ||
| - | // | ||
| // Bipolaarse samm-mootori liigutamine poolsammudega | // Bipolaarse samm-mootori liigutamine poolsammudega | ||
| - | // | ||
| void bipolar_halfstep(signed char dir, | void bipolar_halfstep(signed char dir, | ||
| unsigned short num_steps, unsigned char speed) | unsigned short num_steps, unsigned char speed) | ||
| Line 100: | Line 98: | ||
| </ | </ | ||
| - | Funktsioonide kasutamist demonstreerib näiteprogramm, | + | Funktsioonide kasutamist demonstreerib näiteprogramm, |
| <code c> | <code c> | ||
| - | // | + | // Kodulabori samm-mootorite näidisprogramm |
| - | // Kodulabori | + | |
| - | // samm-mootori testprogramm | + | |
| - | // | + | |
| #include < | #include < | ||
| - | // | ||
| // Põhiprogramm | // Põhiprogramm | ||
| - | // | ||
| int main(void) | int main(void) | ||
| { | { | ||
| // Mootori seadistamine | // Mootori seadistamine | ||
| - | bipolar_init(); | + | unipolar_init(0); |
| // Lõputu tsükkel | // Lõputu tsükkel | ||
| - | while (true) | + | while (1) |
| { | { | ||
| - | // Pööramine ühele poole 200 poolsammu kiirusega 30 ms/samm | + | // Pööramine ühele poole 2000 poolsammu kiirusega 30 ms/samm |
| - | bipolar_halfstep(+1, 200, 30); | + | unipolar_halfstep(0,+1, 2000, 30); |
| - | // Pööramine teisele poole 200 poolsammu kiirusega 30 ms/samm | + | // Pööramine teisele poole 2000 poolsammu kiirusega 30 ms/samm |
| - | bipolar_halfstep(-1, 200, 30); | + | unipolar_halfstep(0,-1, 2000, 30); |
| } | } | ||
| } | } | ||
| </ | </ | ||