Tuk tutoriail

Dependencies:   mbed lib_workshop_2019

Committer:
dgwambaa
Date:
Mon Oct 28 09:19:57 2019 +0000
Revision:
10:2c17068cb551
Parent:
9:19255172362f
save test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gvaquette 4:bf5caf4c0c88 1 #include "mbed.h"
gvaquette 4:bf5caf4c0c88 2 #include "test_motor.h"
gvaquette 9:19255172362f 3 #include "console_output.h"
gvaquette 9:19255172362f 4
gvaquette 4:bf5caf4c0c88 5
gvaquette 5:d99659a45cab 6 /**********************************************************************/
gvaquette 5:d99659a45cab 7 /** ft_run_motor **/
gvaquette 5:d99659a45cab 8 /* Args : - direction (e_direction): direction to turn the motor */
gvaquette 5:d99659a45cab 9 /* - duty_cycle (double): duty cycle for the PWM */
gvaquette 5:d99659a45cab 10 /* - pwm_mot (PwmOut): pin to set the PWM */
gvaquette 5:d99659a45cab 11 /* - dirA and dirB (DigitalOut): Pins to set the direction */
gvaquette 5:d99659a45cab 12 /**********************************************************************/
gvaquette 4:bf5caf4c0c88 13 void ft_run_motor( e_direction direction, double duty_cycle,
dgwambaa 10:2c17068cb551 14 PwmOut pwm_mot, DigitalOut dir1, DigitalOut dir2)
gvaquette 4:bf5caf4c0c88 15 {
gvaquette 4:bf5caf4c0c88 16
gvaquette 4:bf5caf4c0c88 17 /* TO DO : define direction */
gvaquette 4:bf5caf4c0c88 18 if (direction == FORWARD)
gvaquette 4:bf5caf4c0c88 19 {
dgwambaa 10:2c17068cb551 20 dir1=1;
dgwambaa 10:2c17068cb551 21 dir2=0;
gvaquette 7:c7ff04228b11 22
gvaquette 7:c7ff04228b11 23
gvaquette 4:bf5caf4c0c88 24 }
gvaquette 4:bf5caf4c0c88 25 else // direction == BACKWARD
gvaquette 4:bf5caf4c0c88 26 {
dgwambaa 10:2c17068cb551 27 dir1=0;
dgwambaa 10:2c17068cb551 28 dir2=1;
gvaquette 7:c7ff04228b11 29
gvaquette 4:bf5caf4c0c88 30 }
gvaquette 4:bf5caf4c0c88 31
gvaquette 5:d99659a45cab 32 /* TO DO : apply duty cycle to pwm_mot */
dgwambaa 10:2c17068cb551 33 pwm_mot=duty_cycle;
gvaquette 4:bf5caf4c0c88 34 }
gvaquette 9:19255172362f 35
gvaquette 9:19255172362f 36
dgwambaa 10:2c17068cb551 37 double ft_get_duty_cycle_choice(Serial &pc, double duty_cycle_p) {
dgwambaa 10:2c17068cb551 38 double duty_cycle = duty_cycle_p;
gvaquette 9:19255172362f 39
gvaquette 9:19255172362f 40 if (pc.readable() )
gvaquette 9:19255172362f 41 {
gvaquette 9:19255172362f 42 int user_int = ft_get_user_int(pc);
gvaquette 9:19255172362f 43 if (user_int < 10 && user_int >= 0) duty_cycle = user_int/10.0;
gvaquette 9:19255172362f 44 }
dgwambaa 10:2c17068cb551 45 return duty_cycle;
gvaquette 9:19255172362f 46 }
gvaquette 9:19255172362f 47
gvaquette 9:19255172362f 48 void ft_test_motor(PwmOut pin_pwm_mot, DigitalOut pin_dirA, DigitalOut pin_dirB,
gvaquette 9:19255172362f 49 Serial &pc)
gvaquette 9:19255172362f 50 {
gvaquette 9:19255172362f 51 e_direction direction = FORWARD;
gvaquette 9:19255172362f 52
gvaquette 9:19255172362f 53 double duty_cycle =0.1;
gvaquette 9:19255172362f 54
gvaquette 9:19255172362f 55 do{
dgwambaa 10:2c17068cb551 56 pc.printf("\r Duty cycle is %lf", duty_cycle);
dgwambaa 10:2c17068cb551 57 duty_cycle = ft_get_duty_cycle_choice(pc, duty_cycle);
gvaquette 9:19255172362f 58 ft_run_motor(direction, duty_cycle, pin_pwm_mot, pin_dirA, pin_dirB);
gvaquette 9:19255172362f 59 } while (duty_cycle > 0.0);
gvaquette 9:19255172362f 60
gvaquette 9:19255172362f 61 return;
gvaquette 9:19255172362f 62 }