Professional Documents
Culture Documents
PROFESOR PATROCINANTE:
Sr. Pedro Rey Clericus
VALDIVIA 2014
CONTENIDO
II.6.1 BTcino................................................................................... 28
II.6.2 Control4 ................................................................................ 30
II.6.3 Functiodomo ......................................................................... 31
II.6.4 Insteon .................................................................................. 32
II
V.1 Criterios de la propuesta adopatada ............................................ 62
V.2 Control de luces. ......................................................................... 63
V.3 Control de circuito de enchufes ................................................... 77
III
NDICE DE FIGURAS
V
NDICE DE TABLAS
VI
Figura V-7. Mxima disipacin de potencia triac BTA 08 ......................... 75
Figura V-8. Diagrama flujo control enchufes. .......................................... 78
Figura V-9. Circuito control enchufes. .................................................... 79
Figura V-10. Triac con pasta trmica y disipador. ................................... 81
Figura V-11. Circuito equivalente trmico ............................................... 81
Figura V-12. Control de humedad relativa. ............................................. 83
Figura V-13. Caracterstica tensin de salida en funcin de la ............... 84
Figura V-14. Diagrama de flujo sistema control de humedad relativa. ..... 85
Figura V-15. Fuente alimentacin para arduinos y circuitera general. .... 87
Figura V-16. Arquitectura de red mixta escogida para sistema domtico. 93
Figura V-17. Disposicin de los elementos del sistema ............................ 93
Figura VI-1. Disposicin elementos interfaz principal. ............................. 94
VII
I RESUMEN, INTRODUCCIN Y OBJETIVOS
I.1 RESUMEN
Por otra parte, se disea un control de ventilacin para bao y cocina que
busca reducir la humedad relativa al interior de la vivienda ya que esta
representa un problema que contribuye a la prdida de calor interior,
aumentando la demanda por calefaccin, y facilita el desarrollo de
organismos en general dainos para el ser humano.
1
I.2 SUMMARY
2
3
I.3 INTRODUCCIN
6
7
Confort:
Control
persianas,
luminarias, Comunicacin
riego...
Seguridad
DOMTICA
II.2.1 Controlador
y aquellos que si bien no han sido diseados para estas tareas son
posibles de utilizar y obtener las mismas o mejores prestaciones (2). Una
desventaja de los controladores no especficos para domtica, es que al no
estar diseados para el control en viviendas, su configuracin puede ser
un tanto ms complicada y sus capacidades quizs sobredimensionadas,
este es el caso de los PLC, por ejemplo.
Los sistemas especficos para el control domtico proveen al instalador y al
usuario una configuracin de software pre establecida para realizar tareas
especficas e invariables dentro de la vivienda, son sistemas fsicamente
compactos, en general, no permiten realizar otras tareas para las que no
fueron diseados. La desventaja de estos sistemas en comparacin a
controladores como los PLC, es que no poseen un estndar concreto que
permita la interconexin de distintos elementos provenientes de otros
fabricantes como si lo permiten los PLC o autmatas programables con
sus buses de datos estandarizados.
II.2.2 Nodos
II.2.3 Actuadores
II.2.4 Sensores
Luminosidad
Humedad en plantas
Humedad relativa
Presencia
11
Detector de humo
Detector de gas,
Etc..
II.3 Aplicaciones
II.3.2 Seguridad
II.3.3 Climatizacin.
Protocolo
BACnet
X-10 BatiBus
LonWorks CEBus
ESTNDARES
Konnex EHS
HES EIB
HBS
Cardio
Vantage
Concelac
VivimatPlus
Dialoc
PlusControl
Dialogo
Simon Vis
Domolon
DomosCope Maior-Domo
GIV Domaike
Domotel Simon Vox
Hometronic Starbox
II.5.2 LonWorks
Infra rojo
Cable coaxial
Par trenzado cat. IV de cinco hilos
Fibra ptica
Radio frecuencia
Power line
RS-232
II.5.3 CEBus
Capa fsica
Capa de enlace
Capa de red
Capa de aplicacin
Red elctrica
Par trenzado
25
Radio frecuencia
Coaxial
Fibra ptica
Infrarrojo
Cable coaxial
Radio frecuencia
Par trenzado, clase 1 y 2
Red elctrica
II.5.5 KONNEX
II.5.6 ZigBee
II.6.1 BTcino
Comodidad
Seguridad
Ahorro de energa
Comunicacin
Control
29
II.6.2 Control4
Control4 ofrece,
II.6.3 Functiodomo
Cmaras de seguridad
Control de Climatizacin
Control de iluminacin
32
Control de riego
Control de toldos y persianas.
II.6.4 Insteon
III.1 OpenDomo
33
34
Elemento Caractersticas
Puertos digitales entrada 8 puertos
Puertos digitales de salida de
8 puertos
estado slido
Puertos ADC 8 puertos
Interfz IP con conector RJ45
Comunicacin
10/100M
Puertos de expansin 1 interno + uno externo
Reloj en tiempo real
Montaje Riel DIN
Microcontrolador: Atmega328
Tensin de funcionamiento :5v
Voltaje de entrada recomendado: 7-12v
Lmites tensin de entrada: 6-20v
Pines E/S digitales: 14
Salida PWM: si (6 pines digitales)
Entrada analgica: 6
Corriente CC para pines de E/S: 40mA
Corriente DC para pin 3,3v: 50mA
Memoria Flash: 32 kB, 0,5 kB utilizados por el gestor de arranque
SRAM: 2kB
EEPROM: 1kB
Velocidad del reloj: 16 MHZ
Tensin entrada
funcionamiento
Memoria Flash
para E/S (mA)
recomendado
entrada lmite
Corriente CC
Tensin de
EEPROM
E analg
S analg
Digitales
Tensin
SRAM
Micro.
(MHz)
Clock
(KB)
(KB)
PLACA
E/S
(V)
Arduino
Yn Atmega32U4 5 5 5 20 12 -- 40 16 MB 2,5 1 16
Mega 256
Atmega2560 5 7-12 6-20 54 16 -- 40 8 4 16
ADK KB
32
Ethernet Atmega328 5 7-12 6-20 14 6 -- 40 2 1 16
KB)
256
Mega Atmega2560 5 7-12 6-20 54 16 -- 40 8 4 16
KB
43
44
La Tabla IV-2, presenta las dimensiones mnimas que deben poseer los
interiores de estas viviendas.
45
Un estudio del Sernac (8) indica que del total del presupuesto de las
familias chilenas, un 15% de este era destinado a servicios bsicos. Pero
analizando el segmento socioeconmico bajo, un 18,9% de los ingresos
familiares eran destinados a servicios bsicos. Por otra parte, los
segmentos socioeconmicos alto y bajo gastan ms en gas, un 31,7% y
31,03%, en cambio, el grupo socioeconmico bajo, gasta ms presupuesto
en electricidad, un 28% y un 25,89% en calefaccin.
Segn el Ministerio de Energa (9), el consumo promedio a nivel nacional
por vivienda es de 124,60kWh para el grupo socioeconmico D, si
consideramos una tarifa promedio de $113,6 pesos chilenos, una vivienda
de este grupo socioeconmico desembolsa $14.154,56 pesos chilenos por
concepto de electricidad. Si seccionamos el consumo por vivienda vemos
que la electricidad consumida se reparte segn Figura IV-2.
Hervidor 36,90%
Computador 57,30%
Televisor 69%
momento del usuario, las cuales tienden a ser distintas para cada ocacin
y/o situacin. Tomemos el siguiente ejemplo: un individuo al llegar a su
casa de noche, necesitar algo de iluminacin para poder abrir la puerta y
acceder si la luz de la luna no le acompaa. Se pueden dar dos casos, el
primero, nuestro personaje intenta insertar la llave en el cerrojo a punta
de prueba y error, y en el segundo caso, antes de salir de su casa deja
encendida la luz, que a su vez, dependiendo de las horas que han
transcurrido desde su salida del hogar hasta su regreso, implicar un
aumento considerable en su factura elctrica, sobre todo si dicho
comportamiento se repite durante toda la semana o todo el mes.
Es indispensable que la luminaria del acceso a la vivienda se encienda,
pero momentos antes de su llegada e inmediatamente despus a su
ingreso la luz debe apagarse, si no se utiliza, no tiene sentido dejarla
encendida, a excepcin de luminarias decorativas. As, es posible
identificar muchas otras reas dnde la domtica puede tomar accin.
En la vivienda, podemos identificar los siguientes elementos:
Aire acondicionado
Extractor de aire
Persianas
Toldos de ventanas
Lavadora
Refrigerador
Luminarias
Hervidor
Cocina
Riego
Electrodomstico
Aparatos electrnicos varios
Fuentes de energa en general (cargadores celulares, consolas v.j.,
54
62
63
Control luz
Keypad.h
cer
no
cer=tru
e
si
pre=micros(
)
no si
aut=tru
pir,
e
ldr
no ret=(ldr/mldr)*900
pul=tru
0
e
si
pir=high y no
ret=ret+1000 minldrmax
si
retmillis()-preret+50 no
Lig=off
si
f
Lig=o
n
V.2-1
V.2-2
V.2-3
V.2-4
VCC
R1
V0
LDR
GND
( )
V.2-5
VCC
R6
1 P1 R5
V1 U3
4 3
Salida
2
V.2-6
V.2-7
73
V.2-8
V.2-9
( )
( )
V.2-10
( )
V.2-11
Caracterstica Valor
Tensin disparo de puerta (VGT) 1,3V
Corriente disparo de puerta (IGT) 5 a 50mA
Corriente mnima de conduccin (IL) 10 a 70mA
Corriente de mantenimiento (IH) 10 a 50mA
Voltaje entre terminales en conduccin (VT) 1,55V
Mxima corriente de conduccin (IT(RMS)) 8
Resistencia trmica juntura ambiente Rth(j-a) 60C/W
Resistencia unin cpsula, Rth(j-c) 2,5C/W
Temperatura de juntura mxima Tjmx 125C
( )
( )
V.2-12
77
Control enchufe
enc=low
Lectura
pulsadores
si
enc=high Hold e
no
si
Press h enc=low
no
Equipo audio 50 w
Consola videojuegos 55 w
V.3-1
Tj Rth(j-c) Rth(c-d) Td
Tc
P
Tj-Ta Rth(d-a)
Ta
V.3-2
( )
V.3-3
Tomando los valores de los parmetros del Triac BTA08 entregados por el
fabricante del dispositivo y reemplazndolos en V.3-3 se obtiene una
( )
V.3-4
Sensor Actuador
CONTROLADOR
Humedad extractor
Pulsador
Control Humedad
Relativa
hr=50, ex=low,
aut=true
Sensor
humedad
no
aut=true
no
Se puls si
si
si Se puls
aut=false no
no
ex=!ex > ex=low
si
no
hold
ex=high
si
aut=true
V.4-1
1 P1 U1
T1
Hacia detector V1
4 3 LINE VREG
cruce por cero VOLTAGE
C1 COMMON
Alimentacin Arduino Alimentacin
2
general
V.5-1
94
95
102
103
104
105
sistema domtico.
//**********************************************************
//**********Sketch para controlador Arduino n1*************
//**********************************************************
/*Este sketch est diseado para controlar el teclado matricial
(interfaz de usuario principal), control de luz de acceso a la
vivienda y control de luz de la sala de estar.*/
#include <Keypad.h> //librera para uso de teclado matricial
const byte filas =4; //nmero de filas del teclado matricial
const byte columnas=4; //nmero de columnas del teclado matricial
byte pinsFilas[filas]={2,3,4,5}; //asignacin de pines a filas
byte pinsColumnas[columnas]={A0,A1,A2,A3}; //asignacin de pines a
columnas
char teclas[filas][columnas]={ //matriz de teclado
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
digitalWrite(enc0, LOW);
teclado.addEventListener(keypadEvent); //crea una interrupcin segn
evento del teclado
}
void loop(){
luz0=analogRead(ldr0);
luz1=analogRead(ldr1);
dmo0=digitalRead(mov0);
dmo1=digitalRead(mov1);
/* a continuacin se establece el mximo de retardo para los
disparos de los triacs segn el paso por cero*/
if(ret0>may){
ret0=men;
}
if(ret1>may){
ret1=men;
}
//detecta el paso por cero de la seal AC
act=digitalRead(detC);
if(act==HIGH){
tin=micros();
}
//cdigo ejecutable en modo automtico de zonas 0 y 1
if(aut0=true&&luz0<921&&dmo0==HIGH){
ret0=(luz0/921)*may;
}
if(aut1=true&&luz1<=921&&dmo1==HIGH){
ret1=(luz1/921)*may;
}
if(micros()-tin>=ret0&µs()-tin<=ret0+52){
digitalWrite(sec0,HIGH);
tecla=teclado.getKey();
}
else{
digitalWrite(sec0,LOW);
}
if(micros()-tin>=ret1&µs()-tin<=ret1+52){
digitalWrite(sec1,HIGH);
tecla=teclado.getKey();
}
else{
digitalWrite(sec1,LOW);
}
}
//rutina a seguir en caso de presionar alguna tecla de la interfaz princi
pal
void keypadEvent(KeypadEvent tecla){
switch(teclado.getState()){
case PRESSED:
switch (tecla){
case'0'://luz acceso
aut0=false;
ret0=ret0+900; //incremento de 1 mili segundos, mximo 10 mili
(medio ciclo)
break;
case'1'://luz sala estar
107
aut1=false;
ret1=ret1+900;
break;
case'B':
digitalWrite(enc0, HIGH);
break;
case'2'://tecla comedor
Serial.println('a',BIN);
break;
case'3'://cocina
Serial.println('b',BIN);
break;
case'4'://luz dormitorio 1
Serial.println('c',BIN);
break;
case'5':// luz dormitorio 2
Serial.println('d',BIN);
break;
case'6'://luz dormitorio 3
Serial.println('e',BIN);
break;
case'7'://extractor bao
Serial.println('f',BIN);
break;
case'8'://luz bao
Serial.println('g',BIN);
break;
case'9'://luz patio
Serial.println('h',BIN);
break;
case'*'://luz pasillo
Serial.println('i',BIN);
break;
case'#':// totalidad de luz
Serial.println('j',BIN);
break;
case'A':// extractor cocina
Serial.println('k',BIN);
break;
case'C':// enchufe 2
Serial.println('l',BIN);
break;
case'D':// enchufe 3
Serial.println('m',BIN);
break;
}
case HOLD:
switch(tecla){
case'0':
aut0=true;
break;
case'1':
aut1=true;
break;
case'B':
108
digitalWrite(enc0, LOW);
break;
case'2':
Serial.println('A',BIN);
break;
case'3':
Serial.println('B',BIN);
break;
case'4':
Serial.println('C',BIN);
break;
case'5':
Serial.println('D',BIN);
break;
case'6':
Serial.println('E',BIN);
break;
case'7':
Serial.println('F',BIN);
break;
case'8':
Serial.println('G',BIN);
break;
case'9':
Serial.println('H',BIN);
break;
case'*':
Serial.println('I',BIN);
break;
case'#':
Serial.println('J',BIN);
break;
case'A':
Serial.println('K',BIN);
break;
case'C':
Serial.println('L',BIN);
break;
case'D':
Serial.println('M',BIN);
break;
}
}
}
//**********************************************************
//**********Sketch para controlador Arduino n2*************
//**********************************************************
109
void setup(){
pinMode(sec2,OUTPUT);
pinMode(sec3,OUTPUT);
pinMode(sec4,OUTPUT);
pinMode(sec5,OUTPUT);
pinMode(enc1,OUTPUT);
pinMode(detC,INPUT);
pinMode(mov2,INPUT);
pinMode(mov3,INPUT);
pinMode(mov4,INPUT);
pinMode(mov5,INPUT);
digitalWrite(sec2, LOW);
digitalWrite(sec3, LOW);
digitalWrite(sec4, LOW);
digitalWrite(sec5, LOW);
digitalWrite(enc1, LOW);
}
void loop(){
luz2=analogRead(ldr2);
luz3=analogRead(ldr3);
luz4=analogRead(ldr4);
luz5=analogRead(ldr5);
dmo2=digitalRead(mov2);
dmo3=digitalRead(mov3);
dmo4=digitalRead(mov4);
dmo5=digitalRead(mov5);
puL2=digitalRead(pul2);
puL4=digitalRead(pul4);
puL5=digitalRead(pul5);
tin5=micros();
}
if(ret2>may){
ret2=men;
}
if(ret3>may){
ret3=men;
}
if(ret4>may){
ret4=men;
}
if(ret5>may){
ret5=men;
}
//detector de paso por cero
act=digitalRead(detC);
if(act==HIGH){
tin=micros();
}
// retardo disparo de triacs segn iluminacin natural
if(aut2=true&&luz2<921&&dmo2==HIGH){
ret2=(luz2/921)*may;
}
if(aut3=true&&luz3<921&&3==HIGH){
ret3=(luz3/921)*may;
}
if(aut4=true&&luz4<921&&dmo4==HIGH){
ret4=(luz4/921)*may;
}
if(aut5=true&&luz5<921&&dmo5==HIGH){
ret5=(luz5/921)*may;
}
if(micros()-tin>=ret2&µs()-tin<=ret2+52){
digitalWrite(sec2,HIGH);
}
else{
digitalWrite(sec2,LOW);
}
if(micros()-tin>=ret3&µs()-tin<=ret3+52){
digitalWrite(sec3,HIGH);
}
else{
digitalWrite(sec3,LOW);
}
if(micros()-tin>=ret4&µs()-tin<=ret4+52){
digitalWrite(sec4,HIGH);
}
else{
digitalWrite(sec4,LOW);
}
if(micros()-tin>=ret5&µs()-tin<=ret5+52){
digitalWrite(sec5,HIGH);
}
else{
digitalWrite(sec5,LOW);
111
}
if(micros()-tin2==50){
aut2=false;
ret2=ret2+900;
}
if(micros()-tin4==50){
aut4=false;
ret4=ret4+900;
}
if(micros()-tin5==50){
aut5=false;
ret5=ret5+900;
}
if(puL2==true&µs()-tin2>=3000000){
aut2=true;
}
if(puL4==true&µs()-tin4>=3000000){
aut4=true;
}
if(puL5==true&µs()-tin5>=3000000){
aut5=true;
}
if(Serial.available()){
byte ser=Serial.read();
switch (ser){
case'a':
aut2=false;
ret2=ret2+900; //incremento de 1 mili segundos, mximo 10 mili
(medio ciclo)
break;
case'i':
aut3=false;
ret3=ret3+900; //incremento de 1 mili segundos, mximo 10 mili
(medio ciclo)
break;
case'l':
digitalWrite(enc1,HIGH);
break;
case'd':
aut4=false;
ret4=ret4+900;
break;
case'e':
aut5=false;
ret5=ret5+900;
break;
case'j':
aut2=false;
ret2=5000;
aut3=false;
ret3=5000;
aut4=false;
ret4=5000;
aut5=false;
112
ret5=5000;
if(ser=='b'||'c'||'f'||'g'||'i'||'m'||'j'){
Serial.println(ser,BIN);
}
//codigo para cuando de mantiene presionada una tecla por 3 segundos
//en la interfaz principal
case'H':
aut3=true;
break;
case'L':
digitalWrite(enc1,LOW);
break;
case'D':
aut2=true;
break;
case'E':
aut4=true;
break;
case'J':
aut2=true;
aut3=true;
aut4=true;
aut5=true;
if(ser=='B'||'C'||'F'||'G'||'I'||'M'||'J'){
Serial.println(ser,BIN);
}
}
}
}
//**********************************************************
//**********Sketch para controlador Arduino n3*************
//**********************************************************
/*Cdigo para controlador n3 encargado de luz zona dormitorio 1, patio y
cocina, adems
de extractor de aire de cocina y enchufe 3*/
unsigned long tin, tin6, tin7,tex0, ten2; // tiempo paso por cero y
variable que define tiempo para evitar rebote
const int sec6=2, sec7=3, sec8=4, detC=5; //control luces sector 6 y
detector de paso por cero
const int mov6=6, mov7=7, mov8=8, ldr6=A0, ldr7=A1, ldr8=A2, ext0=9,
hum0=A3; //sensor de movimiento sector 6,7 y
//8, sensor luz sector 6, 7 y 8, extractor 0 y detector de humedad 0
const int pul6=10, pul7=11, pex0=12, enc2=13;
int ret6=0, ret7=0, ret8=0, men=0, may=10000; //retardo disparo inicial
triac sector 6 y , minimo y maximo
int pre=LOW, act=LOW;
int luz6, luz7, luz8, dmo6, dmo7, dmo8, dhu0;
boolean aut6=true, aut7=true, aut8=true, puL6=false, puL7=false,
pEx0=false, pEn2=false, aue0=true, ese0=LOW;
113
void setup(){
pinMode(sec6, OUTPUT);
pinMode(sec7, OUTPUT);
pinMode(sec8, OUTPUT);
pinMode(enc2, OUTPUT);
pinMode(detC, INPUT);
pinMode(mov6, INPUT);
pinMode(mov7, INPUT);
pinMode(mov8, INPUT);
pinMode(pul6, INPUT);
pinMode(pul7, INPUT);
pinMode(pex0, INPUT);
digitalWrite(sec6, LOW);
digitalWrite(sec7, LOW);
digitalWrite(sec8, LOW);
digitalWrite(ext0, LOW);
digitalWrite(enc2, LOW);
}
void loop(){
luz6=analogRead(ldr6);
luz7=analogRead(ldr7);
luz8=analogRead(ldr8);
dhu0=analogRead(hum0);
dmo6=digitalRead(mov6);
dmo7=digitalRead(mov7);
dmo8=digitalRead(mov8);
puL6=digitalRead(pul6);
puL7=digitalRead(pul7);
pEx0=digitalRead(pex0);
pEn2=digitalRead(enc2);
if(puL6!=puL6){
tin6=micros();
}
if(puL7!=puL7){
tin7=micros();
}
if(pEx0!=pEx0){
tex0=micros();
}
if(pEn2!=pEn2){
ten2=micros();
}
if(ret6>may){
ret6=men;
}
if(ret7>may){
ret7=men;
}
if(ret8>may){
ret8=men;
}
//detector de paso por cero
act=digitalRead(detC);
114
if(act==LOW){
pre=LOW;
}
if(act==HIGH){
tin=micros();
}
// retardo disparo de triacs segn iluminacin natural
if(aut6=true&&luz6<=921&&dmo6==HIGH){
ret6=(luz6/921)*may;
}
if(aut7=true&&luz7<=921&&dmo7==HIGH){
ret7=(luz7/921)*may;
}
if(aut8=true&&luz8<=921&&dmo8==HIGH){
ret8=(luz8/921)*may;
}
if(micros()-tin>=ret6&µs()-tin<=ret6+52){
digitalWrite(sec6,HIGH);
}
else{
digitalWrite(sec6,LOW);
}
if(micros()-tin>=ret7&µs()-tin<=ret7+52){
digitalWrite(sec7,HIGH);
}
else{
digitalWrite(sec7,LOW);
}
if(micros()-tin>=ret8&µs()-tin<=ret8+52){
digitalWrite(sec8,HIGH);
}
else{
digitalWrite(sec8,LOW);
}
if(micros()-tin6==50){
aut6=false;
ret6=ret6+900;
}
if(micros()-tin7==50){
aut7=false;
ret7=ret7+900;
}
if(micros()-tex0==50){
aue0=false;
ese0=!ese0;
digitalWrite(ext0,ese0);
}
if(pul6==true&µs()-tin6>=3000000){
aut6=true;
}
if(pul7==true&µs()-tin7>=3000000){
aut7=true;
}
if(pEx0==true&µs()-tex0>=3000000){
aue0=true;
}
115
if(dhu0>471&&aue0==true){
digitalWrite(ext0,HIGH);
}
else{
digitalWrite(ext0,HIGH);
}
if(Serial.available()){
byte ser=Serial.read();
switch (ser){
case'c'://dormitorio1
aut6=false;
ret6=ret6+900; //incremento de 0,9 mili segundos, mximo 9,9 mili
(medio ciclo)
break;
case'b'://cocina
aut7=false;
ret7=ret7+900; //incremento de 0,9 mili segundos, mximo 9,9 mili
(medio ciclo)
break;
case'h'://patio
aut8=false;
ret8=ret8+900; //incremento de 0,9 mili segundos, mximo 9,9 mili
(medio ciclo)
break;
case'm'://enchufe 2
digitalWrite(enc2, HIGH);
break;
case'k':
digitalWrite(ext0, HIGH);
aue0=false;
break;
case'j':
aut6=false;
ret6=5000;
aut7=false;
ret7=5000;
aut8=false;
ret8=5000;
break;
if(ser=='f'||'g'||'j'){
Serial.println(ser,BIN);
}
case'H':
aut6=true;
break;
case'K':
digitalWrite(enc2,LOW);
break;
case'D':
aut7=true;
break;
case'E':
aut8=true;
break;
116
case'M':
digitalWrite(ext0, HIGH);
aue0=true;
break;
case'J':
aut6=true;
aut7=true;
aut8=true;
break;
if(ser=='F'||'G'||'J'){
Serial.println(ser,BIN);
}
}
}
}
//**********************************************************
//**********Sketch para controlador Arduino n3*************
//**********************************************************
// sketch que controla luz sector bao, y extractor bao
unsigned long tin, tin9,tex1; // tiempo paso por cero y variable que
define tiempo para evitar rebote
const int sec9=2, detC=3;
const int mov9=4, ldr9=A0, ext1=5, hum1=A1;
const int pul9=6, pex1=7;
int ret9=0,men=0, may=9900;
int pre=LOW, act=LOW;
int luz9,dmo9, dhu1;
boolean aut9=true, puL9=false, aue1=true, pEx1=false, ese1=LOW;
void setup(){
pinMode(sec9, OUTPUT);
pinMode(ext1, OUTPUT);
pinMode(mov9, INPUT);
pinMode(pex1, INPUT);
pinMode(pul9, INPUT);
digitalWrite(sec9, LOW);
digitalWrite(pex1, LOW);
}
void loop(){
luz9=analogRead(ldr9);
dhu1=analogRead(hum1);
dmo9=digitalRead(mov9);
puL9=digitalRead(pul9);
pEx1=digitalRead(pex1);
if(puL9!=puL9){
117
tin9=micros();
}
if(pEx1!=pEx1){
tex1=micros();
}
if(ret9>may){
ret9=men;
}
act=digitalRead(detC);
if(act==LOW){
pre=LOW;
}
if(act==HIGH){
tin=micros();
}
if(aut9=true&&luz9<=921&&dmo9==HIGH){
ret9=(luz9/921)*may;
}
if(micros()-tin>=ret9&µs()-tin<=ret9+52){
digitalWrite(sec9,HIGH);
}
else{
digitalWrite(sec9,LOW);
}
if(micros()-tex1==50){
aue1=false;
ese1=!ese1;
digitalWrite(ext1,ese1);
}
if(puL9==true&&aut9==false){
aut9=false;
ret9=ret9+900;
}
if(pul9==true&µs()-tin9>=3000000){
aut9=true;
}
if(pEx1==true&µs()-tex1>=3000000){
aue1=true;
}
if(Serial.available()){
byte ser=Serial.read();
switch (ser){
case'f'://dormitorio1
aut9=false;
ret9=ret9+900; //incremento de 1 mili segundos, mximo 10 mili
(medio ciclo)
break;
case'g':
digitalWrite(ext1, !ese1);
break;
case'j':
aut9=false;
ret9=5000;
case'F':
118
aut9=true;
break;
case'G':
aue1=true;
break;
case'J':
aut9=true;
}
}
}