Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Car.h@9:8c52fe1ce843, 2019-11-25 (annotated)
- Committer:
- edmugu
- Date:
- Mon Nov 25 15:28:31 2019 +0000
- Revision:
- 9:8c52fe1ce843
- Parent:
- 0:7676da98b5c1
- Child:
- 8:14e91fdf70e8
pushed commit
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| edmugu | 0:7676da98b5c1 | 1 | |
| edmugu | 0:7676da98b5c1 | 2 | #ifndef MBED_MOTOR_H | 
| edmugu | 0:7676da98b5c1 | 3 | #define MBED_MOTOR_H | 
| edmugu | 0:7676da98b5c1 | 4 | |
| edmugu | 0:7676da98b5c1 | 5 | #include "mbed.h" | 
| edmugu | 0:7676da98b5c1 | 6 | #include <Motor.h> // DC motor driver | 
| edmugu | 0:7676da98b5c1 | 7 | |
| edmugu | 0:7676da98b5c1 | 8 | struct Car_vector { | 
| edmugu | 0:7676da98b5c1 | 9 | float speed; | 
| edmugu | 0:7676da98b5c1 | 10 | float turnCW; | 
| edmugu | 0:7676da98b5c1 | 11 | }; | 
| edmugu | 0:7676da98b5c1 | 12 | |
| edmugu | 0:7676da98b5c1 | 13 | |
| edmugu | 0:7676da98b5c1 | 14 | class Car { | 
| edmugu | 0:7676da98b5c1 | 15 | public: | 
| edmugu | 0:7676da98b5c1 | 16 | Car( PinName pwm1, | 
| edmugu | 0:7676da98b5c1 | 17 | PinName fwd1, | 
| edmugu | 0:7676da98b5c1 | 18 | PinName rev1, | 
| edmugu | 0:7676da98b5c1 | 19 | PinName pwm2, | 
| edmugu | 0:7676da98b5c1 | 20 | PinName fwd2, | 
| edmugu | 0:7676da98b5c1 | 21 | PinName rev2 | 
| edmugu | 0:7676da98b5c1 | 22 | ); | 
| edmugu | 0:7676da98b5c1 | 23 | |
| edmugu | 0:7676da98b5c1 | 24 | //Sets the speed as a percentage (i.e. 1 = 100% and 0.5 = 50%) | 
| edmugu | 0:7676da98b5c1 | 25 | void speed(float speed); | 
| edmugu | 0:7676da98b5c1 | 26 | float speed(void); | 
| edmugu | 0:7676da98b5c1 | 27 | |
| edmugu | 0:7676da98b5c1 | 28 | //Sets the speed difference between the motors | 
| edmugu | 0:7676da98b5c1 | 29 | // Example 1: if original speed is 50% | 
| edmugu | 0:7676da98b5c1 | 30 | // turnCW(0.5) => rightMotor @ 25% and leftMotor @ 75% | 
| edmugu | 0:7676da98b5c1 | 31 | // turnCW(0.1) => rightMotor @ 45% and leftMotor @ 55% | 
| edmugu | 0:7676da98b5c1 | 32 | // | 
| edmugu | 0:7676da98b5c1 | 33 | // Example 2: if original speed is 100% | 
| edmugu | 0:7676da98b5c1 | 34 | // turnCW(0.5) => rightMotor @ 75% and leftMotor @ 100% | 
| edmugu | 0:7676da98b5c1 | 35 | // turnCW(0.1) => rightMotor @ 95% and leftMotor @ 100% | 
| edmugu | 0:7676da98b5c1 | 36 | void turnCW(float turn); | 
| edmugu | 0:7676da98b5c1 | 37 | |
| edmugu | 0:7676da98b5c1 | 38 | protected: | 
| edmugu | 0:7676da98b5c1 | 39 | void _set_motors(void); | 
| edmugu | 0:7676da98b5c1 | 40 | float _clamp_speed(float sp); | 
| edmugu | 0:7676da98b5c1 | 41 | void _mlspeed(float sp); | 
| edmugu | 0:7676da98b5c1 | 42 | void _mrspeed(float sp); | 
| edmugu | 0:7676da98b5c1 | 43 | |
| edmugu | 0:7676da98b5c1 | 44 | |
| edmugu | 0:7676da98b5c1 | 45 | float _car_speed; | 
| edmugu | 0:7676da98b5c1 | 46 | float _car_turn; | 
| edmugu | 0:7676da98b5c1 | 47 | PwmOut _ml_pwm; | 
| edmugu | 0:7676da98b5c1 | 48 | PwmOut _mr_pwm; | 
| edmugu | 0:7676da98b5c1 | 49 | DigitalOut _ml_fwd; | 
| edmugu | 0:7676da98b5c1 | 50 | DigitalOut _mr_fwd; | 
| edmugu | 0:7676da98b5c1 | 51 | DigitalOut _ml_rev; | 
| edmugu | 0:7676da98b5c1 | 52 | DigitalOut _mr_rev; | 
| edmugu | 0:7676da98b5c1 | 53 | |
| edmugu | 0:7676da98b5c1 | 54 | }; | 
| edmugu | 0:7676da98b5c1 | 55 | |
| edmugu | 0:7676da98b5c1 | 56 | |
| edmugu | 0:7676da98b5c1 | 57 | #endif |