This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:software:homelab:library:module:motor [2010/02/08 14:21] – mikk.leini | et:software:homelab:library:module:motor [2020/07/20 12:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Mootorid ====== | ====== Mootorid ====== | ||
| - | //Seotud mooduliga: [HW] [[et: | + | //Seotud mooduliga: [HW] [[et: |
| - | Mootorite teek võimaldab juhtida | + | Mootorite teek võimaldab juhtida |
| + | ===== Andmetüübid ===== | ||
| + | |||
| + | * **// | ||
| + | * // | ||
| + | * // | ||
| + | * // | ||
| + | * // | ||
| + | * // | ||
| + | | ||
| ===== Funktsioonid ===== | ===== Funktsioonid ===== | ||
| * **//void dcmotor_init(unsigned char index)//** \\ | * **//void dcmotor_init(unsigned char index)//** \\ | ||
| Ühe alalisvoolu mootorikontrolleri juhtviikude seadistamine väljundiks. Parameetrid: | Ühe alalisvoolu mootorikontrolleri juhtviikude seadistamine väljundiks. Parameetrid: | ||
| - | * //index// - Mootorikontrolleri number. Väärtus | + | * //index// - Mootorikontrolleri number. Väärtus |
| * **//void dcmotor_drive(unsigned char index, signed char direction)// | * **//void dcmotor_drive(unsigned char index, signed char direction)// | ||
| Alalisvoolu mootorikontrolleri juhtkäsk. Parameetrid: | Alalisvoolu mootorikontrolleri juhtkäsk. Parameetrid: | ||
| - | * //index// - Mootorikontrolleri number. Väärtus | + | * //index// - Mootorikontrolleri number. Väärtus |
| * // | * // | ||
| + | |||
| + | * **//void dcmotor_drive_pwm_init(unsigned char index, timer2_prescale prescaler)// | ||
| + | * //index// - Mootorikontrolleri number. Väärtus 1 kuni 4. | ||
| + | * // | ||
| + | |||
| + | * **//void dcmotor_drive_pwm(unsigned char index, signed char direction, unsigned char speed) //** \\ | ||
| + | Ühe alalisvoolu mootorikontrolleri juhtkäsk. Mootor jääb etteantud suuna ja kiirusega pöörlema. Parameetrid: | ||
| + | * //index// - Mootorikontrolleri number. Väärtus 1 kuni 4. | ||
| + | * // | ||
| + | * //speed// - Mootori kiirus. Väärtus 0 - 255. 0 puhul mootor seisab ja 255 on maksimaalne võimalik kiirus. | ||
| + | |||
| + | * **//void unipolar_init(unsigned char index)//** \\ | ||
| + | Unipolaarse mootorikontrolleri juhtviikude seadistamine väljundiks. Parameetrid: | ||
| + | * //index// - Mootorikontrolleri number. Väärtus 0 või 1. (Kodulabor III puhul 1) | ||
| + | |||
| + | * **//void unipolar_halfstep(unsigned char index, signed char direction, unsigned short num_steps, unsigned char speed)//** \\ | ||
| + | Unipolaarse samm-mootori mootorikontrolleri poolsammumise juhtkäsk. Funktsioon on blokeeruv ehk seda täidetakse seni, kuni soovitud arv samme on tehtud. Parameetrid: | ||
| + | * //index// - Mootorikontrolleri number. Väärtus 0 või 1. (Kodulabor III puhul 1) | ||
| + | * // | ||
| + | * // | ||
| + | * //speed// - Ühe sammu tegemise aeg millisekundites. | ||
| * **//void bipolar_init(void)// | * **//void bipolar_init(void)// | ||
| Line 20: | Line 50: | ||
| * **//void bipolar_halfstep(signed char direction, unsigned short num_steps, unsigned char speed)//** \\ | * **//void bipolar_halfstep(signed char direction, unsigned short num_steps, unsigned char speed)//** \\ | ||
| - | Bipolaarse samm-mootori mootorikontrolleri | + | Bipolaarse samm-mootori mootorikontrolleri |
| * // | * // | ||
| - | * // | + | * // |
| * //speed// - Ühe sammu tegemise aeg millisekundites. | * //speed// - Ühe sammu tegemise aeg millisekundites. | ||
| * **//void servomotor_init(unsigned char index)//** \\ | * **//void servomotor_init(unsigned char index)//** \\ | ||
| Ühe servomootori juhtviikude väljundiks seadistamine ja taimer 1 seadistamine PWM režiimi. Parameetrid: | Ühe servomootori juhtviikude väljundiks seadistamine ja taimer 1 seadistamine PWM režiimi. Parameetrid: | ||
| - | * //index// - Servomootori number. Väärtus 0 või 1. | + | * //index// - Servomootori number. Väärtus 0 või 1. (Kodulabor III puhul 1-4) |
| * **//void servomotor_position(unsigned char index, signed short position)// | * **//void servomotor_position(unsigned char index, signed short position)// | ||
| - | | + | |
| - | * //index// - Servomootori number. Väärtus 0 või 1. | + | * //index// - Servomootori number. Väärtus 0 või 1. (Kodulabor III puhul 1-4) |
| * // | * // | ||
| + | |||
| + | < | ||
| ===== Näide ===== | ===== Näide ===== | ||
| Line 43: | Line 75: | ||
| int main(void) | int main(void) | ||
| { | { | ||
| - | // Alalisvoolu mootorikontrollerite | + | // Alalisvoolu mootorikontrollerite 1 ja 2 seadistamine |
| - | dcmotor_init(0); | + | |
| dcmotor_init(1); | dcmotor_init(1); | ||
| + | dcmotor_init(2); | ||
| // Bipolaarse samm-mootori kontrolleri seadistamine | // Bipolaarse samm-mootori kontrolleri seadistamine | ||
| Line 55: | Line 87: | ||
| // Üks alalisvoolu mootor pöörlema ühtpidi, teine teistpidi | // Üks alalisvoolu mootor pöörlema ühtpidi, teine teistpidi | ||
| - | dcmotor_drive(0, -1); | + | dcmotor_drive(1, -1); |
| - | dcmotor_drive(1, +1); | + | dcmotor_drive(2, +1); |
| // Samm-mootori pööramine 100 kraadi ühele poole ja seejärel | // Samm-mootori pööramine 100 kraadi ühele poole ja seejärel | ||
| Line 69: | Line 101: | ||
| </ | </ | ||
| + | Näide demonstreerib alalisvoolu mootori kiiruse etteandmist. | ||
| + | <code c> | ||
| + | #include < | ||
| + | int main(void) | ||
| + | { | ||
| + | unsigned char speed = 0; | ||
| + | |||
| + | // Mootori initsialiseerimine | ||
| + | dcmotor_drive_pwm_init(1, | ||
| + | while(1) | ||
| + | { | ||
| + | speed = 100; | ||
| + | |||
| + | // Mootorile valitud kiiruse etteandmine. | ||
| + | dcmotor_drive_pwm(1, | ||
| + | } | ||
| + | } | ||
| + | </ | ||