Práctica 19 – Sensor ultrasónico

 

 

 

INTRODUCCIÓN

 

En esta práctica se implementa una medición de distancia por medio de un sensor ultrasónico HC-SR04, el cual nos ayuda a medir una distancia entre él y un objeto, el resultado se visualiza a través de un display LCD.

 

 

Selecciona la plataforma y entorno de programación.

 

 

PIC
ARDUINO
PIC
PIC C Compiler
PIC C Compiler
Bootloader PIC18FX5K50
Bootloader PIC18FX5K50

Descripción

En esta práctica se realiza una medición de distancia (cm) utilizando el sensor ultrasónico HC-SR04, visualizando el resultado de la medición a través de un display LCD (16x2), usando los módulos X-TRAINER P8 o X-TRAINER P8 DIP40 o X-TRAINER P8 DIP28 con el PIC18F45K50 o PIC18F25K50.

 

Materiales:

1 x Módulo X-TRAINER P8 o X-TRAINER P8 DIP40 o X-TRAINER P8 DIP28Comprar

1 x Pantalla LCD 16x2.

1 x Potenciómetro de 10k Ohms. Comprar

1 x Resistencia de 220 Ohms. Comprar

1 x Sensor Ultrasónico HC-SR04.

1 x Juego de cable Dupont. Comprar

1 x Protoboard de 830 puntos. Comprar

1 x Cable micro USB.

 

Software:

Windows 7 o posterior.

PIC C Compiler v5.069 o posterior. Descarga

XIDE v1.0 Descarga

 

Procedimiento

1. En el apartado de "Diagrama esquemático", que se encuentra a continuación, selecciona tu módulo, realiza las conexiones que se muestran en la imagen y conéctalo a la computadora.

2. Al final de esta práctica, en el apartado de "Descargas", puedes encontrar los archivos del código fuente. Es necesario descargar el archivo ya que dentro, se encuentran las librerías necesarias para la correcta compilación.

3. Ejecuta PIC C Compiler, abre el archivo descargado y compila el programa. En el siguiente link encontrarás un manual para compilar en PIC C Compiler.

4.Abre el Software XIDE v1.0 y programa el código que descargaste o compilaste en el módulo. En el siguiente link encontrarás el manual de usuario para el Software XIDE v1.0. 

5.Al terminar de programar, el módulo se reiniciará y el programa de esta práctica se ejecutará.

 

Diagrama esquemático

 

X-TRAINER P8
X-TRAINER P8 DIP 40
X-TRAINER P8 DIP 28
X-TRAINER P8

X-TRAINER P8 DIP 40

X-TRAINER P8 DIP 28

 

Código

Código

 

/*

AUTOR: MICROSIDE TECHNOLOGY S.A. DE C.V.

FECHA: JUNIO 2019

*/

/**************************************************************************

Esta práctica consiste en realizar una medicion de distancia a través de un

sensor ultrasonico, e imprimir la lectura en una pantalla LCD

**************************************************************************/

 

#include <18F45K50.h>                                                         // Para X-TRAINERp8DIP28 cambiar por: #include <18F25K50.h> )

#device ADC=8                                                                       // Configura el ADC a 8 bits

#use delay(internal=48MHz)                                                    // Configura frecuencia del oscilador interno

#build(reset=0x02000,interrupt=0x02008)                                // Asigna los vectores de reset e interrupción para la versión con Bootloader

#org 0x0000,0x1FFF {}                                                              // Reserva espacio en memoria para el Bootloader

 

//CONFIGURACION DE PINES LCD

#define LCD_RS PIN_B0                                                           //CONTROL del LCD

#define LCD_RW PIN_B1

#define LCD_E PIN_B2

#define LCD_DB4 PIN_B3                                                           //DATOS del LCD (4 lineas)

#define LCD_DB5 PIN_B4

#define LCD_DB6 PIN_B5

#define LCD_DB7 PIN_B6

#include "flex_lcd.h"                                                                        //LIBRERIA LCD

#define trig pin_C1                                                                          // Conectar al entrenador el pin "TRIGGER" del sensor ultrasónico

#define echo pin_C0                                                                        // Conectar al entrenador el pin "ECHO" del sensor ultrasónico

 

int16 distancia, vtimer1;                                                                     // Variables para calculo de distancia y valor de tiempo de TIMER1

 

float tiempo;                                                                                       //variable para calcular tiempo en segundos

float const usxtick = 0.6;                                                                    //variable con valor por cada incremento en el TIMER1

void main()

