Mateusz Grzywacz / Yellow2WheeledRobot_motor_shield
Committer:
amateusz
Date:
Thu Feb 04 02:50:06 2016 +0000
Revision:
2:6f6e591f1838
Parent:
0:85e85976c650
Child:
3:c656543830df
So moved it to a class, and sub-class for motors, but something doesn't work.. like it is calling constructor without given argument.. strange. Got to come up with a workaround

Who changed what in which revision?

UserRevisionLine numberNew contents of line
amateusz 0:85e85976c650 1 #include <math.h>
amateusz 2:6f6e591f1838 2 #include "YellowMotors.h"
amateusz 2:6f6e591f1838 3 #include "mbed.h"
amateusz 2:6f6e591f1838 4
amateusz 0:85e85976c650 5
amateusz 0:85e85976c650 6 float motorLinearizationL(float desired)
amateusz 0:85e85976c650 7 {
amateusz 2:6f6e591f1838 8 return (float)((6.6691*(exp(0.0249053*(desired*100))+2.92508))/100.0);
amateusz 2:6f6e591f1838 9 };
amateusz 0:85e85976c650 10
amateusz 0:85e85976c650 11 float motorLinearizationR(float desired)
amateusz 0:85e85976c650 12 {
amateusz 2:6f6e591f1838 13 return (float)(4.096509*(exp(0.0286952296*(desired*100))+5.073644964)/100.0); // \/ history of trial and error
amateusz 0:85e85976c650 14 //return 5.9693939*(exp(0.0251906*(desired*100))+3.162519)/100.0; // that wasn't that bad at all! to early start, the rest ok
amateusz 0:85e85976c650 15 //return (3.45183*(exp(0.0292461*(desired*100))+5.51727))/100.0;
amateusz 2:6f6e591f1838 16 };
amateusz 2:6f6e591f1838 17
amateusz 2:6f6e591f1838 18 YellowMotors::YellowMotors(PinName clk, PinName lat, PinName dat, PinName ena, PinName Lpwm, PinName Rpwm) : _clk(clk), _lat(lat), _dat(dat), _ena(ena)//, _Lpwm(Lpwm), _Rpwm(Rpwm)
amateusz 2:6f6e591f1838 19 {
amateusz 2:6f6e591f1838 20 //PwmOut _Lpwm(D11);
amateusz 2:6f6e591f1838 21 //PwmOut _Rpwm(D3);
amateusz 2:6f6e591f1838 22 //DigitalOut _dat(dat);
amateusz 2:6f6e591f1838 23 //DigitalOut _clk(clk);
amateusz 2:6f6e591f1838 24 //DigitalOut _lat(lat);
amateusz 2:6f6e591f1838 25
amateusz 2:6f6e591f1838 26 // and create motor objects
amateusz 2:6f6e591f1838 27 _ena.write(0);
amateusz 2:6f6e591f1838 28 //pc.printf("konstruktor yellow. Lpwm: %d\n\r", Lpwm);
amateusz 2:6f6e591f1838 29 //motorItself::motorItself L(D11);//Lpwm);
amateusz 2:6f6e591f1838 30 //motorItself::motorItself R(D3);//Rpwm);
amateusz 2:6f6e591f1838 31 }
amateusz 2:6f6e591f1838 32
amateusz 2:6f6e591f1838 33 void YellowMotors::setDirections(char directions)
amateusz 2:6f6e591f1838 34 {
amateusz 2:6f6e591f1838 35 _directions = directions;
amateusz 2:6f6e591f1838 36 _lat = 0;
amateusz 2:6f6e591f1838 37 for (signed char i = 7; i >= 0; i--) {
amateusz 2:6f6e591f1838 38 _clk = 0;
amateusz 2:6f6e591f1838 39 _dat = (directions >> i) & 0x1;
amateusz 2:6f6e591f1838 40 wait(0.00001);
amateusz 2:6f6e591f1838 41 _clk = 1;
amateusz 2:6f6e591f1838 42 }
amateusz 2:6f6e591f1838 43 _lat = 1;
amateusz 2:6f6e591f1838 44 _clk = 0;
amateusz 2:6f6e591f1838 45 };
amateusz 2:6f6e591f1838 46