PROYECTO INVERNADERO

July 14, 2019 | Author: Gil Fernando Dueñas Prieto | Category: Microcontrolador, Compilador, Bit, Electrónica, Transistor
Share Embed Donate


Short Description

Materia: microcontroladores...

Description

INSTITUTO TECNOLOGICO DE CHIHUAHUA

PROYECTO MICROCONTROLADORES INVERNADERO

DANIEL RODRIGUEZ SALGADO GIL FERNANDO DUEÑAS PRIETO MICROCONTROLADORES MAESTRO: ING. JORGE AGUIRRE BELTRÁN  A JUNIO 2014

INDICE INTRODUCCION OBJETIVO

2

JUSTIFICACION LIMITACION DEL PROYECTO

3

DIAGRAMA DE CONTROL PROYECTO

4

CAPITULO 1.-Entrada de Datos

4

CAPITULO 2.-Controlador

6

CAPITULO 3.-Acondicionamiento de señal

19

CONCLUSIONES

22

1

1.-Introducción

El conocimiento de un micro controlador permite al ingeniero en electrónica solucionar o eficientizar situaciones que tiene a su alrededor por ello, toda una preparación previa es necesaria desde el conocimiento básico de los circuitos eléctricos, programación, hasta la operación básica de un computador. E s en esta asignatura reúne todos estos conocimientos y permite como habíamos mencionado facilitar el control de cualquier proceso que se desee. El siguiente trabajo engloba contenidos abordados a lo largo del curso de microcontroladores en un proyecto de control de invernadero, donde a través de una maqueta se simula dicho invernadero y mediante un microcontrolador se realizan las tareas de control. El proyecto contiene una clave de acceso para que al ingresar la contraseña correcta se entre al sistema invernadero y se despliegue un menú de opciones en la pantalla LCD eligiendo el usuario la variable a controlar como en este caso es un reloj, controlar temperatura del invernadero, medir el llenado de fluido de un contenedor entre otras funciones que se especificaran posteriormente. Este tipo de proyectos relacionados al control de habitaciones, casas o invernaderos se le denomina como domótica un área bastante concurrida para trabajos bien privados o en una empresa en especial. Lo fundamental es englobar los conocimientos y englobarlos en una sola idea que refleje que lo aprendido en clase es capaz de aterrizarse en cualquier proceso que se requiera un control. 2.-Objetivo

Diseñar un proyecto específico de control mediante un microcontrolador de la familia PIC el cual se capaz de reunir todos los conocimientos básicos de la electrónica digital que permita relacionar el aspecto teórico-práctico de dicha área de la ingeniería.

2

3.-Justificación

El conocer cualquier microcontrolador da la capacidad de controlar cualquier proceso que se requiera, es una etapa importante de la electrónica ya que permite la activación de mecanismos que realicen una función específica. Existen microcontroladores más avanzados que tienen por objeto facilitar aún más la programación que en el caso de los PIC es aquí donde el estudiante al haber llevado una preparación en electrónica digital es capaz de elegir el microcontrolador que mejor le satisfaga y necesite, es decir, el conocimiento de cualquier microcontrolador da hincapié a que se pueda estudiar cualquier otro dado que es la misma metodología de análisis. 4.- Limitación del proyecto

Esta asignatura se vio contenidos básicos como la entrada y salida de datos hasta los diferentes protocolos de comunicación entre microcontroladores. Para el caso de nuestro proyecto vimos la necesidad solo de aplicar

los siguientes

conocimientos en un lenguaje de programación en C: TEMAS DE MICROCONTROLADORES APLICADOS AL PROYECTO Entrada y Salida de datos Menú de Rota Teclado Matricial Utilizando Pantalla LCD

• •



TIMER Control por TRM0 Interrupcion por TMR0





Covertidor Analógico-Digital Sensor de Temperatura LM35 Otros sensores ON-OFF





Programacion Lenguaje C Uso de arreglos Uso de Funciones Uso de ciclos de repeticion Uso de Switchcase

• • •



Contadores Contadores Acendentes Acumuladores Uso y Ajuste de Reloj



• •



3

5.-Diagrama de control del proyecto Invernadero

CAPITULO 1.-ENTRADA DE DATOS

La entrada de datos es por donde se empieza el proyecto del invernadero, a través de la entrada de datos es posible ajustar el control del fenómeno, son los pulsos que el controlador será capaz de reconocer para adaptarlos a una salida deseada. El microcontrolador como se especifica en el diagrama anterior corresponde al PIC18F4550 que es un modelo de la alta gama de la familia 18f, posee entre otras características comparadores, timers de 8 y 16 bit, así como la comunicación serial.  A continuación se presenta el diagrama de pines del microcontrolador PIC18F4550 donde se señala las entradas y salidas a utilizar en el proyecto. Puerto A.- Al ser un puerto Análogo se configuro

de la siguiente forma: An0.-Entrada Análoga-Digital para sensor LM35 An1.-Entrada para sensor ON-OFF encargado de

sensar llenado de agua An3.-Ajuste de Horas para el reloj

4

An5.- Ajuste de minutos para el reloj. Puerto B.- Al ser de 8 pines es destinado al teclado matricial hexadecimal 4x4 por

la librería manejada. Puerto C.-Configurada como salidas es aquí donde se procederá a acondicionar

la señal para la carga, se usaron los siguientes pines: C0.-Prender Led Ultra brillante: Cuando se active correctamente la contraseña del invernadero es un indicador de que se entró al sistema C1.-Buzzer.-En caso de errar en la contraseña de ingreso al sistema sonara el buscar indicando una alarma. C2.-Abanico.- Al indicar el sensor de temperatura LM35 un límite establecido se encenderá un abanico. C6.-Bomba: El llenado de Agua se verá afectado por una bomba que se activara por un tiempo establecido. Puerto D.- Definido por la librería LCD.C para la pantalla LCD 16x2 Puerto E.- Al ser de 4 pines incluido el reset se utilizara para elegir la opción del

menú de opciones. Posteriormente se analizaran las características de cada elemento que interviene en el proceso, solamente aquí se especificó la utilización de los pines del microcontrolador que permitan la ubicación de ellos en el proyecto.

5

CAPITULO 2.-CONTROLADOR

La parte fundamental y de estudio se centra en este capítulo a continuación se mostrara en otro diagrama la función física del proyecto.

6

2.-Diagrama Esquemático en simulador Proteus

 A continuación se presenta el diseño en proteus para el PIC18F4550.

ABANICO BUZZER RESISTENCIAS O BUFFER

BOMBA

RP1

TECLADO 4X4 HEXA  A

7

8

LM35

9

4

5

6 36.0

1

2

3

D

ON C

0

=

+

    3

4

2

LM016L

RESPACK-7

C

    1

LCD1

1

U2

1 B

LED ULTRABRRILLANTE

8 7 6 5 4 3 2

VOUT

3

    1    2    3

LM35

CRYSTAL

33 34 35 36 37 38 39 40

R4 R5

RA0/AN0 RC0/T1OSO/T1CKI RA1/AN1 RC1/T1OSI/CCP2/UOE RA2/AN2/VREF-/CVREF RC2/CCP1/P1A RA3/AN3/VREF+ RC4/D-/VM RA4/T0CKI/C1OUT/RCV RC5/D+/VP RA5/AN4/SS/LVDIN/C2OUT RC6/TX/CK RA6/OSC2/CLKO RC7/RX/DT/SDO OSC1/CLKI RB0/AN12/INT0/FLT0/SDI/SDA RB1/AN10/INT1/SCK/SCL RB2/AN8/INT2/VMO RB3/AN9/CCP2/VPO RB4/AN11/KBI0/CSSPP RB5/KBI1/PGM RB6/KBI2/PGC RB7/KBI3/PGD

    3    4  O      F      F     

10k

 O      N     

    4    5    6

LCD 16X2

    7    8    9    0    1     1    2    3    4     1     1    1    1

U1 2 3 4 5 6 7 14 13

X1

10k

    S    D    E     0    1    2    3    4    5    6    7     S    D    E     S    W     V    V    V     R    R    E     D    D    D    D    D    D    D    D

0 2

DSW2 DIPSW_2

18

VUSB PIC18F4550

RD0/SPP0 RD1/SPP1 RD2/SPP2 RD3/SPP3 RD4/SPP4 RD5/SPP5/P1B RD6/SPP6/P1C RD7/SPP7/P1D RE0/AN5/CK1SPP RE1/AN6/CK2SPP RE2/AN7/OESPP RE3/MCLR/VPP

