Gestion pont-H pour moteur CC

Committer:
Jean92
Date:
Tue Sep 15 19:25:32 2015 +0000
Revision:
4:3dce01a56e06
Parent:
3:5181bcf1f0a6
v0.7

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jean92 0:af7b948d1f33 1 /* mbed yMOTOR Library
Jean92 0:af7b948d1f33 2 * Copyright (c) 2015 Jean92, https://developer.mbed.org/users/Jean92/
Jean92 0:af7b948d1f33 3 */
Jean92 0:af7b948d1f33 4
Jean92 0:af7b948d1f33 5 /**
Jean92 0:af7b948d1f33 6 * @file yMOTOR.h
Jean92 0:af7b948d1f33 7 * @brief Header de la classe 'yMOTOR'
Jean92 4:3dce01a56e06 8 * @version V0.7
Jean92 1:4dc14e8e5ff7 9 * @date Sept-2015
Jean92 0:af7b948d1f33 10 * @note by Jean92 \n
Jean92 0:af7b948d1f33 11 * Controlleur pour Pont-H (MC33886)"
Jean92 0:af7b948d1f33 12 *
Jean92 0:af7b948d1f33 13 */
Jean92 0:af7b948d1f33 14
Jean92 0:af7b948d1f33 15 #ifndef DEF_yMOTOR_H
Jean92 0:af7b948d1f33 16 #define DEF_yMOTOR_H
Jean92 0:af7b948d1f33 17
Jean92 0:af7b948d1f33 18 #include "mbed.h"
Jean92 0:af7b948d1f33 19
Jean92 0:af7b948d1f33 20 #define yARRET 0
Jean92 0:af7b948d1f33 21 #define yMARCHE 1
Jean92 3:5181bcf1f0a6 22 #define yDB_def 0.01 // dead band around 0.0 for nul speed
Jean92 3:5181bcf1f0a6 23 #define yPeriod_def 0.5 // en seconds
Jean92 0:af7b948d1f33 24
Jean92 0:af7b948d1f33 25 class yMOTOR
Jean92 0:af7b948d1f33 26 {
Jean92 0:af7b948d1f33 27 public: /// Methodes (visibles par tous!)
Jean92 0:af7b948d1f33 28
Jean92 0:af7b948d1f33 29 /** Interface de controle du moteur
Jean92 0:af7b948d1f33 30 * @param pwm (Pwmout, vitesse variable)
Jean92 0:af7b948d1f33 31 * @param av (DigitalOut, marche avant)
Jean92 4:3dce01a56e06 32 * @param ar (DigitalOut, marche arriere)
Jean92 0:af7b948d1f33 33 */
Jean92 0:af7b948d1f33 34 yMOTOR(PinName pwm, PinName av, PinName ar); /// Constructeur par defaut
Jean92 0:af7b948d1f33 35 ~yMOTOR(); /// Destructeur
Jean92 0:af7b948d1f33 36
Jean92 0:af7b948d1f33 37 /** Vitesse request
Jean92 0:af7b948d1f33 38 * @param speed (float normalised [-1.0,+1.0]
Jean92 0:af7b948d1f33 39 * negative ==> reverse, positive ==> forward
Jean92 0:af7b948d1f33 40 */
Jean92 0:af7b948d1f33 41 void Speed(float speed);
Jean92 0:af7b948d1f33 42
Jean92 0:af7b948d1f33 43 /** PWM duty cycle periode in seconde
Jean92 0:af7b948d1f33 44 * wrapper for PwmOut::period()
Jean92 0:af7b948d1f33 45 * @param seconds (PWM duty cycle)
Jean92 0:af7b948d1f33 46 */
Jean92 0:af7b948d1f33 47 void Period(float seconds);
Jean92 4:3dce01a56e06 48
Jean92 4:3dce01a56e06 49 /** Change DeadBand
Jean92 4:3dce01a56e06 50 * @param db
Jean92 4:3dce01a56e06 51 * modify the default dead band (around 0.0 not action)
Jean92 4:3dce01a56e06 52 */
Jean92 4:3dce01a56e06 53 void DeadBand(float db);
Jean92 0:af7b948d1f33 54
Jean92 0:af7b948d1f33 55 /** Marche/Arret request
Jean92 0:af7b948d1f33 56 * yARRET ==> av = ar = 0
Jean92 0:af7b948d1f33 57 * yMARCHE ==> av & ar = sign of speed
Jean92 0:af7b948d1f33 58 */
Jean92 0:af7b948d1f33 59 //void mararr(int mararr = yARRET);
Jean92 0:af7b948d1f33 60 void MarArr(int mararr);
Jean92 0:af7b948d1f33 61
Jean92 0:af7b948d1f33 62 /** Etat marche (running state)
Jean92 0:af7b948d1f33 63 */
Jean92 0:af7b948d1f33 64 bool Run();
Jean92 0:af7b948d1f33 65
Jean92 0:af7b948d1f33 66 /** Vitesse effective
Jean92 0:af7b948d1f33 67 * float normalised [-1.0,+1.0]
Jean92 0:af7b948d1f33 68 * negative ==> reverse, positive ==> forward
Jean92 0:af7b948d1f33 69 */
Jean92 0:af7b948d1f33 70 float Velocity();
Jean92 0:af7b948d1f33 71
Jean92 0:af7b948d1f33 72 private: /// Attributs - m_membres (visibles par les methodes)
Jean92 4:3dce01a56e06 73 float m_speed; //spedd memory
Jean92 4:3dce01a56e06 74 bool m_run; //running memory
Jean92 4:3dce01a56e06 75 float m_DB; //deadband
Jean92 0:af7b948d1f33 76
Jean92 0:af7b948d1f33 77 protected: /// Attibuts (accessibles seulement via les methodes)
Jean92 2:980b46615b6e 78 PwmOut _pwm; // par heritage
Jean92 0:af7b948d1f33 79 DigitalOut _av;
Jean92 0:af7b948d1f33 80 DigitalOut _ar;
Jean92 0:af7b948d1f33 81
Jean92 0:af7b948d1f33 82 };
Jean92 0:af7b948d1f33 83
Jean92 0:af7b948d1f33 84 #endif
Jean92 0:af7b948d1f33 85
Jean92 1:4dc14e8e5ff7 86 /* mbed yMOTOR Library
Jean92 1:4dc14e8e5ff7 87 * Copyright (c) 2015 Jean92, https://developer.mbed.org/users/Jean92/
Jean92 1:4dc14e8e5ff7 88 *
Jean92 1:4dc14e8e5ff7 89 * Permission is hereby granted, free of charge, to any person obtaining a copy
Jean92 1:4dc14e8e5ff7 90 * of this software and associated documentation files (the "Software"), to deal
Jean92 1:4dc14e8e5ff7 91 * in the Software without restriction, including without limitation the rights
Jean92 1:4dc14e8e5ff7 92 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
Jean92 1:4dc14e8e5ff7 93 * copies of the Software, and to permit persons to whom the Software is
Jean92 1:4dc14e8e5ff7 94 * furnished to do so, subject to the following conditions:
Jean92 1:4dc14e8e5ff7 95 *
Jean92 1:4dc14e8e5ff7 96 * The above copyright notice and this permission notice shall be included in
Jean92 1:4dc14e8e5ff7 97 * all copies or substantial portions of the Software.
Jean92 1:4dc14e8e5ff7 98 *
Jean92 1:4dc14e8e5ff7 99 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
Jean92 1:4dc14e8e5ff7 100 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
Jean92 1:4dc14e8e5ff7 101 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
Jean92 1:4dc14e8e5ff7 102 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
Jean92 1:4dc14e8e5ff7 103 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
Jean92 1:4dc14e8e5ff7 104 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
Jean92 1:4dc14e8e5ff7 105 * THE SOFTWARE.
Jean92 1:4dc14e8e5ff7 106 */
Jean92 1:4dc14e8e5ff7 107 // MIT Licence
Jean92 1:4dc14e8e5ff7 108
Jean92 0:af7b948d1f33 109 /**
Jean92 0:af7b948d1f33 110 * @note \n
Jean92 0:af7b948d1f33 111 * That's all folks!
Jean92 0:af7b948d1f33 112 */