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 [2012/04/03 20:43] heikopikneret: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)//** \\ +  * **//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: 
-    Ühe alalisvoolu mootorikontrolleri juhtviikude seadistamine väljundiks kiiruse reguleerimisega. Parameetrid: +    * //index// - Mootorikontrolleri number. Väärtus kuni 4. 
-    * //index// - Mootorikontrolleri number. Väärtus kuni 3.+    * //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) //** \\   * **//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:     Ühe alalisvoolu mootorikontrolleri juhtkäsk. Mootor jääb etteantud suuna ja kiirusega pöörlema. Parameetrid:
-    * //index// - Mootorikontrolleri number. Väärtus kuni 3.+    * //index// - Mootorikontrolleri number. Väärtus kuni 4.
     * //direction// - Mootori polaarsus. Väärtus -1 või +1.      * //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.     * //speed// - Mootori kiirus. Väärtus 0 - 255. 0 puhul mootor seisab ja 255 on maksimaalne võimalik kiirus.
Line 28: Line 37:
   * **//void unipolar_init(unsigned char index)//** \\   * **//void unipolar_init(unsigned char index)//** \\
     Unipolaarse mootorikontrolleri juhtviikude seadistamine väljundiks. Parameetrid:     Unipolaarse mootorikontrolleri juhtviikude seadistamine väljundiks. Parameetrid:
-    * //index// - Mootorikontrolleri number. Väärtus 0 või 1.+    * //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)//** \\   * **//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:     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.+    * //index// - Mootorikontrolleri number. Väärtus 0 või 1. (Kodulabor III puhul 1)
     * //direction// - Pöörlemissuund. Väärtus -1 või +1.     * //direction// - Pöörlemissuund. Väärtus -1 või +1.
     * //num_steps// - Poolsammude arv.     * //num_steps// - Poolsammude arv.
Line 48: 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, 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.
  
-~~PB~~+<pagebreak>
  
 ===== Näide ===== ===== Näide =====
Line 66: 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 78: 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 102: Line 111:
   
  // Mootori initsialiseerimine  // Mootori initsialiseerimine
-  dcmotor_drive_pwm_init(0);+  dcmotor_drive_pwm_init(1, TIMER2_NO_PRESCALE);
  
   while(1)   while(1)
Line 109: Line 118:
  
  // Mootorile valitud kiiruse etteandmine.  // Mootorile valitud kiiruse etteandmine.
- dcmotor_drive_pwm(0, 1, speed);       + dcmotor_drive_pwm(1, 1, speed);       
   }   }
 } }
 </code> </code>
- 
et/software/homelab/library/module/motor.1333474989.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