tectijuana / sensores-archived

Recolección de Sensores por parte de los estudiantes ITT Generación 2023B
GNU General Public License v3.0
4 stars 6 forks source link

Sensor de estacionamiento #62

Closed ZazuetaDiana closed 3 years ago

ZazuetaDiana commented 3 years ago

practica que utiliza un sensor de distancia ultrasónico HC-SR04

ZazuetaDiana commented 3 years ago

Sensor Ultrasonido Distancia HC-SR04

HC-SR04

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.

Lista de componentes

componentes estacionamiento

Diagrama de conexión de los componentes

Sensor de estacionamiento

Programa

// 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
}