Jean Pontier / yMOTOR Featured

Files at this revision

API Documentation at this revision

Comitter:
Jean92
Date:
Tue Sep 15 19:25:32 2015 +0000
Parent:
3:5181bcf1f0a6
Commit message:
v0.7

Changed in this revision

yMOTOR.cpp Show annotated file Show diff for this revision Revisions of this file
yMOTOR.h Show annotated file Show diff for this revision Revisions of this file
diff -r 5181bcf1f0a6 -r 3dce01a56e06 yMOTOR.cpp
--- a/yMOTOR.cpp	Sun Sep 13 15:55:29 2015 +0000
+++ b/yMOTOR.cpp	Tue Sep 15 19:25:32 2015 +0000
@@ -4,7 +4,7 @@
  /**
  * @file    yMOTOR.cpp
  * @brief   Class 'yMOTOR'
- * @version V0.5
+ * @version V0.7
  * @date    Sept-2015
  * @note    by Jean92 \n
  *          Controlleur pour Pont-H (MC33886)" \n
@@ -17,7 +17,8 @@
 yMOTOR::yMOTOR(PinName pwm, PinName av, PinName ar):
                 _pwm(pwm), _av(av), _ar(ar) {
      // herite de PWM et DO
-     // init PWM
+     // init PWM, init deadband
+    this->m_DB = yDB_def;
     _pwm.period(yPeriod_def);
     _pwm = 0.0;
     
@@ -33,17 +34,17 @@
 /** Traiter le changement de vitesse */
 void yMOTOR::Speed(float speed) {
     if (this->m_run) {              // moteur running?
-        if (abs(speed) < yDB_def) {     // oui, consigne suffisante?
+        if (abs(speed) < this->m_DB) {     // oui, consigne suffisante?
             _ar = 0;                    // non, les 2 cdes à zéro
             _av = 0;
             _pwm = 0.0;                 // reset PWM
             this->m_speed = 0.0;        // memoriser vitesse nulle
         }
-        else {                          // oui, en dehors de la bande morte
-            _av = (speed > yDB_def);    // en avant
-            _ar = (speed < -yDB_def);   // ou en arriere
-            _pwm = abs(speed);          // a la vitesse demandée
-            this->m_speed = speed;      // memoire vitesse
+        else {                             // oui, en dehors de la bande morte
+            _av = (speed > this->m_DB);    // en avant
+            _ar = (speed < -this->m_DB);   // ou en arriere
+            _pwm = abs(speed);             // a la vitesse demandée
+            this->m_speed = speed;         // memoire vitesse
         }
     } 
 } 
@@ -53,11 +54,16 @@
     _pwm.period(seconds);
 }
 
+/** Change DeadBand */
+void yMOTOR::DeadBand(float db) {
+    this->m_DB = db;
+}
+
 /** Marche/Arret request */
 void yMOTOR::MarArr(int mararr) {
     if (mararr == yMARCHE) {
+        this->m_run = 1;        // memoriser l'état
         Speed(this->m_speed);   // appliquer la vitesse demandée
-        this->m_run = 1;        // memoriser l'état
     }
     else if (mararr == yARRET) {
         _ar = 0;                // mettre les 2 cdes a zero
diff -r 5181bcf1f0a6 -r 3dce01a56e06 yMOTOR.h
--- a/yMOTOR.h	Sun Sep 13 15:55:29 2015 +0000
+++ b/yMOTOR.h	Tue Sep 15 19:25:32 2015 +0000
@@ -5,7 +5,7 @@
 /**
  * @file    yMOTOR.h
  * @brief   Header de la classe 'yMOTOR'
- * @version V0.5
+ * @version V0.7
  * @date    Sept-2015
  * @note    by Jean92 \n
  *          Controlleur pour Pont-H (MC33886)"
@@ -29,7 +29,7 @@
     /** Interface de controle du moteur
      * @param pwm (Pwmout, vitesse variable)
      * @param av  (DigitalOut, marche avant)
-     * @param ar  (DigialOut, marche arriere)
+     * @param ar  (DigitalOut, marche arriere)
      */
     yMOTOR(PinName pwm, PinName av, PinName ar);        /// Constructeur par defaut
     ~yMOTOR();                                          /// Destructeur
@@ -45,6 +45,12 @@
      * @param seconds (PWM duty cycle)
      */
     void Period(float seconds);
+
+    /** Change DeadBand
+     * @param db
+     * modify the default dead band (around 0.0 not action)
+     */
+    void DeadBand(float db);
     
     /** Marche/Arret request
      * yARRET ==> av = ar = 0
@@ -64,8 +70,9 @@
     float Velocity();
     
 private:    /// Attributs - m_membres (visibles par les methodes)
-    float m_speed;
-    bool m_run;
+    float m_speed;  //spedd memory
+    bool m_run;     //running memory
+    float m_DB;     //deadband
 
 protected:  /// Attibuts (accessibles seulement via les methodes)
     PwmOut _pwm;        // par heritage