Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: Asservissement/Motor.h
- Revision:
- 0:b127c787a51b
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Asservissement/Motor.h Sun May 24 12:30:47 2015 +0000 @@ -0,0 +1,84 @@ +#ifndef MOTOR_H +#define MOTOR_H + +#include "mbed.h" + +#define abs(x) (x<0?-x:x) + +/** 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 abss = abs(s); + speed = s; + pwm = abss; + 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; + + setSpeed(speed); + } + + /** Retourne l'état d'inversion de polarité + * + * @return True ou False + */ + bool getInverse(){return inverse;} + +}; + + +#endif \ No newline at end of file