Ultrasonido
Ultrasonido
Ultrasonido
I. OBJETIVOS:
2.1. Arduino:
Microprocesador:
Es un circuito integrado que se puede programar, o sea que puede ejecutar las órdenes que tenga
almacenadas en su memoria. Tiene las tres funciones principales de un computador: la unidad
central de proceso, memoria y entradas y salidas. Arduino utiliza la marca ATMEL, y el modelo
de microcontrolador depende del tipo de tarjeta, por ejemplo la tarjeta Arduino Uno utiliza el
micro ATMEL MEGA 328P.
Entradas y Salidas:
Mediante los conectores de Arduino correspondientes a las entradas y salidas podemos comunicar
nuestros programas con el “mundo exterior”. Si queremos leer el valor de la magnitud física
medida por un sensor, por ejemplo una LDR que detecta el nivel de luminosidad, lo tendremos
que hacer conectando el sensor a uno de los pines de entrada (en este caso analógicas) de la tarjeta.
De esta forma con una simple instrucción de lectura en el programa, podremos obtener el valor
de la magnitud física. Si nuestra intención es actuar o “hacer algo” una vez leído el valor del
sensor, por ejemplo encender un LED si el sensor de luminosidad detecta oscuridad, tendremos
que conectar el actuador (en este caso el LED) a un pin de salida que proporcionará la corriente
necesaria para activarlo. En Arduino las entradas pueden ser analógicas o digitales y las salidas
sólo digitales. Cada pin digital tiene doble función entrada o salida. En la zona de configuración
del programa hay que indicar explícitamente mediante una instrucción cuál es función desempeña
un determinado pin.
Conexión de los sensores a las entradas analógicas o digitales
Los sensores utilizados en los proyectos que vamos a utilizar son de salida analógica, es decir
proporcionan una variación de voltaje dentro de un rango (normalmente de 0 a +5V) dependiendo
de lo que varíe la magnitud física medida. Muchos sensores son resistivos (luz, temperatura,
humedad,...), es decir que varían su resistencia eléctrica con la magnitud física, pero mediante un
sencillo montaje de divisor de tensión conseguimos una variación de voltaje apta para Arduino.
Estos montajes los veremos en las prácticas del manual. Una vez realizadas las conexiones, si
midiéramos la salida del sensor con un voltímetro nos daría un valor decimal, por ejemplo un
nivel de luz “intermedio” (rango de 0 a 5V) de un sensor de luz podría dar 3,3 voltios. Este tipo
de información el microcontrolador no la entiende tal cual, sólo es capaz de interpretar números
binarios (“0” ó “1”) por lo que para traducir los valores analógicos dispone internamente de un
conversor analógico – digital que hará la conversión entre los dos sistemas, de forma que
podremos tener valores discretos de la medida de los sensores analógicos.
Las entradas digitales son útiles cuando las señales a leer son valores discretos. Por ejemplo
queremos poner un pulsador o un interruptor que encienda un LED. Hacemos un montaje que
cuando se pulse, entren 5 voltios en el pin digital de entrada y cuando no se pulse que “entren” 0
voltios. De esta manera la lectura del pin digital de entrada será “HIGH” con 5 voltios o “LOW”
con 0 voltios
Son salidas digitales que simulan una salida analógica. Las siglas significan Modulación por
Ancho de Pulso (Pulse Width Modulation) o proporcionan una onda cuadrada con un nivel alto
(+5V) de “cierta” duración. Es muy útil para activar servomotores y llevarlos a una posición
determinada o variar la luminosidad de un LED. Lo puedes ver más explicado en la siguiente
sección
Programa Arduino
Las partes principales de un programa hecho en Arduino son: Bloque de inclusión de módulos y
declaración de variables, bloque de configuración void setup() donde se indica el modo de
funcionamiento de los pines (entrada y salida), comunicación serie, etc... y bloque de ejecución
continua void loop(), en este bloque se incluyen las acciones que queremos que realice el
programa. Se ejecutará línea a línea de forma secuencial y continua. Cuando llegue a la última
instrucción incluída en la función loop() volverá a ejecutar la primera y continuará en un bucle
infinito.
Sólo es necesario que esté conectado al ordenador mediante el USB para cargar los programas o
para visualizar en tiempo de ejecución datos del programa mediante la consola serie. El ordenador
proporciona la energía eléctrica suficiente para que funcionen los programas, pero una vez
cargado el programa en la memoria del microcontrolador de Arduino se puede desconectar del
USB y alimentar a la tarjeta mediante una fuente externa mediante el jack de alimentación con un
margen de (5 a 20 Voltios). El programa cargado en Arduino queda grabado permanentemente
aunque cese el suministro eléctrico.
2.2. Relés:
Características técnicas
Parte electromagnética:
Corriente de excitación.- Intensidad, que circula por la bobina, necesaria para activar el relé.
Tensión nominal.- Tensión de trabajo para la cual el relé se activa.
Tensión de trabajo.- Margen entre la tensión mínima y máxima, garantizando el
funcionamiento correcto del dispositivo.
Consumo nominal de la bobina.- Potencia que consume la bobina cuando el relé está excitado
con la tensión nominal a 20ºC.
Contactos ó Parte mecánica
Tensión de conexión.- Tensión entre contactos antes de cerrar o después de abrir.
Intensidad de conexión.- Intensidad máxima que un relé puede conectar o desconectarlo.
Intensidad máxima de trabajo.- Intensidad máxima que puede circular por los contactos
cuando se han cerrado.
Los materiales con los que se fabrican los contactos son: plata y aleaciones de plata que pueden
ser con cobre, níquel u óxido de cadmio. El uso del material que se elija en su fabricación
dependerá de su aplicación y vida útil necesaria de los mismos.
De armadura: El electroimán hace vascular la armadura al ser excitada, cerrando los contactos
dependiendo de si es normalmente abierto o normalmente cerrado.
De núcleo móvil: Tienen un émbolo en lugar de la armadura. Se utiliza un solenoide para
cerrar los contactos. Se suele aplicar cuando hay que manejar grandes intensidades.
Un sensor que nos permite conocer la distancia a un objeto es el de ultrasonidos. Este es más
preciso que el de infrarrojos y su rango de funcionamiento también es mayor. Funciona desde los
2cm hasta los 3 metros. El sensor tiene 2 partes como se puedes ver en la figura. Una se encarga
de enviar un sonido (a una frecuencia alta que no podemos escuchar), y la otra parte detecta
cuando ese sonido vuelve. Este sensor es muy útil en robots móviles para diversas acciones como
no chocar o mantenerse a cierta distancia de una pared.
Uno de los modelos más comunes es el HC-SR04, tiene el mismo funcionamiento que un radar
ya que envia pulsos a alta frecuencia en este caso ultrasónicos. Está compuesto por dos
piezoeléctricos: un transmisor y receptor ambos en forma de cilindro. El transmisor se encarga de
emitir la señal ultrasónica para luego ser rebotada a través de un objeto llegando al cilindro
receptor. Debido a que la señal le tardará un tiempo en regresar desde que se emite, es obvio
pensar que la velocidad con la cual llegará al receptor está íntimamente relacionada con la
distancia de transmisión y rebote.
Al ser un sensor ultrasónico, éste trabaja en la banda de los 40 kHz casi el doble de la frecuencia
de muestreo para una señal de audio. Esto quiere decir que para el ser humano es imposible
percibir a través de los oídos esta señal ya que supera el ancho de banda del oído humano que es
de hasta apróximadamente 20 kHz. Un sensor ultrasónico puede trabajar en áreas donde se tenga
completa oscuridad ya que las luces no afectan o detienen su funcionamiento.
Características
A comparación de otros dispositivos, este sensor tiene únicamente cuatro pines. Dependiendo del
fabricante, puede tener desde tres hasta cinco pines. Para este caso se tiene:
Unidades de operación
Datasheet 1
Datasheet 2
Se tienen tres canales: el canal del disparo, el canal donde se emite la señal desde el módulo y el
canal del eco respectivamente.
Para que el módulo inicie su trabajo es necesario enviar un pulso TTL (típicamente 5 V) con una
duración de 10 µs. Una vez se haya enviado este pulso a través del pin TRIG entonces el módulo
comenzará a trabajar internamente enviando varios pulsos ultrasónicos de 40 kHz
apróximadamente. Una vez que el módulo haya enviado ocho pulsos, el pin de eco enviará la
distancia a la cual está el objeto en forma de pulsos con nível TTL de amplitud más baja.
Dependiendo del ancho del pulso que emita el receptor, se tendrá distintos valores de distancias.
El ancho de pulso para el pin eco va desde apróximadamente 150 µs a 25 ms. El caso especial
ocurre a 38 ms que es cuando el sensor indica que no hay obstáculo. Y así es que funciona el
sensor.
Ángulo efectivo
Este sensor presenta una gráfica similar a la de un patrón de radiación, con esta información se
puede saber a qué ángulo desde una referencia inicial se pueden obtener mejores resultados en las
lecturas. El patrón de radiación es una gráfica que presenta propiedades importantes en base a
coordenadas espaciales, generalmente esféricas. La propiedad más relevante en este tipo de
gráfica es la distribución de energía, es decir cuántos dB tenemos en función de un punto de
referencia a lo largo de un radio que no cambia. Para este caso se comenta a qué distancia se
puede detectar un objeto en función del ángulo.
Consideraciones
Antes de conectarlo a la red, primero asegúrate que esté conectado a la referencia o bien: ground.
Recuerda que todos los sensores de este tipo tienen una zona ciega, para evitar salidas inestables.
El sensor puede ser utilizado para medir distancias a más de 80 cm desde su frente. La temperatura
es un factor que puede afectar las lecturas del sensor, la velocidad de propagación de una onda
mecánica decrece a medida que la temperatura aumenta.
Se creó un sistema de control para un tanque utilizando el Arduino y el sensor ultrasonido HC-
SRO4, para ello se colocó el sensor en la tapa del balde (tanque 01), adicionalmente el tanque
tiene una entrada y dos salidas, la entrada será dada por otro balde (tanque 02) el cual suministrará
agua mediante el impulso de una bomba, la primera salida será dada hacia el segundo balde (es el
mismo balde del cual se suministra al primer tanque) esta salida estará controlada también con
una bomba, y la segunda salida será la perturbación y solo estará controlada por un válvula globo,
la cual ira a un tercer balde (Tanque de Almacenamiento). El proceso consiste en que el usuario
indicará un volumen requerido, y el programa controlará las bombas para obtener ese volumen en
el tanque 01.
Utilizamos el sensor HC-SR04.para obtener la distancia a un objeto, en este caso la distancia que
va desde la superficie del agua hasta el sensor. Este sensor se basa en el envío de una señal acústica
y la recepción del eco de dicha señal. Lo sucede después es el cálculo de la distancia en función
del tiempo que ha tardado el rebotar el sonido y la velocidad del sonido.
3.2. Materiales
3 Baldes Cables
3 Válvulas de globo 2 Leds
Mangueras de PVC 2 Resistencias de 330 Ω
1 Codo Cable de alimentación del Arduino
2 tubos de disminución de diámetro 1 Relé
1 Protoboard Una fuente de voltaje
1 Arduino Mega Un sensor HC – SR04
Tanque 1: Es el tanque que tendrá acoplado el sensor en la tapa, de modo que pueda medir el nivel
del líquido en el interior, cuenta con una entrada y dos salidas de líquido; la primera es la salida
del líquido a través de la bomba de descarga y la segunda, es la salida de seguridad. Ambas salidas
cuentan con válvulas globo para poder tener un mejor control del líquido.
Tanque 2: Este tanque recepciona el líquido extraído del Tanque 1. Cuenta con una entrada del
líquido, proveniente del tanque 1, y una salida en la cual se encuentra la bomba (de llenado) que
proveerá líquido al Tanque 1, también cuenta con una válvula globo. De modo que el agua que se
utilice en el proyecto proviene de la recirculación.
2. Parte Electrónica
Utilizamos el programa Fritzing, para ilustrar las conexiones realizadas de nuestro sistema.
Siendo estas las siguientes:
El Sensor cuenta con 4 pines, los que ya habíamos descrito anteriormente, las conexiones son las
siguientes:
El pin VCC, va al protoboard y luego a la entrada de 5 V del Arduino.
El pin GND, va al protoboard y luego a la entrada GND del Arduino.
El pin Trig, va al protoboard y luego a una entrada PMW, número 2
El pin Echo, va al protoboard y luego a una entrada PMW, número 3
Para las bombas realizamos las conexiones de tal manera que el sistema controle a través de un
ON – OFF las dos bombas, para lo cual también adecuamos dos leds para identificar cada bomba;
así mismo se debe utilizar un relé que permite la fuente de alimentación de las bombas de acuerdo
a lo ordenado en el sistema.
Las bombas se controlarán de las salidas digitales 40 y 42, la bomba de descarga estará indicada
con el led Verde y la bomba de llenado con el led Rojo. Ambas conexiones estarán conectadas
previamente a una resistencia de 330 Ω, y a la salida de estas irán las conexiones al relé. El relé
posee sus propias conexiones a tierra y a fuente, las que irán al protoboard respectivamente. Para
conectar las bombas utilizamos las salidas del relé que se encuentran normalmente abiertas, y
cuando se proporcione la señal, se cierra el circuito y permita la entrada de corriente a la bomba
indicada.
Las bombas tienen tres salidas, sin embargo, solo utilizamos dos de cada una; la salida del
negativo de la fuente, al negativo de la bomba, y la salida positiva de la bomba al relé. Este
procedimiento se realizó con ambas bombas, de descarga y de llenado respectivamente.
Para obtener la correlación de volumen a distancia medida por el sensor, se realizó una correlación
a partir de datos experimentales.
16
14
y = 0.4303x2 - 5.8558x + 18.922
12 R² = 0.9981
Distancia, cm
10
0
0 0.5 1 1.5 2 2.5 3 3.5
Volúmen, L
Sistema de Seguridad
Es necesario colocar límites de seguridad dentro de la programación del control de nivel del
tanque, para evitar la succión de aire (nivel muy bajo de agua), o inundación del tanque y desborde
del agua (nivel muy alto de agua). Es por eso que ya estudiando estas distancias con el sensor, se
estableció niveles máximo y mínimo de 5 y 15 cm respectivamente (distancias medidas desde el
sensor). El rango operativo del sensor está entre 1 y 3 L.
Adicionalmente, el tanque 01 cuenta con una válvula que se opera manualmente de descarga, la
cual acaba en un tanque de almacenamiento (Tanque 03).
Conclusiones
Bibliografía