|   FOROS      |     Tutoriales    |     KIO4 |      
   Inicio B4A (Basic4Android) App inventor 2 Arduino
   Elastix - VoIP Cosas de Windows Webs interesantes  Telecomunicaciones

 


Nuevo concurso para España, Argentina, Brasil, Chile, Colombia, Ecuador, México, Perú y Portugal.

Arduino en español
Circuitos con Arduino - Juan Antonio Villalpando

-- Tutorial de iniciación a Arduino --

Volver al índice del tutorial                    Return to index tutorial

____________________________

Arduino. Ultrasound

 

25.- Ultrasonido. Medidor de distancia.

Vamos a tomar contacto con el funcionamiento de un módulo de Ultrasonido.

Se puede utilizar para medir distancias o para dar una señal cuando un objeto se acerque a una determinada distancia.

En mi caso utilizo el Ultrasonic Sensor Distance Measuring Module for Arduino viene a costar
menos de 1 €.

- En sus característica indica que puede medir distancias entre 2 cm y 700 cm

- Funciona con 5 VDC. Intensidad de reposo <3mA. Ángulo del sensor: menos de 15º.

- El módulo tiene 4 pines (Vcc, Trig, Echo, GND).

- Características.

_______________
Librería

- Esta librería está diseñada para IDE 1.X.X Ultrasonic.zip. La descomprimes y la copias en la carpeta libraries con el nombre de Ultrasonic (sin más letras) y dentro de ella el archivo Ultrasonic.h.
Prueba el ejemplo PlugandPlay.

(Para el IDE 0022 puedes probar esta otra librería: Ultrasonic2)

_____________________
Conexiones

- Para realizar nuestro proyecto conectamos el módulo al Arduino:


Vcc .......... 5 V
GND ........ GND
Trig .......... Pin 12
Echo ......... Pin 13

_______________
Código

Realizamos el programa visto en... http://arduino-info.wikispaces.com/UltraSonicDistance

Según acercamos o alejamos un objeto, nos muestra la distancia respecto al sensor en centímetros y pulgadas (inches).

Código.
/* YourDuino SKETCH UltraSonic Serial 1.0
Runs HC-04 and hopefully SRF-06 Ultrasonic Modules
Uses: Ultrasonic Library (Copy to Arduino Library folder)
http://iteadstudio.com/store/images/produce/Sensor/HCSR04/Ultrasonic.rar
terry@yourduino.com */

/*-----( Import needed libraries )-----*/
#include "Ultrasonic.h"
/*-----( Declare Constants and Pin Numbers )-----*/
#define TRIG_PIN 12
#define ECHO_PIN 13
/*-----( Declare objects )-----*/
Ultrasonic OurModule(TRIG_PIN, ECHO_PIN);
// Ultrasonic OurModule(TRIG_PIN, ECHO_PIN, 60000); // Cambia distancia máxima. 
/*-----( Declare Variables )-----*/


void setup() /****** SETUP: RUNS ONCE ******/
{
Serial.begin(9600);
Serial.println("UltraSonic Distance Measurement");
Serial.println("YourDuino.com terry@yourduino.com");

}//--(end setup )---


void loop() /****** LOOP: RUNS CONSTANTLY ******/
{
Serial.print(OurModule.Ranging(CM));
Serial.print("cm ");
delay(100); //Let echos from room dissipate
Serial.print(OurModule.Ranging(INC));
Serial.println("inches");

delay(500);

}//--(end main loop )---

/*-----( Declare User-written Functions )-----*/


//*********( THE END )***********

Para cambiar la distancia máxima modificamos esta línea:

Ultrasonic OurModule(TRIG_PIN, ECHO_PIN);

a

Ultrasonic OurModule(TRIG_PIN, ECHO_PIN, 60000);

_______________________
Serial Monitor

- Una vez conectado el módulo de ultrasonido y cargado el programa, vamos al Serial Monitor, acercamos algo al sensor y obtendremos la distancia al sensor.

- Mide entre 2cm y 30cm, a partir de 30cm siempre marca 51cm. Si quieres más distancia cambia esta línea:

