Zoltan Hudak / Mbed OS ScilabArduino

Dependencies:   Servo MPU6050

Committer:
hudakz
Date:
Mon Jan 18 19:51:22 2021 +0000
Revision:
0:295b7e1c12f3
Data acquisition and device control with Scilab.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hudakz 0:295b7e1c12f3 1 #include "DcMotor.h"
hudakz 0:295b7e1c12f3 2
hudakz 0:295b7e1c12f3 3 /**
hudakz 0:295b7e1c12f3 4 * @brief The DcMotor class
hudakz 0:295b7e1c12f3 5 * @note Driven by L293 or L298
hudakz 0:295b7e1c12f3 6 */
hudakz 0:295b7e1c12f3 7 DcMotor::DcMotor(PinName pin1, PinName pin2, int driverType) :
hudakz 0:295b7e1c12f3 8 _driverType(driverType)
hudakz 0:295b7e1c12f3 9 {
hudakz 0:295b7e1c12f3 10 _pwmOut1 = new PwmOut(pin1);
hudakz 0:295b7e1c12f3 11 _pwmOut1->write(0);
hudakz 0:295b7e1c12f3 12 switch (_driverType) {
hudakz 0:295b7e1c12f3 13 case 0: //L293
hudakz 0:295b7e1c12f3 14 _pwmOut2 = new PwmOut(pin2);
hudakz 0:295b7e1c12f3 15 _pwmOut2->write(0);
hudakz 0:295b7e1c12f3 16 break;
hudakz 0:295b7e1c12f3 17
hudakz 0:295b7e1c12f3 18 case 1: //L297
hudakz 0:295b7e1c12f3 19 _digitalOut2 = new DigitalOut(pin2);
hudakz 0:295b7e1c12f3 20 _digitalOut2->write(0);
hudakz 0:295b7e1c12f3 21 break;
hudakz 0:295b7e1c12f3 22 }
hudakz 0:295b7e1c12f3 23 }
hudakz 0:295b7e1c12f3 24
hudakz 0:295b7e1c12f3 25 /**
hudakz 0:295b7e1c12f3 26 * @brief
hudakz 0:295b7e1c12f3 27 * @note
hudakz 0:295b7e1c12f3 28 * @param
hudakz 0:295b7e1c12f3 29 * @retval
hudakz 0:295b7e1c12f3 30 */
hudakz 0:295b7e1c12f3 31 DcMotor::~DcMotor()
hudakz 0:295b7e1c12f3 32 {
hudakz 0:295b7e1c12f3 33 delete _pwmOut1;
hudakz 0:295b7e1c12f3 34 delete _pwmOut2;
hudakz 0:295b7e1c12f3 35 }
hudakz 0:295b7e1c12f3 36
hudakz 0:295b7e1c12f3 37 /**
hudakz 0:295b7e1c12f3 38 * @brief
hudakz 0:295b7e1c12f3 39 * @note
hudakz 0:295b7e1c12f3 40 * @param
hudakz 0:295b7e1c12f3 41 * @retval
hudakz 0:295b7e1c12f3 42 */
hudakz 0:295b7e1c12f3 43 void DcMotor::run(int direction, float speed)
hudakz 0:295b7e1c12f3 44 {
hudakz 0:295b7e1c12f3 45 switch (_driverType) {
hudakz 0:295b7e1c12f3 46 case 0: //L293
hudakz 0:295b7e1c12f3 47 if (direction == 0) {
hudakz 0:295b7e1c12f3 48 _pwmOut1->write(0);
hudakz 0:295b7e1c12f3 49 _pwmOut2->write(speed);
hudakz 0:295b7e1c12f3 50 }
hudakz 0:295b7e1c12f3 51 else {
hudakz 0:295b7e1c12f3 52 _pwmOut1->write(speed);
hudakz 0:295b7e1c12f3 53 _pwmOut2->write(0);
hudakz 0:295b7e1c12f3 54 }
hudakz 0:295b7e1c12f3 55 break;
hudakz 0:295b7e1c12f3 56
hudakz 0:295b7e1c12f3 57 case 1: //L297
hudakz 0:295b7e1c12f3 58 if (direction == 0)
hudakz 0:295b7e1c12f3 59 _digitalOut2->write(0);
hudakz 0:295b7e1c12f3 60 else
hudakz 0:295b7e1c12f3 61 _digitalOut2->write(1);
hudakz 0:295b7e1c12f3 62
hudakz 0:295b7e1c12f3 63 _pwmOut1->write(speed);
hudakz 0:295b7e1c12f3 64 break;
hudakz 0:295b7e1c12f3 65 }
hudakz 0:295b7e1c12f3 66 }