Robot's source code
Dependencies: mbed
Asservissement/Motor.h
- Committer:
- Jagang
- Date:
- 2015-03-17
- Revision:
- 40:83ce8d1072ef
- Parent:
- 36:54f86bc6fd80
- Child:
- 42:fcb48e2fc426
File content as of revision 40:83ce8d1072ef:
#include "mbed.h" /** Motor * Classe permettant de controler un moteur */ class Motor { private: PwmOut pwm; DigitalOut dir; bool inverse; float speed; public: /** Création d'un moteur * * @param pwm Pin sur laquelle sort la PWM * @param dir Pin sur laquelle sort le bit de direction */ Motor(PinName pin_pwm, PinName pin_dir): pwm(pin_pwm), dir(pin_dir) { inverse = false; speed = 0.0f; pwm.period_us(10); pwm = 0.0f; } virtual ~Motor(){} /** Fixe la vitesse du moteur * * @param s Vitesse du moteur entre -1 et 1 */ void setSpeed(float s) { float abs = fabs_(s); speed = s; pwm = abs; if(s > 0) dir = !inverse; else dir = inverse; } /** Retourne la vitesse théorique du moteur * * @return Vitesse du moteur entre -1 et 1 */ float getSpeed(){return speed;} /** Fixe l'invesrion de polarité * * Exemple : * @code * moteur.setSpeed(1); // le moteur tourne à pleine vitesse dans le sens trigo * moteur.setInverse(true); // le moteur tourne à pleine vitesse dans le sens anti-trigo * moteur.setSpeed(-1); // le moteur tourne à pleine vitesse dans le sens trigo * @endcode * * @param i Inversion de polarité */ void setInverse(bool i) { inverse = i; } /** Retourne l'état d'inversion de polarité * * @return True ou False */ bool getInverse(){return inverse;} };