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
Motor.h
00001 #ifndef MOTOR_H 00002 #define MOTOR_H 00003 00004 #include "mbed.h" 00005 00006 #define abs(x) (x<0?-x:x) 00007 00008 /** Motor 00009 * Classe permettant de controler un moteur 00010 */ 00011 class Motor 00012 { 00013 private: 00014 PwmOut pwm; 00015 DigitalOut dir; 00016 bool inverse; 00017 float speed; 00018 00019 public: 00020 /** Création d'un moteur 00021 * 00022 * @param pwm Pin sur laquelle sort la PWM 00023 * @param dir Pin sur laquelle sort le bit de direction 00024 */ 00025 Motor(PinName pin_pwm, PinName pin_dir): pwm(pin_pwm), dir(pin_dir) 00026 { 00027 inverse = false; 00028 speed = 0.0f; 00029 pwm.period_us(10); 00030 pwm = 0.0f; 00031 00032 } 00033 00034 virtual ~Motor(){} 00035 00036 /** Fixe la vitesse du moteur 00037 * 00038 * @param s Vitesse du moteur entre -1 et 1 00039 */ 00040 void setSpeed(float s) 00041 { 00042 float abss = abs(s); 00043 speed = s; 00044 pwm = abss; 00045 if(s > 0) 00046 dir = !inverse; 00047 else 00048 dir = inverse; 00049 } 00050 00051 /** Retourne la vitesse théorique du moteur 00052 * 00053 * @return Vitesse du moteur entre -1 et 1 00054 */ 00055 float getSpeed(){return speed;} 00056 00057 /** Fixe l'invesrion de polarité 00058 * 00059 * Exemple : 00060 * @code 00061 * moteur.setSpeed(1); // le moteur tourne à pleine vitesse dans le sens trigo 00062 * moteur.setInverse(true); // le moteur tourne à pleine vitesse dans le sens anti-trigo 00063 * moteur.setSpeed(-1); // le moteur tourne à pleine vitesse dans le sens trigo 00064 * @endcode 00065 * 00066 * @param i Inversion de polarité 00067 */ 00068 void setInverse(bool i) 00069 { 00070 inverse = i; 00071 00072 setSpeed(speed); 00073 } 00074 00075 /** Retourne l'état d'inversion de polarité 00076 * 00077 * @return True ou False 00078 */ 00079 bool getInverse(){return inverse;} 00080 00081 }; 00082 00083 00084 #endif
Generated on Wed Jul 13 2022 04:59:28 by
1.7.2