Servomotor

Dependents:   ServomotorTests NerfUSTarget

Revision:
1:7e200831ba73
Parent:
0:46b4e7d76586
Child:
5:003d3d682097
diff -r 46b4e7d76586 -r 7e200831ba73 source/Servomotor.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/source/Servomotor.cpp	Sat Feb 25 23:14:27 2017 +0000
@@ -0,0 +1,26 @@
+#include "Servomotor.hpp"
+
+Servomotor::Servomotor(PwmOutInterface &pwm_out) : 
+    pwm_out(pwm_out)
+{
+    
+}
+
+//Angle 0 degree = duty cycle 1 ms
+//Angle 90 degree = duty cycle 1.5 ms
+//Angle 180 degree = duty cycle 2 ms
+void Servomotor::set_angle(const float angle_degree)
+{
+    const float duty_cycle_ms = angle_degree / 180.0 + 1.0;
+    pwm_out.pulsewidth_ms(duty_cycle_ms);
+}
+
+void Servomotor::set_position_up()
+{
+    set_angle(0);
+}
+
+void Servomotor::set_position_down()
+{
+    set_angle(90);
+}
\ No newline at end of file