Anda di halaman 1dari 24

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 2
OBJETIVO

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 Covertidor


TIMER Programacion Contadores
de datos Analógico-Digital
•Menú de Rota •Control por •Sensor de •Lenguaje C •Contadores
•Teclado TRM0 Temperatura •Uso de arreglos Acendentes
Matricial •Interrupcion LM35 •Uso de •Acumuladores
•Utilizando por TMR0 •Otros sensores Funciones •Uso y Ajuste de
Pantalla LCD ON-OFF •Uso de ciclos de Reloj
repeticion
•Uso de Switch-
case

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

An5.-Ajuste de minutos para el reloj.

4
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.

CAPITULO 2.-CONTROLADOR

5
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.

2.-Diagrama Esquemático en simulador Proteus

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

ABANICO
BUZZER

RESISTENCIAS O BUFFER BOMBA


RP1
8
7 LED ULTRABRRILLANTE
TECLADO 4X4 HEXA 6
LCD1
LM35 5
4
3
LM016L

2
A 7 8 9 1
1 U2
RESPACK-7
B 4 5 6

VDD
VSS

VEE
LCD 16X2

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7
36.0

E
0
1 2 3

1
2
3

4
5
6

7
8
9
10
11
12
13
14
C 2
VOUT

ON
D
C 0 = + 3 LM35

2
U1
15
1

RA0/AN0 RC0/T1OSO/T1CKI
3 16
RA1/AN1 RC1/T1OSI/CCP2/UOE
4 17
RA2/AN2/VREF-/CVREF RC2/CCP1/P1A
5 23
RA3/AN3/VREF+ RC4/D-/VM
6 24
RA4/T0CKI/C1OUT/RCV RC5/D+/VP
7 25
RA5/AN4/SS/LVDIN/C2OUT RC6/TX/CK
X1 14
RA6/OSC2/CLKO RC7/RX/DT/SDO
26
CRYSTAL 13
OSC1/CLKI
33 19
RB0/AN12/INT0/FLT0/SDI/SDA RD0/SPP0
34 20
RB1/AN10/INT1/SCK/SCL RD1/SPP1
35 21
RB2/AN8/INT2/VMO RD2/SPP2
36 22
RB3/AN9/CCP2/VPO RD3/SPP3
37 27
RB4/AN11/KBI0/CSSPP RD4/SPP4
38 28
RB5/KBI1/PGM RD5/SPP5/P1B
39 29
RB6/KBI2/PGC RD6/SPP6/P1C
40 30
RB7/KBI3/PGD RD7/SPP7/P1D
R4
8
RE0/AN5/CK1SPP
10k 9
RE1/AN6/CK2SPP
3
4

10
R5 18
RE2/AN7/OESPP
1
DSW2 VUSB RE3/MCLR/VPP R2 R1
OFF

10k
DIPSW_2 10k 10k
R3
PIC18F4550 10k
ON
2
1

DSW1
AJUSTE RELOJ 6
5
OFF ON
1
2
4 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 estructuras 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
DECLARACION VARIABLES Y
FUNCIONES

8
PROGRAMA PRINCIPAL MAIN ()

CLAVE 4 DIGITOS

9
MENU DE OPCIONES

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.

11
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 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)

12
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.

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 interrumpa 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

13
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)”.

3.3.-Programa Principal void main ()

14
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
y finalmente se selecciona el canal a trabajar recordando que el 18f4550 tiene hasta
13 canales análogos digitales.

15
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
MENU DE OPCIONES y prendera el primer indicador que es el LED

16
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
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

17
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,

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

18
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.

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

19
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

Carga a utilizar en el proyecto

1.-Abanico

20
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é.

Otros dispositivos: LED ULTRABRILLANTE Y BUZZER 5 VOLTS

EVIDENCIAS

21
CONCLUSIONES

 El conocimiento de cualquier microcontrolador permite controlar


procesos de cualquier índole

22
 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, entrada-salida
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.

23

Anda mungkin juga menyukai