Arduino 02 - Sensor Ultrasónico

Imprimir
Creado en Domingo, 22 Agosto 2010 Escrito por Juan
AddThis Social Bookmark Button

MaxSonar-EZ1

La adquisición de datos es uno de los medios más importantes para controlar procesos y generar cambios en el sistema. Es posible capturar los datos mediante una comunicación entre dos periféricos en donde debe existir un emisor y un receptor, continuando con los tutoriales de Arduino, es la oportunidad de demostrar el gran alcance de esta placa, hoy aprenderemos a capturar datos con el Arduino para verlos en nuestro computador. El corazón de este proyecto es el Sensor Ultrasónico LV-MaxSonar-EZ1 y lo puedes adquirir aquí.


 

 

 

 

 

 

Adquiera los componentes para este proyecto en:

tdr negro

Veamos de que trata este artículo

t2_tabla

Un sensor ultrasónico realiza la emisión de un pulso ultrasónico, luego mide el tiempo que transcurre entre la emisión de sonido y la percepción del eco y con esto se puede establecer la distancia a la que se encuentra del obstáculo.

 

Veamos el vídeo de la práctica

 

Este es el montaje sugerido entre el Arduino y el Sensor ultrasónico

Conexion_sensorUltrasonico_arduino

 

Presentamos el código para leer el puerto serie, obteniendo el valor del Sensor Ultrasónico

Lectura valor del Sensor Ultrasónico
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/* 
 ------------------------------------------ 
  Lectura del valor del sensor ultrasónico
 ------------------------------------------
 
  Lee una entrada análoga y muestra su valor por el puerto serial
  
  Cosas de Mecatrónica y Tienda de Robótica
  
*/
 
//------------------------------------
//Funcion principal
//------------------------------------
void setup() 
{
    Serial.begin(9600); // Inicia la comunicación serial
}
 
//------------------------------------
//Funcion ciclicla
//------------------------------------ 
void loop() 
{
  // Lee la entrada análoga 0 y se la asigna a una variable
   int analogValue = analogRead(0);
 
  // Imprime el valor de esa entrada
   Serial.println(analogValue);
 
  // Espera 10ms por el conversor análogo-digital
  // 10ms sería el tiempo de muestreo de la senal
   delay(10);
}

 

Este código corresponde al ajuste realizado a la medida del sensor ultrasónico para poder obtener la medida en centímetros(cm)

Conversión a centímetros (cm)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/* 
 ------------------------------------------ 
  Conversión de la medida del sensor a cm
 ------------------------------------------
 
  Convierte el valor del Sensor ultrasónico a una medida
   en centímetros (cm)
   
   Nota-----------
    Experimentalmente cuando el Sensor ultrasónico marca
     48 midiendo con una regla equivale a 32cm, la razón
     de cambio viene dada por:
     
     48 / 32 = 1.5
  
  Cosas de Mecatrónica y Tienda de Robótica
  
*/
 
//------------------------------------
//Funcion principal
//------------------------------------
void setup() 
{
    Serial.begin(9600); // Inicia la comunicación serial
}
 
//------------------------------------
//Funcion ciclicla
//------------------------------------ 
void loop() 
{
  // Lee la entrada análoga 0 y se la asigna a una variable
   int analogValue = analogRead(0);
 
  // Imprime el valor de esa entrada multiplicada por la razón de cambio
   Serial.print(analogValue*1.5);
   Serial.print("cm");   // Imprime la palabra cm en la misma línea del valor
   Serial.println("");   // Imprime un espacio en blanco equivale a un enter
 
  // 300ms sería el tiempo de muestreo de la senal
   delay(300);
}

 

Por último, este código se dedica a explicar el control realizado con el Arduino, mientras el sensor se encuentra en determinado umbral enciende el Led, si no esta en ese umbral apaga el Led.

 

Control con el Sensor Ultrasónico
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/* 
 ------------------------------------------ 
  Control con el Sensor ultrasónico
 ------------------------------------------
 
  Toma un umbral y mientras este en ese rango el
   Arduino generara una acción de cambio
   
  Para este ejercicio se ha tomado como rango el
   valor del sensor ultrasónico:
   
   20 -30
   Si esta dentro de este rango enciende el Led
   Si esta fuera del rango apaga el Led
  
  Cosas de Mecatrónica y Tienda de Robótica
  
*/
//------------------------------------
//Declara puertos de entradas y salidas
//------------------------------------
int led =  13;    // Declara el LED en el Pin 13
 
//------------------------------------
//Funcion principal
//------------------------------------
void setup() 
{
    Serial.begin(9600); // Inicia la comunicación serial
    pinMode(led, OUTPUT);  // Inicializa el LED como una salida  
}
 
//------------------------------------
//Funcion ciclicla
//------------------------------------ 
void loop() 
{
  // Lee la entrada análoga 0 y se la asigna a una variable
   int analogValue = analogRead(0);
 
  // Condición del rango
   if ((analogValue >= 20) && (analogValue <= 30)) // Está en el rango 20-30?
    digitalWrite(led, HIGH);   //Si esta en el rango, enciende LED
   else
    digitalWrite(led, LOW);    //No esta en el rango, apaga LED
 
  // Imprime el valor de la entrada análoga
   Serial.println(analogValue);
 
 
  // Espera 10ms por el conversor análogo-digital
  // 10ms sería el tiempo de muestreo de la senal
   delay(10);
}

 

tdr negro

Laughing