//
Dependents: gimbalController_brushless_IMU
Fork of brushlessController_TB6612FNG by
Revision 5:027fe6d9a8a7, committed 2016-05-16
- Comitter:
- alfaleader
- Date:
- Mon May 16 09:50:08 2016 +0000
- Parent:
- 4:71fb2b106f41
- Commit message:
- d
Changed in this revision
brushlessMotor.cpp | Show annotated file Show diff for this revision Revisions of this file |
brushlessMotor.h | Show annotated file Show diff for this revision Revisions of this file |
diff -r 71fb2b106f41 -r 027fe6d9a8a7 brushlessMotor.cpp --- a/brushlessMotor.cpp Sun May 15 16:15:28 2016 +0000 +++ b/brushlessMotor.cpp Mon May 16 09:50:08 2016 +0000 @@ -1,14 +1,13 @@ #include "brushlessMotor.h" -brushlessMotor::brushlessMotor(PinName pin1, PinName pin2, PinName pin3) { //constructor van brushlessControll, telkens we een brushlesscontroll object maken roept het deze functie aan] +brushlessMotor::brushlessMotor(PinName pin1, PinName pin2, PinName pin3): pwm1(pin1), pwm2(pin2), pwm3(pin3) { //constructor van brushlessControll, telkens we een brushlesscontroll object maken roept het deze functie aan] //pwm pins instellen - pwm[0] = pin1; - pwm[1] = pin2; - pwm[2] = pin3; - for(int i=0; i<3; i++){ - pwm[i].period(1/20000.0); // 20 kHz pwm frequency voor elke pwm - } + //TODO: finetunes: andere khz pwm? + pwm1.period(1/20000.0); // 20 kHz pwm frequency voor elke pwm + pwm2.period(1/20000.0); // 20 kHz pwm frequency voor elke pwm + pwm3.period(1/20000.0); // 20 kHz pwm frequency voor elke pwm + sinArraySize = sizeof(pwmSin) / sizeof(int); // hoe groot is de lengte van de sinus array? phaseShift = sinArraySize / 3 ; // elke spoel staat op 120% van elkaar @@ -20,10 +19,13 @@ void brushlessMotor::brushlessControl(bool dir, int delay_time) { + //TODO: finetunen? Mss ipv 0.0-1.0 van 0.0 - 0.75 + pwm1 = pwmSin[step[0]]/255.0; // Pwm waarde voor de sinus waarde waar we zijn van 0-255 --> 0.0 - 1.0 + pwm2 = pwmSin[step[1]]/255.0; // Pwm waarde voor de sinus waarde waar we zijn van 0-255 --> 0.0 - 1.0 + pwm3 = pwmSin[step[2]]/255.0; // Pwm waarde voor de sinus waarde waar we zijn van 0-255 --> 0.0 - 1.0 + for(int k=0; k<3; k++) //alle 3 de spoelen afgaan - { - pwm[k] = pwmSin[step[k]]/255.0; // Pwm waarde voor de sinus waarde waar we zijn van 0-255 --> 0.0 - 1.0 - + { (dir == 1)? (step[k]++):(step[k]--); // links of rechts? --> step naar voor of step naar achter /* begin of einde van de sinus array --> reset naar voor of achter */
diff -r 71fb2b106f41 -r 027fe6d9a8a7 brushlessMotor.h --- a/brushlessMotor.h Sun May 15 16:15:28 2016 +0000 +++ b/brushlessMotor.h Mon May 16 09:50:08 2016 +0000 @@ -32,7 +32,9 @@ void brushlessControl(bool dir, int delay_time); //variabelen - PwmOut pwm[]; // PWM outputs van onze brushless motor + PwmOut pwm1; // PWM outputs van onze brushless motor + PwmOut pwm2; + PwmOut pwm3; int step[3]; // Array van onze 3 spoelen van onze motor, op welke stap zitten we? int sinArraySize; // Hoe groot is de sinus array? int phaseShift; // Phase shift tussen de spoelen --> 120%