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.
Revision 0:400439bce842, committed 2019-07-03
- 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 |
--- /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
--- /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