Вы находитесь на странице: 1из 5

SENSOR ULTRASÒNICO

Daymond Santiago Navarrete Guerrero


e-mail: dsnavarrete@udlanet.ec
Diego Ricardo Acero Macas
e-mail: dacero@udlanet.ec
Andrés Rosendo Pipullo Tercero
e-mail: andres.pipullo@udlanet.ec

RESUMEN: 2. OBJETIVOS.
En el presente laboratorio se muestra una  Emplear los conocimientos en
aplicación mediante el sensor ultrasónico HC- temporizadores para manejar
SR04, en el cual se pondrá en práctica todo lo adecuadamente el módulo ultrasónico.
aprendido sobre los temporizadores. Para la  Analizar la función que realiza tanto el modo
ejecución de esta práctica se configura el sensor CTC y el modo PWM.
ultrasónico de manera que los valores que arroje 
entren mediante interrupciones a microcontrolador, 3. CONCEPTOS
para lo cual se utilizará una interrupción por
cambio de estados (PCINT2_vect). Además, para 3.1 SENSOR ULTRASÓNICO HC-
poder realizar la medición de distancia se activa el
SR04.
TIMER1 del microcontrolador en modo PWM en
A este sensor se lo puede comparar con un
fase correcta. Asimismo, se implementan al circuito
radar, debido a que este manda pulsos de alta
tres leds conectados al PC en los pines 0,1 y 2, los
frecuencia, en el caso de este serán ultrasónicos.
que sirven como aviso en el caso de que la
Como se lo puede observar físicamente este tiene
distancia se incremente o disminuya de 4 cm, ara
un emisor y un receptor en forma de cilindro, el
esto, se hace una validación dentro de la
emisor es el encargado de enviar la señal
programación.
ultrasónica, la cual rebota en algún objeto puesto
.
enfrente del mismo y llega al receptor.

PALABRAS CLAVE: Arduino,


3.2 INTERRUPCION POR CAMBIO
Ultrasonido, temporizadores, PCINT, LCD gráfico
DE ESTADO.
Esta interrupción tiene una amplia cantidad de
1. INTRODUCCIÓN:
Un comparador tiene como función comparar pines para poder configurarlo (Puertos K, J y B),
dos términos de una n cantidad de bits, estos esta entra en ejecución cuando el microcontrolador
términos deben ser seleccionados como un detecta algún cambio de estado. Deja de realizar la
número el cual sea entero y que no tenga signo, operación que está haciendo en ese momento para
luego el comparador se encarga de señalar si un atender el requerimiento solicitado.
término es mayor o menor que otro o los dos son
iguales. En lo referente a una PWM o Modulación 4. MATERIALES
por Ancho de Pulso este modelo de señal es
comúnmente empleada para emular una señal 4.1 COMPUTADOR CON SOFTWARE
analógica, normalmente es de tipo cuadrada, ATMEL STUDIO
dentro de las cuales es posible modificar el ancho
del pulso a razón del período de esta misma  Programación en c
señal, nombrando a este cambio como ciclo de
trabajo. El uso del PWM suele ser para el control 4.2 CABLE USB-SERIAL.
de la dirección de los motores, control lumínico
entre otras aplicaciones, en sí lo que hace un  Conexión ordenador-arduino
PWM es producir pulsos (pulso de subida y pulso  Alimentación del arduino mega.
de bajada) por cada determinado tiempo.
4.3 PROTOBOARD
1
 Conecta a los elementos del circuito. cómo se puede ver en el seudocódigo que se
 Utilizado en circuitos eléctricos y describe a continuación.
electrónicos. PSEUDOCÓDIGO EJERCICIO

4.4 PANTALLA GLCD TFT 2.4 PULGADAS INICIO


SPI (TJCTM24024). //Declaración de la librería <avr/io.h>
//Declaración de la librería <util/delay.h>
 Periférico de salida (muestra la //Declaración de la librería
información). <C:librerias/LCD_TJCTM24024.h>

4.51 SENSOR ULTRASÓNICO (HC-SR04) //Declaración de la Liberia <stdlib.h >

Inicializar la variable float distancia a 0;


 Mide la distancia de un objeto mediante
ultrasonidos.
Inicializar la variable int estado a 0;
4.61 RESISTENCIA DE 330 OHMS Interrupción ISR(PCINT2_vect) {

 Limita el paso de corriente en un circuito Si estado es igual a 0 entonces {

5. UNIDADES DE LOS TCNT1 es igual a 0;


ELEMENTOS.
TCCR1B es igual a 4;
Resistencia → ohmios (ῼ) }
Fuentes → voltios (v)
LCD → voltios (v) La variable estado incrementa en 1;
6. DESARROLLO.
Se emulará un sistema de carro que evita Si estado es igual a 2 entonces {
obstáculos. Se medirá distancias a través del
sensor ultrasónico y se la mostrará este valor TCCR1B es igual a 0;
en cm. en la pantalla LCD.
La variable distancia es igual a (TCNT*16.0)
Para realizar este ejercicio se optó por activar
/58.0;
una interrupción por cambio de estado
(PCINT2_vect). Además, de activar el puerto F con La variable estado toma el valor de 0;
su pin 0 como salida y pasado 10 ms pasara a
entrada. Este a su vez va conectado al pin ECHO }
del ultrasonido. Todo esto se puede apreciar de
mejor manera en el seudocódigo descrito más }
abajo.
Cálculos Función void entrada () {
Distancia = (TCNT1*16.0)/58.0
PORTF toma el valor de 1;
- Cuando la distancia sea mayor a 4 cm, el
Retardo de 10 us
sistema prenderá un LED el cual emulará un
motor que permite avanzar. PORTF toma el valor de 0;
- Cuando la distancia sea menor a 4 cm, el
sistema prenderá otros dos LEDs que emularán }
la reversa y giro hacia la izquierda. Esto permite
evitar el obstáculo y regresar a la primera Función Principal {
validación.
Para estos dos incisos se realiza una Puerto DDRF es igual a 1;
validación con los condicionales if, en los cuales se
compara la distancia y dependiendo del valor se Llamar a la función CONFIG_PORTB ();
pondrán los pines 0,1 y 2 en salidas del puerto C
Llamar a la función CONFIG_SPI ();

2
el timer almacenada ese valor para ser
Llamar a la función INI_LCD (); operado.
 Mediante la utilización del ultrasónico y
Habilitar el PCINT2 mediante el PCMSK2; poniendo un obstáculo frente a él se
pudo realizar la medición de distancias.
Habilitar el PCINT23:16 mediante PCICR;
Aunque con un unas excepciones ya
Habilitar las interrupciones globales; que este ultrasónico no mide distancias
menores a 2 cm y mayores a 4 m,
Llamar a la función RECT_LLENO (0,320, arrojando en estos casos valores
0,240, NEGRO); erróneos.

Ubicarse en la posición (1,11);


8. RECOMENDACIONES
ESC_CADENA_11X9 (“Distancia:”,
AMARILLO, NEGRO);
 Se tiene que tomar en cuenta que la
While (1) manera correcta conectar los pines, es
{ por medio de la consulta del datasheet y
de esta manera se podrá analizar cómo se
Ubicarse en la posición (12,11); conectaran estos al Arduino y que función
realizará el pin echo y trig dentro de la
Llamar a la función ESC_FLOTANTE_11x9
(distancia, AMARILLO, NEGRO); aplicación
 Se recomienda tener unas buenas bases
Llamar a la función ESC_CADENA_11X9 de lógica de programación en c y
(“cm”, AMARILLO, NEGRO); consultar los datasheet de los
componentes del circuito, para no tener
Si distancia es mayor a 4 entonces { altercados al momento de implementarlo.
 A demás se recomienda tener cuidado
PORTC toma el valor de 0b00000001;
con los materiales de la práctica ya que
} se pueden romper.
 Una recomendación muy a tener en
Si distancia es menor a 4 entonces { cuenta es que antes de verificar si existe
algún error en el armado de circuitos, se
PORTC toma el valor de 0b00000110; debe comprobar que el protoboard, los
elementos o los jumpers funcionen
} correctamente.
}
}
9. REFERENCIAS.
FIN
.luisllamas.es. (2017). Obtenido de .luisllamas.es:
7. CONCLUSIONES https://www.luisllamas.es/arduino-spi/

 Se puede concluir que al implementar www.arduino.cc. (2017). Obtenido de


el sensor ultrasónico se establece que https://www.arduino.cc/en/reference/SPI
la utilización del timer1 y su registro
TCNT1 y TCCR1B permiten la
operatividad este tipo de aplicaciones, QL, R. A. (2013, Mayo 03). Curso de
debido a que por medio de estos se microcontroladores. Obtenido de Curso de
hacen los cálculos correspondientes microcontroladores:
para obtener la distancia que está https://sites.google.com/site/cursodemicrocontrol
midiendo el sensor ultrasónico. adores8051/inicio/teoria/11-interrupciones
 También, se afirma que las a través del Antonio. (2012, Junio 22). picfernalia. Obtenido de
PWM se pudo obtener las mediciones picfernalia:
ya que al momento de enviar un pulso http://picfernalia.blogspot.com/2012/06/interrupci
ones-conceptos-basicos.html

3
10. ANEXOS.
ESC_FLOTANTE_11x9(distancia,AMARI
10.1. CÓDIGO EJERCICIO LLO,NEGRO);
ESC_CADENA_11x9("cm
",AMARILLO,NEGRO);
/*
_delay_ms(100);
* Laboratorio 4 Ultrasonico.c
*
if (distancia>4)
* Created: 6/6/2018 8:58:22 PM
{
* Author : Santiago Navarrete
PORTC=0b00000001;
*/
}
if(distancia<4)
#define F_CPU 16000000UL
{
#include <avr/io.h>
PORTC=0b00000110;
#include <util/delay.h>
}
#include <avr/interrupt.h>
}
#include <C:/librerias/LCD_TJCTM24024.h>
}
#include <stdlib.h>

float distancia=0; 11.3 IMÁGENES DE LA PRÁCTICA.


int estado=0;

ISR(PCINT2_vect){

if (estado==0)
{
TCNT1 = 0;
TCCR1B = 4;
}
estado++;
if (estado==2)
{
TCCR1B = 0;
distancia = (TCNT1*16.0)/58.0;
estado=0;
}

} Figura 1

int main(void)
{
DDRF=1;
PORTF = 0b00000001;
_delay_us(10);
PORTF = 0;
CONFIG_PORTB();
CONFIG_SPI();
INI_LCD();
PCMSK2=0b00000100;
PCICR=0b00000100;
sei();
RECT_LLENO(0,320,0,240,NEGRO);
IRXY(1,11);
ESC_CADENA_11x9("Distancia:
",AMARILLO,NEGRO);
while (1)
{
PORTF = 0b00000001 ;
_delay_us(10);
PORTF = 0b00000000;
IRXY(12,11);
Figura 2

4
5

Вам также может понравиться