{

   output_low (echo);

   setup_timer_1 (T1_INTERNAL|T1_DIV_BY_8);                              // Se configura TIMER1 para medir tiempo

   lcd_init ();                                                                                          //Inicialización del lcd.

   while (1)

  {

     output_high (trig);                                                                             // Envía pulso alto al pin TRIGGER del sensor

      delay_us (100);                                                                                 // Mantiene pulso 100uS.

      output_low (trig);                                                                               // Desactiva pulso

      delay_us (350);

      while ( ! input (echo)){}                                                                       // Espera por estado alto del pin ECHO del sensor ultrasónico

      set_timer1 (0);                                                                                    // Ajusta el Timer1 a 0

       while (input (echo)){}                                                                         // Espera por estado bajo del pin ECHO del sensor ultrasónico

       vtimer1 = get_timer1 ();                                 // Obtiene el tiempo que se mantuvo en alto el pulso del pin TRIGGER leyendo el valor de Timer1

       tiempo = vtimer1 * usxtick;                                                                  //Calcula tiempo en Segs

       distancia = vtimer1 * 0.012 + 1.093;                                                    // Calcula la distancia en cm

       delay_ms(200);

       printf(lcd_putc,"\\\\\\\\fDistancia \\\\\\\\n%Lu cm",distancia);                                 //Envia valor de distancia hacia un LCD conectado al PIC

      }

}

 

 

Descargas

Software XIDE v1.0

Descarga el software XIDE v1.0 

Práctica 19– PIC – Bootloader – CCS

Descargar código en PIC C Compiler de la práctica 19.

ARDUINO

Descripción

En esta práctica se realiza una medición de distancia (cm) utilizando el sensor ultrasónico HC-SR04, visualizando el resultado de la medición a través de un display LCD (16x2), usando los módulos X-UNO o X-MEGA o X-NANO.

 

Materiales:

1 x Módulo X-UNO o X-MEGA o X-NANO. Comprar

1 x Módulo Programador XCU. Comprar

1 x Display LCD 16x2.

1 x Potenciómetro de 10k Ohms. Comprar

1 x Resistencia de 220 Ohms. Comprar

1 x Sensor ultrasónico HC-SR04.

1 x Juego de cables Dupont. Comprar

1 x Protoboard de 830 puntos. Comprar

1 x Cable micro USB.

 

Software:

Windows 7 o posterior.

Arduino IDE. Descarga

 

Procedimiento

1. En el apartado de "Diagrama esquemático", que se encuentra a continuación, selecciona tu módulo, realiza las conexiones que se muestran en la imagen y conéctalo a la computadora.

2. Al final de esta práctica, en el apartado de "Descargas", puedes encontrar los archivos del código fuente, o bien copiarlo del apartado de "Código" que se encuentra más abajo.

3. Si descargaste el archivo del paso 2, omite este paso. Si copiaste el código, abre el software Arduino IDE, pega el código en un nuevo proyecto, realiza la compilación. 

4. Programa el código que descargaste o compilaste, en el módulo. En el siguiente link encontrarás un manual para compilar y programar en Arduino IDE.

5. Al terminar de programar, el módulo se reiniciará y el programa de esta práctica se ejecutará.

 

Diagrama esquemático

 

X-UNO
X-MEGA
X-NANO
X-UNO

X-MEGA

X-NANO

 

Código

Código

/*

AUTOR: MICROSIDE TECHNOLOGY S.A. DE C.V.

FECHA: JUNIO 2019

*/

/**************************************************************************

Esta práctica consiste en realizar una medición de distancia a través de un

sensor ultrasonico, e imprimir la lectura en una pantalla LCD.

**************************************************************************/

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

int TRIGGER = 9;                                                                            // trigger al pin 9

int ECHO = 8;                                                                                  // echo al pin 8

float ESPERA,DISTANCIA;                                                              // Variables tipo flotante.

void setup()

{

   Serial.begin (9600);                                                                 // Comunicación serial

   pinMode (TRIGGER, OUTPUT);                                             //Pin 8 como salida

   pinMode (ECHO, INPUT);                                                       //Pin 9 como entrada

   lcd.begin(16, 2);                                                                       // Asignamos número de columnas y filas del LCD

   lcd.print("Sensor");

   lcd.setCursor(0,1);                                                                    //Columna,reglón

   lcd.print("ultrasonico ");

   delay (2500);

   lcd.clear();

   lcd.print("Distancia:");

}

void loop() {

   digitalWrite (TRIGGER,LOW);                                                 // Nivel bajo trigger durante 2 microsegundos

   delayMicroseconds(2);

   digitalWrite (TRIGGER, HIGH);                                               // Nivel alto trigger durante 10 microsegundos;

   delayMicroseconds (10);

   digitalWrite (TRIGGER, LOW);

   ESPERA = pulseIn (ECHO,HIGH);                                            // Esta función espera la aparición de un pulso y mide su duración

   DISTANCIA =(ESPERA/2)/29.15;                                               // Fórmula para calcular distancia

   Serial.print (DISTANCIA);                                                            // Imprimimos la distancia en cm por el puerto serial

   Serial.println ("cm");

   lcd.setCursor(0,1);                                                                        //Columna,reglón

   lcd.print(DISTANCIA);

   lcd.print(" cm");

   delay (500);

}

 

Descargas

 

Práctica 19 – Arduino

Descarga código en Arduino de la práctica 19.

Fecha

agosto 13, 2019

Categoría

Prácticas XIDE

× WhatsApp