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.
Dependents: AresCDFMainCode_capteur_US AresCDFMainCode_us2 AresCDFMainCode
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 }
Generated on Sat Jul 16 2022 11:11:52 by
1.7.2