Ultrasonic OurModule(TRIG_PIN, ECHO_PIN, 60000);

Expresa el resultado en centímetros y pulgadas (inches).

1 pulgada = 2,54 cm

inches = pulgadas.

_____________________
_____________________
_____________________
2.- Detector de distancia.

Basado en el código anterior, vamos a ver un programa que detecta si un objeto está a 15 cm.
Si el objeto está a menos de 15 cm encenderá el LED 13.
Si el objeto está a más de 15 cm se apagará el LED 13.

NOTA: para realizar este proyecto el pin Echo del módulo de ultrasonido lo he conectado al pin 11 del Arduino, es decir...

Vcc ........... 5 V
GND ......... GND
Trig ........... Pin 12
Echo ......... Pin 11

Repasa bien la conexión de Trig y Echo, está cambiada con respecto a los otros códigos.

Código.
/*
  Juan A. Villalpando
  kio4.com
  agosto 2015
 */

#include "Ultrasonic.h"

#define TRIG_PIN 12
#define ECHO_PIN 11

Ultrasonic OurModule(TRIG_PIN, ECHO_PIN);

void setup() 
{
Serial.begin(9600);
Serial.println("Aviso a 15 cm");
pinMode(13, OUTPUT);
}


void loop()
{
Serial.print(OurModule.Ranging(CM));
Serial.println(" cm");
delay(500);
if (OurModule.Ranging(CM) < 15) {
digitalWrite(13, HIGH); }
else {
digitalWrite(13, LOW); }

}

_____________________
3.- Otro programa para medir distancias. Sin librería.

Este es otro medidor de distancia, en este caso no utiliza librería.
Envía por el Pin 13 (Trig) un pulso de 2-10-2 microsegundos.
Recibe por el Pin 12 (Echo) el rebote del pulso en la variable duration. Mediante PulseIn mide el tiempo que la señal ha estado en ALTO.
Mediante dos funciones (microsecondsToInches y microsecondsToCentimeters)
, pasa la duration a centímetros y pulgadas.

Conexiones al Arduino.

Vcc .......... 5 V
GND ........ GND
Trig .......... Pin 13
Echo ......... Pin 12

Repasa bien la conexión de Trig y Echo, está cambiada con respecto a los otros códigos.
También puedes cambiar los terminales en el mismo código.

http://arduino.cc/en/Tutorial/Ping?from=Tutorial.UltrasoundSensor

Ver función PulseIn: http://www.arduino.cc/es/Reference/PulseIn

Código.
int pingPin = 13; // Trig
int inPin = 12; // Echo
long microseconds;

void setup() {
Serial.begin(9600);
pinMode(pingPin, OUTPUT);
pinMode(inPin, INPUT);
}

void loop() {
long duration, inches, cm;

digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(10);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);

duration = pulseIn(inPin, HIGH);
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);

Serial.print(duration);
Serial.print(" microseg, ");
Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(100);
}

long microsecondsToInches(long microseconds) {
return microseconds / 74 / 2; 
}

long microsecondsToCentimeters(long microseconds) { 
return microseconds / 29 / 2;
}

_____________________
- Cálculo de distancia

Para calcular la distancia utilizamos ésta fórmula:

D = V . T / 2

donde V es la velocidad del sonido (340 m/s). T el tiempo que tarda la señal en ir y venir. D la distancia.

Por ejemplo si el T es 2960 microsegundos, obtenemos una distancia.

D = 34000 cm/s x 0,002960 / 2 = 50 cm

Otra web sobre Ultrasonido y cálculo de distancia.

_____________________

Módulo de 3 pines

Hay otros módulos ultrasónicos de 3 pines, como el que explica el tutorial de Arduino...

http://arduino.cc/en/Tutorial/Ping?from=Tutorial.UltrasoundSensor

En este caso primero envía una señal por el pin7 configurado como salida: pinMode (pingPin , OUTPUT) ;
y luego capta la señal también por el pin7, esta vez configurado como entrada: pinMode (pingPin , INPUT) ;

________________________________

Si quieres que este tutorial se mantenga y lo actualice con más programas, escríbeme un correo a Juan Antonio: juana1991@yahoo.com

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información