el programa permite ingresar la posición en el eje X,Y,Z, haciendo que el Servo MG90S con sus movimientos de 180° trabaje en mm de 0 a 50.

Dependents:   PICCOLO_CNC PICCOLO_CNC1

Revision:
2:cc30b42ac66f
Child:
3:07bcb3c9a8b8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Servo_X.cpp	Mon Feb 26 19:38:14 2018 +0000
@@ -0,0 +1,48 @@
+#include "Servo_X.h"
+#include "mbed.h"
+
+PwmOut mypwmX(PA_8);
+PwmOut mypwmY(PB_10);
+PwmOut mypwmZ(PB_4);
+Servo::Servo()
+{
+    mypwmX.period_ms(20);
+    mypwmY.period_ms(20);
+    mypwmZ.period_ms(20);
+    mypwmX.pulsewidth_us(MINPULSE);
+    mypwmY.pulsewidth_us(MINPULSE);
+    mypwmZ.pulsewidth_us(NODRAW);
+    
+}
+Servo::~Servo(){
+}
+int Servo::mm2pulse(int vmm)
+{
+  if (vmm < MAXPOS)
+    return vmm*(MAXPULSE-MINPULSE)/MAXPOS +MINPULSE;
+  return MAXPULSE;   
+}
+void Servo::SetZ(int _z)
+{
+    z=_z;
+    mypwmZ.pulsewidth_us(mm2pulse(z)); 
+}
+void Servo::SetServo(int _x,int _y)
+{
+    x=_x;
+    y=_y;
+    mypwmX.pulsewidth_us(mm2pulse(x));
+    mypwmY.pulsewidth_us(mm2pulse(y));   
+}
+int Servo::GetServoX()
+{
+    return x;
+}
+int Servo::GetServoY()
+{
+    return y;
+}
+int Servo::GetServoZ()
+{
+    return z;
+}