You are on page 1of 23

INSTITUTO TECNOLOGICO DE CHIHUAHUA

PROYECTO
MICROCONTROLADORES
INVERNADERO

DANIEL RODRIGUEZ SALGADO


GIL FERNANDO DUEAS PRIETO
MICROCONTROLADORES
MAESTRO: ING. JORGE AGUIRRE BELTRN
A JUNIO 2014

INDICE
INTRODUCCION
OBJETIVO

JUSTIFICACION
LIMITACION DEL PROYECTO

DIAGRAMA DE CONTROL PROYECTO

CAPITULO 1.-Entrada de Datos

CAPITULO 2.-Controlador

CAPITULO 3.-Acondicionamiento de seal

19

CONCLUSIONES

22

1.-Introduccin
El conocimiento de un micro controlador permite al ingeniero en electrnica
solucionar o eficientizar situaciones que tiene a su alrededor por ello, toda una
preparacin previa es necesaria desde el conocimiento bsico de los circuitos
elctricos, programacin, hasta la operacin bsica de un computador. E s en esta
asignatura rene todos estos conocimientos y permite como habamos
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 travs 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 contrasea
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 domtica 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
Disear un proyecto especfico de control mediante un microcontrolador de la
familia PIC el cual se capaz de reunir todos los conocimientos bsicos de la
electrnica digital que permita relacionar el aspecto terico-prctico de dicha rea
de la ingeniera.

3.-Justificacin
El conocer cualquier microcontrolador da la capacidad de controlar cualquier
proceso que se requiera, es una etapa importante de la electrnica ya que permite
la activacin de mecanismos que realicen una funcin especfica.
Existen microcontroladores ms avanzados que tienen por objeto facilitar an ms
la programacin que en el caso de los PIC es aqu donde el estudiante al haber
llevado

una

preparacin

en

electrnica

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 metodologa de anlisis.
4.- Limitacin del proyecto
Esta asignatura se vio contenidos bsicos como la entrada y salida de datos hasta
los diferentes protocolos de comunicacin entre microcontroladores. Para el caso
de nuestro proyecto vimos la necesidad solo de aplicar

los siguientes

conocimientos en un lenguaje de programacin 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
Analgico-Digital
Sensor de
Temperatura
LM35
Otros sensores
ON-OFF

Programacion

Contadores

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

Contadores
Acendentes
Acumuladores
Uso y Ajuste de
Reloj

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
travs de la entrada de datos es posible ajustar el control del fenmeno, 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 caractersticas comparadores, timers de 8 y 16 bit, as como la
comunicacin serial.
A continuacin se presenta el diagrama de pines del microcontrolador
PIC18F4550 donde se seala las entradas y salidas a utilizar en el proyecto.
Puerto A.-Al ser un puerto Anlogo se configuro
de la siguiente forma:
An0.-Entrada Anloga-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.


Puerto B.- Al ser de 8 pines es destinado al teclado matricial hexadecimal 4x4 por
la librera manejada.
Puerto C.-Configurada como salidas es aqu donde se proceder a acondicionar
la seal para la carga, se usaron los siguientes pines:
C0.-Prender Led Ultra brillante: Cuando se active correctamente la
contrasea del invernadero es un indicador de que se entr al sistema
C1.-Buzzer.-En caso de errar en la contrasea de ingreso al sistema sonara
el buscar indicando una alarma.
C2.-Abanico.- Al indicar el sensor de temperatura LM35 un lmite
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 librera LCD.C para la pantalla LCD 16x2
Puerto E.- Al ser de 4 pines incluido el reset se utilizara para elegir la opcin del
men de opciones.
Posteriormente se analizaran las caractersticas de cada elemento que interviene
en el proceso, solamente aqu se especific la utilizacin de los pines del
microcontrolador que permitan la ubicacin de ellos en el proyecto.

CAPITULO 2.-CONTROLADOR
La parte fundamental y de estudio se centra en este captulo a continuacin se
mostrara en otro diagrama la funcin fsica del proyecto.

2.-Diagrama Esquemtico en simulador Proteus


A continuacin se presenta el diseo en proteus para el PIC18F4550.

ABANICO
BUZZER
RESISTENCIAS O BUFFER

BOMBA

RP1

TECLADO 4X4 HEXA

ON

RESPACK-7

0
2

VOUT

LM35

X1
CRYSTAL

33
34
35
36
37
38
39
40

R4

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

10k

R5

OFF

10k

LCD 16X2

U1
2
3
4
5
6
7
14
13

C
1

36.0

D0
D1
D2
D3
D4
D5
D6
D7

U2

7
8
9
10
11
12
13
14

RS
RW
E

LM016L

VSS
VDD
VEE

LCD1

4
5
6

LM35

1
2
3

LED ULTRABRRILLANTE

8
7
6
5
4
3
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

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

R2 R1
10k 10k

R3

ON

10k

2
1

RE0/AN5/CK1SPP
RE1/AN6/CK2SPP
RE2/AN7/OESPP
RE3/MCLR/VPP

15
16
17
23
24
25
26

DSW1

AJUSTE RELOJ

OFF

6
5
4

ON

1
2
3

DIPSW_3

MENU DE OPCIONES

3.-Descripcion del cdigo en lenguaje C del Proyecto Invernadero


El cdigo pertenece a lo que va a ejecutar le microcontrolador ante determinadas
entradas, el cdigo se elaborado mediante el compilador MPLAB CCS en lenguaje
C.
El lenguaje C facilita la programacin al tener estructuras de repeticin e
instrucciones precisas de configuracin. La nica desventaja que tiene el
programar en C es que evita al diseador comprender la arquitectura del
microcontrolador.
Se presenta el cdigo de forma general:

CODIGO LENGUAJE C PROYECTO


INVERNADERO PIC 18F4550

DIRECTIVAS

DECLARACION VARIABLES Y
FUNCIONES

PROGRAMA PRINCIPAL MAIN ()

CLAVE 4 DIGITOS

MENU DE OPCIONES

FUNCIONES ESPECFICAS DEL


MENU

10

3.1.-Directivas

Cualquier programa en cualquier lenguaje comienza determinando la cabecera o


directivas, se sabe que una directiva es una instruccin o imperativo al compilador
para su configuracin, sin estas directivas no nos es posible trabajar con el
microcontrolador de la forma que se desea. Incluyendo en primera instancia la
librera para el pic a trabajar (18F4550.H) posteriormente la localidad de memoria
de datos 0x81 es el registro Opcin Reg el cual se asign a la variable OPTION
REG.
Convertidor Anlogo Digital
Para el trabajo con el convertidor anlogo se sabe que el microcontrolador es
capaz de trabajar con resoluciones de 8 bits o 10 esto significa que si suponemos
un voltaje mximo de 5 volts para una resolucin de 8 bits representa la cantidad
255 y para la resolucin de 10 significara un valor de 1023. A mayor resolucin es
el muestreo anlogo.
Uso del TMR0
Se configura el prescaler con un factor de divisin 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 razn se inicializa el TMR0 con un 12 al inicio para
que cada 244 cuentas se desborde el TMR0 y provoque una interrupcin. Dentro
de la rutina de servicio de interrupcin 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 interrupcin. La frmula quedara
de la siguiente manera:

256*244*16= 999,424 Microsegundos.

Libreras LCD y KBD


Son libreras incluidas en el compilador solamente que para el teclado matricial se
cambi la librera para poder usar un teclado hexadecimal 4x4 (lcd.c y kbd.c)
3.-2 Declaracin 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

Despus tenemos que definir una constante tipo carcter 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 contrasea 1,2,3,4. Al ser un dato constante e inmodificable es posible
guardarlo en la memoria ROM del PIC.
Interrupcin #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 10 segundos. Esto en la prctica representa que la bomba de agua se activara
cada minuto haciendo el suministro de agua por aproximadamente 10 segundos.
Declaracin 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 fsicamente el PIC
adems

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

solamente

todo
para

el
una

sistema
parte

especifica del programa.


Char k.-variable para captar la
informacin del telcado matricial
Int i,j.- Universalmente conocidas en el lenguaje de programacin 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 tecnologa.
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 ().- Funcin del compilador para inicializar el teclado y LCD
16x2.
Configuracin A0 como Anlogo
Con la funcin setup_adc_ports () definimos que pin del microcontrolador ser
trabajado como anlogo, despus comenzamos el reloj del convertidor entre ocho
14

y finalmente se selecciona el canal a trabajar recordando que el 18f4550 tiene


hasta 13 canales anlogos 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. Despus entramos a otro
ciclo while que es donde los datos que provienen del teclado se captaran, al definir
una contrasea de cuatro dgitos 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] despus 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
dgitos.
Con el condicionante if se evala si la constante tipo carcter 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 travs del teclado matricial.
Ahora bien, en caso de estar correcta la contrasea 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 contrasea establecida, se proceder a volver a ingresar
la contrasea 2 veces ms, 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 cdigo un gran abanico de


aplicaciones que incluso vemos a diario en un horno de microondas, un sistema
de seguridad, un cajero automtico o bien en el men de la televisin.
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 opcin 0x01 es un reloj digital mostrado en LCD, la opcin 0x02
16

ingresa a la funcin temp () que es el control de temperatura a travs del sensor


LM35, este sensor actuara por el pin AN0 que es el pin que se configuro como
anlogo. La opcin 0x03 llama a la funcin checa que simplemente a travs de un
sensor ON-OFF revisa si nuestro contenedor est lleno o vaco, de ah la
caracterstica ON-OFF.
La ltima opcin 0x04 hace que al terminar de utilizar nuestro sistema se proceda
ahora a cerrarlo, esto con la instruccin 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 lmites sabiendo que
un minuto son 60 seg y que un da
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 analgico digital es que podemos sensar
temperatura a travs del dispositivo lineal LM35, este sensor tiene la resolucin de
que por cada grado centgrado 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 resolucin. 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
lgico 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
vaco-lleno en el LCD.

18

CAPITULO 3.-ACONDICIONAMIENTO DE SEAL


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 seal proveniente de un
microcontrolador PIC, ARDUINO, GAL o semejante.

Mecanismos que se pueden utilizar para acondicionar una seal.


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 pequea 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. Adems 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 seal

Se aplicaron temas de Timer,Convertior anlogo digital, entradasalida de datos, Teclado matricial, Pantalla LCD 16x2, estructuras de
repeticin, Men de opciones para la realizacin de este proyecto

Es necesario aislar la etapa de potencia a la etapa de control para


evitar daos a todo el sistema de control.

Conocer las caractersticas de la carga a controlar as como la de los


sensores constituye un paso importante a considerar en el
acondicionamiento de seal

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
funcin de si el timer es de 8 o 16 bits

El pic 18f4550 permite adems de las funciones bsicas de control


establecer protocolos de comunicacin 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 domtica.

22

You might also like