Está en la página 1de 9

Laboratorio No.

1: Sistema de Medición de Nivel,


Curva Característica, Adquisición y Conversión
ADC con Arduino (ADC: 0-5V), y Graficador
Matlab (GUI)

1st Daniela Valentina Amaya Vargas 2nd Sara Sofia Ospina Rojas 3th Alessandro Rodríguez Martínez
Ingeniería electrónica Ingeniería Electrónica Ingeniería Electrónica
Universidad Nacional de Colombia Universidad Nacional de Colombia Universidad Nacional de Colombia
Bogota, Colombia Bogotá, Colombia Bogotá, Colombia
dvamayava@unal.edu.co saospinar@unal.edu.co alerodriguezma@unal.edu.co

I. I NTRODUCCIÓN

En este informe de laboratorio se desarrolla la caracte-


rización de un sistema de medición de nivel. Para esto se
implementa el software Arduino usando la adquisición y
conversión ADC y el sofwtare Matlab. Primero se presenta
la metodología en donde se explica el procedimiento seguido
para la correcta caracterización de la planta, luego en la
sección de resultados se muestra la curva característica de la
planta y además se adquieren valores de voltaje por medio
de Arduino y se grafican por medio de la interfaz GUI de
Matlab y por ultimo se realiza un análisis de los resultados
encontrados y conclusiones respecto al laboratorio.

Figura 1: Sistema de control genérico.

II. M ETODOLOGÍA
Por medio de la ecuación del puente
 
R2 RX
II-A. Preparación planta de nivel VG = −
R1 − R2 RX − R3

Antes de iniciar con el desarrollo del laboratorio, se preparó Donde R1 = 100Ω, R2 = 100kΩ, R3 = 5,6kΩ Rx = 10kΩ
los diferentes elementos de la planta de nivel, como es el y Vs = 5V Los valores reales medidos de las resistencias
puente Wheastone y la construcción de la planta. fueron R1 = 101,5Ω, R2 = 96, 3kΩ, R3 = 5,44kΩ
En cuanto al puente Wheastone se diseñó de tal manera
Cabe aclarar que Rx es el potenciómetro que varía entre
que hubiera un span de aproximandamente 1V a la salida de
1, 5kΩ − 150Ω.
voltaje entre los puntos D − B. La siguiente imagen ilustra
los componentes de dicho puente.
Por otro lado, la planta de nivel fue construida con un
recipiente de plástico cúbico de altura 12cm y un flotador
atornillado a una varilla, la cual está conectada a la perilla del
potenciómetro tal que al realizar el movimiento mecánico de
subida o bajada, sea equivalente a girar el eje de la resistencia II-C. Comprobación convertidor ADC arduino
variable, consiguiendo así un comportamiento casi lineal .

En primer lugar, se monta el circuito de las 10 resistencias


de 1kΩ en serie en la protoboard y alimentada con una
fuente de 5V . La siguiente imagen ilustra el montaje de dicho
circuito.

Figura 2: Montaje planta de nivel.

Dadas la anteriores condiciones y considerando la toma


de 17 muestras para una estimación muy cerca de la curva
característica se procede a realizar la mediciones de voltaje en
función de la altura.

II-B. Mediciones de altura vs voltaje


Para ello, se utiliza una escala graduada en cm de forma
vertical para ubicar la posición del flotador a medida que el
nivel de agua en el tanque asciende. Luego, se ingresa agua
al tanque para que el flotador cambie su altura. Cada 0, 5cm
de subida se registra en una tabla al igual que la salida de
voltaje diferencial en el puente Wheastone correspondiente.
Este último se mide a través de un multímetro en su función
DC.

Figura 4: Montaje década de resistencias de 1kΩ en proto-


board.

Figura 3: Planta de nivel con escala graduada en el valor


mínimo de altura.
Posteriormente, se escribe el código en la interfaz de arduino
que permite la lectura de voltaje de una señal análoga.
Una vez registrados los datos de altura y voltaje, se imple-
menta su respectiva gráfica para observar la curva caracterís-
tica. La siguiente imagen ilustra el código usado
Figura 5: Código IDE arduino para la lectura de voltaje
análogo.

Figura 6: Multímetro midiendo tensión sobre la década de


10kΩ

Obsérvese que en la variable voltaje se realiza una conver-


sión de bits a valores de tensión dividiendo por 1023, que es
equivalente a 5V en el arduino UNO. Figura 7: Lectura monitor serial IDE arduino sobre el mismo
punto de tensión que el multpimetro.

II-D. Prueba de la adquisición ADC de la señal de salida


de la planta (Vout )
Por ahora, solo se imprimirá en pantalla el contenido de Se conecta el pin A0 del microcontrolador al punto D del
la variable tension_D para comprobar el funcionamiento del puente Wheastone y el pin A1 al punto B para realizar la
ADC y se corrobora esta medición con el multímetro. Para lectura de voltaje. Asimismo, el arduino UNO está conectado
ello, se realizar el acople de tierras entre el circuito de la al ordenador para la visualización de las mediciones en el
década de resistencias con GND del arduino. Asimismo, se monitor serial y la alimentación del puente de Wheastone está
utiliza el pin A0 para recibir la señal analógica de voltaje. aterrizada al mismo GND del ADC Arduino. Como se realiza
la medición de dos puntos de tensión, obsérvese que en el
código se realiza la resta de dichos valores para obtener el
valor de voltaje diferencial dado por la variable voltaje_bits.
Dicho lo anterior, se procede a la toma de la mediciones
A continuación, se presenta las fotografías de este proceso. variando el nivel de agua en el tanque con el fin de obtener
una lectura de voltaje en el monitor serial entregada por el
puente Wheastone, teniendo en cuenta los valores entre los
limites de altura de la planta.

Figura 10: Código GUI parte 2.

Figura 8: Puente Wheastone conectado al arduino UNO.

II-E. Prueba de la Lectura en el graficador/interfaz de


Matlab (GUI).

Para el poder realizar la graficación de los datos en el


GUI de Matlab, se debe programar un código que permita
relacionar el ADC de arduino con el programa mencionado.
Para esto, se implementa el siguiente código:
Figura 11: Código GUI parte 3.

Figura 12: Código GUI parte 4.

La función edit1_Callback se encarga de guardar el dato


escrito en la GUI en uno de los editores de texto. Este dato
se guarda en la variable Ymax, pues es el máximo del eje y,
por ello el nombre de la variable.
Figura 9: Código GUI parte 1.
Todas las funciones que contengan el nombre Create_F cn II-G. Planteamiento etapa de acondicionamiento
se encargan de crear en la interfaz cada objeto, ya sea Dado que para Lmin = 4cm el voltaje de salida debe ser
botones, cuadros de texto o el plano, estas funciones fueron Vo = 0V , entonces se puede implementar un amplificador
creadas por Matlab. restador de tal manera que el voltaje de salida de 3, 97V se
haga 0V .
La función edit2_Callback guarda el dato ingresado en Por otro lado, una vez ajustado el valor mínimo de altura, se
YLim para que sea el mínimo valor del eje y. puede acoplar un etapa de un amplificador multiplicador para
el caso de Lmax = 12cm, por lo que si la salida de voltaje
El último cuadro de texto es edit_3, su función de para esta altura es de 4, 83V , entonces al multiplicarlo con
CallBack se encarga de guardar el valor del Xmax, el mayor una determinada ganancia se alcanzan los 5V sin afectar el
valor para el eje x, este eje siempre empieza en cero, por lo valor mínimo porque va a seguir siendo 0V .
que no es necesaria otra variable. II-H. Planteamiento del circuito de acondicionamiento de
señal para el sistema de medición de nivel
El botón Graf icar se encarga de iniciar la lectura de los
Para el planteamento del circuito del acondicionamiento de
datos, por lo que su función contiene un for que lee desde 1
nivel se pide que cuando la altura sea mínima en este caso
hasta el Xmax, y para cada ciclo se grafica en la posición k la
L = 4cm el voltaje de salida sea de 0v y cuando la altura
lectura de la tensión leída por el arduino mediante el pin A0,
sea máxima L = 12cm el voltaje sea de 5v. Para lo anterior
el cual va conectado a cada punto de la década de resistencias.
se plantea un circuito con un restador y un amplificador no
Para esto se usa el comando IO.readV oltage(′ A0′ ), y para
inversor:
graficar el comando plot().
Restador:
El programa hace una pausa y se sigue con el siguiente
ciclo para tomar la siguiente lectura. Primero se plantea un amplificador restador para así llevar
el voltaje de la altura mínima a 0v. Para lo anterior se plantea
Lo siguiente corresponde es la creación de la interfaz donde el circuito de la figura 14:
ajusta los límites del eje Y por medio del comando axis() y
la cantidad de muestras que se desea graficar. Para conseguir
esto, se abre ’Black Guide’ y se acomoda el tamaño de la
interfaz, los botones, los limites, entre otros de tal manera que
se obtiene la siguiente ventana

Figura 13: Interfaz GUI Matlab.

II-F. Prueba de adquisición de la señal de voltaje de salida Figura 14: Circuito para un amplificador operacional funcio-
de la Planta de Medición de Nivel en el GUI de Matlab nando como restador

De manera similar como se hizo en la prueba de adquisición Las ecuaciones para el diseño del circuito restador son las
con el ADC de arduino, se conecta el pin A0 del microcontro- siguientes:
lador al punto D del puente Wheastone y el pin A1 al punto B
para realizar la lectura de voltaje. Asimismo, el arduino UNO v o = A1 V 1 − A2 V 2 (1)
está conectado al ordenador tal que la señal análoga pase por
el ADC y luego pase al graficador GUI de Matlab para la RF
correcta visualización de los datos a través del tiempo. R1 = (2)
A1
Caracterización de la planta
RF Altura (cm) Voltaje (V)
R2 = (3) 4 3.9
A2 4.5 4.057
5 4.102
RF 5.5 4.16
Rx = (4) 6 4.204
1 + A2 − A1
6.5 4.214
Donde vo es el voltaje de salida, para que el voltaje de 7 4.27
salida sea 0 se debe dar valores comerciales a la resistencia 7.5 4.288
8 4.348
RF y reemplazar el voltaje v0 a 0 voltios para encontrar los 8.5 4.406
valores de las demás resistencias. 9 4.469
9.5 4.531
10 4.568
Amplificador no inversor: 10.5 4.616
11 4.651
Por ultimo después de llevar el voltaje mínimo a 0c, debido 11.5 4.745
a que se implemento un restador el voltaje máximo bajo si 12 4.837
valor, debido a esto para llevar el voltaje máximo a 4 voltios Tabla I: Valores de voltaje respecto a la altura con potenció-
se usa un amplificador no inversor. Como el voltaje mínimo metro de 10k
ya esta establecido en 0v gracias al restador el amplificador
no inversor no afectara esta medida ya que cualquier ganancia
por 0 dará un voltaje de salida de 0v.
En la figura 15 se muestra el circuito del amplificador no
inversor donde el voltaje de salida vo del restador seria el
voltaje de entrada ve del amplificador no inversor.

Figura 15: Circuito para un amplificador operacional no inver-


sor

Para el diseño del amplificador no inversor se usa la


siguiente formula:
R1 + R2 Figura 16: Gráfica de Voltaje vs Altura con potenciómetro de
vo = Ve (5) 10kΩ
R1
III. R ESULTADOS
III-A. Curva característica de la planta

Para realizar el gráfico de la curva característica de la


planta se procedió a medir el voltaje en los puntos D-B
variando la altura de 4cm (Lmin ) a 12cm (Lmax ), se tomo la
medida del voltaje cada 0.5cm para así obtener un total de
12 mediciones. La mediciones se realizaron por medio de un Luego se procedió a graficar los valores encontrados por
multimetro medio del software Matlab como se muestra en la figura 16.

Primero se realizo la curva característica conectando un


potenciómetro de 10kΩ Se realizo el mismo procedimiento con un potenciómetro
de 50k
Caracterizacion de la planta
Altura (cm) Voltaje (V)
III-C. Prueba de la adquisición ADC de la señal de salida
4 2.48 de la planta (Vout), Utilizando el ADC de Arduino y el
4.5 2.5 software IDE
5 2.57
5.5 2.7
6 2.95
6.5 2.97 Debido a que la escala del serialplott de Arduino no se
7 3.1 puede ajustar, es decir Arduino maneja auto escala no fue
7.5 3.26 posible graduar la escala para poder observar los datos de la
8 3.39
8.5 3.52 planta de manera adecuada, por lo anterior se comprobó por
9 3.69 medio del GUI el valor del voltaje de salida de la planta.
9.5 3.87
10 4.04
10.5 4.28
11 4.59 III-D. Prueba de la Lectura en el graficador/interfaz de
11.5 4.88 Matlab (GUI)
12 4.9

Tabla II: Valores de voltaje respecto a la altura con potenció-


Para probar el funcionamiento de la lectura en el GUI se
metro de 50k
realizo la lectura de la década de resistencias por medio del
GUI. La siguiente figura muestra los valores de voltaje en cada
resistencia de 1k.

Figura 17: Gráfica de Voltaje vs Altura con potenciómetro de


50kΩ Figura 19: Voltaje en década de resistencias con GUI de
Matlab
III-B. Prueba del convertidor ADC de Arduino
Los picos que se presentan en la gráfica se generan debido
Ahora por medio de la conexión de 10 resistencias en serie a que al momento de realizar el cambio del punto de medición
se realiza la prueba del convertidor ADC del Arduino. el Arduino lee un dato erroneo al desconectar y conectar el
ADC por la cual se esta leyendo el valor de voltaje.

III-E. Prueba de adquisición de la señal de voltaje de salida


de la Planta de Medición de Nivel y Prueba de adquisición
de lectura en el graficador/interfaz de Matlab (GUI)

Por medio de la Interfaz GUI de Matlab desarrollada


anteriormente se midió el voltaje de salida de la planta. Para
esto se establecieron los limites en Y de 4v a 5v y el limite en
x de 3000 segundos. Luego se vario la altura de la planta de
4cm que es la altura mínima hasta 12 cm variando de 0.5cm
Figura 18: Voltaje en década de resistencias con Arduino en cada medición.
I [cm] O(I) [V] R(I) [V] N(I) [V]
4 3,9 3,901 -0,001
4,5 4,057 3,9595 0,098
5 4,102 4,018 0,084
5,5 4,16 4,0765 0,083
6 4,204 4,135 0,069
6,5 4,214 4,1935 0,021
7 4,27 4,252 0,018
7,5 4,288 4,3105 -0,023
8 4,348 4,369 -0,021
8,5 4,406 4,4275 -0,022
9 4,469 4,486 -0,017
9,5 4,531 4,5445 -0,014
10 4,568 4,603 -0,035
10,5 4,616 4,6615 -0,046
11 4,651 4,72 -0,069
11,5 4,745 4,7785 -0,034
12 4,837 4,837 0,000

Tabla III: Datos para calcular la no linealidad máxima


Figura 20: Voltaje de salida de la planta adquirido por medio
del GUI

IV. A NÁLISIS DE RESULTADOS por cada punto de medición y así tener una certeza mayor de
esta gráfica.
IV-A. Curva característica de la planta
De igual manera, decidimos calcular a ecuación la recta
Con base en las gráficas se puede concluir que al usar el ideal, esta se obtiene por medio de k la pendiente y a el corte
potenciómetro de 10kΩ se tiene un comportamiento mucho por cero:17
más lineal, a pesar de que la variación de aproximadamente
voltio es menor en comparación a la de dos voltios del 4,837V − 3, 9V V
k= = 0,1
potenciómetro de 50kΩ. 12cm − 4cm cm
Para el corte con a tomamos el punto en (12, 4,837)
De igual manera se espera poder continuar con la
calibración de la planta para obtener al menos tres valores
y − yo = k(x − xo )
por cada punto de medición y así tener una certeza mayor de
esta gráfica. V
y − 4,837V = 0,117 (x − 12cm)
cm
Luego se procede a realizar al linealización de la cur- V
va característica a través del método de los linealidad por y = (0,117 x) − 1,404V + 4,837V
cm
extremos. Por medio de la opción de regresión lineal de
Excel, obteniendo los siguientes resultados. Ademas, Excel a = 3,433V
nos proporciono la ecuacion de la recta la cual podemos
Es decir que nuestra recta ideal esta dada por:
observar en la parte superior derecha de la grafica:
V
R(I) = 0,117 x + 3,433V
cm
Vemos que las rectas obtenidas son levemente diferentes,
esto se debe a los decimales usados en los cálculos para las
aproximaciones y el método que utiliza el Excel para calcular
la recta ideal.

Calculamos también la no linealidad maxima por medio de


la ecuación de la recta ideal. Reemplazamos en cada punto el
valor de x = I y calculamos R(I). Finalmente restamos la
ecuación linealizada con los datos medidos, es decir N (I) =
O(I) − R(I) y escogemos el valor mayor aplicándole valor
absoluto.
El punto de mayor no linealidad es 4, 5cm, tomando este
Figura 21: Recta ideal con potenciómetro de 10kΩ valor calculamos el porcentaje de no linealidad máxima:

De igual manera se espera poder continuar con la 0,098


calibración de la planta para obtener al menos tres valores N.linealidad = · 100 % = 1,225 %
12cm − 4cm
IV-B. Prueba del convertidor ADC de Arduino y Prueba de Es imperativo diseñar un sistema mecánico adecuado para
la adquisición ADC de la señal de salida de la planta (Vout), el buen funcionamiento de la planta de nivel, ya que si el
Utilizando el ADC de Arduino y el software IDE sistema no permite que los cambios sean lineales sobre la
resistencia del reóstato, se presentan fallas de medición y
Los resultados del código implementado del ADC fueron des-calibración en la planta.
satisfactorios puesto que se pudo evidenciar el funcionamiento
de la década de resistencias, a medida que aumentaba la La recta ideal permite evidenciar un comportamiento de
resistencia el valor del voltaje disminuía y se mantenía estable los datos medidos por la planta de manera mas efectiva
mientras este estuviera puesto. que usando la curva característica. Con esta recta también
podemos realizar cálculos de porcentaje de no linealidad. A
medida que se vayan recompilando mas datos se espera que
Debido a la escala que utiliza el "serial plotter"de Arduino
la diferencia entre la curva y la recta sea cada vez menor.
realizar la misma medición anterior, es decir con la década
de resistencias, pero ahora con la planta, no se logro satis- R EFERENCIAS
factoriamente. La variación de 1 voltio de la planta no era [1] Laboratorio No. 1: Sistema de Medición de Nivel, Cur-
evidenciable a esa escala, además que el tiempo de llenado, va Característica, Adquisición y Conversión ADC con
para tomar la medida en diferentes puntos, no permitía que se Arduino (ADC: 0-5V), y Graficador Matlab (GUI)
vieran los valores de manera estable. Sin embargo vemos mas
adelante que con el GUI esto si era posible.

IV-C. Prueba de la Lectura en el graficador/interfaz de


Matlab (GUI), Prueba de adquisición de la señal de voltaje
de salida de la Planta de Medición de Nivel y Prueba de
adquisición de lectura en el graficador/interfaz de Matlab
(GUI)

Las pruebas realizadas con GUI nos muestran el


funcionamiento de la década de resistencia, al igual que con
el Arduino presenta el mismo comportamiento previamente
analizado, lo que nos confirma el correcto funcionamiento del
GUI. Sin embargo, se presentaron picos debido al cambio en
cada punto de la medición. Al realizar el cambio el voltaje
o se subía o se baja abruptamente lo cual nos impidió una
gráfica limpia, sin embargo los resultados fueron correctos.

Para la medición del nivel de la planta con el GUI se


obtuvo satisfactoriamente una gráfica escalonada de los datos,
la altura de cada escalón varia debido a que el cambio nivel
se realiza de manera manual y en el menor tiempo posible,
por lo que al llegar a la altura deseada en cada punto se
establecía un tiempo de asentamiento para que se evidenciara
el voltaje exacto en cada nivel. La escala de la gráfica no
es completamente correcta, cuestiones que esperamos mejorar
a medida que avancemos, pero aun con estos inconvenientes
podemos ver como se estable un rango de 4v a 5V, y ver
como los datos obtenidos corresponden con los medidos por
multímetro en la Tabla 1.

V. C ONCLUSIONES
El trabajo conjunto entre el uso de herramientas
computacionales como el GUI de Matlab y el ADC
de arduino permite observar de forma más amplia el
comportamiento de un conjunto de mediciones de una
variable física, llegando así a análisis más precisos y
correctos.

También podría gustarte