martes, 9 de abril de 2019

BRAZO ROBOTIZADO 2

Buenas tardes, aquí os voy a dejar el código y la explicación sobre el brazo robotizado que hemos hecho con 2 servos y 4 pulsadores:


#include <Servo.h> // Incluimos la biblioteca Servo
  Servo mi_servo0;  //Definimos los servos que vamos a utilizar
  Servo mi_servo1;
  int posicion_mi_servo0; //Estas variables definirán las posiciones de los servos en 
  int posicion_mi_servo1;   cada momento
  const int pulsador_izquierda = 2; //Definimos el número de Pin para cada uno de los 
  const int pulsador_derecha   = 3;   pulsadores
  const int pulsador_arriba    = 5;
  const int pulsador_abajo     = 6; 
  int estado_pulsador_izquierda = 0; //variables para leer el estado del pulsador
  int estado_pulsador_derecha   = 0; 
  int estado_pulsador_arriba    = 0;
  int estado_pulsador_abajo     = 0;
  int incremento_de_angulo      = 25;  //incremento que queremos para cada vez que pulsemos
void setup()  //Comenzamos la configuración de los pines
mi_servo0.attach(9) ; //Definimos los pines de salida para cada servo
mi_servo1.attach(11) ;
  pinMode(pulsador_izquierda, INPUT); //Definimos los pines para la señas de los 
  pinMode(pulsador_derecha,   INPUT);  pulsadores como entradas
  pinMode(pulsador_arriba,     INPUT);
  pinMode(pulsador_abajo,   INPUT); 
}
void loop() {
  estado_pulsador_izquierda = digitalRead(pulsador_izquierda); //Leemos el estado
  estado_pulsador_derecha   = digitalRead(pulsador_derecha)  ;  de cada uno de los
  estado_pulsador_arriba    = digitalRead(pulsador_arriba)   ;        pulsadores
  estado_pulsador_abajo     = digitalRead(pulsador_abajo)    ;
  if (estado_pulsador_izquierda == HIGH) 
// Si tenemos pulsado el "Pulsador izquierda
// El servo inferior se mueve a la nueva posición
// La nueva posición será la posicion actual + el incremento angular
Esperamos 700ms hasta una nueva señal
{
  posicion_mi_servo0 = posicion_mi_servo0+ incremento_de_angulo;
  mi_servo0.write(posicion_mi_servo0);                             
  delay(700);                                                                
 }
  else{ if (estado_pulsador_derecha == HIGH)
 // Si tenemos pulsado el "Pulsador izquierda
// El servo inferior se mueve a la nueva posición
// La nueva posición será la posicion actual + el incremento angular
Esperamos 700ms hasta una nueva señal
 {
  posicion_mi_servo0 = posicion_mi_servo0 - incremento_de_angulo;
  mi_servo0.write(posicion_mi_servo0);
  delay(700);
  }
  if (estado_pulsador_abajo == HIGH)
 // Si tenemos pulsado el "Pulsador izquierda
// El servo inferior se mueve a la nueva posición
// La nueva posición será la posicion actual + el incremento angular
Esperamos 700ms hasta una nueva señal
{
  posicion_mi_servo1 = posicion_mi_servo1+ incremento_de_angulo;
mi_servo1.write(posicion_mi_servo1);                             
  delay(700);                                                                
  }
  else if (estado_pulsador_arriba == HIGH)
 // Si tenemos pulsado el "Pulsador izquierda
// El servo inferior se mueve a la nueva posición
// La nueva posición será la posicion actual + el incremento angular
Esperamos 700ms hasta una nueva señal
{
  posicion_mi_servo1 = posicion_mi_servo1 - incremento_de_angulo;
mi_servo1.write(posicion_mi_servo1);
  delay(700);
}  
  else {     
   //Si no tenemos pulsado ningún pulsador
   // esperamos 700ms hasta una nueva señal                           
     delay(700);
  }
}
}

No hay comentarios:

Publicar un comentario

Práctica Infrarrojos

Hola, buenos días,hoy os colgaré la práctica de infrarrojos que me quedaba por terminar.