Advertisement
thorium90

MyServo.h

Oct 9th, 2011
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.54 KB | None | 0 0
  1. /*
  2.    ___|  _)  | _)       _)                         ___|                    
  3.  \___ \   |  |  |   __|  |  |   |  __ `__ \       |       _ \    __|  __ \  
  4.        |  |  |  |  (     |  |   |  |   |   |      |      (   |  |     |   |
  5.  _____/  _| _| _| \___| _| \__,_| _|  _|  _|     \____| \___/  _|     .__/  
  6.                                                                      _|  
  7. Code source libre de droit. Si vous utilisez mon code, merci à vous d'en préciser la source.
  8.  
  9. Date : 09/10/2011
  10. Auteur : Silicium Corp
  11. */
  12. #ifndef SERVO_HEADER
  13. #define SERVO_HEADER    //Evite les inclusions multiples
  14. #include <WProgram.h>   //Permet au compillateur Arduino de bien faire son travail quand on taf avec nos propres librairies
  15. #include "Servo.h"      //Voir le warning en bas d'article. IMPORTANT
  16.  
  17.  
  18. class MyServo
  19. {
  20.     private :
  21.         Servo objectServo;                //Objet servo de la librairie standard
  22.         int myPin;                        //Stock la numéro du pin associé au servo
  23.         int nbStep;                       //définie le nombre de pas pour couvrir le spectre de mouvement
  24.         int zero;                         //definie le zero calibré du servo
  25.         int final;                        //definie le max calibré du servo
  26.         int totalSpectrum;                //definie l'amplitude du spectre de mouvement
  27.         int actualStep;                   //stock l'etape actuelle
  28.         int nbDegreeByStep;               //stock le nombre de degrès par etapes
  29.        
  30.         //---------Fct°
  31.         void deductionDegree();           //se sert de l'amplitude du spectre et du nombre d'etape pour en déduire la valeur de nbDegreeByStep
  32.         void calculateSpectrum();         //se sert des valeur de final et zero pour connaitre l'amplitude de totalSpectrum
  33.         void _write(int);                 //Envoie une position en s'assurant qu'elle est bien dans les bornes du spectre.
  34.                                               //Cette fonction est privée afin d'obliger l'utilisateur de la class a fonctionner
  35.                                               //avec le systeme d'etape et garder ainsi une cohérence dans les variables.
  36.  
  37.        
  38.     public:
  39.         MyServo(int);                      
  40.        
  41.         void _attach(int);                //Fonction de base obligatoire a appeler pour linker un pin arduino au servo
  42.         void _detach();                   //Fonction de base, detache et libère la memoire du pin associé au servo
  43.         int _read();                      //retourne la valeur en degres de la position actuelle.
  44.         boolean _attached();              //retourne True si le pin est attaché au servo
  45.         void init();                      //initialise l'objet avec des valeur de base
  46.         void setZero(int);                //permet de calibrer la borne minimum du spectre (Oblige un updateProperty() manuel apres avoir configurer le minimum et maximum pour etre pris en compte)
  47.         void setFinal(int);               //permet de calibrer la borne maximum du spectre (Oblige un updateProperty() manuel apres avoir configurer le minimum et maximum pour etre pris en compte)
  48.         void updateProperty();            //permet de mettre a jour les données qui découles des bornes en faisant appel a deductionDegree() et calculateSpectrum()
  49.         void setSpectrum(int,int);        //permet de calibrer la borne minimum et maximum du spectre. Fait aussi appel a un updateProperty() automatique. A favoriser
  50.         void setNbStep(int);              //definit le nombre de pas pour parcourir le spectre
  51.         void plus();                      //se deplace a etape actuelle + 1
  52.         void less();                      //se deplace a etape actuelle - 1
  53.         void low();                       //se deplace a la position ZERO
  54.         void high();                      //se deplace a la position FINAL
  55.         void reachStep(int);              //se deplace à la position correspondante à l'étape demandée.
  56.         int getZero();                    //retourne la valeur de zero
  57.         int getFinal();                   //retourne la valeur de final
  58.         int getNbStep();                  //retourne la valeur du nombre de pas
  59.         int getActualStep();              //retourne la valeur de l'etape actuelle
  60.         int getPin();                     //retourne la valeur du pin attaché
  61.         int getSpectrum();                //retourne la valeur du nombre de degres pour le spectre
  62.         int getNbDegreeByStep();          //retourne la valeur du nombre de degres pour une etape  
  63. };
  64.  
  65. #endif
  66.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement