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/11 17:16] – mikk.leini | et:software:homelab:library:module:motor [2020/07/20 12:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 5: | Line 5: | ||
| Mootorite teek võimaldab juhtida Kodulabori mootorite moodulit ja mootoreid, mis sinna ühenduvad. Olemas on alalisvoolu-, | Mootorite teek võimaldab juhtida Kodulabori mootorite moodulit ja mootoreid, mis sinna ühenduvad. Olemas on alalisvoolu-, | ||
| + | ===== 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 27: | Line 57: | ||
| * **//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)// | ||
| Servomootori juhtkäsk. Kui juhitakse positsioneerivat servomootorit, | Servomootori juhtkäsk. Kui juhitakse positsioneerivat servomootorit, | ||
| - | * //index// - Servomootori number. Väärtus 0 või 1. | + | * //index// - Servomootori number. Väärtus 0 või 1. (Kodulabor III puhul 1-4) |
| * // | * // | ||
| - | ~~PB~~ | + | < |
| ===== Näide ===== | ===== Näide ===== | ||
| Line 45: | 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 57: | 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 71: | 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, | ||
| + | } | ||
| + | } | ||
| + | </ | ||