Base para estacionamiento
Servomotor + sensor ultrasónico
Funcionamiento
Usando el siguiente código:
#include <Servo.h>
const int trigPin = 9; // Pin del TRIG
const int echoPin = 10; // Pin del ECHO
const int servoPin = 11; // Pin del servo
Servo myServo;
long duration;
int distance;
bool objectDetected = false;
void setup()
{
Serial.begin(9600);
myServo.attach(servoPin);
myServo.write(0); // Inicialmente en la posición 0 (bajo)
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop()
{
// Enviar un pulso para el sensor ultrasónico
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Leer el tiempo de respuesta del sensor
duration = pulseIn(echoPin, HIGH);
// Calcular la distancia en cm
distance = duration * 0.034 / 2;
Serial.print("Distancia: ");
Serial.print(distance);
Serial.println(" cm");
// Verificar si la distancia es menor o igual a 10 cm
if (distance <= 10 && !objectDetected) {
myServo.write(90); // Levantar el servo
objectDetected = true;
Serial.println("Objeto detectado, servo levantado.");
} else if (distance > 10 && objectDetected) {
myServo.write(0); // Bajar el servo
objectDetected = false;
Serial.println("Objeto ya no detectado, servo bajado.");
}
delay(500); // Esperar un poco antes de volver a medir
}
Se ha hecho que un sensor ultrasónico accione un servomotor a la hora de que este detecta algun objeto.
Tinkercad
Despues de haber comprobado que el código funciona, hemos procedido a realizar la práctica.
Práctica
Comentarios
Publicar un comentario