This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| ru:software:homelab:library:module:motor [2013/08/14 19:42] – создано eduardtlmk | ru:software:homelab:library:module:motor [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Двигатели ====== | ||
| - | // | ||
| - | |||
| - | Библиотека двигателей позволяет управлять модулем двигателей и двигателями, | ||
| - | |||
| - | ===== Типы данных ===== | ||
| - | |||
| - | * **// | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | | ||
| - | ===== Функции ===== | ||
| - | |||
| - | * **//void dcmotor_init(unsigned char index)//** \\ | ||
| - | Настройка управляющих выводов одного контроллера двигателя постоянного тока выходом. Параметры: | ||
| - | * //index// - Номер контроллера. Значение от 0 до 3. | ||
| - | |||
| - | * **//void dcmotor_drive(unsigned char index, signed char direction)// | ||
| - | Управляющий приказ контроллера двигателя постоянного тока. Параметры: | ||
| - | * //index// - Номер контроллера. Значение от 0 до 3. | ||
| - | * // | ||
| - | |||
| - | * **//void dcmotor_drive_pwm_init(unsigned char index, timer2_prescale prescaler)// | ||
| - | * //index// - Mootorikontrolleri number. Väärtus 0 kuni 3. | ||
| - | * // | ||
| - | |||
| - | * **//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 0 kuni 3. | ||
| - | * // | ||
| - | * //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. | ||
| - | |||
| - | * **//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. | ||
| - | * // | ||
| - | * // | ||
| - | * //speed// - Ühe sammu tegemise aeg millisekundites. | ||
| - | |||
| - | * **//void bipolar_init(void)// | ||
| - | Bipolaarse mootorikontrolleri juhtviikude seadistamine väljundiks. | ||
| - | |||
| - | * **//void bipolar_halfstep(signed char direction, unsigned short num_steps, unsigned char speed)//** \\ | ||
| - | Bipolaarse samm-mootori mootorikontrolleri poolsammumise juhtkäsk. Funktsioon on blokeeruv ehk seda täidetakse seni, kuni soovitud arv samme on tehtud. Parameetrid: | ||
| - | * // | ||
| - | * // | ||
| - | * //speed// - Ühe sammu tegemise aeg millisekundites. | ||
| - | |||
| - | * **//void servomotor_init(unsigned char index)//** \\ | ||
| - | Ühe servomootori juhtviikude väljundiks seadistamine ja taimer 1 seadistamine PWM režiimi. Parameetrid: | ||
| - | * //index// - Servomootori number. Väärtus 0 või 1. | ||
| - | |||
| - | * **//void servomotor_position(unsigned char index, signed short position)// | ||
| - | Servomootori juhtkäsk. Kui juhitakse positsioneerivat servomootorit, | ||
| - | * //index// - Servomootori number. Väärtus 0 või 1. | ||
| - | * // | ||
| - | |||
| - | ~~PB~~ | ||
| - | |||
| - | ===== Näide ===== | ||
| - | |||
| - | Järgnev näide demonstreerib kõiki teegi funktsioone. Järjest seadistatakse mootorikontrollerid ja liigutatakse mootoreid. | ||
| - | |||
| - | <code c> | ||
| - | #include < | ||
| - | |||
| - | int main(void) | ||
| - | { | ||
| - | // Alalisvoolu mootorikontrollerite 0 ja 1 seadistamine | ||
| - | dcmotor_init(0); | ||
| - | dcmotor_init(1); | ||
| - | |||
| - | // Bipolaarse samm-mootori kontrolleri seadistamine | ||
| - | bipolar_init(); | ||
| - | |||
| - | // Servomootorite 0 ja 1 juhtsignaalide seadistamine | ||
| - | servomotor_init(0); | ||
| - | servomotor_init(1); | ||
| - | |||
| - | // Üks alalisvoolu mootor pöörlema ühtpidi, teine teistpidi | ||
| - | dcmotor_drive(0, | ||
| - | dcmotor_drive(1, | ||
| - | |||
| - | // Samm-mootori pööramine 100 kraadi ühele poole ja seejärel | ||
| - | // 2 korda kiiremini teisele poole | ||
| - | bipolar_halfstep(1, | ||
| - | bipolar_halfstep(-1, | ||
| - | |||
| - | // Servomootorite vastassuunda keeramine | ||
| - | servomotor_position(0, | ||
| - | servomotor_position(1, | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | Näide demonstreerib alalisvoolu mootori kiiruse etteandmist. | ||
| - | |||
| - | <code c> | ||
| - | #include < | ||
| - | |||
| - | int main(void) | ||
| - | { | ||
| - | unsigned char speed = 0; | ||
| - | |||
| - | // Mootori initsialiseerimine | ||
| - | dcmotor_drive_pwm_init(0, | ||
| - | |||
| - | while(1) | ||
| - | { | ||
| - | speed = 100; | ||
| - | |||
| - | // Mootorile valitud kiiruse etteandmine. | ||
| - | dcmotor_drive_pwm(0, | ||
| - | } | ||
| - | } | ||
| - | </ | ||