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

Videos
Hello! I hope you’re having a great day. Good luck 🙂