Visual Basic para Excel

Sensor Ultrasónico

El HC-SR04 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.

PING 4-6V   -   HC-SR04 5V   -   SRF05 5V - SRF06 9-24V

Pines de conexión:

  • VCC
  • Trig (Disparo del ultrasonido)
  • Echo (Recepción del ultrasonido)
  • GND

Práctica

Controlar proximidad para distancias menores y mayores de 10cm, con indicadores rojo y verde respectivamente.

Materiales

  • 1 Arduino UNO Rev3
  • 1 Sendor ultrasónico HC-SR04
  • 2 LED (rojo y verde)
  • 2 Resistencias 220 Ohm
  • 8 Cables de conexión
  • 1 Protoboard

Montaje

Sketch

Opción 1:  Calculando la distancia

#define pinTrig 7

#define pinEcho 8

#define ledRojo 11

#define ledVerde 12

int duracion, distancia;

void setup() {

Serial.begin (9600);

pinMode(pinTrig, OUTPUT);

pinMode(pinEcho, INPUT);

pinMode(ledRojo, OUTPUT);

pinMode(ledVerde, OUTPUT);

}

void loop() {

digitalWrite(pinTrig, LOW);

delayMicroseconds(2);

digitalWrite(pinTrig, HIGH);

delayMicroseconds(10);

digitalWrite(pinTrig, LOW);

duracion = pulseIn(pinEcho, HIGH);

distancia = (duracion/2) / 29;

if (distancia <= 10){

digitalWrite(ledRojo, HIGH);

digitalWrite(ledVerde,LOW);

Serial.print(distancia);

Serial.println("cm");

Serial.println("Alarma.......");

}

else {

digitalWrite(ledRojo, LOW);

digitalWrite(ledVerde, HIGH);

Serial.print(distancia);

Serial.println("cm");

}

delay(400);

}

Opción 2:  Utilizando la librería Ultrasonic.h

[Descargar libreria Ultrasonic]

#include

// Se define los pines como constantes

#define pinTrig 7

#define pinEcho 8

#define ledRojo 11

#define ledVerde 12

int distancia;

// Declaración variable ultrasonido

Ultrasonic ultrasonido(pinTrig,pinEcho);

 

void setup() {

  Serial.begin (9600);

  pinMode(pinTrig, OUTPUT);

  pinMode(pinEcho, INPUT);

  pinMode(ledRojo, OUTPUT);

  pinMode(ledVerde, OUTPUT);

}

void loop() {

  distancia = ultrasonido.Ranging(CM);

  // CM centímetros or INC pulgadas

  if (distancia < 10){

    digitalWrite(ledRojo,HIGH);

    digitalWrite(ledVerde,LOW);

    Serial.print("Led rojo - Distancia: ");

    Serial.print(distancia);

    Serial.println(" cm");

  } else {

    digitalWrite(ledVerde,HIGH);

    digitalWrite(ledRojo,LOW);

    Serial.print("Led verde- Distancia: ");

    Serial.print(distancia);

    Serial.println(" cm");

  }

  delay(400);

}