#include<Servo.h>//Se incluye la librería para el servomotor
constint trigPin = 10; //Se asigna el pin 10 del arduino para el pin "trig" del sensor
constint echoPin = 11; //Se asigna el pin 11 del arduino para el pin "echo" del sensor
long duration; //Se crea la variable "duration" para guardar el valor de tiempo que tarda en ir y regresar la onda de sonido de alta frecuencia
int distance; //Se crea la variable "distance" para guardar el valor de la distancia entre el sensor y el objeto
Servo myServo; //Se crea un objeto de tipo servo y se le denomina como "myServo"
voidsetup(){
pinMode(trigPin, OUTPUT); //Se configura como salida el pin del arduino donde se conecta el "trig" del sensor
pinMode(echoPin, INPUT); //Se configura como entrada el pin del arduino donde se conecta el "echo" del sensor
Serial.begin(9600); //Se configura la velocidad de transferencia de datos por el puerto serie a 9,600 baudios
myServo.attach(7); //Se asigna el pin 7 del arduino para la señal del servomotor
}
voidloop(){
for(int i=5;i<=175;i++){ //Se crea un ciclo para el movimiento del servomotor. Se mueve de 5 a 175 grados, donde i= ángulo del servomotor
myServo.write(i); //Se ejecuta el movimiento en el servomotor
delay(30); //La posición del servomotor cambia cada 30 milisegundos
distance = calculateDistance(); //Se ejecuta la función para el cálculo de la distancia y se guarda el valor en la variable "distance"
Serial.print(i); //Se imprime en el puerto serie el valor del ángulo del servomotor
Serial.print(","); //Se imprime el carácter "," como primer separador de esta secuencia de impresión
Serial.print(distance); //Se imprime en el puerto serie el valor de la distancia
Serial.print("."); //Se imprime el carácter "." como separador final de esta secuencia de impresión
}
for(int i=175;i>5;i--){ //Se crea un ciclo para regresar el servomotor. Se mueve de 175 a 5 grados, donde i= ángulo del servomotor
myServo.write(i); //Se ejecuta el movimiento en el servomotor
delay(30); //La posición del servomotor cambia cada 30 milisegundos
distance = calculateDistance(); //Se ejecuta la función para el cálculo de la distancia y se guarda el valor en la variable "distance"
Serial.print(i); //Se imprime en el puerto serie el valor del ángulo del servomotor
Serial.print(","); //Se imprime el carácter "," como primer separador de esta secuencia de impresión
Serial.print(distance); //Se imprime en el puerto serie el valor de la distancia
Serial.print("."); //Se imprime el carácter "." como separador final de esta secuencia de impresión
}
}
intcalculateDistance(){ //Función el cálculo de la distancia
digitalWrite(trigPin, LOW); //Se pone en bajo el estado del pin "trig" durante 2 microsegundos
delayMicroseconds(2);
digitalWrite(trigPin, HIGH); //Se pone en alto el estado del pin "trig" durante 10 microsegundos
delayMicroseconds(10);
digitalWrite(trigPin, LOW); //Se vuelve a poner en bajo el estado del pin "trig" durante 2 microsegundos
duration = pulseIn(echoPin, HIGH); //Se guarda en la variable "duration" el tiempo (en microsegundos) que tarda en recibir la señal de regreso por el pin "echo"
distance= duration*0.034/2; //Se guarda en la variable "distance" el valor de la distancia. La distancia se calcula multiplicando la duración por la constante "0.034" entre 2
return distance; //Regresa al bucle principal el valor de la distancia obtenido
0 comments