Proyecto Piruuuuu
Proyecto Piruuuuu
Dedicatoria
Agradecimiento
Introducción
CAPITULO I
GENERALIDADES
I.9. Hipótesis 10
I.10. Variables 11
1
I.11. Tipo de investigación 11
CAPITULO II
MARCO TEÓRICO
a) Temperatura 16
b) Iluminación 16
c) Anhídrido carbónico 16
d) Ventilación 17
a) Software 19
b) Materiales 21
c) Circuitos electrónicos 21
d) Herramientas 21
2
CAPITULO III
3.3.1. PIC16F877 60
CAPÍTULO IV
CAPÍTULO V
COSTOS Y PRESUPUESTO
3
5.2. Accesorios y materiales para el invernadero 71
Conclusión
Recomendaciones
Bibliografía
ANEXOS
4
CAPITULO I
GENERALIDADES
granizos, heladas, lluvias torrenciales, días muy cálidos, días muy fríos
encuentran ubicadas sobre el nivel del mar, así como de las condiciones
productos.
5
1.2.1. Definición del Problema.
electrónicamente.
6
INVERNADERO
No Si
Automatizado
Electrónicamente
Control Manual o
Ninguno CONTROL DE:
Temperatura
Humedad
C02
Ventilación
FRUTOS:
Tamaño óptimos
Sabor desagradable
Alta acidez
Desabrido
FRUTOS:
Producción óptima
Tamaños óptimos
Sabor agradable
Acidez normal para
cada fruto
climas.
7
1.2.2. Delimitación del Problema.
etc. son los parámetros que se desea solucionar para tener una
producción optima.
granizos, heladas, lluvias torrenciales, días muy cálidos, días muy fríos
extenso donde se tiene un clima agreste durante casi todo el año; porque
8
1.6. Objetivos de la investigación.
color, etc); sin embargo, otras características del fruto sufren algunos
9
cambios colaterales que no son aceptados (por ejemplo su acidez,
contextura, etc).
productividad.
como experimento que hace Caritas del Perú que tiene implementado
Huancavelica.
1.9. Hipótesis.
10
variables de temperatura, humedad relativa, intensidad de luz y
ventilación.
1.10. Variables.
Aplicada.
agricultura.
11
CAPITULO II
MARCO TEÓRICO
12
Los Invernaderos, son estructuras totalmente cerradas hechas de fierro,
del Perú. La sombra puede ser proporcionada por mallas, fibra de vidrio o
materiales rústicos.
de alambre.
13
Un invernadero provee un ambiente apropiado, tanto en el suelo como en el
aire, para el cultivo de especies vegetales. Las razones principales que llevan
Radiación solar
Temperatura
Humedad relativa
Contenido de CO2
Las principales variables externas que afectan al invernadero son las que le
balances de CO2.
14
calor por conducción y también sobre la tasa de renovación de volumen del
invernadero.
humedad relativa, luz y CO2. Para que las plantas puedan realizar sus
15
funciones es necesaria la conjunción de estos factores dentro de unos límites
a) Temperatura.
condiciones.
b) Iluminación.
16
del invernadero con CO2, es muy interesante en muchos cultivos, tanto en
d) Ventilación
17
La apertura y cierre de las ventanas suele hacerse mecánicamente a través
relativa y nivel de CO2, y así conseguir la mejor respuesta del cultivo y por
del cultivo.
valores que debe atravesar el valor medido para hacer que el dispositivo
18
2.9. Climatización en Períodos Cálidos.
es excesiva tanto para el buen rendimiento del cultivo como para la salud de
los trabajadores que realizan en pleno verano las labores agrícolas. El reducir
a) Software.
MPLAB.
La versión 4.00 del MPLAB tiene los siguientes archivos:
[Link] - MP40000.WO2 - MP40000.WO3 - MP40000.WO4 -
MP40000.WO5 - MP40000.WO6
Cuando se ejecuta el archivo .EXE, comenzará la instalación del MPLAB
en su sistema.
Instalación: Descargue los archivos del software de instalación y ejecute
el archivo [Link]. Estos archivos pueden ser transferidos a
disquetes si desea instalar el MPLAB en otra computadora.
Nota: Si tiene un programador PICSTART Plus, también debería
seleccionar los "Archivos de Protección del PICSTART Plus". Si tiene
otras herramientas (PICMASTER, MPLAB-ICE, ICEPIC, SIMICE, etc.),
verifique los ítems asociados en los diálogos para instalar los drivers de
software en su máquina. Más adelante podrá reinstalar el MPLAB para
agregar componentes adicionales.
El siguiente menú le permitirá seleccionar los componentes de lenguaje
Microchip que desee instalar.
19
Luego de instalarlos, ejecute [Link] o hacer clic en el icono
MPLAB para iniciar el sistema.
Aparecerá en el escritorio el programa MPLAB que sirve para realizar el
programa de control.
ORCAD.
20
Para el proceso de simulación de un diseño utilizando la herramienta
EPICWIN.
b) Materiales.
c) Circuitos Electrónicos.
d) Herramientas.
21
Martillo, tijera para corte metálico, alicate de corte, alicate pico de loro,
22
CAPITULO III
a) Preparación de la superficie.
23
Se colocó cuatro estacas, proyecto (A, B, C, D).
metros sucesivamente.
éstos últimos (en el interior del invernadero) deben ubicarse dos pozos
c) Columna.
Una vez alcanzado el tiempo de fraguado se puede proceder con los demás
d) Umbral
24
superior y externa (solera), con madera de 2 x 2 x 12, sin modificar la
altura de éstos.
sostenido por el poste lateral y el poste central, en ambos lados del frente.
cubierta.
25
En un extremo posee una puerta de acceso y en el extremo enfrentado una
26
Primeramente para hacer el almácigo, se prepara la tierra hasta quedar fina y
una vez que se tiene las hortalizas en la etapa de desplante se trata seguir la
siguiente secuencia.
El terreno donde se desplantara la lechuga u otro tipo de hortaliza se prepara
este caso las lechugas serán desplantadas a una distancia de 25 cm. de planta
a planta en un sistema arana juntamente con los rabanitos. (Ver anexo A y B).
27
Figura 3.5.1. Vista del Sistema de Control.
28
Sistema de luminarias
Ventilación
Temperatura
Humedad
Luz
Luz
Temperatura
Humedad
Fuente de
Alimentació
n
Electrobomba
Gap’s que están puestos entre las líneas con respecto a tierra, realizan
las altas corrientes D.C transitorios facilitando el trabajo de los Gap’s; Los
delta (una entre líneas y una entre la línea con tierra), no soportan su
entre 10nF a 470pF y con voltajes de hasta 4 KV D.C) ofrecen muy baja
altas tensiones.
30
Partiendo de un voltaje de suministro de 220 Va.c., se minimiza los altos
Una vez realizado el filtrado EMI, esta señal pasa por el transformador
31
ENTRADA DE
220 V A.C
Indicador de
encendido de
la Fuente de
Alimentación
PRIMERA ETAPA
DE PROTECCIÓN
+5V
REGULADORES
TERCERA ETAPA DE VOLTAJE
DE PROTECCIÓN Transformador Y Gnd
220 V A.C/15-0-15 FILTROS
SEGUNDA ETAPA
DE PROTECCIÓN Varistor, FINALES +12V
fusible de acción rápida, Rectificador-Filtro.
condensadores y Gnd
Condensadores,
fusibles de acción bobina de choque CM.
rápida y varistores.
Sistema de
puesta a tierra
Figura 3.6. Diagrama de bloques del circuito de la Fuente de Alimentación, que muestra las etapas de protección (barreras) contra
interferencias electromagnéticas.
70
F1
R E G _1
22 O V / 0, 75 A
C1
J1 J2 J3 0, 1u F 2 20 V / 1 5 V - 0- 1 5V /1 A
CO N 3 CO N 3 CO N 3
S IS T E M A D E P R O T E C C IÓ N C O N T R A L1 1 5
1 1 1 L1' RV 1 1 3
2 D E S C A R G A S E L É C T R IC A S . 2 2 S N R A 2 50 K 6 G ND
3 ( T E N S I O N E S T R A N S IT O R IA S Y T E N S IO N E S 3 3 L2' 2 4 C2
IN D U C I D A S ) 4 7n F 4 8
B ob in a d e C ho q ue
2 20 V A . C C O N T1
D E S D E 2 20 V A .C P R O T E C C IÓ N C3
S IN 0, 1u F
P R O T E C C IÓ N
R E G _2
D1 D2 R1
1 N 4 0 04 R o jo 22 0 K
C4 U1
0, 1u F LM 7 8 12
1 3 V CC 1
V IN VOUT
GND
R E G _1
2
D3 +
1 N4 0 07 C6 + C5
1 00 0u F C7 1 0u F
0, 1u F J4
CO N 4
1
GND 2
GND
3
4
C8
1 00 0u F + C9 C 10 +
D4 0, 1u F 1 0u F
1 N4 0 07
R E G _2 2 GND
1 3 VCC
V IN VOUT
C 11 U2
0, 1u F LM 7 8 05 U N I V E R S I D A D N A C IO N A L D E H U A N C A V E L I C A
T E S IS : " D I S E Ñ O E I M P LE M E N T A C I Ó N D E U N S IS T E M A D E CO N T R O L
AU T O M AT I C O P A R A U N I N VE R N A D E RO "
A U T O R : J O R G E F É LI X R O D RÍ G U E Z E U LO G I O
S iz e D o cu m e n t N u m b e r R ev
B C I R C U IT O E L E C T R Ó N I C O D E L A F U E N T E D E A L IM E N T A C I Ó N JR E
D at e : S at ur d ay , A ug u st 0 6 , 2 0 05 S he e t 1 of 3
71
3.2.2 Hardware de Control del Sistema General.
34
VC C
V1 D isp l a y L C D
LC D
VC C
R1
R/ W
VD D
VS S
VO
RS
D1
D2
D3
D4
D5
D6
D7
D0
1 0K
10
11
12
13
14
1
2
3
4
5
6
7
8
9
B Z1
B UZ ZER D1 R2 5K
1 N 41 48
U1
P I C1 6 F 8 77
SW 1
1 19 VC C
Q1 M C L R /V p p/ T H V R D 0 /P S P 0 20
2 N 39 04 R D 1 /P S P 1 21 VC C
R D 2 /P S P 2
13 33
O S C 1/ C L K IN R B O /I N T 34
C1 R B1 35
1
R3 15 p F R B2 36 R4
2. 7K Y1 R B 3 /P G M 37
C
C2 4 M Hz R B4 38 4 x 3 3 0K
15 p F R B5 39
R B 6/ P G C 40
VC C 14 R B 7/ P G D
O S C 2 /C L K O U T
5
4
3
2
15 SW 2
6 R C 0 /T 1O S O / T 1 C K I 16
R A 4 /T O C K I R C 1 /T 1 O S I /C C P 2 17
2 R C 2 /C C P 1 18
3 R A 0 /A N 0 R C 3 /S C K /S C L 23
4 R A 1 /A N 1 R C 4 /S D I/ S D A 24
R5 VC C VC C 5 R A 2 /A N 2 / V r ef - R C 5/ S D O 25 C3
10 0 K 7 R A 3/ A N 3 / V re f+ R C 6 / T X/C K 26 0 ,1 u F
R7 R A 5 /A N 4/ S S R C 7/ R X / D T
R6 2 2K
LD R 8 22 SW 3
9 R E 0 /R D /A N 5 R D 3 /P S P 3 27
1
U 2A 10 R E 1/ W R /A N 6 R D 4 /P S P 4 28
LM 3 93 C4 D2 2 C5 D3 2 R E 2 /C S /A N 7 R D 5 /P S P 5 29 S al ida _ 1
0 ,1 u F T M P 35 0 ,1 uF T M P 35 R D 6 /P S P 6 30
4
2 - R D 7 /P S P 7
1 E xc ita S1 C6
3
3
3 + Salida 0 ,1 u F
El e c t r o b o m b a
S2 SW 4
8
R8
10 0 K R e la y
S al ida _ 2
C7
VC C 0 ,1 u F
E xc ita S1
Salida
SW 5
Iluminación
R9
1 0K S2
R 11 R 12 R 13
R 10 1K 1K 1K R e la y
5 00
C8
C9 U3 S al ida _ 3 0 ,1 u F
VC C 0 ,1 u F R 14 Tmax H.R max Iluminación
1 8 1K
3 -R g +Rg D4 D5 D6 E xc ita S1
+ IN Ro jo A m ar illo V er de Salida
5 R ef r i g e r a c i ó n
R 16 D7 D8 Ref
R 15 5 6K 1 N9 14 1 N 9 14 R 17 S2
S E N SO R DE H U M E DA D 6
OUT
R e la y
2 15 0 K
7 - IN 4 C 10
+V S -V S 0 ,1 u F
U N I V E R S ID A D N A C IO N A L D E H U A N C A V E L IC A
+ C 11 C 12 A D 6 23
VC C 10 uF 0 ,1 uF T E S IS : "D IS E Ñ O E IM P L E M E N T A C I Ó N D E U N S I S T E M A D E C O N T R O L
A U T O M A T IC O P A R A U N I N V E R N A D E R O "
GND
A U T O R : J O R G E F É L I X R O D R ÍG U E Z E U L O G IO
S iz e D o cu m e nt N um b e r R ev
B C IR C U IT O E L E C T R Ó N I C O D E L S I S T E M A D E C O N T R O L JR E
D a te : S a t u rd ay , A ug us t 06 , 20 0 5 S he e t 2 of 3
ventilación.
Consigna Temp.
modificada por Apertura Ventilador
Humedad
Consigna Humedad
Temp. Relativa
Generador + Contro lador
Ventilador In vern adero
Consig na Real Temperatu ra
- Temperatura
PID, donde este sistema que fue diseñado muestra un error en estado
+ 1
s
-
1
s 1
Figura 3.9. Diagrama de bloques con su respectivo valor
36
xlabel('Humedad Relativa %')
ylabel('Consigna Temperatura')
expresar la humedad del suelo y se entiende por ella como la masa de agua
Donde:
37
Concluyendo, buscamos un sensor de humedad que cumpla con los
siguientes requisitos:
cortos.
38
En la figura 3.12. La resistencia R5 simboliza el sensor de humedad, la
R1
10K
R7
500
C9 U3
VCC 0 ,1 u F R7
1 8 1K
3 -R g +R g
+ IN
5
R4 D9 D7 R ef
R5 56K 1N 914 1N 914 R1
SENSOR DE HUMEDAD 6
OUT
2 150K
7 -IN 4 C9
+VS -V S 0 ,1 u F
+ C 12 C9 AD 623
VCC 10uF 0 ,1 u F
GND
acotada a 6,7 V.
39
Con 115 cB por la tabla del sensor obtenemos una resistencia de 17450
que equivalga a 5 Vdc en el conversor A/D. Notar que la tensión que llega
Con 115 cB, la corriente sobre el sensor será I = 3,54 V / 17450Ω =203 μA
Resumiendo, tenemos:
40
[Link] Circuito de Activación de Riego.
R1
Hacia excitación de
Electrobomba
K1
5
3 R1
4 3 9 /1 W R V1
1 250V
D1 2
1N 4007
R ELA Y C1
0 .0 0 1 u F /1 K
E x c it a R2
U1
1 6
5
2 4
4N 25 R2
Q1
R3 2N 3904
2 .2 K 22K
a) Red de riego.
41
5m
PASADIZO - CAL
20m
ELECTROVÁLVULA
ELECTROBOMBA
Perturbaciones
Consigna
Controlador Actuador Proceso
- Variable
Valor Real controlada
Sensor
Ruido
42
Perturbación
+ 1
- s 1
+ 1 Sum2 Proceso Salida
PID
- s 1
Consigna Comparador Actuador
Sensor
Sum1 1
+ s 1
-
Tm 1
u (k ) Kp e k . e(k ) sensor:
i s 1
[G,H]=c2d(A,B,0.1); [numz,denz]=ss2tf(G,H,C,D)
Resultado:
numz =
1. 0.0952
denz =
1.0 -0.9048
43
Control todo/nada
44
Figura 3.17. Respuesta del control de temperatura.
Para conseguir 10 mV. con este circuito, tenemos que tener en cuenta que
de temperatura LM335.
45
Para realizar el ajuste, levantaremos la patilla correspondiente al ánodo del
nos sirve de referencia para la entrada negativa, que es la entrada que varía
respecto a la temperatura.
+ VC C 5V VC C 6,7V
LM335 OUT
U 1A
par trenzado
4
3
+
- 1
H acia R A 0 /A N 0
R 3 R 4 2
200(1% ) - RA1/AN1
R 1 R 2 2 K (1 % ) LM 324
2 k (1 % ) 2 0 0 (1 % )
11
R 5 R 6 6 .8 K R 7 1K
1K (1% )
46
a) Datos del diseño.
, tenemos:
R2 = 7,33 * R 1 = 7, 33 KΩ
Resumiendo tenemos:
50ºC 600mV 5V
energía, y por lo tanto la temperatura del aire, sino que también afecta al
47
1. Distribución de las presiones en la superficie de la estructura debido al
viento.
funcionamiento nominal.
circuito integrado L293B, que consta de 4 drivers, que con cada pareja de
48
+Vss: es la tensión que se aplicará a los motores. Admite un máximo de
36 V.
Vss Motor
C D
VC C
1 2 2 1
1 /2 L293B
V in h
RC2/CCP1
49
con los aspersores. Este actuaría en un día caluroso en el que el sistema de
S IS T E M A D E R E F R IG E R A C IÓ N A l S is te m a d e
R ie g o
válvula de control.
50
Controlador
Valvula C
Entrada
Nmax
Nmin
Salida
función de transferencia de lazo cerrado entre H1(s) y X(s) está dada por:
PID
Depósito de
Controlador Válvula
Nivel agua
deseado
Sensor
MATLAB.
Qo ( S ) 1 1
Qo( S ) H (S )
Qi( S ) RCs 1 R
dh
RC h Rqi
dt
51
1 Kv
1
X1 RC C X1
C u X1
h 1 0
X 2 K1a X2 X 2
0 0
ab
Se muestra el programa en el MATLAB donde convierte la función de
transferencia de planta:
S 1 1
GP ( s) G p (s)
2 S 2S 1 S
2
2S 2S 1
2
>> [A,B,C,D]=TF2SS(num,den);
>> [G,H]=c2d(A,B,0.1);
52
>> [numz,denz]=ss2tf(G,H,C,D)
Resultado:
numz =
0 0.0024 0.0023
denz =
lazo cerrado presentará una respuesta plana a una entrada tipo salto
0.0024 z 0.0023
G( z)
1z 1.9001z 0.9048
2
r=ones(1,21);
x=[1 ones(1,40)];
k=0:20;
c=filter(num,den,r);
plot(k,c,'*',k,c,'-')
plana')
xlabel('tiempo-seg.'), ylabel('nivel')
53
Figura3.24. Resultado del diseño del sistema de nivel
54
R
Q qi
Valcula de
control
H+h
Valcula de
carga
C R Q q0
presión.
55
Figura 3.26. Se muestra el encapsulado y la característica de salida del
transductor de presión.
tensión, y las rojas, cables eléctricos con tensión de red, que deben
56
A l S is te m a d e C o n tr o l
H a c ia S is t e m a d e
R ie g o
BOMBA
SENSOR
M Á X IM O
D E P O S IT O
SENSOR
M IN IM O
57
Si en un tiempo prefijado (programable) los dos sensores no están
superior del depósito, sino a una distancia tal, que permita seguir llenando
un rato después de que el agua rebase dicho sensor. Hay que tener en
cuenta, además, que el tiempo de llenado del depósito puede variar por
que una ubicación aproximada del sensor de máximo podría ser el punto
de seguridad importante.
El puerto C del PIC se utiliza para controlar los drivers de potencia que
58
[Link] Iluminación (LDR).
lux.
comparativamente más grande con una luz débil por su medición. El valor
a 100 lux.
humedad 65 ± 5%.
max.
59
60
Figura 3.28. Se muestra el encapsulado y la curva característica de LDR.
como una resistencia que varía con la intensidad de la luz, ver figura 4.29.
VC C
R 7
100K
R1
R 5 22K
LD R
U 4A
LM 393
4
2 -
1
3 +
8
R1
100K
H a c ia e l M ic r o c o n t r o la d o r
RA2/AN2/Vref-
el microcontrolador PIC16F877.
61
El programa en ensamblador [Link] realiza las siguientes tareas:
refrigeración.
[Link].
1 = L e c tu ra 1 e r. S e n s o r d e Ilu m in a c ió n
2 = L e c tu ra 2 d o . S e n s o r d e Ilu m in a c ió n
3 = L e c tu ra 1 e r. S e n s o r d e T e m p e ra tu ra
4 = L e c tu ra 2 d o . S e n s o r d e T e m p e ra tu ra
5 = L e c tu ra d e l S e n s o r d e H u m e d a d
6 = V e n tila d o r (V )
7 = B o m b a d e re frig e ra c ió n (B )
8 = B o m b a d e rie g o (b )
9 = L a m p a ra s (L )
* = In g re so d e m o d o a p a g a d o
0 = M u e s tra e s ta d o s A u to m á tic o /M a n u a l
# = F u n c io n a m ie n to A u to m á tic o /M a n u a l
1 = L e c t u r a 1 e r . S e n s o r d e I l u m i n a c i ó n
2 = L e c t u r a 2 d o . S e n s o r d e I l u m i n a c i ó n
3 = L e c t u r a 1 e r . S e n s o r d e T e m p e r a t u r a
4 = L e c t u r a 2 d o . S e n s o r d e T e m p e r a t u r a
5 = L e c t u r a d e l S e n s o r d e H u m e d a d
6 = V e n t i l a d o r ( V )
7 = B o m b a d e r e f r i g e r a c i ó n ( B )
8 = B o m b a d e r i e g o ( b )
9 = L a m p a r a s ( L )
* = I n g r e s o d e m o d o a p a g a d o
0 = M u e s t r a e s t a d o s A u t o m á t i c o / M a n u a l
# = F u n c i o n a m i e n t o A u t o m á t i c o / M a n u a l
62
D IA G R A M A G E N E R A L
IN IC IO
C _ IN V E R .A S M
C O N D IC IÓ N D E E N S A M B L A D O
D e f in ir : M ic ro c o n tr o la d o r , C o n s ta n te , G P R , F la g s y b its d e e s ta d o
R e s e t, In ic io d e P ro g ra m a
IN T E R R U P C IO N E S
S e a tie n d e in te rru p c io n e s P O R T B , T M R 2
IN IC IO D E P R O G R A M A
C o n f ig u r a : P u e r to A ( e n tr a d a d e s e ñ a le s a n a ló g ic a s A N 4 - A N 0 ) ,
P u e rto B (E n tra d a : R B 7 -R B 4 , s a lid a : R B 3 -R B 0 p o r e l te c la d o y s a lid a s R b 7 - R B 0 p a ra e l L C D ), P u e rto C s a lid a s d e c o n tro l; T M R 0 , L C D ,
b o rra r G P R .
M e n s a je d e in ic io : L e c tu ra d e v a lo re s p o r d e f e c to e n la E E P R O M d e d a to s .
V a lo re s in ic ia le s : P e rifé r ic o s , v a ria b le s
C o n fig u ra c ió n d e In te rru p c io n e s
s e h a b ilita In te rru p c io n e s
BUCLE
E s p e ra u n tip o d e in te rru p c ió n
S U B R U T IN A S D E L P R O G R A M A
C o n v e r s o r A /D , R e ta r d o s , S u m a , R e s ta , In ic ia liz a c ió n L C D , c o n tr o l d e L C D , c o n v e rs o r d e 1 6 b its - B C D , V is u la iz a c ió n e n L C D d e l v a lo r d e la s v a r ia b le s
c o n tr o la d a s y e s ta d o d e la s s a lid a s d e c o n tr o l, E s c r itu r a / L e c tu ra d e la E E P R O M :
F IN D E P R O G R A M A
63
IN IC IO
In te rru p c ió n
IN T E R R U P C IÓ N No IN T E R R U P C IÓ N No
PO RTB? TM R2
Si Si
R e to rn o d e s d e In te rru p c ió n
64
INICIO
Interrupción debido al puerto B (Teclado, Líneas Rb7 - RB4)
Si No
F l a g [# ]= 0 Proceso de control manual
Funcionamiento Automático
No No No No No No No No
[1]=0 [2]=0 [1]=0 [2]=0 [1]=0 [2]=0 [1]=0 [2]=0 No No No
[1]=0 [2]=0 [2]=0
Si Si Si Si Si Si Si Si Si Si Si
Muestra en Muestra en Muestra en Muestra en Muestra en Control Control Control Control Muestra en
LCD la LCD la LCD la LCD la LCD la ON/OFF ON/OFF de ON/OFF de ON/OFF de LCD estados,
lectura del 1er. lectura del lectura del 1er. lectura del 2 lectura del Ventilador y bomba de electrobomba lamparas y Ingreso en si es manual /
sensor de 2do. sensor de sensor de do. sensor de sensor de muestra en refrigeración y y muestra su muestra su modo apagado automático de
iluminación iluminación Temperatura Temperatura Humedad LCD y led muestra su estado en estado LCD y las salidas de
estado en LCD y led led control
LCD y led
102
IN IC IO
L e c tu ra d e l 1 e r. S e n s o r d e T e m p e ra tu ra
S e le c c io n e c a n a l a n a ló g ic o A N 2 .
L la m a a s u b ru tin a C o n v e rs o r A /D .
G u a rd a v a lo r d e c o n v e rs ió n e n lo s re g is tro s T E M P E 1 1 y T E M P E 1 2 y
a d e c u a e s to s v a lo re s p a ra re p re s e n ta r la te m p e ra tu ra m e d id a .
L la m a a s u b ru tin a 1 6 B its - B C D .
L la m a a s u b ru tin a p a ra s e r v is u a liz a d o e n la p a n ta lla L C D .
H a c ia re to rn o d e s d e In te rru p c ió n
TEMPE1 TEMPE 2
TEMPE = ;
2
65
IN IC IO C O N T R O L
O N /O F F Ilu m in a c ió n
No No
TEM PE<15° C TEM PE>35° C
Si Si
E n c ie n d e B o m b a d e R e frig e ra c ió n y
E n c e n d e r L á m p a ra s
V e n tila d o r
A p a g a L á m p a ra s
M u e s tra e s ta d o e n la p a n ta lla L C D
L0: O N , L1: O FF; B 0: O N , B 1: O FF;
V 0 :O N , V 1 :O F F .
H a c ia re to rn o d e s d e In te r ru p c ió n
66
IN IC IO C O N T R O L
O N /O F F R ie g o
No
L U Z = 3 0 0 lu x A p a g a la E le c tro b o m b a
Si
E n c ie n d e E le c tro b o m b a d e R ie g o p o r 2 0
M in u to s .
M u e s tra s u e s ta d o e n la p a n ta lla L C D
b 0 :O N , b 1 : O F F
H a c ia re to rn o d e s d e In te rru p c ió n
67
INICIO
Interrupción debido al puerto B (Teclado, Líneas Rb7 - RB4)
Si No
F l a g [# ]= 0 Proceso de control manual
Funcionamiento Automático
No No No No No No No No
[1]=0 [2]=0 [1]=0 [2]=0 [1]=0 [2]=0 [1]=0 [2]=0 No No No
[1]=0 [2]=0 [2]=0
Si Si Si Si Si Si Si Si Si Si Si
Muestra en Muestra en Muestra en Muestra en Muestra en Control Control Control Control Muestra en
LCD la LCD la LCD la LCD la LCD la ON/OFF ON/OFF de ON/OFF de ON/OFF de LCD estados,
lectura del 1er. lectura del lectura del 1er. lectura del 2 lectura del Ventilador y bomba de electrobomba lamparas y Ingreso en si es manual /
sensor de 2do. sensor de sensor de do. sensor de sensor de muestra en refrigeración y y muestra su muestra su modo apagado automático de
iluminación iluminación Temperatura Temperatura Humedad LCD y led muestra su estado en estado LCD y las salidas de
estado en LCD y led led control
LCD y led
106
CAPITULO IV
se han situado externos al invernadero para una mejor aclaración visual, pero
69
PRO CESO
M E D ID O R E S
ACTUADO RES
M C LR /V p p /T H V 1 O 28 R B 7/PG D
R A 0/A N 0 2 27 R B 6/PG C
R A 1/A N 1 3 26 RB5
R A 2 /A N 2 /V re f - 4 25 RB4
R A 3 /A N 3 / V re f + 5 24 R B 3/PG M
R A 4/T 0C K I 6 23 RB2
R A 5 /A N 4/S S 7 22 RB1 P IC 1 6 F 8 7 7
Vss 8 21 R B 0/IN T
O S C 1 / C L K IN 9 20 Vdd
O S C 2/C L K O U T 10 19 V ss
R C 0/T 1O S O /T 1 C K I 11 18 R C 7 /R X /D T
R C 1/T 1O S I/C C P 2 12 17 R C 6 /T X /C K
R C 2 /C C P 1 13 16 R C 5/SD O
R C 3 /S C K /S C L 14 15 R C 4 /S D I/S D A
CO NTRO LADO R
que está ubicado en una de las camas y con una bomba asociada a un tanque
70
• Humedad: la Humedad de la Tierra de la planta debe estar dentro de ciertos
parámetros para que este pueda desarrollarse en forma adecuada. Para lograr
• Iluminación: las plantas necesitan 16 hs de luz. Por lo tanto cuando la luz del
día no alcance, habrá que suplementar dicha necesidad con luz artificial. Esto
será particularmente necesario en invierno, cuando los días son más cortos.
Para controlar esta variable, se cuenta con una fotocélula y con un grupo de
Luces.
luz de 0 a 400 mV, estos últimos son unas celdas fotovoltaicas las cuales no
microcontrolador se programó para que realice que tome la señal de cada uno
71
CAPITULO V
COSTOS Y PRESUPUESTOS
72
5.1. DISPOSITIVOS ELECTRÓNICOS A EMPLEAR EN EL PROYECTO.
73
5.2. ACCESORIOS Y MATERIALES PARA EL INVERNADERO.
74
CONCLUSIONES
sensores en el suelo).
7. Con respecto al sistema de riego, para poder llenar al recipiente fue in poco
75
RECOMENDACIONES
MATLAB.
7. Para no tener decaídas durante el proyecto fijar bien el terreno donde será
riego tecnificado.
76
BIBLIOGRAFÍA
engineering.
Rivadavia.
France 1996.
Patrice Oguic.
77
Sandra M. Piñón, Gustavo M. Flores, Carlos Schugurensky y Rogelio
Control.
multiplexados:
Intel Corporation®.
[Link]
Christopher J. Burian en
[Link]
[Link]
Watermark®
78
ANEXO
79
Programa General para el Control Automático para el Invernadero
;*************************************************************************
;=========================================================================
;
; [Link]
; -----------
; Programa en ensamblador para el microcontrolador PIC16F877.
; Ensamblado usando MPLAB-IDE 7.200.00
;
;-------------------------------------------------------------------------
;
; UNIVERSIDAD NACIONAL DE HUANCAVELICA
;;
; "DISEÑO E IMPLEMENTACION DE UN SISTEMA DE CONTROL AUTOMATICO
; PARA UN INVERNADERO"
;=========================================================================
LIST P=16F877
RADIX HEX
#INCLUDE <[Link]>
; -----------------------
; DEFINICIÓN DE ETIQUETAS
; -----------------------
; Definición de Registros de Propósito General desde la dirección 0x20.
CBLOCK 0x20
CONT1 ; Contador
CONT2 ; Contador
TECLA ; Reg. de tecla pulsada
T_TECLA ; Reg. de lectura Temporal
LUX_1H
LUX_1L
; En operaciones matemáticas
BARGB0 ; MSB
BARGB1
REMB0 ; Byte de residuo de la división
80
BCD_2L1
CBLOCK 0x70
CONTA
LCDDATA
FLAG_TECLA
FLAG_SIST
ENDC
; --------------------
; FLAG Y BIT DE ESTADO
; ====================
#INCLUDE <INVE_DEF.INC>
; --------------------------------
; VECTORES DE RESET E INTERRUPCIÓN
; ================================
; -------------------
; INICIO DEL PROGRAMA
; ===================
; Aqui se inicia el programa principal.
81
INICIO clrf PORTA
clrf PORTB
clrf PORTC
clrf STATUS
bsf STATUS,RP0
bcf STATUS,RP1
movlw B'00000110'
movwf ADCON1
movlw B'10000111'
movwf OPTION_REG
clrf TRISC
bcf STATUS,RP0
clrf INTCON
; ------------------
; Bucle del PROGRAMA
; ------------------
MONITOREO
bsf STATUS,RP0
movlw b'00011111'
movwf TRISA
movlw b'10000010'
movwf ADCON1
bcf STATUS,RP0
movlw B'01000001'
movwf ADCON0
call CONVERSOR_AD
movf AARGB0,W
movwf LUX_1H
movf AARGB1,W
movwf LUX_1L
call BITS16_BCD
movf BCD_1,W
movwf BCD_1L1
movf BCD_2,W
movwf BCD_1L1
movlw B'01001001'
movwf ADCON0
call CONVERSOR_AD
call BITS16_BCD
movf BCD_1,W
movwf BCD_1L2
movf BCD_2,W
movwf BCD_1L2
movlw B'01010001'
movwf ADCON0
call CONVERSOR_AD
call BITS16_BCD
movf BCD_1,W
82
movwf BCD_1T1
movf BCD_2,W
movwf BCD_2T1
movlw B'01011001'
movwf ADCON0
call CONVERSOR_AD
call BITS16_BCD
movf BCD_1,W
movwf BCD_1T2
movf BCD_2,W
movwf BCD_2T2
movlw B'01100001'
movwf ADCON0
call CONVERSOR_AD
call BITS16_BCD
movf BCD_0,W
movwf BCD_0H
movf BCD_1,W
movwf BCD_1H
; -----------------------
; Comparación Luz CMP_LUZ
; -----------------------
; Realiza encendido de luminarias si la intensidad de luz <= 290 lux.
CMP_LUZ
movlw MINLUX_1H
subwf LUX_1H,W
btfss STATUS,C
goto MENORLUX ; LUX_1L <= 290 LUX
bcf PORTC,0 ; LUX_1L > 290 LUX
goto CMP_TEMP
MENORLUX
bsf PORTC,0
; --------------------------------
; Comparación Temperatura CMP_TEMP
; --------------------------------
; Enciendo enfriador y ventilador si Temperatura > 35°C
CMP_TEMP
movf BCD_1T1,W
subwf MIN_TEMP,W
btfss STATUS,C
goto MAYOR ; BCD_1T > 15°C
bcf PORTC,3 ; BCD_1T <= 15°C
bcf PORTC,5
goto CMP_HR
; --------------------------
83
; Comparación Humedad CMP_HR
; --------------------------
; Riego si HR < 70 % de Humedad Relativa.
EXPLO_TECLADO
call TECLADO ; Explora el teclado
movlw 0x80
subwf TECLA,W
btfsc STATUS,Z ; Hay tecla
goto MONITOREO
call KEY_OFF ; Genera beep y espera se libere
movlw 0x31
subwf TECLA,W
btfsc STATUS,Z ; Es la TECLA 1?
goto TECLA_1
movlw 0x32
subwf TECLA,W
btfsc STATUS,Z ; Es la TECLA 2?
goto TECLA_1
movlw 0x33
subwf TECLA,W
btfsc STATUS,Z ; Es la TECLA 3?
goto TECLA_3
movlw 0x34
subwf TECLA,W
btfsc STATUS,Z ; Es la TECLA 4?
goto TECLA_4
movlw 0x35
subwf TECLA,W
btfsc STATUS,Z ; Es la TECLA 5?
goto TECLA_5
movlw 0x36
subwf TECLA,W
btfsc STATUS,Z ; Es la TECLA 6?
goto TECLA_6
movlw 0x37
subwf TECLA,W
btfsc STATUS,Z ; Es la TECLA 7?
goto TECLA_7
movlw 0x38
subwf TECLA,W
btfsc STATUS,Z ; Es la TECLA 8?
goto TECLA_8
movlw 0x39
subwf TECLA,W
84
btfsc STATUS,Z ; Es la TECLA 9?
goto TECLA_9
movlw 0x2A
subwf TECLA,W
btfsc STATUS,Z ; Es la TECLA *?
goto TECLA_OFF
movlw 0x30
subwf TECLA,W
btfsc STATUS,Z ; Es la TECLA 0?
goto TECLA_0
movlw 0x23
subwf TECLA,W
btfsc STATUS,Z ; Es la TECLA #?
goto TECLA_MAN
goto MONITOREO
TECLA_1
movlw B'00000001'
call LCD_CMD
movlw '='
call LCD_DATO
swapf BCD_1L1,W
andlw 0x0F
iorlw 0x30
call LCD_DATO
movf BCD_1L1,W
andlw 0x0F
iorlw 0x30
call LCD_DATO
swapf BCD_2L1,W
andlw 0x0F
iorlw 0x30
call LCD_DATO
movf BCD_2L1,W
andlw 0x0F
iorlw 0x30
call LCD_DATO
movlw 'L'
call LCD_DATO
goto MONITOREO
TECLA_2
movlw B'00000001'
call LCD_CMD
movlw '='
call LCD_DATO
swapf BCD_1L2,W
andlw 0x0F
iorlw 0x30
call LCD_DATO
movf BCD_1L2,W
andlw 0x0F
iorlw 0x30
call LCD_DATO
swapf BCD_2L2,W
andlw 0x0F
iorlw 0x30
call LCD_DATO
movf BCD_2L2,W
andlw 0x0F
85
iorlw 0x30
call LCD_DATO
movlw 'L'
call LCD_DATO
goto MONITOREO
TECLA_3
movlw B'00000001'
call LCD_CMD
movlw '='
call LCD_DATO
swapf BCD_1T1,W
andlw 0x0F
iorlw 0x30
call LCD_DATO
movf BCD_1T1,W
andlw 0x0F
iorlw 0x30
call LCD_DATO
movlw '.'
call LCD_DATO
swapf BCD_2T1,W
andlw 0x0F
iorlw 0x30
call LCD_DATO
movlw 'C'
call LCD_DATO
goto MONITOREO
TECLA_4
movlw B'00000001'
call LCD_CMD
movlw '='
call LCD_DATO
swapf BCD_1T2,W
andlw 0x0F
iorlw 0x30
call LCD_DATO
movf BCD_1T2,W
andlw 0x0F
iorlw 0x30
call LCD_DATO
movlw '.'
call LCD_DATO
swapf BCD_2T2,W
andlw 0x0F
iorlw 0x30
call LCD_DATO
movlw 'C'
call LCD_DATO
goto MONITOREO
TECLA_5
movlw B'00000001'
call LCD_CMD
movlw '='
call LCD_DATO
swapf BCD_1H,W
andlw 0x0F
iorlw 0x30
call LCD_DATO
movf BCD_1H,W
andlw 0x0F
86
iorlw 0x30
call LCD_DATO
movlw 0x25
call LCD_DATO
goto MONITOREO
TECLA_6
movlw B'00000001'
call LCD_CMD
movlw 'V'
call LCD_DATO
goto MONITOREO
TECLA_7
movlw B'00000001'
call LCD_CMD
movlw 'B'
call LCD_DATO
goto MONITOREO
TECLA_8
movlw B'00000001'
call LCD_CMD
movlw 'b'
call LCD_DATO
goto MONITOREO
TECLA_9
movlw B'00000001'
call LCD_CMD
movlw 'L'
call LCD_DATO
goto MONITOREO
TECLA_OFF
nop
sleep
TECLA_0
call MENS_MVBbLM
goto MONITOREO
TECLA_MAN
call MENS_MANAUTO
goto MONITOREO
; ---------------------------------
; INICIO DE SUBRUTINAS DEL PROGRAMA
; =================================
; -----------------
; Subrutina TECLADO
; -----------------
; Configura el PIC para luego escanear el teclado
TECLADO
bsf STATUS,RP0 ; Banco 1
movlw 0xF0 ; RB<0-3> Salidas a Filas
movwf TRISB ; RB<4-7> Entradas a Columnas
bsf OPTION_REG,7 ; Activa pull_up
bcf STATUS,RP0 ; Banco 0
87
clrf FLAG_TECLA ; Flag de proceso
QUE_TECLA
btfss PORTB,4 ; Salta la sig. Si RB<4>=1
goto CRONOS ; A temporizar
incf TECLA,F
btfss PORTB,5
goto CRONOS
incf TECLA,F
btfss PORTB,7
goto CRONOS
incf TECLA,F
NO_TECLA
movlw 0x80 ; 0x080 código en TECLA
movwf TECLA
goto RETORNA
; ----------------
; Subrutina CRONOS
; ----------------
; Revisa si fue soltada la tecla con dos exploraciones a la misma TECLA
CRONOS_1
bcf FLAG_TECLA,7 ; Es la segunda pasada. Baja Flag de aviso
movf TECLA,W ; TECLA --> W
subwf T_TECLA,W ; RESTA
btfss STATUS,Z ; Si Z=1 -->TECLA=T_TECLA, va $+1
goto NO_TECLA ; Si Z=0 resultado <> 0
movf TECLA,W ; TECLA=desplazamiento en TABLA
call TABLA ; Localiza valor de TECLA
movwf TECLA ; TECLA ya contiene el código
RETORNA return
; ------------------
; Subrutina CRONOS_2
; ------------------
; Retardo para eliminar el efecto de los rebotes de 16,736 ms
; para la frecuencia de 4 MHz
88
CRONOS_2
movlw 0x04 ; Carga del bucle externo.
movwf CONT1
CRONOS_3
clrf CONT2
decfsz CONT2,F ; En este bucle anidado
goto $-1
decfsz CONT1,F ; En este bucle externo
goto CRONOS_3 ; se cuenta 9 veces el bucle interno
goto T_SCAN ; va a realizar segundo escaneo
; -----------------
; Subrutina KEY_OFF
; -----------------
; Verrifica si la TECLA fue soltada.
KEY_OFF
movf TECLA,W
movwf TEMP3 ; Guarda temporalmente la tecla
Key_Off_No
call TECLADO
movlw 0x80
subwf TECLA,W
btfss STATUS,Z ; Se ha soltado la tecla ?
goto Key_Off_No ; Todavia no
movf TEMP3,W ; Ahora si
movwf TECLA ; Repone la tecla pulsada
return
; ---------------------
; Subrutina MENSAJE_INI
; ---------------------
; Muestra primer mensaje en la pantalla LCD.
MENSAJE_INI
movlw B'00000001'
call LCD_CMD
movlw 0x80
call LCD_CMD
movlw 'H'
call LCD_DATO
movlw 'B'
call LCD_DATO
movlw 'S'
call LCD_DATO
movlw 'G'
call LCD_DATO
89
movlw ''
call LCD_DATO
movlw 'H'
call LCD_DATO
movlw 'A'
call LCD_DATO
movlw ''
call LCD_DATO
movlw 'I'
call LCD_DATO
movlw 'N'
call LCD_DATO
movlw 'I'
call LCD_DATO
movlw 'C'
call LCD_DATO
movlw 'I'
call LCD_DATO
movlw 'A'
call LCD_DATO
movlw 'D'
call LCD_DATO
movlw 'O'
call LCD_DATO
call RETARDO_1S
call RETARDO_1S
return
; ----------------------
; Subrutina MENS_MANAUTO
; ----------------------
; Muestra el mensaje "MANUAL=" en la pantalla LCD.
MENS_MANAUTO
movlw B'00000001'
call LCD_CMD
movlw 0x80
call LCD_CMD
movlw 'M'
call LCD_DATO
movlw 'A'
call LCD_DATO
movlw 'N'
call LCD_DATO
movlw 'U'
call LCD_DATO
movlw 'A'
call LCD_DATO
movlw 'L'
call LCD_DATO
movlw '='
call LCD_DATO
return
; --------------------
; Subrutina MENS_MVBbL
; --------------------
; Muestra el mensaje "MVBbL=" en la pantalla LCD.
MENS_MVBbLM
movlw B'00000001'
call LCD_CMD
movlw 0x80
90
call LCD_CMD
movlw 'M'
call LCD_DATO
movlw 'V'
call LCD_DATO
movlw 'B'
call LCD_DATO
movlw 'b'
call LCD_DATO
movlw 'L'
call LCD_DATO
movlw '='
call LCD_DATO
return
; ----------------------
; Subrutina CONVERSOR_AD
; ----------------------
; Se adquieren la muestra del sensor AARGB0:AARGB1.
CONVERSOR_AD
clrf AARGB1
clrf AARGB0
bcf PIR1,ADIF
bsf ADCON0,GO
; -----------------------
; Subrutina VAL_INICIALES
; -----------------------
; Valores iniciales para los recursos del microprocesador.
VAL_INICIALES
bcf STATUS,RP0 ; Banco 0
bcf STATUS,RP1
movlw B'00110001' ; Configurar TMR1
movwf T1CON ; 8:1 pre-escalar
clrf PORTC
movlw B'00001000'
movwf FLAG_SIST
CONFIG_INT
clrf PIR1
91
clrf INTCON
bsf STATUS,RP0
clrf PIE1
clrf PIE2
bcf STATUS,RP0
return
; ---------------------
; Subrutina de RETARDOS
; ---------------------
; Retardos variables RETARDO_V, TEMP1*10ms y de un segundo. Utiliza el
; registro temporal TEMP1.
RETARDO_X10MS
movlw 0xD9 ; [Tins*(256-TMR0)*(DivFre)]*TEMP1
movwf TMR0
btfss INTCON,2
goto $-1
bcf INTCON,2
decfsz TEMP1,1
goto $-6
return
; ------------------
; Subrutina RESTA_AB
; ------------------
; Subrutina que resta AARG y BARG (16 - 16 bits) -> AARG(16).
RESTA_AB
comf BARGB1,F; Negando BARGB (-BARGB -> BARGB)
incf BARGB1,F
btfsc STATUS,Z
decf BARGB0,F
comf BARGB0,F
; -----------------
; Subrutina SUMA_AB
; -----------------
; Subrutina que suma AARG y BARG (16 + 16 bits) -> AARG(16).
; --------------------
; Subrutina BITS16_BCD
; --------------------
; Subrutina de conversión de un número binario de 16 bits (AARGB0:AARGB1) a
92
; 5 dígitos BCD, para sacar por el LCD.
BITS16_BCD
bcf STATUS,C
clrf CONTA
bsf CONTA,4
clrf BCD_0
clrf BCD_1
clrf BCD_2
AJUSTE_BCD
movlw 0x03
addwf INDF,W
movwf TEMP0
btfsc TEMP0,3
movwf INDF
movf INDF,W
addlw 0x30
movwf TEMP0
btfsc TEMP0,7
movwf INDF
return
; ----------------
; Subrutina UP_LCD
; ----------------
; Con esta subrutina se configura el PIC para que trabaje con el LCD.
; ------------------
; Subrutina LCD_BUSY
; ------------------
; Con esta subrutina se chequea el estado del flag BUSY del módulo LCD.
LCD_BUSY
LEE
93
bsf STATUS,RP0
movlw 0xFF
movwf TRISD
bcf STATUS,RP0
ENABLE
nop
; ------------------
; Subrutina LCD_DATO
; ------------------
; Es una subrutina que pasa el contenido cargado en el registro W.
LCD_DATO
MOD_COMANDO
movwf LCDDATA
swapf LCDDATA,W
andlw 0x0F
movwf PORTD
call LCD_BUSY
MODO_DATO
ENABLE
DISABLE
MOD_COMANDO
movf LCDDATA,W
andlw 0x0F
movwf PORTD
call LCD_BUSY
MODO_DATO
ENABLE
DISABLE
return
; -----------------
; Subrutina LCD_CMD
; -----------------
; Subrutina parecida a la anterior, pero el contenido de W ahora es el código
; de un comando para el LCD.
LCD_CMD
MOD_COMANDO
movwf LCDDATA
swapf LCDDATA,W
andlw 0x0F
movwf PORTD
call LCD_BUSY
ENABLE
DISABLE
MODO_DATO
nop
MOD_COMANDO
94
movf LCDDATA,W
andlw 0x0F
movwf PORTD
call LCD_BUSY
ENABLE
DISABLE
MODO_DATO
return
; -----------------
; Subrutina LCD_INI
; -----------------
; Esta subrutina se encarga de realizar la secuencia de inicialización del
; módulo LCD.
LCD_INIESCRIBE
movlw B'00000011'
movwf PORTD
ENABLE
DISABLE
movlw .6
movwf TEMP1
clrf TEMP2
decfsz TEMP2,F
goto $-1
decfsz TEMP1,F
goto $-3
movlw B'00000011'
movwf PORTB
ENABLE
DISABLE
movlw .43
movwf TEMP1
decfsz TEMP1,F
goto $-1
movlw B'00000011'
movwf PORTD
ENABLE
DISABLE
movlw .43
movwf TEMP1
decfsz TEMP1,F
goto $-1
movlw 0x02
movwf PORTD
ENABLE
DISABLE
movlw 0x20
call LCD_CMD
return
;*************************************************************************
95
96
97