Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ___| _) | _) _) ___|
- \___ \ | | | __| | | | __ `__ \ | _ \ __| __ \
- | | | | ( | | | | | | | ( | | | |
- _____/ _| _| _| \___| _| \__,_| _| _| _| \____| \___/ _| .__/
- _|
- Code source libre de droit. Si vous utilisez mon code, merci à vous d'en préciser la source.
- Date : 09/10/2011
- Auteur : Silicium Corp
- */
- #ifndef SERVO_HEADER
- #define SERVO_HEADER //Evite les inclusions multiples
- #include <WProgram.h> //Permet au compillateur Arduino de bien faire son travail quand on taf avec nos propres librairies
- #include "Servo.h" //Voir le warning en bas d'article. IMPORTANT
- class MyServo
- {
- private :
- Servo objectServo; //Objet servo de la librairie standard
- int myPin; //Stock la numéro du pin associé au servo
- int nbStep; //définie le nombre de pas pour couvrir le spectre de mouvement
- int zero; //definie le zero calibré du servo
- int final; //definie le max calibré du servo
- int totalSpectrum; //definie l'amplitude du spectre de mouvement
- int actualStep; //stock l'etape actuelle
- int nbDegreeByStep; //stock le nombre de degrès par etapes
- //---------Fct°
- void deductionDegree(); //se sert de l'amplitude du spectre et du nombre d'etape pour en déduire la valeur de nbDegreeByStep
- void calculateSpectrum(); //se sert des valeur de final et zero pour connaitre l'amplitude de totalSpectrum
- void _write(int); //Envoie une position en s'assurant qu'elle est bien dans les bornes du spectre.
- //Cette fonction est privée afin d'obliger l'utilisateur de la class a fonctionner
- //avec le systeme d'etape et garder ainsi une cohérence dans les variables.
- public:
- MyServo(int);
- void _attach(int); //Fonction de base obligatoire a appeler pour linker un pin arduino au servo
- void _detach(); //Fonction de base, detache et libère la memoire du pin associé au servo
- int _read(); //retourne la valeur en degres de la position actuelle.
- boolean _attached(); //retourne True si le pin est attaché au servo
- void init(); //initialise l'objet avec des valeur de base
- 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)
- 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)
- void updateProperty(); //permet de mettre a jour les données qui découles des bornes en faisant appel a deductionDegree() et calculateSpectrum()
- void setSpectrum(int,int); //permet de calibrer la borne minimum et maximum du spectre. Fait aussi appel a un updateProperty() automatique. A favoriser
- void setNbStep(int); //definit le nombre de pas pour parcourir le spectre
- void plus(); //se deplace a etape actuelle + 1
- void less(); //se deplace a etape actuelle - 1
- void low(); //se deplace a la position ZERO
- void high(); //se deplace a la position FINAL
- void reachStep(int); //se deplace à la position correspondante à l'étape demandée.
- int getZero(); //retourne la valeur de zero
- int getFinal(); //retourne la valeur de final
- int getNbStep(); //retourne la valeur du nombre de pas
- int getActualStep(); //retourne la valeur de l'etape actuelle
- int getPin(); //retourne la valeur du pin attaché
- int getSpectrum(); //retourne la valeur du nombre de degres pour le spectre
- int getNbDegreeByStep(); //retourne la valeur du nombre de degres pour une etape
- };
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement