Advertisement
thorium90

StepperMotor.h

Sep 29th, 2011
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.71 KB | None | 0 0
  1. /*
  2. ##########################################################################
  3. ##                          ARDUINO SOURCES                             ##
  4. ##########################################################################
  5. */
  6. /*
  7.    ___|  _)  | _)       _)                         ___|                    
  8.  \___ \   |  |  |   __|  |  |   |  __ `__ \       |       _ \    __|  __ \  
  9.        |  |  |  |  (     |  |   |  |   |   |      |      (   |  |     |   |
  10.  _____/  _| _| _| \___| _| \__,_| _|  _|  _|     \____| \___/  _|     .__/  
  11.                                                                      _|  
  12. Code source libre de droit. Si vous utilisez mon code, merci à vous d'en préciser la source.
  13.  
  14. @Date : 28/09/2011
  15. @Auteur : Silicium Corp
  16. */
  17. #ifndef STEPPER_HEADER
  18. #define STEPPER_HEADER     //Evite les inclusions multiples
  19. #include <WProgram.h>      //Permet au compillateur Arduino de bien faire son travail quand on taf avec nos propres librairies
  20. #include "Task.h"          //Permet d'importer un objet de type Tâche permettant la gestion de son temps.
  21.  
  22. #define FORWARD true                //Utilisé pour definir le sens de rotation de maniere plus lisible
  23. #define BACKWARD false              //Utilisé pour definir le sens de rotation de maniere plus lisible
  24.  
  25. class StepperMotor
  26. {
  27.     private :
  28.         int pinMotor[4];            //Contient le numéro des pins associés a l'objet
  29.         int motorSpeed;             //Contient la vitesse du moteur exprimé ici en Pulsation Par Seconde (PPS)
  30.         int coreSpeed;              //Resulte du calcule de 1 seconde divisé par le nombre de PPS, sert a l'initialisation de la tache
  31.         int elapsedPulse;           //Nombre de pulsation envoyés au moteur
  32.         int stopMarker;             //Sert au calcul du nombre de pas a faire lorsqu'on se sert de la fonction setStepOrder()
  33.         boolean workInProgress;     //Sert a verouiller l'objet si il est inocupé.
  34.         boolean isLaunch;           //Sert a actionner le mode continu
  35.         boolean way;                //Prend les valeurs FORWARD ou BACKWARD
  36.         byte nextPulse;             //Sert a définir le prochain schéma binaire a envoyer au moteur
  37.         Task timing;                //Sert a la gestion de la tache lié à la vitesse du moteur
  38.        
  39.         void updateNextPulse();     //Calcule le prochain schéma binaire a envoyer au moteur
  40.         void init();                //Initialise les variables de l'objet
  41.         void electrikChoc();        //Envoie les impulsions au moteur
  42.        
  43.     public:
  44.         StepperMotor(int, int*);    //Constructeur; attend comme parametre la vitesse du moteur en pps et un tableau contenant les pins connecté a la carte arduino
  45.         void pulse();               //Fait vivre le moteur, doit etre appellé en continue
  46.         void launch();              //Lance le moteur en mode continu
  47.         void stopNow();             //Stop le moteur en mode continu
  48.         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
  49.         void setStepOrder(int);     //Definie un marqueur d'un nombre de pas a atteindre avant de s'arreter
  50.         void setWay(boolean);       //Definie le sens de rotation. Attend un boolean, mais vous pouvez utiliser les expressions FORWARD et BACKWARD
  51.         boolean getWay();           //Renvoie TRUE si le sens est FORWARD
  52.         int getMotorSpeed();        //Renvoie la vitesse en PPS
  53.         boolean getIsLauch();       //Renvoie la valeur du boolean
  54.         boolean getWorking();       //Renvoie la valeur du boolean
  55.         int getElapsedPulse();      //Renvoie le nombre de pulsations emises au moteur
  56.        
  57. };
  58.  
  59. #endif
  60.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement