Upload
elenoidea-sanz-jimenez
View
213
Download
1
Embed Size (px)
DESCRIPTION
sens
Citation preview
UNIVERSIDAD POLITÉCNICA DE MADRID
Grado en Ingeniería Agroambiental
Asignatura Hidráulica e Hidrología ambiental, 3er curso, 5º semestre.
Documentación sobre actividad práctica (noviembre de 2013)
Taller sobre uso de sensores y adquisición de datos en Hidráulica
e Hidrología Palabras clave: sensor, microcontrolador, Arduino, LCD, datos, calibración
Autores: Raúl Sánchez, Leonor Rodríguez-Sinobas
1. Introducción
En el ámbito de la Hidráulica y la Hidrología, como en el resto de ramas de la Ingeniería, el uso
de sensores es generalizado. Los sensores proporcionan información en forma de medidas de
magnitudes físicas. Dicha información puede ser procesada con objeto de actuar para
controlar una o varias variables de un sistema. El control requiere de actuadores y, por
supuesto de sensores, mientras que la medida requiere solamente estos últimos. La rama de
conocimiento que estudia el control de procesos y sistemas es la Ingeniería de Control, y la que
estudia los métodos y sistemas de medida es la Metrología.
2. Sensores
Los sensores son dispositivos electrónicos que responden frente a magnitudes físicas, tales
como la presión o la temperatura, y la convierten en una señal eléctrica de corriente continua.
Los sensores también reciben el nombre de transductores, en alusión al proceso de conversión
de un tipo de energía en otra. Para recoger la señal es necesario construir un circuito entre el
sensor el dispositivo de medida, que se verá en el apartado siguiente.
Los sensores pueden ser de tipo digital o analógico. En los primeros, la señal de salida sólo
toma dos valores, alto o bajo, y es típico que sea 5 V y 0 V, respectivamente. Un sensor de este
tipo puede ser el que detecta si una llave está completamente cerrada, si una tapa de una
arqueta está cerrada, si dos elementos están alineados,… El sensor digital como tal puede
consistir en un conjunto de elementos que conmuta entre dos ramas de un circuito eléctrico,
una conectada al nivel bajo de tensión y otra conectada con el alto, aunque hay otros
procedimientos como p. ej. los basados en el efecto Hall. El procesado en el tiempo de señales
de sensores digitales permite medir frecuencias, como p. ej. ocurre con los tacómetros,
anemómetros, contadores volumétricos,…
Los sensores analógicos proporcionan una señal continua entre dos límites que definen el
rango de medida del sensor. Es decir, cualquier valor dentro del rango es posible. La amplitud
de dicho rango se conoce como fondo de escala. Generalmente la señal es lineal, es decir, la
conversión entre la magnitud física y la señal eléctrica se corresponde con la ecuación de una
recta. Las señales eléctricas más sencillas de procesar son las de tensión e intensidad. Son
típicas las señales 0-1 V, 0-5 V y 4-20 mA, aunque algunos sensores no cuentan con
Taller sobre uso de sensores y adquisición de datos
HeHA 2012 2
amplificador y proporcionan señales muy bajas, generalmente del orden de magnitud de mV.
Son señales que pueden requerir amplificación para adecuarlas a los dispositivos de medida.
Los sensores requieren una fuente de alimentación eléctrica comprendida dentro de un
intervalo de tensión especifico de cada sensor, como p. ej. 7-24 V. Luego la alimentación del
sensor requiere construir otro circuito entre la fuente y el sensor.
Por último, es necesario tener presente que antes de trabajar con un sensor determinado es
necesario informarse sobre qué alimentación necesita y el tipo de salida que proporciona,
además del rango de valores de la magnitud física en el que funciona. Hoy en día, gracias a
Internet esto no es un obstáculo insalvable.
3. Adquisición de señales y procesado de datos mediante
dispositivos electrónicos
La adquisición de señales se realiza mediante dispositivos electrónicos que muestrean la señal
y registran y/o procesan los valores resultantes. Entre estos destacan las tarjetas de
adquisición de datos TAD (data acdquisition card DAQ) que trabajan como elementos
periféricos de un ordenador y los dataloggers, que trabajan de manera autónoma. El elemento
común de estos equipos es el microcontrolador, precisamente el elemento con el que vamos a
trabajar en este taller.
Un microcontrolador es un circuito integrado programable capaz de ejecutar el programa
grabado en su memoria. Está compuesto de varios bloques funcionales, cada uno de los cuales
cumple una tarea específica. Un microcontrolador comprende las tres partes principales de un
ordenador: unidad central de procesamiento, memoria y periféricos de entrada/salida.
En 2005, en el núcleo de la empresa Olivetti y a raíz de una tesis doctoral, comenzó a gestarse
lo que hoy es el proyecto Arduino, que es una plataforma de software y hardware tipo open-
source y, sobre todo, fácil de usar. De hecho, esta última característica es la motivación por la
que surgió Arduino1 y por la que se usa en este taller, que unido a su relativo bajo coste lo
hacen ideal para que los estudiantes puedan crear sus propios desarrollos en trabajos fin de
carrera o similares.
Los microcontroladores que se pueden programar en el entorno Arduino son los Atmel AVR.
Microcontrolador Atmega328
En la figura siguiente se muestra el microcontrolador Atmega328P en formato para inserción
en placa base. Puede observarse que dispone de 14 patillas, o pines, en cada una de las dos
filas.
1Antes de Arduino, los microcontroladores debían ser programados en lenguajes de bajo nivel
demasiado especializados para el público en general o mediante costosos compiladores para lenguajes de alto nivel.
Taller sobre uso de sensores y adquisición de datos
HeHA 2012 3
Figura 1. Microcontrolador Atmega328P para inserción en placa base.
El punto grabado en una esquina (ver esquina inferior izquierda en la foto superior) marca el
pin número 1.
Cada una de las patillas puede tener varias funciones, como puede verse en el esquema de la
figura siguiente, donde entre paréntesis se muestran las abreviaturas que se refieren a las
funciones que puede realizarse a través de cada patilla.
Figura 2. Esquema de correspondencia entre funciones del microcontrolador Atmega328P y las patillas (enumeradas de la 1 a la 28).
Los requisitos de este microcontrolador y las funciones que va a realizar, particularizados para
el dispositivo que se va a usar durante la práctica, se describen a continuación:
- La alimentación: debe suministrarse mediante una fuente estable de corriente
continua de 5 V entre las patillas 7 y 8. En la primera se conectará el polo positivo y en
la segunda el negativo. Este último servirá también, como hablamos en mecánica, de
plano de comparación, que en el campo de la electricidad se llama tierra, en inglés
ground, de ahí la abreviatura GND. La patilla 7 debe unirse con la 20 mediante una
conexión externa (Atmel, 2012).
- La sincronización de los procesos: entre las patillas 9 y 10 debe conectarse un cristal de
cuarzo. Tiene como misión la de marcar el ritmo para poder controlar el momento en
el que debe realizarse cada acción. Establece físicamente la base del tiempo. El
dispositivo a usar en el taller cuenta con uno que tiene frecuencia de 16 MHz, y al que
acompañan dos condensadores para mejorar la regularidad de la frecuencia.
Taller sobre uso de sensores y adquisición de datos
HeHA 2012 4
- Entrada de señales analógicas: entre la patilla 22 y la 23 se pueden medir señales
analógicas en tensión con rango máximo de 5 V. En la primera se conecta en polo
negativo y en la segunda el positivo. Pueden medirse otras 5 señales adicionales
mediante conexiones análogas entre las patillas 22, por un lado, y la 24, 25, 26, 27 o
28, por el otro. Las entradas analógicas se identifican desde A0 (patilla 23) hasta A5
(patilla 28).
Las señales captadas mediante las entradas analógicas se convierten en digitales a
través de su correspondiente convertidor analógico-digital de 10 bits, lo que implica
que el valor mínimo de diferencia de tensión que puede ser apreciado es la amplitud
del rango dividido entre 210. Este valor recibe en nombre de resolución, y en nuestro
caso, dicha resolución viene dada por 5 V / 1024 = 4,9 mV. Es decir, el tercer decimal
de la señal del sensor expresada en V es incierta debida al proceso de conversión
analógico-digital de 10 bits. Además, cada sensor tiene su resolución2 específica y en
ocasiones dicha incertidumbre podría verse incrementada.
- Puertos digitales: pueden usarse como entradas o salidas y dispone de un total de 14.
En el dispositivo preparado para usar en el taller, estos puertos se van a usar para
proporcionar la lectura en una pantalla LCD 16x2 (con caracteres en 16 columnas y 2
filas). Las patillas 4, 5, 6 y 11 permiten enviar los datos y las instrucciones a la pantalla,
las 17 habilita/deshabilita la escritura en la pantalla y la 18 indica si se envían
instrucciones o datos.
Los puertos de las patillas 3, 5, 6, 9, 10 y 11 pueden trabajar como salidas analógicas,
aunque realmente no lo son. La modulación de la tensión es conseguida a través de la
generación de una onda rectangular permanente de frecuencia constante. La
proporción de nivel alto en cada ciclo de la onda es proporcional al valor de tensión
eficaz. La resolución de estas salidas es de 8 bits.
La programación del microcontrolador Atmega328
Se ha usado el software Arduino, disponible en www.arduino.cc. Es software libre, usa un
lenguaje de alto nivel y relativamente sencillo de entender y de usar, ya que tiene una sintaxis
similar a la de otros lenguajes de programación. La documentación sobre el uso y la instalación
de dicho software está también en la dirección mencionada.
Los 14 puertos digitales se identifican con los números 0 al 13, y, de acuerdo con la Fig. 2, se
corresponden con los ocho puertos PD0 al PD7 y con los seis PB0 al PB5. La correspondencia
entre el identificador del puerto digital y su patilla correspondiente se muestra en la tabla
siguiente.
Id. puerto digital 0 1 2 3 4 5 6 7 8 9 10 11 12 13
Patilla 2 3 4 5 6 11 12 13 14 15 16 17 18 19 Tabla 1. Correspondencia entre el indicador del puerto digital y la patilla.
2 En un sensor, se entiende por resolución la mínima variación de la magnitud de entrada que puede
apreciarse a la salida.
Taller sobre uso de sensores y adquisición de datos
HeHA 2012 5
Cada microcontrolador se va a programar mediante inserción en una placa Arduino UNO, que
dispone de conexión a ordenador mediante USB-serial. Una vez programado se inserta en el
dispositivo de la práctica.
4. Los dispositivos del taller
Se han montado los circuitos necesarios para alimentar, recoger la señal de un sensor y
transmitir la información a una pantalla LCD mediante las conexiones del esquema de la Fig. 3.
Las conexiones son específicas tanto para el hardware, es decir, el microcontrolador
Atmega328 y la pantalla LCD 1602a, como para el software. El programa en cuestión se
encuentra más adelante en este mismo apartado.
(a)
Taller sobre uso de sensores y adquisición de datos
HeHA 2012 6
(b)
Figura 3. Esquema de conexiones (a) a mano alzada (b) con software libre Fritzing.
El montaje está inspirado en Paperduino, publicado por Martins (2009) en su web.
(a)
(b)
Taller sobre uso de sensores y adquisición de datos
HeHA 2012 7
(c) (d)
Figura 4. Cuatro vistas del dispositivo a usar en taller, (a) aspecto general del dispositivo, (b) conexiones en el reverso, (c) pantalla LCD desenchufada, (d) dispositivo alimentado por pila de 9 V en funcionamiento.
El coste aproximado del material del dispositivo es de 16 €, y se desglosa por componentes
individuales en:
- Microcontrolador Atmega328P 8,5 €
- Pantalla LCD 1602a 4,5 €
- Pines de conexión 0,5 €
- Zócalo para inserción del microcontrolador 0,4 €
- Cristal cuarzo, regulador tensión, potenciómetro y condensadores 1,5 €
- Portapila y cable de cobre unifilar 0,3 €
Existen placas de desarrollo comerciales, como Arduino UNO, cuyo precio está alrededor de los
25 € y que incluye todo lo anterior menos la pantalla LCD, el potenciómetro y el portapila. Son
interesantes para aprender a programar y abordar con inmediatez los montajes. En este caso,
sin embargo, se ha optado por el desarrollo de una “placa” propia con objeto de que los
desarrollos propios puedan adaptarse a condicionantes de espacio3, de coste u otros.
Los sensores
En el Laboratorio de Hidráulica, se van a usar sensores diversos, tanto amplificados, con
señales en los rangos 0-5 V, 4-20 mA, como no amplificados, con salida en mV. Se van a usar
señales de diversos equipos, entre los que se encuentran transductores de presión,
limnímetros de ultrasónicos, sensores de temperatura, de humedad relativa del aire, de
humedad del suelo, caudalímetros de ultrasonidos,…
A pesar de que el microcontrolador sólo puede medir señales en tensión eléctrica, las
corrientes en intensidad eléctrica pueden ser medidas: hacer pasar la corriente a medir por
una resistencia conocida permite transformar la intensidad en tensión. Tiene interés usar una
resistencia de 250 Ω para transformar el rango 4-20 mA en el rango 1-5 V.
La alimentación
El microcontrolador requiere una alimentación estable a 5V, lo que se realiza mediante un
circuito con dispositivo regulador de tensión 7805. La tensión de entrada de una pila de 9V o
de un transformador de corriente continua es reducida a 5V por dicho regulador.
3 Los componentes SMC (surface mount components) han permitido reducir el tamaño de los circuitos
electrónicos. El microcontrolador Atmega 328 también está disponible en versión SMC.
Taller sobre uso de sensores y adquisición de datos
HeHA 2012 8
El programa
A continuación se muestra el código4 en Arduino que ha sido transferido a cada uno de los
microcontroladores. En dicho programa, y tras la calibración en laboratorio de cada sensor,
podría incluirse la transformación entre la señal eléctrica y la variable física correspondiente.
Es decir, la variable señalSensor puede transformarse a valores de presión y expresarse en kPa,
bar, mca,… o a valores de altura de vertido y expresarse en mm, cm,… O, incluso, en el caso de
ésta última transformarla en valores de caudal y expresarlos en L/s, m3/h,…
/*
Práctica sobre uso de sensores y adquisición de datos con Arduino.
Asignaturas “Hidráulica e Hidrología ambiental” e “Ingeniería del
Riego y el drenaje”.
*/
// Librería de comandos para la pantalla LCD
#include <LiquidCrystal.h>
// Especificación de los puertos digitales empleados en la
//comunicación con la librería.
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
//LiquidCrytal lcd(RS, E, D4, D5, D6, D7)
//Rutina de configuración.
void setup()
// configuración del número de columnas y filas:
lcd.begin(16, 2);
// Muestra el mensaje:
lcd.print("C. Continua (V)");
//pausa de 5s
delay(5000);
//pone el cursor en carácter de la segunda fila y la primera columna
//(se comienza a contar en 0, e indica el primer elemento)
lcd.setCursor(0, 1);
//Muestra el mensaje:
lcd.print("A0(V)");
/*
Rutina tipo bucle que se repite indefinidamente hasta que el
microprocesador es reiniciado.
*/
void loop()
//pone el cursor en la columna octava y la fila segunda
lcd.setCursor(7, 1);
//lee la señal de la entrada analógica 0.
int señalSensor = analogRead(A0);
//Conversión de la lectura analógica a tensión.
//El rango de enteros entre 0 a 1023 pasa a 0-5 V.
float voltaje = señalSensor * (5.0 / 1023.0);
//Muestra el valor de la variable voltaje.
lcd.print(voltaje);
//pausa de 1s
delay(1000);
4 Se ha optado por la máxima sencillez en el código. P. ej. la rutina “delay” impide que el
microcontrolador realice procesos durante la pausa. Existen alternativas que resuelven este inconveniente.
Taller sobre uso de sensores y adquisición de datos
HeHA 2012 9
5. Cuestiones a realizar por el estudiante
En el Laboratorio de Hidráulica se va a proceder a medir el valor de una magnitud física, p.ej.
presión, y el de la señal proporcionada por un sensor. La relación entre ambas observaciones
se conoce como curva de calibración. Dicha curva suele ser una relación lineal.
El estudiante, con ayuda del ordenador, mediante hoja de cálculo p.ej., deberá:
a) representar en gráfico cartesiano los pares de valores observados. En el eje de abcisas
se representará la señal (V) y en el de ordenadas en valor de la magnitud física medida.
b) determinar los coeficientes de la recta de ajuste, es decir, la ordenada en el origen y la
pendiente.
c) determinar, de acuerdo con la resolución del dispositivo de medida, el cambio mínimo
de la magnitud medida que puede apreciarse.
6. Referencias
Atmel, 2012, “ATmega48A/PA/88A/PA/168A/PA/328/P [DATASHEET SUMMARY]”,
8271ES-AVR-07/2012
Martins G., 2009, “PAPERduino’s design”,
http://lab.guilhermemartins.net/2009/05/06/paperduino-prints/
7. Bibliografía
Evans B., 2011, “Beginning Arduino programming”, Ed. Apress, distributed by Springer Science
+ business media, New York.
Faludi R., 2010, “Building wireless sensor networks”, Ed. O’Really, Sebastopol (CA).
Igoe T., 2011, “Making things talk”, 2nd edition, Ed. O’Really, Sebastopol (CA).
Karvinen K., Karvinen T., 2011, “Make: Arduino bots and gadgets”, Ed. O’Really, Sebastopol
(CA).
Karvinen T., Karvinen K., 2011, “Make a mind-controlled Arduino robot”, Ed. O’Really,
Sebastopol (CA).
Margolis M., 2011, “Arduino cookbook”, Ed. O’Really, Sebastopol (CA).
Monk S., 2010, “30 Arduino projects for the evil genius”, Ed. McGraw-Hill, New York.
Schmidt M., 2011, “Arduino. A quick-start guide”, the pragmatic bookshelf, Ed. The pragmatic
programmers, Rayleigh (NC).
www.arduino.cc