a

Dependencies:   mbed mbed-rtos

Committer:
alexpirciu
Date:
Thu Mar 28 07:44:42 2019 +0000
Revision:
1:ceee5a608e7c
assa

Who changed what in which revision?

UserRevisionLine numberNew contents of line
alexpirciu 1:ceee5a608e7c 1 /**
alexpirciu 1:ceee5a608e7c 2 ******************************************************************************
alexpirciu 1:ceee5a608e7c 3 * @file SERVO.cpp
alexpirciu 1:ceee5a608e7c 4 * @author RBRO/PJ-IU
alexpirciu 1:ceee5a608e7c 5 * @version V1.0.0
alexpirciu 1:ceee5a608e7c 6 * @date day-month-2017
alexpirciu 1:ceee5a608e7c 7 * @brief This file contains the class definition for the steering SERVO
alexpirciu 1:ceee5a608e7c 8 * functionality.
alexpirciu 1:ceee5a608e7c 9 ******************************************************************************
alexpirciu 1:ceee5a608e7c 10 */
alexpirciu 1:ceee5a608e7c 11
alexpirciu 1:ceee5a608e7c 12 #include <Drivers/servo.hpp>
alexpirciu 1:ceee5a608e7c 13
alexpirciu 1:ceee5a608e7c 14
alexpirciu 1:ceee5a608e7c 15 namespace drivers{
alexpirciu 1:ceee5a608e7c 16 /** @brief SERVO class constructor
alexpirciu 1:ceee5a608e7c 17 *
alexpirciu 1:ceee5a608e7c 18 * Constructor method
alexpirciu 1:ceee5a608e7c 19 *
alexpirciu 1:ceee5a608e7c 20 * @param _pwm pin connected to servo input
alexpirciu 1:ceee5a608e7c 21 */
alexpirciu 1:ceee5a608e7c 22 SERVO::SERVO(PinName _pwm)
alexpirciu 1:ceee5a608e7c 23 :pwm(_pwm)
alexpirciu 1:ceee5a608e7c 24 {
alexpirciu 1:ceee5a608e7c 25 pwm.period_ms(20);
alexpirciu 1:ceee5a608e7c 26 // pwm.write(0.075);
alexpirciu 1:ceee5a608e7c 27 pwm.write(0.07525);
alexpirciu 1:ceee5a608e7c 28 };
alexpirciu 1:ceee5a608e7c 29
alexpirciu 1:ceee5a608e7c 30 /** @brief SERVO class destructor
alexpirciu 1:ceee5a608e7c 31 *
alexpirciu 1:ceee5a608e7c 32 * Destructor method
alexpirciu 1:ceee5a608e7c 33 *
alexpirciu 1:ceee5a608e7c 34 *
alexpirciu 1:ceee5a608e7c 35 */
alexpirciu 1:ceee5a608e7c 36 SERVO::~SERVO()
alexpirciu 1:ceee5a608e7c 37 {
alexpirciu 1:ceee5a608e7c 38 };
alexpirciu 1:ceee5a608e7c 39
alexpirciu 1:ceee5a608e7c 40 /** @brief Set angle method
alexpirciu 1:ceee5a608e7c 41 *
alexpirciu 1:ceee5a608e7c 42 * @param angle angle
alexpirciu 1:ceee5a608e7c 43 */
alexpirciu 1:ceee5a608e7c 44 void SERVO::SetAngle(float angle)
alexpirciu 1:ceee5a608e7c 45 {
alexpirciu 1:ceee5a608e7c 46 pwm.write(conversion(angle));
alexpirciu 1:ceee5a608e7c 47 };
alexpirciu 1:ceee5a608e7c 48
alexpirciu 1:ceee5a608e7c 49 /** @brief Conversion method
alexpirciu 1:ceee5a608e7c 50 *
alexpirciu 1:ceee5a608e7c 51 * @param angle angle
alexpirciu 1:ceee5a608e7c 52 * \return duty cycle
alexpirciu 1:ceee5a608e7c 53 */
alexpirciu 1:ceee5a608e7c 54 float SERVO::conversion(float angle)
alexpirciu 1:ceee5a608e7c 55 {
alexpirciu 1:ceee5a608e7c 56 //rc-servo-4519
alexpirciu 1:ceee5a608e7c 57 //return (0.0010321101 * angle + 0.0725);
alexpirciu 1:ceee5a608e7c 58 //fs-5106B
alexpirciu 1:ceee5a608e7c 59 // return (0.035 +0.0272+ (angle + 25.f) / 1953.135);
alexpirciu 1:ceee5a608e7c 60 //RS2 MG/BB
alexpirciu 1:ceee5a608e7c 61 return (0.0009505 * angle + 0.07525);
alexpirciu 1:ceee5a608e7c 62 };
alexpirciu 1:ceee5a608e7c 63 }; // namespace drivers