martes, 16 de abril de 2019

Practica 7 sensor ultrasonido

Experimento con sensor de ultrasonido

En esta practica, vais apoder aprender como funciona un sensor de ultrasonido (HC-SR04). Funciona similarmente a los sensores de aparcamiento, ya que indica a la distancia a la que se encuentra el obstáculo como vais a apreciar en el video.
Nosotros en vez de reproducir un sensoer de aparcamiento, hemos hecho que a diversaas distancias se encienda un led distinto, hasta los 20 cm se encendera el led rojo; desde los 20cm, hasta los 50cm se encendera el led amarillo; y a partir de los 50cm se encendera el led verde.

Lo unico basico que necesitais para esta practica es poseer un sensor de ultrasonido, y la placa pero que se puede utilizar: buzzer, leds...












Ahora en podeuis ver el codigo de programacion que no es nada dificil, se basa en la parte del principio para dar nombre a los leds y al sensor; escribir bien el tiempo y las distancia para que arduino la calcule; y por ultimo redactar los periodos o los mon¡mentos en los que se han de encender los leds.


const int EchoPin = 5;
const int TriggerPin = 6;
const int LedPinVerde = 13;
const int LedPinamarillo = 12;
const int LedPinRojo = 11;
float distancia;
long tiempo;
 
void setup() {
   Serial.begin(9600);
   pinMode(LedPinVerde, OUTPUT);
  pinMode(LedPinamarillo, OUTPUT);
  pinMode(LedPinRojo, OUTPUT);
   pinMode(TriggerPin, OUTPUT);
   pinMode(EchoPin, INPUT);
}
 
void loop() {

  digitalWrite(TriggerPin, HIGH);  
  delayMicroseconds(10);
  digitalWrite(TriggerPin, LOW);


  tiempo = (pulseIn(EchoPin, HIGH)/2); 
  
  distancia = float(tiempo * 0.0343);

   Serial.print("Distancia: "); 
   Serial.println(distancia);


if (distancia < 20) {
  digitalWrite(LedPinVerde , LOW);
  digitalWrite(LedPinamarillo , LOW);
  digitalWrite(LedPinRojo , HIGH);
  Serial.println("rojo");
} else if ((distancia > 20) && (distancia < 50)) {
  digitalWrite(LedPinVerde , LOW);
  digitalWrite(LedPinamarillo , HIGH);
  digitalWrite(LedPinRojo , LOW);
  Serial.println("amarillo");
} else if (distancia > 50){
  digitalWrite(LedPinVerde , HIGH);
  digitalWrite(LedPinamarillo , LOW);
  digitalWrite(LedPinRojo , LOW);
  Serial.println("verde");
}

delay(1000);

}

No hay comentarios:

Publicar un comentario