PROYECTO FIN DE CARRERA

UNIVERSIDAD CARLOS III DE MADRID PROYECTO FIN DE CARRERA CONTROL ELECTRÓNICO DE UN LAVABO PORTÁTIL Autor: Honorio Martín González Tutor: Luis Herná

7 downloads 167 Views 1MB Size

Story Transcript

UNIVERSIDAD CARLOS III DE MADRID

PROYECTO FIN DE CARRERA

CONTROL ELECTRÓNICO DE UN LAVABO PORTÁTIL

Autor: Honorio Martín González Tutor: Luis Hernández Corporales

1

ÍNDICE 1 1.-INTRODUCCIÓN .................................................................................................................................................... 4

2 2.- DISEÑO DEL SISTEMA ....................................................................................................................................... 9 2.1.- El microprocesador ....................................................................................................................................... 10 2.2.- Sensor táctil capacitivo ................................................................................................................................ 11 2.3.- Sensores de nivel........................................................................................................................................... 13 2.4.- Bomba ............................................................................................................................................................... 16 2.5.- Sistema de alarma.......................................................................................................................................... 17 2.7.- Sistema de Calibrado .................................................................................................................................... 18

3 3.- DISEÑO DEL CIRCUITO ................................................................................................................................... 19 3.1.-El microprocesador ........................................................................................................................................ 21 3.2.- Sensor táctil capacitivo ................................................................................................................................ 22 3.3.- Sensores de nivel........................................................................................................................................... 24 3.4.- Bomba ............................................................................................................................................................... 27 3.5.- Sistema de alarma.......................................................................................................................................... 27 3.6.- Sensor de presión .......................................................................................................................................... 28 3.7.- Sistema de calibrado ..................................................................................................................................... 29 3.8.- Regulador de tensión .................................................................................................................................... 29

4 4.- DISEÑO DEL SOFTWARE ................................................................................................................................ 31 4.1.- Listado de interrupciones ............................................................................................................................ 37 4.1.1.- Rutina de atención de interrupción de ADC ........................................................................................ 37 4.1.2.- Rutina de atención de interrupción del Timer 0 .................................................................................. 38 4.1.3.- Rutina de atención de interrupción de INT0 ........................................................................................ 39 4.1.4.- Rutina de atención de interrupción de INT1 ........................................................................................ 39

5 5.- CONSTRUCCIÓN ............................................................................................................................................... 41 5.1.- Construcción ..................................................................................................................................................... 42 5.2.- Pruebas............................................................................................................................................................. 45

6 6.- PRESUPUESTO .................................................................................................................................................. 48 6.1.- Presupuesto de componentes electrónicos............................................................................................ 49 6.2.- Presupuesto de programación ................................................................................................................... 51 6.4.- Presupuesto Total .......................................................................................................................................... 51

2

7 7.- CONCLUSIONES ................................................................................................................................................ 52

8 8.- ANEXOS ............................................................................................................................................................... 55 8.1.- Anexo de programación ............................................................................................................................... 56 8.1.1.- Programa completo .................................................................................................................................... 56 8.1.2.- Archivo de configuración ......................................................................................................................... 60 8.2.- Hojas de características ............................................................................................................................... 62 8.3.- Esquemas ........................................................................................................................................................ 70

3

1.-INTRODUCCIÓN

4

1.-INTRODUCCIÓN: En este capítulo, se abordará una breve descripción del proyecto y los objetivos. En este proyecto se aborda el control electrónico de un lavabo protatil sin instalación. El lavabo tiene dos depósitos, uno con agua limpia y otro con el agua proveniente del desagüe. El agua fluye gracias a la acción de una bomba electrica. El circuito de control se encarga de activar la bomba cuando el usuario toca el grifo y de monitorizar

los

niveles

en

los

depósitos

para

evitar

desbordamientos. El circuito ha sido construido y probado utilizando sensores de tipocapacitivo autoconstruidos y un microprocesador.

Figura 1: Esquema del sistema

5

En la actualidad, cada vez son más los elementos comunes de una vivienda que están automatizados, desde persianas y luces, hasta el control ambiental. En esta tendencia, no se quedan atrás los elementos que encontramos en el baño, desde los WC hasta un simple toallero, todo está automatizado. En el caso de los lavabos, la tendencia son lavabos eficientes, es decir, que ahorren agua, aunque también se están extendiendo los lavabos que incluyen dispensador de jabón automático, y secado. En cuanto al proyecto a realizar, la automatización del lavabo consta del control de los niveles de agua, de la puesta en marcha y paro del lavabo, y la implementación de diferentes alarmas. El funcionamiento del lavabo es simple, tocando el grifo, una bomba se pone en funcionamiento durante 20 segundos, sacando el agua de un depósito por el grifo. El agua sobrante va a parar a un depósito de desagüe. Evidentemente, estos depósitos llevan incorporados un sistema de sensor de niveles para evitar que la bomba trabaje en vacio, o que el depósito de desagüe se desborde. Todo esto está complementado con un sistema de alarmas acústicas, para alertar al usuario de las diferentes situaciones que se pueden producir (desbordamiento del depósito de desagüe, etc). Además se incluirá en el diseño, un sistema para controlar la presión de agua que ofrece la bomba. Todo ello será controlado por un microprocesador de la familia 8051. Los principales elementos del sistema son los siguientes: El sistema de accionamiento del grifo, se ha diseñado utilizando un sensor capacitivo de tacto, otras opciones a utilizar, y que están muy extendidas por el mercado son por ejemplo sensores 6

de movimiento infrarrojos, que detectan cuando hay manos debajo del lavabo y automáticamente permiten la salida de agua. El sensor capacitivo de contacto funciona gracias a que el contacto de una persona con un condensador, hace variar la capacidad del condensador. Lo que hay que hacer para utilizar esta propiedad, es hacer un sistema que cambiando la capacidad de un condensador varíe de forma medible algún parámetro, por ejemplo un oscilador. También se puede hacer un circuito con el que medir la capacidad del condensador, pero para este tipo de circuitos la variación de la capacidad

del

condensador

al

tocarlo

debe

ser

bastante

significante, ya que habría que medir el condensador en sí, y no el efecto de esa variación.

En cuanto a los sensores de nivel, se podría utilizar un sensor comercial, por ejemplo un flotador colocado en los puntos críticos de ambos depósitos, que activaría unas señales cuando el agua los cubriera, o en el caso del desagüe, los dejara de cubrir. En este caso he optado por aprovechar el cambio de impedancia que sufrirían dos electrodos al entrar en contacto con el agua. Al igual que con el sensor táctil capacitivo, tendremos que buscar un método para medir esa variación, ya sea midiendo directamente la resistencia, o el efecto de su variación en un conjunto. Habrá que tener 2 sensores de nivel, uno por cada depósito, que deberán estar calibrados

correctamente

para

que

el

lavabo

este

bien

automatizado.

7

El sistema consta una serie de alarmas controladas por el microprocesador, estas alarmas son acústicas, y avisan al usuario que alguna situación crítica va a ocurrir, bien sea el desbordamiento del depósito del desagüe, o que el depósito general se haya vaciado tanto que ponga el peligro el buen funcionamiento de la bomba. Las alarmas se transmitirán gracias a un altavoz que recibirá la señal de control del microprocesador.

Como último elemento a destacar es

la bomba. será una

bomba que tenga suficiente potencia como para elevar el agua del depósito principal al grifo. Esta bomba será activada a través de una señal

del

microprocesador,

que

a

través

de

un

circuito

acondicionador, alimentará la bomba. La bomba estará protegida ante el funcionamiento en vacio por el sensor de nivel, que mediante su lectura, el microprocesador verá si se puede seguir bombeando agua, o por el contrario si se repite un ciclo más, la bomba trabajaría en vacio.

8

2.- DISEÑO DEL SISTEMA

9

2.- DISEÑO DEL SISTEMA: En este capítulo se hará una descripción más profunda del sistema, para ello me ayudare del siguiente diagrama de bloques:

Figura 2: Diagrama de bloques del sistema

2.1.- El microprocesador Como podemos ver en el anterior diagrama de bloques, la pieza fundamental del sistema es el microprocesador de la familia 8051, más concretamente el utilizado para realizar este proyecto será el Toostick 330DC de la compañía Silicon Labs. Este microprocesador posee entre otras muchas cosas un oscilador 10

interno de 24.5MHz,una memoria flash de 8Kb, un conversor A/DD/A de 10 bits, y 17 puertos digitales configurables de entrada y salida. En este proyecto se utilizaran principalmente los puertos de entrada y salida, para generar las distintas señales de control. También se utilizaran las 2 interrupciones INT0, e INT1, para adquirir la salida de diferentes circuitos. El convertidor A/D se configurará en modo diferencial para controlar la presión. Además se utilizaran los timers y otros recursos del microprocesador.

2.2.- Sensor táctil capacitivo El sensor táctil capacitivo es uno de los bloques del sistema más importantes, ya que si no se diseña bien, puede que el agua este saliendo constantemente, además tiene la dificultad de que la variación que se produce en un condensador al contacto humano no es muy grande. Para poder observar los efectos del contacto, he construido un oscilador que aumenta su frecuencia cuando un condensador es tocado. El oscilador se ha construido utilizando una puerta NAND con trigger Schmitt de 2 entradas. Una de las entradas, la patilla1, estará conectada a la patilla de control, que se activará cuando queramos saber si alguien está tocando, (en este caso, siempre estaremos controlando si alguien toca, es decir, la patilla de control irá directamente a Vdd). En la otra patilla irá conectado un circuito RC, la resistencia se conectará entre la salida de la puerta NAND, y la patilla libre. A continuación se conectará un condensador entre la patilla 2 y tierra, y otro condensador tendrá uno de sus terminales conectados a la patilla 2 y el otro terminal estará al aire, en este 11

terminal es donde se extenderá un cable hasta el grifo, para que cuando sea tocado, cambie la capacidad de ese condensador, y por tanto el sistema oscile a mayor frecuencia. Para que el número de oscilaciones sea fácil de medir por el microprocesador, he decidido que el sistema oscile a unos 20 KHz, y para ello en lugar de poner una simple resistencia, utilizaremos un potenciómetro, para poder regular el número de oscilaciones.

El oscilador siempre estará activo mientras la patilla de control se mantenga a 1, si la patilla de control es 0, la salida del oscilador será continua y con valor Vdd. La salida del oscilador se conectará a la patilla P0.2 del microprocesador, que es la correspondiente a la interrupción externa 0 (INT 0). Esta interrupción se activa por flanco de bajada, por lo que para medir la frecuencia del oscilador, solo habrá que contar el numero de flancos de bajada que se produce en un tiempo determinado, para medir la frecuencia directamente en Hz, medimos los flancos durante un minuto. Una vez hemos medido esa frecuencia, la guardamos en una variable, y la comparamos con la frecuencia anterior, si la frecuencia es ostensiblemente mayor, significa que se ha tocado el grifo, por lo que se activará la bomba durante 20 segundos. Siempre antes de activar la bomba, se verifican los niveles de los depósitos, por si se producirá una situación crítica. En la figura siguiente se ve un ejemplo de funcionamiento del bloque, al tocar el grifo, el oscilador aumenta su frecuencia.

12

Figura 3 : Funcionamiento del sensor táctil

2.3.- Sensores de nivel El bloque compuesto por los 2 sensores de nivel, es el bloque más crítico del sistema, ya que de su correcto funcionamiento dependen la integridad de la bomba (que no trabaje en vacio) y el desbordamiento del depósito de desagüe, además un mal funcionamiento de estos provoca el mal funcionamiento general, ya que el microprocesador no dará la orden

a la bomba de que

arranque. Los sensores de nivel han sido diseñados aprovechando la variación de impedancia de un electrodo al sumergirse en el agua. Esta variación la aprovecharemos a través de un oscilador, que varíe su frecuencia en función del volumen de agua que cubra el electrodo. Al igual que en el sensor táctil capacitivo, el oscilador se construirá con una puerta NAND con trigger Schmitt, en este caso se necesitaran 2 puertas NAND, una por cada sensor. Una de las 13

patillas de la puerta NAND irá conectada a una señal de control, que saldrá directamente del microprocesador. A la otra patilla irá conectada una resistencia, cuyo extremo opuesto se conectará a la salida de la puerta NAND. Además en esta segunda patilla irá conectado un condensador entre ella y tierra. Con estos componentes conseguimos que el oscilador empiece a funcionar siempre y cuando por la patilla de control se reciba un 1 lógico. Una vez construido el oscilador, hay que acoplar los electrodos, estos estarán situados en un lado del depósito, y cada electrodo ira conectado con el oscilador, uno en la patilla 2, y otro a la salida, quedando en paralelo con la resistencia. Con este montaje, cuando el electrodo no esté cubierto por el agua, el oscilador funcionará a una frecuencia proporcional a la que le marque el circuito RC, y según vaya siendo cubierto por el agua, la frecuencia a la que oscila se irá incrementando. Hay que resaltar que los electrodos no están expuestos a corriente continua por lo que su funcionamiento será óptimo ya que se evitará la electrólisis. El diseño de los dos osciladores para los depósitos es el mismo, y al igual que en el caso del sensor táctil capacitivo, en lugar de resistencias colocaremos potenciómetros para tener un ajuste fino de la frecuencia de oscilación de ambos. El problema que se presenta en este caso es la adquisición de la salida, ya que el microprocesador que vamos a utilizar, solo tiene 2 entradas dedicadas a interrupciones externas, y una de ellas, la P0.2, ya ha sido utilizada en el sensor táctil. Una de las opciones seria

utilizar

un

multiplexor

controlado

también

desde

el

microprocesador, que iría variando la salida de los dos osciladores, por lo que se podría medir a través del conteo de flancos de bajada. 14

Está opción implicaría tener un circuito integrado más en el sistema, y la utilización de un pin del microprocesador para su control. La opción elegida ha sido utilizando una puerta NAND con trigger Schmitt, a la cual se le acoplarán las salida de los 2 inversores, una en cada patilla, y la salida irá conectada directamente al pin dedicado a la interrupción externa 1 ( INT1), que es el P0.3. Con este método nos ahorramos la adquisición de un circuito integrado, ya que cada pastilla del circuito integrado de puertas NAND con trigger Schmitt, contiene 4. La única precaución que hay que tener en cuenta es que las señales de control de ambos osciladores no estén a ‘1’ al mismo tiempo, ya que ambos osciladores funcionarían a distintas frecuencias, y la salida seria una mezcla de las dos. Los pines del microprocesador utilizados para sacar las señales de control son: el pin P1.1, para el control del depósito general, y el pin P1.2 para el control del oscilador del depósito de desagüe. Así si, por ejemplo, queremos medir la frecuencia del oscilador del depósito de desagüe, es decir contar el numero de flancos de bajada en un tiempo determinado, pondremos la señal de control del depósito de desagüe a 1, por lo que a la salida del oscilador habrá una señal cuadrada, al mismo tiempo ponemos la señal de control del depósito principal a ‘0’, por lo que a la salida del oscilador de ese depósito habrá un ‘1’ lógico. Estas dos señales que hemos obtenido, las introducimos respectivamente por las patillas de otra NAND con trigger Schmitt, y a la salida de está tendremos la salida del oscilador del depósito de desagüe. Si queremos medir la frecuencia del oscilador del depósito principal habrá que invertir las señales de control, y a la salida obtendremos la oscilación deseada.

15

Otra cuestión muy importante es el número de flancos de bajada que puede contar el micro, como al cubrir los electrodos casi por completo, la impedancia que presentan estos es casi nula, la resistencia colocada en paralelo con estos se ‘elimina’, dando lugar a un circuito RC muy diferente a las condiciones de partida, por lo que la frecuencia variara de forma muy significante. Debido a ello hay que encontrar un equilibrio entre la frecuencia del oscilador en ‘seco’, y su frecuencia de oscilación cuando los electrodos están completamente cubiertos por agua. En este caso para hacer medidas fiables, sin que se desbordara el microprocesador, y que puedan ser consideradas como válidas, hemos tenido que bajar el tiempo durante el cual se cuentan los flancos de bajada provenientes de las oscilaciones de los depósitos.

2.4.- Bomba El bloque de la bomba está constituido por la propia bomba, un relé que permite el disparó de la bomba, y un circuito de arranque del relé. El circuito de arranque del relé está constituido por un par Darlington, este proporciona una gran ganancia de corriente que permite activar el relé y por tanto la bomba. El relé elegido es el Type 40.51 de la marca Finder, que trabaja a 6 voltios DC.

16

2.5.- Sistema de alarma La parte principal del sistema de alarmas es el software, ya que el único elemento hardware que hay que añadir al sistema es un altavoz. Este altavoz será controlado por el microprocesador a través del pin P1.3. La alarma se activará cuando se produzcan situaciones críticas en los niveles de depósito, cada vez que las frecuencias de los osciladores sobrepasen el umbral fijado por la calibración previa, se emitirá una señal acústica para alertar al usuario del peligro de la situación.

2.6.- Sensor de presión La parte correspondiente al sensor de presión utilizara el conversor AD que tiene el microprocesador. Este conversor estará configurado en modo diferencial, es decir, se medirá la variación de tensión entre sus pines. Estos pines son los pines P1.5 (ADC+) y P1.7 (ADC-), ambos soportan una tensión comprendida entre 0 y 3.3V. El sistema encargado de acondicionar la variación de resistencia que ofrece el sensor de presión, es un puente de Wheatstone, que conectado a la etapa inicial de un amplificador de instrumentación, podrá mostrar a la salida de esta una tensión diferencial proporcional a la variación de presión. La etapa que se utiliza de un amplificador de instrumentación está compuesta por dos amplificadores normales, a los cuales se les ha añadido una red de resistencias, que hacen que se conecte la patilla negativa de cada amplificador, con su respectiva salida, y además otra 17

resistencia uniendo las dos patillas negativas de los amplificadores. Por las patillas positivas se introducirá la salida del puente de Wheatstone. Las salidas de esta primera etapa de un amplificador de instrumentación son conectadas directamente a las patillas correspondientes del ADC del microprocesador. Esta variación será tratada por el microprocesador, y se decidirá si se debe aumentar o disminuir la presión de salida del agua.

2.7.- Sistema de Calibrado En el sistema de calibrado, también se utiliza el sistema de sensores de nivel, la única novedad que se introduce es un interruptor que se utilizará para informar al sistema que queremos realizar una calibración. Este interruptor estará conectado al pin 1.0 del microprocesador. El sistema de calibrado es necesario para el correcto funcionamiento del sistema de alarmas. Este sistema tiene su parte principal en el software, ya que lo que se hace es que cuando se pide la opción de calibrado, se pide que se llene ambos depósitos hasta sus puntos críticos. Una vez hecho esto, se mide el número de oscilaciones del sistema en estado crítico y se almacena en una variable, que será con la que compararemos las diferentes frecuencias de oscilación a lo largo de su uso, y por tanto, gracias a este sistema se evitará que por culpa de diferentes características en la instalación de uso, (diferente composición de agua, diferente tamaño de depósitos, etc.) que en el laboratorio, se produzcan errores.

18

3.- DISEÑO DEL CIRCUITO

19

3.- DISEÑO DEL CIRCUITO A continuación podemos ver un esquema eléctrico del sistema.

Figura 4: Esquema eléctrico del sistema 20

Como se puede observar en el anterior esquema, el bloque de control de presión no está conectado al microprocesador ya que en este caso, el bloque solo se diseñará y no se implementará, también se puede observar la falta del sistema de alarma, pero este está dentro del bloque del microprocesador ya que solo es un ‘altavoz’.

3.1.-El microprocesador En la siguiente figura, se puede ver las diferentes conexiones del microprocesador, a excepción de las ya mencionadas.

Figura 5: esquema de conexiones del microprocesador

Como podemos ver, el circuito integrado que vamos a utilizar, y que contiene

en

su

interior

el

microprocesador, consta de 16 pines accesibles, además de los pines de

21

alimentación, tierra, reset, un pin que permite la configuración de funcionamiento C2D y el pin P2.0 que se utiliza para la configuración de I/O. En la siguiente figura vemos todos los pines detallados anteriormente.

3.2.- Sensor táctil capacitivo La siguiente figura representa el esquema eléctrico del bloque del sensor táctil capacitivo

Figura 6: esquema eléctrico del sensor táctil capacitivo.

Como podemos observar, la pieza central es un circuito integrado CD4093, que contiene en su interior 4 puertas NAND con trigger Schmitt, en este bloque se utiliza solo una puerta. Para hacer oscilar el sistema, primero tenemos que poner una de sus patillas a ‘1’ lógico, después hay que calcular el valor del circuito RC para que la frecuencia de oscilación sea medible por el sistema, en este caso se ha elegido una frecuencia de oscilación de 20 KHz, por lo que si 22

llamamos t1 al TOff de nuestra onda, t2 al Ton, Vt+ a la tensión que se carga el condensador y Vt- a la tensión hasta la que se descarga el condensador: t1 = RC ln [(VDD - VT-)/(VDD - VT+)] t2 = RC ln [VT+/VT-]





