Jannes De Brabandere / brushlessMotor

Dependents:   gimbalController_brushless_IMU

Fork of brushlessController_TB6612FNG by Baser Kandehir

Files at this revision

API Documentation at this revision

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
--- 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 */
--- 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%