Post on 18-Jul-2015
PRÁCTICAS DE PROGRAMACIÓN CON ARDUINO
P6: SENSOR DISTANCIA ULTRASONIDOS
José Pujol Pérez IES Vicente Aleixandre
OBJETIVOS
• Comprender el funcionamiento de un sensor
de distancia por ultrasonidos
• Realizar una aplicación usando el sensor
Ideas Previas:
• ¿Sabes cómo detectan los objetos los murciélagos?
• ¿Qué tipos diferentes de sensores de distancia
conoceis?
• Aplicaciones de los sensores de distancias que sean
comunes en la realidad
• ¿Qué aplicaciones se os ocurre que podais hacer?
INTRODUCCIÓN
Realizar una aplicación para el sensor de
distancia
1º- Escribir el programa para medir y comprobar su
funcionamiento
2º- Desarrollar una aplicación "creativa"
Ideas:
– Piano aéreo
– Alarma
– Sistema de parking
HACER
• SENSOR DISTANCIA POR ULTRASONIDOS
– Funcionamiento
– Cálculo de la distancia
• FUNCIÓN PULSEIN
• PROGRAMA MEDIR DISTANCIA
• LIBRERÍA ULTRASONIC.H
INFORMACIÓN
SENSOR DISTANCIA POR ULTRASONIDOS
Manda un tren de pulsos de alta frecuencia y recibe el
rebote permitiendo calcular el tiempo
Características:
• Rango de distancias 2-400cm, precisión 3mm
• Ángulo 15º
Trigger: pin digital salidaEcho: pin digital entrada
SENSOR DISTANCIA POR ULTRASONIDOS
Funcionamiento: • Se envía un pulso digital alto (10µs) • El HCSR04 lanza ocho ondas de 40kHz • Se establece en alto la señal eco hasta que recibe el
rebote de las ondas • Se calcula el tiempo transcurrido
SENSOR DISTANCIA POR ULTRASONIDOS
Cálculo del tiempo: t=μsv=e/t à e=2d=v*tà d=v*t/2d=34300(cm/s)*t(s)*10-6* /2=0,01715*t
PULSEIN
- pulseIn (pin, value)pin: el pin donde quieres leer el pulsovalue: HIGH or LOWSi value es HIGH, espera a que el valor sea alto, inicia cronómetro y
espera a que el pulso sea bajo. Devuelve el tiempo en
microsegundosSi supera el tiempo de espera devuelve 0
Tiempo de espera 1s por defecto
- pulseIn (pin, value, timeout)timeout: tiempo de espera en microsegundosd=250cm timeout= 14600us
PROGRAMA medir distancia
PROGRAMA medir distancia
LIBRERÍA ULTRASONIC
• Añadir un pulsador con memoria que permita conectar y desconectar el sistema
• Añadir que solo mida cada cierto intervalo usando millis() y llamada a funciones
OPCIONES
FUNCIÓN mILLIS
- millis();Devuelve el número de milisegundos desde que se
conectó la placa Arduino Es necesario usarlo si queremos realizar control de tiempo sin parar el microcontrolador Se suele guardar en variables tipo long
unsigned long time=0;time=millis();
CONTROL TIEMPO RELOJ INTERNO
LLAMADA A FUNCIONES
FUNCIÓN TONE
- tone(pin, frecuency);pin: el pin en el que generar el tono
frecuency: frecuencia del tono en hertzios
- tone(pin, frecuency, duration);duration: duración del tono en milisegundos
EJEMPLO TONE
• ¿Qué hemos conseguido hacer?
reflexionamos
Este guía se distribuye bajo licencia Reconocimiento-‐ ComparBrIgual CreaBve commons 4.0
(cc) 2014 José Pujol Pérez Some rights reserved. This work licensed under CreaBve Commons AOribuBon-‐ShareAlike License. To view a copy of full license, see
hOp://creaBvecommons.org/licenses/by-‐sa/3.0/ or write to CreaBve Commons, 559 Nathan AbboO Way, Stanford, California 94305, USA.
Some of the figures have been taken from the Internet Source, and author and licence if known, is specified.
For those images, fair use applies.
licencia