Closed ZazuetaDiana closed 3 years ago
Descripción Es un sensor de distancias por ultrasonidos capaz de detectar objetos y calcular la distancia a la que se encuentra en un rango de 2 a 450 cm. El sensor funciona por ultrasonidos y contiene toda la electrónica encargada de hacer la medición. Su uso es tan sencillo como enviar el pulso de arranque y medir la anchura del pulso de retorno. De muy pequeño tamaño, el HC-SR04 se destaca por su bajo consumo, gran precisión y bajo precio por lo que esta reemplazando a los sensores polaroid en los robots mas recientes.
características:
Cómo funciona Su funcionamiento es sencillo, el pin Trigger se comunica con el transductor izquierdo (T) para que envíe pulsos de ultrasonido, mientras que el pin Echo está comunicado al transductor de la derecha (R), el cual se encarga de recibir el eco del ultrasonido enviado previamente.
características típicas habilitadas por el sistema de detección.
Objeto transparente detectable: Dado que las ondas ultrasónicas pueden reflejarse en una superficie de vidrio o líquido, y retornar al cabezal, incluso los objetos transparentes pueden ser detectados.
Resistente a niebla y suciedad: La detección no se ve afectada por la acumulación de polvo o suciedad.
Objetos de forma compleja detectables: La detección de presencia es estable, incluso para objetos tales como bandejas de malla o resortes.
// C++ código
//
int cm = 0;
long readUltrasonicDistance(int triggerPin, int echoPin)
{
pinMode(triggerPin, OUTPUT); // Limpiar el trigger
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
// Establece el pin de disparo en estado ALTO durante 10 microsegundos
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
// Lee el pin de eco y devuelve el tiempo de viaje de la onda de sonido en microsegundos
return pulseIn(echoPin, HIGH);
}
void setup()
{
Serial.begin(9600);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
pinMode(6, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
}
void loop()
{
cm = 0.01723 * readUltrasonicDistance(12, 11);
Serial.println(cm);
if (cm < 100) {
digitalWrite(10, HIGH);
} else {
digitalWrite(10, LOW);
}
if (cm < 80) {
digitalWrite(9, HIGH);
} else {
digitalWrite(9, LOW);
}
if (cm < 60) {
digitalWrite(8, HIGH);
} else {
digitalWrite(8, LOW);
}
if (cm < 40) {
digitalWrite(7, HIGH);
} else {
digitalWrite(7, LOW);
}
if (cm < 20) {
digitalWrite(6, HIGH);
digitalWrite(4, HIGH);
} else {
digitalWrite(6, LOW);
digitalWrite(4, LOW);
}
if (cm < 10) {
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
} else {
digitalWrite(5, LOW);
digitalWrite(4, LOW);
}
delay(10); // Retrase un poco para mejorar el rendimiento de la simulación
}
practica que utiliza un sensor de distancia ultrasónico HC-SR04