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:examples:motor:servo [2014/10/13 13:54] raivo.sellet:examples:motor:servo [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
-~~PB~~+<pagebreak>
 ====== Servomootor ====== ====== Servomootor ======
  
-//Vajalikud teadmised: [HW] [[et:hardware:homelab:digi]], [HW] [[et:hardware:homelab:combo]], [AVR] [[et:avr:io]], [AVR] [[et:avr:adc]], [AVR] [[et:avr:timers]], [LIB] [[et:software:homelab:library:module:motor]], [LIB] [[et:software:homelab:library:delay]], [LIB] [[et:software:homelab:library:adc]]//+//Vajalikud teadmised:  
 +[HW] [[et:hardware:homelab:digi]], [HW] [[et:hardware:homelab:combo]],  
 +[AVR] [[et:avr:timers]], [AVR] [[et:avr:adc]],   
 +[LIB] [[et:software:homelab:library:module:motor]], [LIB] [[et:software:homelab:library:adc]]//
  
 ===== Teooria ===== ===== Teooria =====
Line 23: Line 26:
  
 <code c> <code c>
-// Taimeri väärtus PWM täisperioodi (20 ms) saavutamiseks. +// Taimeri väärtus PWM täisperioodi (20 ms) saavutamiseks 
-// F_CPU on mikrokontrolleri taktsagedus, mis jagatakse 8-ga ja 50 Hz.+// F_CPU on mikrokontrolleri taktsagedus, mis jagatakse 8-ga ja 50 Hz
 #define PWM_PERIOD      (F_CPU / 8 / 50) #define PWM_PERIOD      (F_CPU / 8 / 50)
    
Line 33: Line 36:
 // Kordamistegur, et protsentidest (-100 % kuni 100 %) vajalik periood saada // Kordamistegur, et protsentidest (-100 % kuni 100 %) vajalik periood saada
 // +1 liidetakse selleks, et poolperiood kindlasti ulatuks 1 ja 2 ms // +1 liidetakse selleks, et poolperiood kindlasti ulatuks 1 ja 2 ms
-// piiridesse või siis natuke üle.+// piiridesse või siis natuke üle
 #define PWM_RATIO       (PWM_PERIOD / 20 / 2 / 100 + 1) #define PWM_RATIO       (PWM_PERIOD / 20 / 2 / 100 + 1)
  
-// Viikude seadistus+// Viikude seadistamine
 static pin servo_pins[2] = static pin servo_pins[2] =
 { {
Line 42: Line 45:
 }; };
  
-// Määratud servomootori tööks valmistamine.+// Määratud servomootori algseadistamine
 void servomotor_init(unsigned char index) void servomotor_init(unsigned char index)
 { {
- // PWM signaali viik väljundiks+ // PWM signaali viigu väljundiks määramine
  pin_setup_output(servo_pins[index]);   pin_setup_output(servo_pins[index]); 
  
Line 86: Line 89:
  
 <code c> <code c>
-// Kodulabori mootorite mooduli servomootori näidisprogramm.+// Kodulabori mootorite mooduli servomootori näidisprogramm
 #include <homelab/adc.h> #include <homelab/adc.h>
 #include <homelab/module/motors.h> #include <homelab/module/motors.h>
Line 102: Line 105:
  
  // Lõputu tsükkel  // Lõputu tsükkel
- while (true)+ while (1)
  {  {
-    // Potentsiomeetrist positsiooni lugemine ja servo- +    // Potentsiomeetrist positsiooni lugemine ja servomootori 
-    // mootori piirkonda teisendamine +    // piirkonda teisendamine 
-    // Kodulabor II puhul tuleb lugeda vastavat ADC kanalit ning kasutada järgmist valemit:+    // Kodulabor II puhul tuleb lugeda vastavat ADC kanalit ning kasutada  
 +    // järgmist valemit:
     // position = ((short)adc_get_value(3) - (short)512) / (short)5;     // position = ((short)adc_get_value(3) - (short)512) / (short)5;
     position = ((short)adc_get_value(15) / 10) - 102 ;     position = ((short)adc_get_value(15) / 10) - 102 ;
et/examples/motor/servo.1413208475.txt.gz · Last modified: 2020/07/20 09:00 (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