Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
et:software:homelab:library:module:motor [2010/02/11 15:17] toimetajaet: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-, samm- ja servomootorite juhtimise funktsioonid.  Mootorite teek võimaldab juhtida Kodulabori mootorite moodulit ja mootoreid, mis sinna ühenduvad. Olemas on alalisvoolu-, samm- ja servomootorite juhtimise funktsioonid. 
  
 +===== Andmetüübid =====
 +
 +   * **//prescale//** \\ Taktijaguri valiku tüüp. Soovitav on kasutada kahte esimest taktijagurit. Väärtuste variandid:
 +    * //TIMER2_NO_PRESCALE// - Jagurit ei kasutata.
 +    * //TIMER2_PRESCALE_8// - Jagamistegur 8.
 +    * //TIMER2_PRESCALE_64// - Jagamistegur 64.
 +    * //TIMER2_PRESCALE_256// - Jagamistegur 256.
 +    * //TIMER2_PRESCALE_1024// - Jagamistegur 1024.
 +    
 ===== 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 kuni 3.+    * //index// - Mootorikontrolleri number. Väärtus kuni 4.
  
   * **//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 kuni 3.+    * //index// - Mootorikontrolleri number. Väärtus kuni 4.
     * //direction// - Mootori polaarsus. Väärtus -1, 0 või +1. 0 puhul mootor seisab, muul juhul pöörleb vastavas suunas.     * //direction// - Mootori polaarsus. Väärtus -1, 0 või +1. 0 puhul mootor seisab, muul juhul pöörleb vastavas suunas.
 + 
 +  * **//void dcmotor_drive_pwm_init(unsigned char index, timer2_prescale prescaler)//** \\    Ühe alalisvoolu mootorikontrolleri juhtviikude seadistamine väljundiks kiiruse reguleerimisega. Lisaks saab määrata sobiva taktijaguri, olenevalt sellest, kui suure sagedusega PWM-i on vaja. Parameetrid:
 +    * //index// - Mootorikontrolleri number. Väärtus 1 kuni 4.
 +    * //prescaler// - Taktijaguri valik. Vahel on mõistlik kasutada taktijagurit, kuna väga kiiresti toimuvad katkestused võivad häirida programmi tööd. Näiteks UH anduri kasutamise korral on vaja taktijaguriks määrata TIMER2_PRESCALE_8. 
 +
 +  * **//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.
 +    * //direction// - Mootori polaarsus. Väärtus -1 või +1. 
 +    * //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)
 +    * //direction// - Pöörlemissuund. Väärtus -1 või +1.
 +    * //num_steps// - Poolsammude arv.
 +    * //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)//** \\
-    Servo-mootori juhtkäsk. Kui juhitakse positsioneerivat servomootorit, siis muutub rootori asend, kui lõputult pöörlevat, siis muutub pöörlemise kiirus. Parameetrid: +    Servomootori juhtkäsk. Kui juhitakse positsioneerivat servomootorit, siis muutub rootori asend, kui lõputult pöörlevat, siis muutub pöörlemise kiirus. Parameetrid: 
-    * //index// - Servomootori number. Väärtus 0 või 1.+    * //index// - Servomootori number. Väärtus 0 või 1. (Kodulabor III puhul 1-4)
     * //position// - Rootori asend või pöörlemiskiirus (olenevalt mootorist). Väärtus -100 kuni +100. 0 on keskasend või peatumine.     * //position// - Rootori asend või pöörlemiskiirus (olenevalt mootorist). Väärtus -100 kuni +100. 0 on keskasend või peatumine.
 +
 +<pagebreak>
  
 ===== Näide ===== ===== Näide =====
Line 43: Line 75:
 int main(void) int main(void)
 { {
- // Alalisvoolu mootorikontrollerite 0 ja 1 seadistamine + // 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:
 </code> </code>
  
 +Näide demonstreerib alalisvoolu mootori kiiruse etteandmist. 
  
 +<code c>
 +#include <homelab/module/motors.h>
  
 +int main(void)
 +{
 +        unsigned char speed = 0;
 +
 + // Mootori initsialiseerimine
 +  dcmotor_drive_pwm_init(1, TIMER2_NO_PRESCALE);
  
 +  while(1)
 +  {   
 + speed = 100;
 +
 + // Mootorile valitud kiiruse etteandmine.
 + dcmotor_drive_pwm(1, 1, speed);       
 +  }
 +}
 +</code>
et/software/homelab/library/module/motor.1265894246.txt.gz · Last modified: (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0