Pinzas con servomotor accionadas mediante pulsadores

Materiales Necesarios

  1. Servomotor.
  2. Arduino Uno o cualquier otro modelo de Arduino.
  3. Protoboard.
  4. Resistencias de 1k.
  5. Pulsadores de dos pines.
  6. Carcaza y pinzas (Impresas en 3D).

 

Diagrama de conexión:

  • Conexión servomotor
  1. El cable café del motor al pin de tierra (GND) de la placa de desarrollo.
  2. El cable rojo del motor al pin de 5 voltios de la placa de desarrollo.
  3. El cable amarillo al pin 9 de la placa de desarrollo.
  • Conexión pulsadores 
  1. Pulsador de apertura: pin número 2.
  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

(0) Comentarios

No registra comentarios, se el primero en comentar.
Publicar

Pública tu duda o comentario

Resuelve tus dudas con la comunidad.

*Obligatorio*