Kildekode

Dependencies:   mbed

Fork of PRO1 by Kim Nielsen

Committer:
kimnielsen
Date:
Wed Nov 02 08:05:41 2016 +0000
Revision:
2:1c27a43bb9b7
Parent:
0:d3dbe632b1a9
Team5 kildekode 2-11-16

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kimnielsen 0:d3dbe632b1a9 1 #include "mbed.h"
kimnielsen 0:d3dbe632b1a9 2 #include "nucleo_servo.h"
kimnielsen 0:d3dbe632b1a9 3
kimnielsen 0:d3dbe632b1a9 4 Servo::Servo(PinName pin){
kimnielsen 0:d3dbe632b1a9 5 servoPWM = new PwmOut(pin);
kimnielsen 0:d3dbe632b1a9 6 servoPWM->period_ms(20); //Do not change ;)
kimnielsen 0:d3dbe632b1a9 7 servoPWM->pulsewidth_us(600);
kimnielsen 0:d3dbe632b1a9 8 degrees = 0;
kimnielsen 0:d3dbe632b1a9 9 }
kimnielsen 0:d3dbe632b1a9 10 Servo::~Servo(){
kimnielsen 0:d3dbe632b1a9 11 delete servoPWM;
kimnielsen 0:d3dbe632b1a9 12 }
kimnielsen 0:d3dbe632b1a9 13
kimnielsen 0:d3dbe632b1a9 14 void Servo::set_position(float deg){
kimnielsen 0:d3dbe632b1a9 15 degrees = deg;
kimnielsen 0:d3dbe632b1a9 16 if(degrees > 180)degrees = 180;
kimnielsen 0:d3dbe632b1a9 17 if(degrees < 0)degrees = 0;
kimnielsen 0:d3dbe632b1a9 18 int pw_us = 640 + (degrees / 180 * 1900);
kimnielsen 0:d3dbe632b1a9 19 servoPWM->pulsewidth_us(pw_us);
kimnielsen 0:d3dbe632b1a9 20 }
kimnielsen 0:d3dbe632b1a9 21
kimnielsen 0:d3dbe632b1a9 22 void Servo::turn_left(float deg){
kimnielsen 0:d3dbe632b1a9 23 degrees -= deg;
kimnielsen 0:d3dbe632b1a9 24 set_position(degrees);
kimnielsen 0:d3dbe632b1a9 25 }
kimnielsen 0:d3dbe632b1a9 26
kimnielsen 0:d3dbe632b1a9 27 void Servo::turn_right(float deg){
kimnielsen 0:d3dbe632b1a9 28 degrees += deg;
kimnielsen 0:d3dbe632b1a9 29 set_position(degrees);
kimnielsen 0:d3dbe632b1a9 30 }