Abrir y cerrar caja con un servo mediante un sensor ultrasónico HC-SR04

Funcionamiento

Diseñar e implementar un sistema que, utilizando una placa Arduino, detecte la proximidad de un objeto mediante un sensor ultrasónico (HC-SR04) y controle el movimiento de un servo motor. El servo deberá girar 15 grados cuando un objeto se acerque a 5 centímetros del sensor y regresar a su posición inicial de 90 grados cuando el objeto se aleje de esta distancia.


Componentes

  • Placa Arduino (ejemplo: Arduino Uno)
  • Sensor ultrasónico HC-SR04
  • Servo motor
  • Cables de conexión
  • Protoboard (opcional)
  • Fuente de energía o conexión USB

Conexiones

  • Conexión del sensor HC-04::
  • VCC a 5V de Arduino
  • GND a GND de Arduino
  • TRIG a pin 9 de Arduino
  • ECHO a pin 10 de Arduino
  • Conexión del servo:
  • VCC a 5V de Arduino o a fuente de alimentación
  • GND a GND de Arduino o a fuente de alimentación
  • Pin de señal del servomotor al pin digital 2 del Arduino.

Código

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <Arduino.h>

#include <Servo.h> // Importar la librería para controlar el servo

// Pines del sensor ultrasónico
const int triggerPin = 9;
const int echoPin = 10;
const int servoPin = 2;

// Creación del objeto servo
Servo myServo;

void setup() {
  // Configuración de los pines
  pinMode(triggerPin, OUTPUT);
  pinMode(echoPin, INPUT);

  // Inicialización del servo en el pin 6
  myServo.attach(servoPin);
  myServo.write(90); // Posición inicial del servo: 90 grados

  // Inicialización del puerto serie
  Serial.begin(9600);
}

void loop() {
  // Medición de la distancia
  long duration;
  float distance;

  // Generar un pulso de Trigger
  digitalWrite(triggerPin, LOW);
  delayMicroseconds(2);
  digitalWrite(triggerPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPin, LOW);

  // Leer el tiempo de respuesta del Echo
  duration = pulseIn(echoPin, HIGH);

  // Calcular la distancia en centímetros
  distance = duration * 0.034 / 2;

  // Imprimir la distancia medida en el monitor serie
  Serial.print("Distancia: ");
  Serial.print(distance);
  Serial.println(" cm");

  // Control del servo según la distancia medida
  if (distance <= 5.0) {
    myServo.write(15); // Girar a 15 grados
    delay(3000);
  } else {
    myServo.write(90); // Regresar a 90 grados
    
  }

  // Pequeña pausa para estabilizar las lecturas
  delay(100);
}

Explicación del Código:

  1. Librería del Servo: Se utiliza la librería Servo.h para facilitar el control del motor.
  2. Configuración del Sensor Ultrasónico: Los pines triggerPin y echoPin controlan el disparo y la recepción de los pulsos ultrasónicos.
  3. Cálculo de la Distancia: La fórmula (duration * 0.034 / 2) convierte el tiempo en microsegundos a distancia en centímetros.
  4. Control del Servo: Según la distancia medida, el servo gira a 15 grados o regresa a 90 grados.

Diseños


Videos


1 comentario en “Abrir y cerrar caja con un servo mediante un sensor ultrasónico HC-SR04”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Carrito de compra