=



       

Despejando de la ecuación RC, y particularizando para una frecuencia de 20 KHz, Vdd=5V y para un valor de C = 10nF, la resistencia será de un valor aproximado de 12 KΩ. Como se comento en el capitulo anterior, pondremos un potenciómetro para tener un ajuste fino de la frecuencia de oscilación. A continuación se incluye una simulación hecha con el programa Orcad Pspice, en la que se ve la influencia de un condensador parasito, de 150 pF, que es la capacidad parásita de un cuerpo humano bien aislado.

Figura 7: Oscilación sin condensador parásito

23

Figura 8: Oscilación con condensador parásito

Comparando las 2 capturas, se puede observar en las marcas, que con el condensador parásito aumenta la frecuencia más de un hertzio. Esto es para componente ideales, y capacidad parásita con aislamiento total, en la realidad, las variaciones de frecuencias que se producen están en torno a los 50-100Hz, por lo que es muy fácil medir esta variación con un micro.

3.3.- Sensores de nivel En la figura 7 se puede observar un esquema eléctrico del bloque de sensores de nivel. Como podemos ver, se utilizan 3 NAND con trigger Schmitt del circuito integrado CD4093B, por lo que con la que ya está ocupada por el sensor táctil capacitivo, se aprovecha todo el circuito integrado. Como se puede apreciar, hay 2 Jumper`s o conectores, donde irán conectados los electrodos de cada depósito. Al igual que con el oscilador anterior, hay 2 potenciómetros que permitirán ajustar con precisión la frecuencia de oscilación. 24

Figura 9: Esquema eléctrico de los sensores de nivel

A continuación se muestra la simulación de la salida del anterior circuito, en la que habrá dos frecuencias de oscilación muy diferentes. Hay una diferencia con el anterior circuito, en lugar de dos señales de control diferentes, incluiré una señal cuadrada, con un inversor, para que la simulación resulte más clara.

Figura 10: Salida del sistema de niveles

25

Figura 11: Salida del oscilador del depósito principal

Figura 12: Salida del oscilador del depósito de desagüe

Como podemos observar en las anteriores simulaciones, el sistema funciona correctamente, ya que a la salida del bloque principal (Figura 8), se intercalan las señales de los dos osciladores. En la salida del depósito de desagüe, la señal parece que no es cuadrada cuando oscila, esto es debido a que la frecuencia es demasiado pequeña para que en cada oscilación halla más de un punto, por ello, parece que no está bien.

26

3.4.- Bomba El siguiente esquema representa el circuito de arranque y control de la bomba. Este circuito está constituido por un par Darlington, formado por dos transistores, BC547 y BC337, el primero recibe la señal del control de bomba que sale del microprocesador por el pin P1.4, además se ha añadido un diodo en paralelo con la bobina del relé, para absorber posibles tensiones ‘sobrantes’. El relé utilizado será un relé Type 40.51 de la marca finder, que trabaja a 6 voltios.

Figura 13: Circuito de activación de la bomba.

3.5.- Sistema de alarma El sistema de alarma está compuesto por el pin del micro P1.3 y un altavoz. Es un sistema muy simple que tiene en el software su parte principal. Como ya ha sido mencionado antes, el altavoz emitirá una señal acústica cuando se produzca una situación de riesgo en el sistema. 27

3.6.- Sensor de presión En la siguiente figura se representa el esquema eléctrico del sensor de presión. Este sensor solo será diseñado, pero no se implementará en el modelo final

Figura 14: Esquema eléctrico del sensor de presión

Como podemos observar, la parte principal del sensor de presión está compuesto por dos amplificadores operacionales LM324 y 3 resistencias, que conforman la etapa inicial de un amplificador de instrumentación. Es sistema también consta de una serie de resistencias en la parte de adquisición de la señal, donde hay un conector para que esta sea introducida. Como vemos la salida del sistema está conectada a los pines del ADC (P1.5 y P1.7) del micro, como ya se mencionó antes, el ADC se configurará en modo diferencial. 28

3.7.- Sistema de calibrado Al igual que el sistema de alarma, el sistema de calibrado consta de una parte de hardware muy pequeña. El sistema de calibrado está compuesto por un interruptor conectado a Vdd y a la patilla P1.0 del microprocesador. El sistema de calibrado, también utiliza el sistema de sensores de nivel, lo único que hacemos con el interruptor, es decirle al microprocesador cuando queremos calibrar el sistema.

3.8.- Regulador de tensión El siguiente esquema muestra el regulador de tensión construido para alimentar el microprocesador.

Figura 15: Esquema eléctrico del regulador de tensión

El regulador diseñado debe proporcionar al microprocesador una tensión de entre 3 y 3.6V, por lo que utilizando un circuito 29

integrado como el LM117, que es un regulador de voltaje positivo, y dos resistencias, una de ellas ajustables, se puede conseguir un gran rango de tensiones desde 1.2 hasta 25V.

30

4.- DISEÑO DEL SOFTWARE

31

4.- DISEÑO DEL SOFTWARE: El software es una parte muy importante del sistema, en algunos bloques prácticamente lo es todo.

A continuación se

muestra un esquema del funcionamiento del programa.

INICIO

Has elegido calibrado

Si

Petición de llenado de depósitos a niveles críticos

No Almacenamiento de niveles críticos

Error

Comprobar depósitos

Alarma

Ok No Has tocado el grifo

Si Activar bomba durante 20 segundos

32

El programa comienza con la llamada a las bibliotecas que se van a utilizar dentro del mismo, en este caso la librería stdio.h, que como es sabido contiene las principales funciones de uso común, como printf. También se utiliza el archivo configuración.h donde están definidos los diferentes parámetros con los que el microprocesador va a operar, como por ejemplo las interrupciones habilitadas, etc. Posteriormente se declaran las variables globales, es decir, aquellas variables que son utilizadas en todo el programa, tanto en el programa principal, como en las diferentes llamadas a rutinas de interrupción. Por último antes de comenzar con el programa principal están las definiciones de las funciones, en este caso la función Init_Device, que se utiliza para la configuración del microprocesador, y que en el anterior esquema correspondería al inicio. También se define una función que gestiona el sistema de alarma.

El programa principal, es decir, la función main, comienza con la llamada a la función Init_Device, y la configuración de algunos registros y variables. Posteriormente, encontramos un bucle infinito, y dentro de este, nuestro programa. Lo primero que comprobamos es si la opción de calibrado está activada, es decir, si mediante el interruptor de calibre, se permite que llegue Vdd al pin P1.0. En el caso de que se quiera calibrar el sistema, se pide al usuario que llene los depósitos hasta sus niveles críticos, el depósito principal hasta que la bomba comience a trabajar en vacio, y el depósito de desagüe hasta que se llene (evidentemente se dejará un pequeño margen en esos niveles). Una vez llenos los depósitos, se medirá el numero de flancos de 33

bajada de cada uno, en un tiempo determinado. Estas oscilaciones son guardadas en dos variables de tipo unsigned int, calibre1 para el depósito principal, y calibre2 para el depósito de desagüe. Una vez se halla calibrado o no el sistema, lo primero que se hace es una comprobación del nivel de los depósitos. El sistema de medición del nivel es el mismo que en el sistema de calibrado, la única diferencia es el lugar donde se guardan los resultados de los niveles. El número de flancos se calcula gracias a las rutinas de atención de interrupción del timer0 y de la interrupción INT1, que se activa automáticamente con cada flanco de bajada detectado en su patilla de entrada P0.3. La frecuencia a la que oscila el sistema se mide con un simple método: se determina el tiempo que se quiere medir los flancos de bajada, se incrementa una variable en el Timer0, teniendo en cuenta que este se activa automáticamente 31 veces por segundo, y cuando la variable ha llegado a un número determinado, (en este programa 15) guardamos el numero de flancos contabilizados en ese tiempo. En el programa lo que se hace es en la primera mitad del tiempo se cuentan el numero de flancos de bajada que se obtienen del oscilador del depósito principal, y en la segunda mitad de tiempo, se cuentan los flancos del depósito de desagüe. Una vez obtenidos el número de flancos correspondientes a los niveles de los depósitos, estos se comparan con los guardados en las variables calibre1, y calibre2. A continuación se presenta un pequeño esquema de cómo se mide el nivel de los depósitos, además se incluye la comparación con las variables y la llamada a la función alarma.

34

INICIO

¿Contador bomba

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.