Brazo robótico
Componentes y materiales
§ Placa Arduino UNO
§ 2 Micro-servos
§ 4 Micro-pulsadores
§ 4 Resistencias
220Ohms
§ Protoboard
§ Cables
Esquema y montaje
Como podemos ver en el esquema,
conectamos los servos a +5V, a GND, y a los pines 9 y 10
respectivamente. Estas salidas están controladas por la señal recibida en los
pines de entrada 2, 3, 4 y 5, por medio de los cuatro pulsadores.
Como podemos ver en el esquema, conectamos los servos a
+5V, a GND, y a los pines 9 y 10 respectivamente. Estas salidas están
controladas por la señal recibida en los pines de entrada 2, 3, 4 y 5, por
medio de los cuatro pulsadores.
Código completo
#include <Servo.h> // Incluimos la biblioteca Servo
Servo servo_inferior;
// Definimos los servos que vamos a utilizar
Servo servo_superior;
int posicion_servo_inferior;
// Estas variables definirán
int posicion_servo_superior;
// las posiciónes de los servos en cada momento
const int pulsador_izquierda
= 2; // Definimos el número de pin
const int pulsador_derecha
= 3; // para cada uno de los pulsadores
const int pulsador_arriba
= 4;
const int pulsador_abajo
= 5;
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
= 2; // Incremento que queremos cada vez que
pulsamos
void setup() // Comenzamos la configuración de los pines
{
servo_inferior.attach(9) ;
// Difinimos los pines de salida para cada servo
servo_superior.attach(10);
pinMode(pulsador_izquierda,
INPUT); // Difinimos los pines para la señal de
pinMode(pulsador_derecha,
INPUT); // los pulsadores como entadas
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
pulsadores
estado_pulsador_arriba
= digitalRead(pulsador_arriba) ;
estado_pulsador_abajo
= digitalRead(pulsador_abajo) ;
if (estado_pulsador_izquierda
== HIGH)
// Si tenemos pulasdo el
"Pulasdor izquierda"
// El servo inferior se
mueve a la nueva posición
// La nueva posición será
la posicion actual + el incremento angular
// Esperamos 100ms hasta
una nueva señal
{
posicion_servo_inferior = posicion_servo_inferior
+ incremento_de_angulo;
servo_inferior.write(posicion_servo_inferior);
delay(100);
}
else if (estado_pulsador_derecha
== HIGH)
// Si tenemos pulasdo el
"Pulasdor derecha"
// El servo inferior se
mueve a la nueva posición
// La nueva posición será
la posicion actual - el incremento angular
// Esperamos 100ms hasta
una nueva señal
{
posicion_servo_inferior = posicion_servo_inferior
- incremento_de_angulo;
servo_inferior.write(posicion_servo_inferior);
delay(100);
}
else if (estado_pulsador_arriba
== HIGH)
// Si tenemos pulasdo el
"Pulasdor arriba"
// El servo superior se
mueve a la nueva posición
// La nueva posición será
la posicion actual + el incremento angular
// Esperamos 100ms hasta
una nueva señal
{
posicion_servo_superior = posicion_servo_superior
+ incremento_de_angulo;
servo_superior.write(posicion_servo_superior);
delay(100);
}
else if (estado_pulsador_abajo
== HIGH)
// Si tenemos pulasdo el
"Pulasdor abajo"
// El servo inferior se
mueve a la nueva posición
// La nueva posición será
la posicion actual - el incremento angular
// Esperamos 100ms hasta
una nueva señal
{
posicion_servo_superior = posicion_servo_superior
- incremento_de_angulo;
servo_superior.write(posicion_servo_superior);
delay(100);
}
else {
// Si no tenemos pulasdo
ningún pulasdor
// esperamos 100ms hasta
una nueva señal
delay(100);
}

Comentarios
Publicar un comentario