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