Pinzas con servomotor accionadas mediante pulsadores
Materiales Necesarios
- Servomotor.
- Arduino Uno o cualquier otro modelo de Arduino.
- Protoboard.
- Resistencias de 1k.
- Pulsadores de dos pines.
- Carcaza y pinzas (Impresas en 3D).
Diagrama de conexión:
- Conexión servomotor
- El cable café del motor al pin de tierra (GND) de la placa de desarrollo.
- El cable rojo del motor al pin de 5 voltios de la placa de desarrollo.
- El cable amarillo al pin 9 de la placa de desarrollo.
- Conexión pulsadores
- Pulsador de apertura: pin número 2.
- Pulsador de cierre: pin número 3.
Código funcionamiento servomotor.
El motor debe girar hacia un lado y hacia el otro por unos segundos cada vez, repitiendo este movimiento dos veces. En caso de que esto no suceda, revisa las conexiones.
#include <Servo.h>
Servo myservo;
int pos = 0; // variable que guarda la posición del servo
void setup() {
myservo.attach(9); // Envía la señal de control del servo por el pin 9
for (int i = 0; i <= 1; i += 1) { // repite dos veces
for (pos = 0; pos <= 180; pos += 1) { // va de 0 a 180 grados
// in steps of 1 degree
myservo.write(pos); // le indica al servo ir a la posición 'pos'
delay(15); // espera 15 ms para que el servo llegue a la posición
}
for (pos = 180; pos >= 0; pos -= 1) { // va de 180 a 0 grados
myservo.write(pos); // le indica al servo ir a la posición 'pos'
delay(15); // espera 15 ms para que el servo llegue a la posición
}
}
}
void loop() {
}
Código calibración servomotor
El servomotor hará un único movimiento con el que queda posicionado para que coloques la pinza robótica.
#include <Servo.h>
Servo myservo;
void setup() {
myservo.attach(9);
Serial.begin(9600); // inicia la comunicación con el servo motor
myservo.write(80); // le indica al servo motor que vaya a la posición 80 grados
}
void loop() {
}
Código final, pinza con servomotor
Al cargar el código, será necesario modificar los parámetros anguloCerrado y anguloAbierto ya que estos parámetros varían según el objeto que desees sujetar, y las necesidades que tengas.
// Constantes
const int anguloCerrado = -20; // Ángulo de la pinza cerrada
const int anguloAbierto = 100; // Ángulo de la pinza abierta
const int buttonPin2 = 2; // Pin del pulsador 1
const int buttonPin3 = 3; // Pin del pulsador 2
// Variables
int buttonState2 = 0; // Variable de lectura del pulsador 1
int buttonState3 = 0; // Variable de lectura del pulsador 2
#include <Servo.h>
Servo myservo;
// Variable para guardar la posición del motor servo
int pos = 60;
void setup() {
// Configuración de inicio
pinMode(buttonPin2, INPUT);
pinMode(buttonPin3, INPUT);
myservo.attach(9);
// Establene la posición inicial de la pinza
myservo.write(68);
delay(1500);
}
void loop() {
pos = constrain(myservo.read(), -anguloAbierto/2 + 60, -anguloCerrado/2 + 60);
// Lee el estado de los pulsadores
buttonState2 = digitalRead(buttonPin2);
buttonState3 = digitalRead(buttonPin3);
// Lee si el pulsador del pin 2 está oprimido
if (buttonState2 == HIGH) {
pos -= 1;
myservo.write(pos);
delay(15);
}
// Lee si el pulsador del pin 3 está oprimido
if (buttonState3 == HIGH) {
pos += 1;
myservo.write(pos);
delay(15);
}
}
Materiales usados en este tutorial:
Aqui podras encontrar los materiales a detalle usados para el desarrollo del tutorial y tambien conocer donde puedes conseguirlos:
Protoboard de 500 puntos | https://amzn.to/3SJplzu | |
Arduino Uno | https://amzn.to/4dlT1uW | |
Servomotor | https://amzn.to/3M9TKDm |
Pública tu duda o comentario
Resuelve tus dudas con la comunidad.
(0) Comentarios
No registra comentarios, se el primero en comentar.
Publicar