//

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