Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ##########################################################################
- ## ARDUINO SOURCES ##
- ##########################################################################
- */
- /*
- ___| _) | _) _) ___|
- \___ \ | | | __| | | | __ `__ \ | _ \ __| __ \
- | | | | ( | | | | | | | ( | | | |
- _____/ _| _| _| \___| _| \__,_| _| _| _| \____| \___/ _| .__/
- _|
- Code source libre de droit. Si vous utilisez mon code, merci à vous d'en préciser la source.
- @Date : 28/09/2011
- @Auteur : Silicium Corp
- */
- #ifndef STEPPER_HEADER
- #define STEPPER_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 "Task.h" //Permet d'importer un objet de type Tâche permettant la gestion de son temps.
- #define FORWARD true //Utilisé pour definir le sens de rotation de maniere plus lisible
- #define BACKWARD false //Utilisé pour definir le sens de rotation de maniere plus lisible
- class StepperMotor
- {
- private :
- int pinMotor[4]; //Contient le numéro des pins associés a l'objet
- int motorSpeed; //Contient la vitesse du moteur exprimé ici en Pulsation Par Seconde (PPS)
- int coreSpeed; //Resulte du calcule de 1 seconde divisé par le nombre de PPS, sert a l'initialisation de la tache
- int elapsedPulse; //Nombre de pulsation envoyés au moteur
- int stopMarker; //Sert au calcul du nombre de pas a faire lorsqu'on se sert de la fonction setStepOrder()
- boolean workInProgress; //Sert a verouiller l'objet si il est inocupé.
- boolean isLaunch; //Sert a actionner le mode continu
- boolean way; //Prend les valeurs FORWARD ou BACKWARD
- byte nextPulse; //Sert a définir le prochain schéma binaire a envoyer au moteur
- Task timing; //Sert a la gestion de la tache lié à la vitesse du moteur
- void updateNextPulse(); //Calcule le prochain schéma binaire a envoyer au moteur
- void init(); //Initialise les variables de l'objet
- void electrikChoc(); //Envoie les impulsions au moteur
- public:
- StepperMotor(int, int*); //Constructeur; attend comme parametre la vitesse du moteur en pps et un tableau contenant les pins connecté a la carte arduino
- void pulse(); //Fait vivre le moteur, doit etre appellé en continue
- void launch(); //Lance le moteur en mode continu
- void stopNow(); //Stop le moteur en mode continu
- void setMotorSpeed(int); //Definie la vitesse du moteur en PPS, c'est la fonction qui déduira alors la vitesse de la tache avec coreSpeed
- void setStepOrder(int); //Definie un marqueur d'un nombre de pas a atteindre avant de s'arreter
- void setWay(boolean); //Definie le sens de rotation. Attend un boolean, mais vous pouvez utiliser les expressions FORWARD et BACKWARD
- boolean getWay(); //Renvoie TRUE si le sens est FORWARD
- int getMotorSpeed(); //Renvoie la vitesse en PPS
- boolean getIsLauch(); //Renvoie la valeur du boolean
- boolean getWorking(); //Renvoie la valeur du boolean
- int getElapsedPulse(); //Renvoie le nombre de pulsations emises au moteur
- };
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement