Arduino code
/* MICROMANIPULADOR
90 parado
Menor de 90, giro a la derecha
Mayor 90 giro a la izquierda
[##] --> derecha (menor 90)
+----------+
| |
| |
+----------+
LED 3
*/
//Librerias
#include <Servo.h>
Servo servo_x; // crea el objeto servo
Servo servo_y; // crea el objeto servo
Servo servo_z;
const int pot_x = A0;
const int pot_y = A1;
const int pot_z = A2;
int pos_x; //Variables lectura
int pos_y;
int pos_z;
const int led = 3;
int paro = 90; //valor paro servo
int margen_sup = 55;//valores medios 52,53
int margen_inf = 45;
//##########################
//SETUP#####################
void setup() {
Serial.begin(9600);
servo_x.attach(9); // vincula el servo al pin digital 9
servo_y.attach(10);
servo_z.attach(11);
pinMode(led , OUTPUT);
}
void loop() {
pos_x = map(analogRead(pot_x), 0, 1023, 0, 100); // lee entrada analogica y trans a %
pos_y = map(analogRead(pot_y), 0, 1023, 0, 100);
pos_z = map(analogRead(pot_z), 0, 1023, 0, 100);
Serial.print( pos_x);
Serial.print(" ");
Serial.print( pos_y);
Serial.print(" ");
Serial.println( pos_z);
digitalWrite(led , LOW);
if(pos_x > margen_sup ){ servo_x.write(98); }//98
if(pos_x > margen_sup + 15){ servo_x.write(180); digitalWrite(led , HIGH);}//180
if(pos_x < margen_inf){ servo_x.write(84); }//85
if(pos_x < margen_inf - 15){ servo_x.write(0); digitalWrite(led , HIGH);}//0
if(pos_x >= margen_inf && pos_x <= margen_sup){ servo_x.write(paro); }
if(pos_y > margen_sup){ servo_y.write(85); }//85
if(pos_y > margen_sup + 15){ servo_y.write(0);digitalWrite(led , HIGH); }//0
if(pos_y < margen_inf){ servo_y.write(98); }//98
if(pos_y < margen_inf - 15){ servo_y.write(180); digitalWrite(led , HIGH);}//180
if(pos_y >= margen_inf && pos_y <= margen_sup){ servo_y.write(paro); }
if(pos_z > margen_sup ){ servo_z.write(97); }
if(pos_z > margen_sup + 15){ servo_z.write(180); digitalWrite(led , HIGH);}
if(pos_z < margen_inf){ servo_z.write(84); }
if(pos_z < margen_inf - 15){ servo_z.write(0); digitalWrite(led , HIGH);}
if(pos_z >= margen_inf && pos_z <= margen_sup){ servo_z.write(paro); }
delay(100);
}








No hay comentarios:
Publicar un comentario