SERVO

Dependents:   stofzuigrobot

Files at this revision

API Documentation at this revision

Comitter:
firstsignupoftheweek
Date:
Wed Jul 03 09:51:18 2019 +0000
Commit message:
SERVO;

Changed in this revision

servo.cpp Show annotated file Show diff for this revision Revisions of this file
servo.h Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 400439bce842 servo.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/servo.cpp	Wed Jul 03 09:51:18 2019 +0000
@@ -0,0 +1,37 @@
+
+//cpp file van servo class, alle functies worden hier uitgevoerd
+//de servos hebben een effectieve 110 graden om te gebruiken,
+//hierdoor hebben we de servos zo geprogrammeerd dat ze maar 90 graden hoeven te gebruiken,
+//in plaats van 180 graden
+//de servos moeten tegen elkaar in draaien om niet te verplaatsen
+//2 servos staan dus altijd in de "90 graden" positie en de andere in de "0 graden" positie
+//als we ze draaien worden ze precies andersom gedraaid
+
+
+#include "mbed.h"
+#include "servo.h"  //include de header file waar de functies zijn gedeclareerd
+
+Servo::Servo(int tempcenteroffset, int tempninetyoffset, char tempdirection, PinName pin) : _pwm(pin){  //bind de pin aan een pwm pin
+    centeroffset = tempcenteroffset;                //sla de offset 0 graden op
+    ninetyoffset = tempninetyoffset;                //sla de offset van 90 graden op
+    direction = tempdirection;                      //sla op welke richting ze moeten draaien
+    _pwm.period_ms(20);                             //zet de period
+}
+    
+void Servo::servoCenter(){                          //de servo op "0" graden draaien
+    if(direction == 'R'){                           //moet de servo rechtsom draaien
+        _pwm.pulsewidth_us(ZERO+centeroffset);      //zet de servo naar 0 + offset graden
+    }
+    if(direction == 'L'){                           //moet de servo linksom draaien
+        _pwm.pulsewidth_us(NINETY+centeroffset);    //zet de servo naar 90 + offset graden 
+    }
+}
+
+void Servo::turnRight(){                            //de servo naar 90 graden draaien
+    if(direction == 'R'){                           //moet de servo rechtsom draaien
+        _pwm.pulsewidth_us(NINETY+ninetyoffset);    //zet de servo naar de 90 + offset graden
+    }
+    if(direction == 'L'){                           //moet de servo linksom draaien
+        _pwm.pulsewidth_us(ZERO+ninetyoffset);      //zet de servo naar 0 + offset graden
+    }
+}
\ No newline at end of file
diff -r 000000000000 -r 400439bce842 servo.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/servo.h	Wed Jul 03 09:51:18 2019 +0000
@@ -0,0 +1,23 @@
+//servo class
+#include "mbed.h"
+#define ZERO            700     //pwm signaal om de motoren op 0 graden te zetten
+#define NINETY          1480    //pwm signaal om de motoren op 90 graden te zetten
+ 
+
+class Servo{
+private:    //de variabelen
+    int centeroffset;   //de offset per servo om de servo op 0 graden te zetten
+    int ninetyoffset;   //de offset per servoo om de servo op 90 graden te zetten
+    char direction;     //welke richting moeten ze op draaien
+
+    
+public:
+    Servo(int tempcenteroffset, int tempninetyoffset, char tempdirection, PinName pin);
+    void servoCenter();
+    void turnRight();
+
+    
+protected:
+    PwmOut _pwm;    //deze mag nooit aangepast worden    
+ 
+};
\ No newline at end of file