AresENSEA-CDF2020 / Mbed 2 deprecated DRV8825

Dependencies:   mbed FastPWM

Dependents:   AresCDFMainCode_capteur_US AresCDFMainCode_us2 AresCDFMainCode

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers DRV8825.cpp Source File

DRV8825.cpp

00001 #include "DRV8825.h"
00002 
00003 /**
00004  * @brief Initialisation du modul avec des paramètres par défaut
00005  */
00006 DRV8825::DRV8825(){
00007 
00008 
00009     m_en = new DigitalOut(PC_5);
00010     m_dir = new DigitalOut(PC_6);
00011     m_step = new FastPWM(PC_8);
00012     m_step->write(0.50);
00013     m_rayon = 10;
00014     m_pas = 200;
00015     m_en->write(STOP);
00016 }
00017 
00018 
00019 /**
00020  * @brief Initialisation du modul avec des paramètres choisis
00021  * @param en : pin En
00022  * @param dir : pin Dir
00023  * @param step : pin Step
00024  */
00025 DRV8825::DRV8825(PinName en, PinName dir ,PinName step){
00026     m_en = new DigitalOut(en);
00027     m_dir = new DigitalOut(dir);
00028     m_step = new FastPWM(step);
00029     m_rayon = 100;
00030     m_pas = 200;
00031     m_step->write(0.50);
00032     m_en->write(STOP);
00033 }
00034 /**
00035  * @brief Initialisation du modul avec des paramètres choisis
00036  * @param en : pin En
00037  * @param dir : pin Dir
00038  * @param step : pin Step
00039  * @param r : rayon de la roue (en mm)
00040  * @param pas : nombre de pas
00041  */
00042 DRV8825::DRV8825(PinName en, PinName dir, PinName step, float r, unsigned int pas){
00043     m_en = new DigitalOut(en);
00044     m_dir = new DigitalOut(dir);
00045     m_step = new FastPWM(step);
00046     m_rayon = r;
00047     m_pas = pas;
00048     m_step->write(0.50);
00049     m_en->write(STOP);
00050 }
00051 
00052 
00053 /**
00054  * @brief Permet d'affecter une directions à notre module
00055  * @param dir : l'état que l'on souhaite appliquer
00056  */
00057 void DRV8825::setDir(uint8_t dir){
00058         m_dir->write(dir);
00059 }
00060 
00061 /**
00062  * @brief Permet de définir si l'on souhaite bloquer ou non le moteur
00063  * @param en : l'état que l'on douhaite appliquer
00064  */
00065 void DRV8825::setEnable(uint8_t en){
00066         m_en->write(en);
00067 }
00068 
00069 /**
00070  * @brief Permet de définir la vitesse de rotation du moteur pas à pas (RPM)
00071  * @param vitesse : la vitesse que l'on souhaite atteindre
00072  */
00073 void DRV8825::moveRotSpeed(float vitesse){
00074         vitesse= vitesse /M_TO_S;
00075         float t = 1/(m_pas*vitesse);
00076         m_step->period_us(t*E6);
00077         m_step->write(0.50);
00078 }
00079 
00080 
00081 /**
00082  * @brief Permet de définir la vitesse linéaire du moteur pas à pas (m/s)
00083  * @param vitesse : la vitesse que l'on souhaite atteindre
00084  */
00085 void DRV8825::moveLinSpeed(float vitesse){
00086         
00087         vitesse= vitesse*E3;
00088         float t = (2*PI*m_rayon)/(m_pas*vitesse);
00089         m_step->period_us(t*E6);
00090         m_step->write(0.50);
00091 }