15 16 17 23 24 25 26

19 20 21 22 27 28 29 30 8 9 10 1

R2 R1 10k 10k

R3 10k

    2    1

DSW1

AJUSTE RELOJ

OFF

6 5 4

ON

1 2 3

DIPSW_3

MENU DE OPCIONES

3.-Descripcion del código en lenguaje C del Proyecto Invernadero

El código pertenece a lo que va a ejecutar le microcontrolador ante determinadas entradas, el código se elaborado mediante el compilador MPLAB CCS en lenguaje C. El lenguaje C facilita la programación al tener estruc turas de repetición e instrucciones precisas de configuración. La única desventaja que tiene el programar en C es que evita al diseñador comprender la arquitectura del microcontrolador. Se presenta el código de forma general:

7

CODIGO LENGUAJE C PROYECTO INVERNADERO PIC 18F4550

DIRECTIVAS

DECLARACION VARIABLES Y FUNCIONES

PROGRAMA PRINCIPAL MAIN

8

CLAVE 4 DIGITOS

MENU DE OPCIONES

9

FUNCIONES ESPECÍFICAS DEL MENU

10

3.1.-Directivas

Cualquier programa en cualquier lenguaje comienza determinando la cabecera o directivas, se sabe que una directiva es una instrucción o imperativo al compilador para su configuración, sin estas directivas no nos es posible trabajar con el microcontrolador de la forma que se desea. Incluyendo en primera instancia la librería para el pic a trabajar (18F4550.H) posteriormente la localidad de memoria de datos 0x81 es el registro Opción Reg el cual se asignó a la variable OPTION REG. Convertidor Análogo Digital

Para el trabajo con el convertidor análogo se sabe que el microcontrolador es capaz de trabajar con resoluciones de 8 bits o 10 esto significa que si suponemos un voltaje máximo de 5 volts para una resolución de 8 bits representa la cantidad 255 y para la resolución de 10 significaría un valor de 1023. A mayor resolución es el muestreo análogo. Uso del TMR0

Se configura el prescaler con un factor de división de 1/256. Esto quiere decir que debido al cristal de 4Mhz cada 256 microsegundos se genera una cuenta en el registro contador TMR0, por tal razón se inicializa el TMR0 con un 12 al inicio para que cada 244 cuentas se desborde el TMR0 y provoque una interrupción. Dentro de la rutina de servicio de interrupción se tiene un contador que detectara cuando 11

el microcontrolador se haya interrumpido 16 veces obteniendo una cuenta de aproximadamente de 1 segundo de la siguiente forma: 256*244*16= 999,424 Microsegundos. Debido a que el TMR0 del microcontrolador 18F4455 es de 16 bits (65536 cuentas para el sobreflujo) entonces la cuenta de inicio seria de 65292 para que cada 244 cuentas se desborde el TMR0 y provoque una interrupción. La fórmula quedaría de la siguiente manera:

256*244*16= 999,424 Microsegundos.

Librerías LCD y KBD

Son librerías incluidas en el compilador solamente que para el teclado matricial se cambió la librería para poder usar un teclado hexadecimal 4x4 (lcd.c y kbd.c) 3.-2 Declaración de Variables y Funciones

La primera parte consiste en declarar variables globales a utilizar en el programa se tiene las variables del reloj seg,min, hr declaradas como enteras debido a la naturaleza del programa reloj, estas variables son inicializadas para evitar tomen un valor aleatorio.

12

Después tenemos que definir una constante tipo carácter que es la clave de acceso al sistema, esta constante definida como “contra”   se comparara con los datos que se ingresaran al teclado matricial, en este caso de manera arbitraria se asignó la contraseña 1,2,3,4. Al ser un dato constante e inmodificable es posible guardarlo en la memoria ROM del PIC. Interrupción #INT_RTCC

 Al declarar en la variable cuenta 65536 estamos estableciendo que cada 244 “cuentas” se interrum pa por desborde del TMR0 el microcontrolador. Como las

interrupciones son tiempos muy cortos debidos la velocidad de trabajo del PIC se estableció una variable que contadora que acumula las veces que se haya interrumpido el microcontrolador de tal forma que para aproximadamente de 950 a 960 interrupciones se establece un minuto y para 160 veces que se interrumpa son 10 segundos. Esto en la práctica representa que la bomba de agua se activara cada minuto haciendo el suministro de agua por aproximadamente 10 segundos. Declaración de Funciones

Como el compilador ejecuta instrucciones de forma secuencial sin declarar las funciones a trabajar al momento de ejecutar dichas funciones no reconocerá las instrucciones. El tipo de funciones a utilizar corresponden a la naturaleza de “NO RECIBEN, NO REGRESAN ( datos)”.

13

3.3.-Programa Principal void main ()

Una vez configurado la forma en que operara físicamente el PIC además

de

las

variables

globales y funciones a lo largo del sistema, se ejecuta el programa principal void main() aquí se agregaron variables locales es decir que no son de utilidad en todo el sistema solamente

para

una

parte

especifica del programa. Char k.-variable para captar la información del telcado matricial Int i,j.- Universalmente conocidas en el lenguaje de programación como variables a incrementar, presentes en los contadores. PORT_B_PULLUPS (1).-Para un correcto funcionamiento del teclado se requiere configurar las resistencias de PULL UP el puerto B es el único puerto que posee esta tecnología. Set_Trix_x.- Configuramos el puerto e como entrada solamente de E0 A E2 debido a que E3 es el reset, el puerto C como salidas a la carga y el puerto A como entrada. Kbd_init ()/lcd_init ().- Función del compilador para inicializar el teclado y LCD 16x2. Configuración A0 como Análogo Con la función setup_adc_ports () definimos que pin del microcontrolador será trabajado como análogo, después comenzamos el reloj del convertidor entre ocho 14

y finalmente se selecciona el canal a trabajar recordando que el 18f4550 tiene hasta 13 canales análogos digitales. 3...4 Clave de Acceso

Se entra a un ciclo infinito que es lo que realizara una y otra vez el PIC iniciando con un mensaje de bienvenida “PROYECTO MICROS”. Después entramos a otro

ciclo while que es donde los datos que provienen del teclado se captaran, al definir una contraseña de cuatro dígitos solo se repetirá este ciclo cuatro veces, donde a la primera vez que entre al ciclo guardara la primera tecla presionada en el arreglo dato[i] después se incrementa i para guardar el segundo dato en la variable dato[i] que en este caso será dato [1] y así consecutivamente hasta completar los cuatro dígitos. Con el condicionante if se evalúa si la constante tipo carácter contra=1, 2, 3,4 corresponde al dato que se introdujo con el teclado matricial pero si se observa se RESPETA el orden en que se encuentra la constante con respecto al orden en que se introdujeron dato por dato a través del teclado matricial.  Ahora bien, en caso de estar correcta la contraseña es decir, contra=dato==1,2,3,4 se procederá a la siguiente parte del programa que es el 15

MENU DE OPCIONES y prendera el primer indicador que es el LED ULTRABRILLANTE lo que simulara en la maqueta que esta prendida la luz del sistema. En caso de tener mal la contraseña establecida, se procederá a volver a ingresar la contraseña 2 veces más, si los intentos fueron tres y no se acertó entonces se procede a bloquear el teclado matricial por dos segundos y activar una alarma que se encuentra representada por un buzzer. 3.5.-Menú de Opciones

Es el culmen del proyecto, representa en su código un gran abanico de aplicaciones que incluso vemos a diario en un horno de microondas, un sistema de seguridad, un cajero automático o bien en el menú de la televisión. Se trata del Menú de Opciones que a partir de aquí se selecciona la variable a controlar, el ingreso de la variable se encuentra por el puerto E como se mencionó anteriormente. La opción 0x01 es un reloj digital mostrado en LCD, la opción 0x02 16

ingresa a la función temp () que es el control de temperatura a través del sensor LM35, este sensor actuara por el pin AN0 que es el pin que se configuro como análogo. La opción 0x03 llama a la función checa que simplemente a través de un sensor ON-OFF revisa si nuestro contenedor está lleno o vacío, de ahí la característica ON-OFF. La última opción 0x04 hace que al terminar de utilizar nuestro sistema se proceda ahora a cerrarlo, esto con la instrucción reset_cpu () que nos lleva al inicio del programa que es ingresar la clave de ingreso nuevamente. 3.6.-Funciones de control Reloj El programa del reloj consiste en ir incrementando variables e ir estableciendo límites sabiendo que un minuto son 60 seg y que un día son 24 horas. Entonces es que se utilizaron los pines A3 y A5 como el ajuste de horas y minutos respectivamente,

17

Temperatura

Haciendo uso del convertidor analógico digital es que podemos sensar temperatura a través del dispositivo lineal LM35, este sensor tiene la resolución de que por cada grado centígrado da una salida de 10 mv, de aquí es que se pudo desarrollar el algoritmo para poder sensar la temperatura teniendo en cuenta que para el pic 5 volts se tiene el valor 1023 por su resolución. El actuador que es un abanico se activara cuando la temperatura establecida este por encima de 33 grados Celsius

Llenado de Agua

El sensor utilizado se comporta como un interruptor de tal forma que cuando no existe llenado de agua marca como cero la entrada es decir se abre el interruptor, pero cuando se encuentra lleno el interruptor se cierra y permite un 1 lógico a la entrada A1. Cabe mencionar que al abrir el circuito al no poseer resistencia de pull up queda flotante y puede que en ocasiones marque como vacío-lleno en el LCD.

18

CAPITULO 3.-ACONDICIONAMIENTO DE SEÑAL

Una vez habiendo programado los pulsos o sea tener la etapa de control definida se procede a acoplar esos pulsos a una carga especifica se tiene que tomar en cuenta que el microcontrolador NO PROPORCIONA voltaje a la carga por lo que es necesario separar la etapa de potencia a la etapa de control. El siguiente esquema como debe adaptarse una señal proveniente de un microcontrolador PIC, ARDUINO, GAL o semejante.

Mecanismos que se pueden utilizar para acondicionar una señal. 1.-Optoacoplador 2.-Transistor.- TIP120, TIP41, 2N222, 2N3904 3.-Relevadores a 5 volts o dependiendo la carga a utilizar 4.-Diodos 5.-Resistencias

19

Carga a utilizar en el proyecto

1.-Abanico

CARACTERISTICAS: 12volts 120 mA El abanico es posible arrancarlo con un transistor donde el pulso vaya directo a la base del transistor, haciendo pruebas es posible arrancarlo con los mismos 5 volts de la fuente debido a la pequeña corriente manejada 2.-Sensor ON-OFF Es un flotador que representa un interruptor, cuando este se encuentra hasta abajo se encuentra normalmente abierto y cuando se desprende de la base donde hace contacto se cierra el interruptor.

3.-Bomba de Agua  Al ser un dispositivo que labora con corriente alterna a 120 volts es indispensable tomar precauciones al trabajar la bomba. Además se requiere que las tierras tanto del microcontrolador como la de la bomba o sean cero o preferentemente se encuentren aisladas por un optoacopladores. Se hace uso de un transistor 2n222 donde el emisor se encuentra directo a la bobina del relé.

20

Otros dispositivos: LED ULTRABRILLANTE Y BUZZER 5 VOLTS EVIDENCIAS

21

CONCLUSIONES 

El conocimiento de cualquier microcontrolador permite controlar procesos de cualquier índole



Para realizar un proceso de control se tienen que tomar en cuenta tres etapas: la entrada de datos, el control y el acondicionamiento de la señal



Se aplicaron temas de Timer,Convertior análogo digital, entradasalida de datos, Teclado matricial, Pantalla LCD 16x2, estructuras de repetición, Menú de opciones para la realización de este proyecto



Es necesario aislar la etapa de potencia a la etapa de control para evitar daños a todo el sistema de control.



Conocer las características de la carga a controlar así como la de los sensores constituye un paso importante a considerar en el acondicionamiento de señal



Para facilitar el proceso de codificaciones un programa en lenguaje en C se tiene que empezar por realizar cada etapa del programa para posteriormente integrar todas las partes en una sola.



Para el uso del timer se requiere establecer una variable cuenta que permita interrumpir un numero x de veces por desborde todo eso en función de si el timer es de 8 o 16 bits



El pic 18f4550 permite además de las funciones básicas de control establecer protocolos de comunicación como la USB, I2C entre otras en caso de que nuestro proyecto requiere ser controlado a distancia o por la computadora. 

El proyecto invernadero constituye una de las

tendencias que actualmente se hacen en el área de la domótica.

22

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF