SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
Luz por detector de movimiento y
crepuscular “Senpir”
Por Ángel Acaymo M. G. – Tenerife, España
metaconta@gmail.com
INTRODUCCIÓN
Alguna vez, en la entrada principal de una casa terrena o chalet, después de pasar por el jardín y antes de llegar a la
puerta principal de la vivienda, por la noche podría ser molesto al intentar abrir la puerta en ausencia o insuficiente luz.
A veces, es buena idea instalar un pequeño aparato electrónico hecho por uno mismo, un circuito capaz de realizar
ciertas tareas y estar más cómodo en ciertas situaciones como ésta.
Al caer la noche sería una buena idea que el circuito electrónico encienda la luz y se apague cuando empieza a llegar el
Sol en las primeras horas de la mañana, por lo que se conoce como interruptor crepuscular. En caso de que no quiera
consumir luz durante toda la noche o bien, utiliza las lámparas compactas también conocidas como lámparas de bajo
consumo o otra posibilidad que sólo se encienda la lámpara al detectar la presencia de una persona al acercarse a la
puerta principal, eso si, al entrar a la vivienda la lámpara se quedará un tiempo encendida seleccionado por la persona,
por ejemplo, unos cinco minutos, después se apaga. Ambos modos lo puedes seleccionar en el propio circuito
electrónico por el cual lo llamo y llamaré a partir de ahora, “Senpir”. Si lo deseas, puedes hacer el efecto contrario
gracias al relé que ya tiene un conmutador e incluso en el propio sensor de movimiento.
Este pequeño proyecto está pensado para éste tipo de aplicaciones o cualquier otra tarea como al encender la lámpara
mientras vas a la barbacoa que tienes en el otro lado del jardín sin tocar el interruptor, al ser detectado por el sensor de
movimiento (PIR), activa una alarma desde el jardín si entra un intruso, etc. Sabiendo que Senpir está controlado por un
microcontrolador PIC, podría servir un pequeño proyecto de fin de curso para estudiantes de la rama electricidad-
electrónica e incluso cualquier aficionado con un mínimo de conocimiento de electrónica básica.
Senpir tiene dos circuitos impreso independiente, una de control y la otra de fuente de alimentación conectada entre sí
con un conector y dentro de la misma caja.
El motivo de diseñar dos placas diferentes en el mismo circuito electrónico de tipo módulos, es por si cualquier causa
falla la placa de la fuente de alimentación, hay corte de la corriente eléctrica desde la red de la casa o por otros motivos,
puedes sustituirla por otra placa o conectarla a una batería a parte e incluso en placas solares fotovoltaicas.
Las características técnicas del Senpir son muy sencillas y entre ella destaca dos placas independientes:
- Fuente de alimentación con un transformador necesario para lograr una tensión fija y estabilizada mediante un
regulador.
- Un Relé con un conmutador para la lámpara u otra aplicación.
- Un microcontrolador PIC que controla el circuito.
- Un sensor de Luz o LDR que detecta la presencia de la luz.
- Un sensor infrarrojo de movimiento o PIR.
Fig 1. Fotografía del Senpir.
Fig 2. Componentes del circuito.
DISEÑO DEL CIRCUITO
El control central del circuito es un microcontrolador que controla no sólo el funcionamiento de de las señales de los
sensores, de luz y movimiento sino los temporizadores para el relé y diodos led de aviso. Los microcontroladores
incluyen microprocesador, memoria del programa, memoria de datos, puertos de entradas y salidas y otras
características todo en el mismo encapsulado, ahí está claro la ventaja su reducido tamaño.
El proyecto se ha elegido el popular microcontrolador PIC 16F84A del fabricante Microchip Thecnology Inc. Es muy
conocido, donde hay más información, ejemplos, proyectos para aprendizaje y fácil uso. El microcontrolador está
desarrollado con un programa bajo el entorno de desarrollo llamado MPLAB que puedes descargar y usar
gratuitamente en la Web del fabricante Microchip así como las hojas de datos de todos los dispositivos PIC entre otros
periféricos, http://www.microchip.com
DESCRIPCIÓN Y FUNCIONAMIENTO DEL HARDWARE
- Sensor de luz
El sensor LDR viene de la expresión inglesa Light Dependent Resistor. Son componentes pasivos cuya resistencia o su
valor óhmico varía en función de la luz recibida. Con él puedes detectar la presencia de luz y oscuridad para activar o
desactivar el relé de la lámpara. Al recibir más luz, baja su valor óhmico hasta que el microcontrolador lo detecte y
ejecuta su tarea determinada.
- Sensor PIR
El sensor PIR “Passive Infra Red” es un dispositivo piroeléctrico que mide los cambios de niveles de radiación
infrarroja emitida por los objetos de su entorno alrededor de seis metros. Cambia su estado lógico en una patilla
conectado al microcontrolador. Este sensor es de muy bajo costo y pequeño, se suele utilizar en sistemas de alarmas,
iluminación controlada por movimiento y aplicaciones de robótica.
Fig 3. Detector de movimiento PIR.
Sus características técnicas son:
- Voltaje de alimentación: 5VDC.
- Visión máxima 6 metros.
- Estado en su salida TTL.
- Polaridad de salida seleccionable.
- Poco tiempo de calibración.
El sensor PIR sólo usa tres terminales, dos de alimentación y uno de datos que se conecta al microcontrolador.
Fig 4. Conexión del PIR al microcontrolador.
El circuito electrónico se instala dentro de la vivienda con los sensores al exterior. El sensor de luz se instala lejos de la
lámpara o que no le dé luz sobre ella excepto la luz ambiente. El sensor de movimiento se instala bajo la lámpara sin
que llegue el calor y luz directa ya que puede dar un funcionamiento no esperado.
La fuente de alimentación que tiene 5 voltios desde de la tensión continua de 12 voltios y al menos 1 amperio. En este
circuito se encuentra un regulador de tensión 7805. En su entrada dispone de un puente de diodos rectificador de onda
completa de 12 voltios con su condensador que hace de filtrado para obtener 12 voltios en continua. El regulador 7805
se encarga de estabilizar los 5 voltios de alimentación del otro circuito principal más los 12 voltios para alimentar el
relé. Al final se encuentra un diodo Led de encendido.
Fig 5. Esquema fuente de alimentación.
• Fig 6. Esquema eléctrico del circuito principal.
El circuito principal está controlado con un µC PIC 16F84A donde se comunican dos sensores como entrada, un relé
como salida y un micro interruptor para controlar el tipo de configuración deseada y tiempos de encendido.
En las entradas del µC PIC 16F84A, está conectado un micro interruptor, sensor de luz y sensor de movimiento. El
sensor de luz o LDR conectado al puerto RB3 (pin 9) como entrada, detecta el día y la noche con la finalidad de hacer
un interruptor crepuscular, es decir, que sólo se enciende la lámpara o al caer la noche. Tiene un tiempo de veinte
segundos para asegurarse que realmente es de noche o de día.
El sensor de movimiento o PIR, conectado al puerto RB1 (pin 7) como entrada. Tienen elementos fabricados de un
material cristalino que genera una carga eléctrica cuando se expone a una radiación infrarroja. Los cambios de la
cantidad de radiación producen cambios de voltaje los cuales son medidos por un amplificador. El sensor PIR contiene
unos filtros especiales llamados lentes de Fresnel que enfocan las señales infrarrojas sobre el elemento sensor. Cuando
las señales infrarrojas del ambiente donde se encuentra el sensor cambian rápidamente, el amplificador activa la salida
para indicar movimiento. Esta salida se queda activa unos segundos permitiendo al micro controlador saber si hubo
movimiento.
Funciona a 5VDC, gracias a que tiene un patillaje o pin que se conecta al micro controlador directamente, el sensor PIR
funciona como un interruptor a la vez puedes cambiar mediante un jumper el estado lógico de la salida si deseas el
efecto contrario.
En la salida RA3 (pin 2) del micro controlador dispone un relé de 12VDC para activar una lámpara o lámpara de la red
(220VAC). En la base del transistor T1, pasa a conducción y activa el relé. Este circuito también aísla eléctricamente la
carga del micro controlador. El valor de la potencia a controlar depende de los contactos del relé y varía mucho según
el modelo, en este caso soporta 10 Amperios. El diodo paralelo al relé se incluye de protección de los transistores por la
fuerza contraelectromotriz.
Microinterruptor
Pin Puerto B ON OFF
4 RB4 (Pin 10) PIR LDR
3 RB5 (Pin 11) 5 m. 0
2 RB6 (Pin 12) 30 m. 0
1 RB7 (Pin 10) 1 h. 0
Tabla 1. Micro interruptor.
A su salida del puerto A, se visualiza los Led de avisos. Led verde visualiza que se ha elegido la opción interruptor
crepuscular y el rojo visualiza que se ha elegido la opción del sensor de movimiento que puedes seleccionar en el
microinterruptor Int_RB4 (pin 10). Le Led azul indica que está activado o desactivado el relé en el momento de
conmutar así sabrás sin salir de casa su estado actual mirando el circuito o la caja donde lo tienes instalado, en cambio,
el Led ambar o amarillo significa el encendido de la fuente de alimentación.
Led
Amarillo Fuente alimentación
Verde LDR
Rojo PIR
Azul Relé
Tabla 2. Indicadores de los Led.
PROGRAMA DEL MICROCONTROLADOR 16F84A
El programa del PIC16F84A está escrito con el lenguaje ensamblador. Mediante el diagrama de flujo, es más fácil ver a
simple vista un esquema completo sobre su funcionamiento paso por paso.
Inicio
PORTA = Salida
PORTB = Entrada
En principio
Bombilla apagada
¿Int_RB4
activado?
LED Rojo = OFF
LED Verde = ON
¿LDR en
oscuridad?
Retardo20
segundos
¿LDR aún en
oscuridad?
Bombilla y LED
Azul encendido
No
Si
No
Si
Retardo 20
segundos
¿LDR ilum. por
el Sol?
Bombilla y LED
Azul apagado
Si
No
LED Verde= OFF
LED Rojo = ON
¿LDR en
oscuridad?
Si
No
Bombilla y LED
Azul apagado
¿PIR
detectada
presencia?
Bombilla y LED
Azul apagado
Si
No
No
Si
Bombilla y LED
Azul encendido
¿RB5
activado?
¿RB6
activado?
¿RB7
activado?
Retardo5
minutos
Retardo30
minutos
Retardo1
hora
Si
Si
Si
No
No
No
FIN
Principal
Diagrama de flujo.
Fig 7. Diagrama de flujo.
Fig 8. Cara componentes.
Fig 9. Cara pistas esquema.
Fig 10. Cara pistas.
Fig 11. Vista perspectiva.
Fig 12. Vista trasera.
Fig 13. Proyecto acabado.
VÍDEOS
Vídeos del circuito Senpir funcionando con el PIC16F84A, también con código fuente para el PIC16F88.
1) Ver vídeo.
2) Ver vídeo.
LISTA DE MATERIALES
Resistencias:
R1, R2, R3, R4, R11 = 10 KΩ
R5, R6, R7, R9 = 330 Ω
R10 = 100 Ω
R12 = 33 KΩ
Condensadores:
C1, C2 = 22 pF
Diodos:
D1 = Led 5 mm bicolor verde rojo
D2 = Led 5 mm Azul
D3 = 1N4148
Transistor:
T1 = 2N2222
Varios:
R = LDR
X1 = 4MHZ (Cristal de cuarzo)
DSW1 = 4 interruptores
P1 = 4K7 Ω Potenciómetro
RL1 = 12VDC, 10Amp, 1 Conmutador
S1 = Botón reset
J1, J2, J4 = 2 bornes
J3 = 3 bornes
J5 = 4 bornes
IC1 = PIC16F84A-04 (También compatible con PIC16F88)
CÓDIGO FUENTE PIC16F84A
;¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬Senpir.asm¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
;
; PROGRAMA: "Senpir". Luz por detector de movimiento y crepuscular.
; AUTOR: Ángel Acaymo M. G.
; E-MAIL; metaconta@gmail.com
; PROCESADOR: PIC16F84A
; FRECUENCIA: 4 MHz
; VERSIÓN: 1.00
; DESCRIPCIÓN:
;
; Programa de un interruptor con sensor movimiento y de luz solar: Si es de noche,
; mientras el sensor de movimiento (PIR) detecta la presencia de alguien
; entorno a 6 metros, activa o se pone a 1 la entrada RA3 y la lámpara
; se enciende. En caso de que sea de día detectado por la LDR, nunca se enciende
; la lámpara. En la otra opción, cuando la LDR detecta la noche o falta de Sol,
; la lámpara se enciende, cuando sea de día, la lámpara se apaga.
; En los microinterruptores puedes activar el tiempo que tarda en apagarse la
; lámpara después de ser detectado por el sensor Pir y de noche de un máximo
; una hora y treinta y cinco minutos.
;
;
¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
; DATOS
¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
LIST P=16F84A
INCLUDE <P16F84A.INC>
__CONFIG 3FF1
__idlocs 0001 ; ID, versión del programa.
CBLOCK 0x0C
ENDC
#DEFINE Led_verde PORTA,0 ; Led verde indica opción LDR seleccionada.
#DEFINE Led_rojo PORTA,1 ; Led rojo indica opción PIR seleccionada.
#DEFINE Led_azul PORTA,2 ; Led azul indica que el Relé está activado.
#DEFINE lámpara PORTA,3 ; lámpara.
#DEFINE PIR PORTB,1 ; Sensor PIR.
#DEFINE LDR PORTB,3 ; Sensor LDR.
#DEFINE Int_RB4 PORTB,4 ; Interruptor RB4.
#DEFINE Int_RB5 PORTB,5 ; Interruptor RB5.
#DEFINE Int_RB6 PORTB,6 ; Interruptor RB6.
#DEFINE Int_RB7 PORTB,7 ; Interruptor RB7.
; EEPROM
¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
ORG 0x2100 ; Comienza en la dirección 0 de la memoria EERPOM.
; Datos nombre del archivo, versión del programa
; y dirección del correo electrónico.
DE "Senpir.asm. v1.0. 25-03-2009. metaconta@gmail.com", 0x00
; CÓDIGOS
¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
ORG 0
Inicio
bsf STATUS,RP0 ; Accede al Banco 1.
clrf PORTA ; Puerto A como salidas.
movlw b'11111111' ; Las 8 líneas del puerto B se configura como entradas.
movwf PORTB
bcf STATUS,RP0 ; Accede al Banco 0.
clrf PORTA ; Supuestamente la lámpara y Led apagadas.
Opcion_principal
btfss Int_RB4 ; ¿Bit 4 del PORTB es "1"? ¿Int_RB4 activado?
goto Opcion_LDR ; No, activa modo LDR.
goto Opcion_PIR ; Sí, activa modo PIR.
; INTERRUPTOR CREPUSCULAR LDR
¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
Opcion_LDR
bcf Led_rojo ; Se apaga el Led rojo.
bsf Led_verde ; Enciende Led verde indicando modo LDR activado.
btfss LDR ; ¿La entrada LDR es igual a 1?, ¿LDR en oscuridad?
goto Apaga_la_lámpara ; No, la LDR está iluminada por el Sol. La lámpara se apaga.
Enciende_la_lámpara
call Retardo_20_seg ; Espera 20 segundos para confirmar la oscuridad.
btfss LDR ; ¿Entrada es igual a 1?, ¿LDR aún en oscuridad?
goto Opcion_principal ; No, sale fuera.
bsf lámpara ; Sí, enciende la lámpara.
bsf Led_azul ; Led_azul activo.
goto Opcion_principal
Apaga_la_lámpara
call Retardo_20_seg ; Espera 20 segundos para confirmar la oscuridad.
btfsc LDR ; ¿Entrada es = 0?, ¿LDR sigue iluminada por luz del sol?
goto Opcion_principal ; No, sale fuera.
bcf lámpara ; Sí, apaga lámpara.
bcf Led_azul ; Led_azul indica que la lámpara está apagada.
goto Opcion_principal
; DETECTOR DE MOVIMIENTO
¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
Opcion_PIR
bcf Led_verde ; Apaga el Led verde de aviso.
bsf Led_rojo ; Enciende Led rojo avisando que está activado el modo PIR.
btfss LDR ; ¿La entrada LDR es igual a 1?, ¿LDR en oscuridad?
goto lámpara_OFF ; No.
btfss PIR ; ¿La entrada PIR es igual a 1?, ¿PIR ha detectado presencia?
goto lámpara_OFF ; No, no ha detectado presencia o movimiento.
lámpara_ON
bsf lámpara ; Sí, enciende la lámpara.
bsf Led_azul ; Led_azul activo.
btfss Int_RB5 ; ¿Bit 5 del PORTB es igual a 1?, ¿Activado el interruptor
RB5?
goto RB6 ; No, salta a la línea siguiente.
call Retardo_5_min ; Tiempo lámpara encendida 5 minutos.
RB6
btfss Int_RB6 ; ¿Bit 6 del PORTB es igual a 1?, ¿Activado el interruptor
RB6?
goto RB7
call Retardo_30_min ; Tiempo lámpara encendida 30 minutos.
RB7
btfss Int_RB7 ; ¿Bit 7 del PORTB es igual a 1?, ¿Activado el interruptor
RB7?
goto Opcion_principal
call Retardo_1_hora ; Tiempo lámpara encendida 1 hora.
goto Opcion_principal
lámpara_OFF
bcf lámpara ; Apaga lámpara.
bcf Led_azul ; Apaga Led_azul.
goto Opcion_principal
; SUBRUTINAS
¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
; Retardo de 20 segundos ................................................................
cblock
ret_00
ret_01
ret_02
Nulo
endc
Retardo_20_seg
;19999992 ciclos
movlw 0xB5
movwf ret_00
movlw 0x99
movwf ret_01
movlw 0x2C
movwf ret_02
Retardo_20_seg_0
decfsz ret_00, f
goto $+2
decfsz ret_01, f
goto $+2
decfsz ret_02, f
goto Retardo_20_seg_0
;4 ciclos
goto $+1
goto $+1
;4 ciclos (incluyendo call)
return
; Retardo de 5 minutos ..................................................................
cblock
ret_05
ret_06
ret_07
ret_08
endc
Retardo_5_min
;299999995 ciclos
movlw 0x54
movwf ret_05
movlw 0xA1
movwf ret_06
movlw 0xFD
movwf ret_07
movlw 0x02
movwf ret_08
Retardo_5_min_0
decfsz ret_05, f
goto $+2
decfsz ret_06, f
goto $+2
decfsz ret_07, f
goto $+2
decfsz ret_08, f
goto Retardo_5_min_0
;1 ciclo
nop
;4 ciclos (incluyendo call)
return
; Retardo de 30 minutos .................................................................
cblock
ret_09
ret_10
ret_11
ret_12
endc
Retardo_30_min
;1799999989 ciclos
movlw 0xFE
movwf ret_09
movlw 0xC2
movwf ret_10
movlw 0xEC
movwf ret_11
movlw 0x0C
movwf ret_12
Retardo_30_min_0
decfsz ret_09, f
goto $+2
decfsz ret_10, f
goto $+2
decfsz ret_11, f
goto $+2
decfsz ret_12, f
goto Retardo_30_min_0
;7 ciclos
goto $+1
goto $+1
goto $+1
nop
;4 ciclos (incluyendo call)
return
; Retardo de 1 hora .....................................................................
cblock
ret_13
ret_14
ret_15
ret_16
endc
Retardo_1_hora
;3599999989 ciclos
movlw 0xFE
movwf ret_13
movlw 0x84
movwf ret_14
movlw 0xD8
movwf ret_15
movlw 0x18
movwf ret_16
Retardo_1_hora_0
decfsz ret_13, f
goto $+2
decfsz ret_14, f
goto $+2
decfsz ret_15, f
goto $+2
decfsz ret_16, f
goto Retardo_1_hora_0
;7 ciclos
goto $+1
goto $+1
goto $+1
nop
;4 ciclos (incluyendo call)
return
END
CÓDIGO FUENTE PIC16F88
;¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬Senpir.asm¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
;
; PROGRAMA: "Senpir". Luz por detector de movimiento y crepuscular.
; AUTOR: Ángel Acaymo M. G.
; E-MAIL; metaconta@gmail.com
; PROCESADOR: PIC16F88
; FRECUENCIA: 4 MHz
; VERSIÓN: 1.0
; DESCRIPCIÓN:
;
; Programa de un interruptor con sensor movimiento y de luz solar:
; Si es de noche,
; mientras el sensor de movimiento (PIR) detecta la presencia de alguien
; entorno a 6 metros, activa o se pone a 1 la entrada RA3 y la lámpara
; se enciende. En caso de que sea de día detectado por la LDR, nunca se
; enciende
; la lámpara. En la otra opción, cuando la LDR detecta la noche o falta de
; Sol, la lámpara se enciende, cuando sea de día, la lámpara se apaga.
; En los microinterruptores puedes activar el tiempo que tarda en apagarse
; la lámpara después de ser detectado por el sensor Pir
; y de noche de un máximo una hora y treinta y cinco minutos.
;
;¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
; __CONFIG ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
;
; _CP_OFF: Protección de código DESACTIVADO.
; _DEBUG_OFF: Debug en circuito DESACTIVADO.
; _WRT_PROTECT_OFF: Protección a escritura en memoria de programa DESACTIVADO.
; _CPD_OFF: Protección de código de datos DESACTIVADO.
; _LVP_OFF: Programación en baja tensión DESACTIVADO.
; _BODEN_OFF: Reset por Brown-out DESACTIVADO.
; _MCLRE_ON: Reset por pin externo ACTIVADO.
; _PWRTE_ON: Retraso al reset ACTIVADO.
; _WDT_OFF: Watchdog DESACTIVADO.
; _XT_OSC: Oscilador externo del tipo XT.
;---------------------------------------------------------------------------
; _IESO_OFF: Modo de intercambio de externo a interno DESACTIVADO.
; _FCMEN_OFF: Monitor de CLK DESACTIVADO.
; DATOS ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
LIST P=16F88
INCLUDE <P16F88.INC>
__CONFIG _CONFIG1, _CP_OFF & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF &
_LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _XT_OSC
__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF
__idlocs 0001 ; ID, versión del programa.
CBLOCK 0x20
ENDC
#DEFINE Led_verde PORTA,0 ; Led verde indica opción LDR seleccionada.
#DEFINE Led_rojo PORTA,1 ; Led rojo indica opción PIR seleccionada.
#DEFINE Led_azul PORTA,2 ; Led azul indica que el Relé está activado.
#DEFINE lámpara PORTA,3 ; lámpara.
#DEFINE PIR PORTB,1 ; Sensor PIR.
#DEFINE LDR PORTB,3 ; Sensor LDR.
#DEFINE Int_RB4 PORTB,4 ; Interruptor RB4.
#DEFINE Int_RB5 PORTB,5 ; Interruptor RB5.
#DEFINE Int_RB6 PORTB,6 ; Interruptor RB6.
#DEFINE Int_RB7 PORTB,7 ; Interruptor RB7.
; EEPROM ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
ORG 0x2100 ; Comienza en la dirección 0 de la memoria EERPOM.
; Datos nombre del archivo, versión del programa
; y dirección del correo electrónico.
DE "Senpir_16F88.asm. v1.0. 02-01-2010. metaconta@gmail.com", 0x00
; CÓDIGOS ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
ORG 0
Inicio
BANKSEL CMCON ; Cambio al banco 1.
movlw b'00000111' ; .7
movwf CMCON ; Comparadores apagados.
clrf ANSEL ; Pines digitales.
clrf TRISA ; PORTA como salida.
movlw b'11111111'
movwf TRISB ; PORTB como entrada.
BANKSEL PORTA ; Cambio al banco 0.
clrf PORTA ; Supuestamente la lámpara y Led apagadas.
Opcion_principal
btfss Int_RB4 ; ¿Bit 4 del PORTB es "1"? ¿Int_RB4 activado?
goto Opcion_LDR ; No, activa modo LDR.
goto Opcion_PIR ; Sí, activa modo PIR.
; INTERRUPTOR CREPUSCULAR LDR ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
Opcion_LDR
bcf Led_rojo ; Se apaga el Led rojo.
bsf Led_verde ; Enciende Led verde indicando modo LDR activado.
btfss LDR ; ¿La entrada LDR es igual a 1?, ¿LDR en oscuridad?
goto Apaga_la_lámpara ; No, la LDR está iluminada por el Sol. La lámpara se
apaga.
Enciende_la_lámpara
call Retardo_20_seg ; Espera 20 segundos para confirmar la oscuridad.
btfss LDR ; ¿Entrada es igual a 1?, ¿LDR aún en oscuridad?
goto Opcion_principal ; No, sale fuera.
bsf lámpara ; Sí, enciende la lámpara.
bsf Led_azul ; Led_azul activo.
goto Opcion_principal
Apaga_la_lámpara
call Retardo_20_seg ; Espera 20 segundos para confirmar la oscuridad.
btfsc LDR ; ¿Entrada es = 0?, ¿LDR sigue iluminada por luz del
sol?
goto Opcion_principal ; No, sale fuera.
bcf lámpara ; Sí, apaga lámpara.
bcf Led_azul ; Led_azul indica que la lámpara está apagada.
goto Opcion_principal
; DETECTOR DE MOVIMIENTO ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
Opcion_PIR
bcf Led_verde ; Apaga el Led verde de aviso.
bsf Led_rojo ; Enciende Led rojo avisando que está activado el modo PIR.
btfss LDR ; ¿La entrada LDR es igual a 1?, ¿LDR en oscuridad?
goto lámpara_OFF ; No.
btfss PIR ; ¿La entrada PIR es igual a 1?, ¿PIR ha detectado presencia?
goto lámpara_OFF ; No, no ha detectado presencia o movimiento.
lámpara_ON
bsf lámpara ; Sí, enciende la lámpara.
bsf Led_azul ; Led_azul activo.
btfss Int_RB5 ; ¿Bit 5 del PORTB es igual a 1?, ¿Activado el interruptor RB5?
goto RB6 ; No, salta a la línea siguiente.
call Retardo_5_min ; Tiempo lámpara encendida 5 minutos.
RB6
btfss Int_RB6 ; ¿Bit 6 del PORTB es igual a 1?, ¿Activado el interruptor RB6?
goto RB7
call Retardo_30_min ; Tiempo lámpara encendida 30 minutos.
RB7
btfss Int_RB7 ; ¿Bit 7 del PORTB es igual a 1?, ¿Activado el interruptor RB7?
goto Opcion_principal
call Retardo_1_hora ; Tiempo lámpara encendida 1 hora.
goto Opcion_principal
lámpara_OFF
bcf lámpara ; Apaga lámpara.
bcf Led_azul ; Apaga Led_azul.
goto Opcion_principal
; SUBRUTINAS ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
; Retardo de 20 segundos ................................................
cblock
ret_00
ret_01
ret_02
Nulo
endc
Retardo_20_seg
;19999992 ciclos
movlw 0xB5
movwf ret_00
movlw 0x99
movwf ret_01
movlw 0x2C
movwf ret_02
Retardo_20_seg_0
decfsz ret_00, f
goto $+2
decfsz ret_01, f
goto $+2
decfsz ret_02, f
goto Retardo_20_seg_0
;4 ciclos
goto $+1
goto $+1
;4 ciclos (incluyendo call)
return
; Retardo de 5 minutos ...............................................
cblock
ret_05
ret_06
ret_07
ret_08
endc
Retardo_5_min
;299999995 ciclos
movlw 0x54
movwf ret_05
movlw 0xA1
movwf ret_06
movlw 0xFD
movwf ret_07
movlw 0x02
movwf ret_08
Retardo_5_min_0
decfsz ret_05, f
goto $+2
decfsz ret_06, f
goto $+2
decfsz ret_07, f
goto $+2
decfsz ret_08, f
goto Retardo_5_min_0
;1 ciclo
nop
;4 ciclos (incluyendo call)
return
; Retardo de 30 minutos ........................................................
cblock
ret_09
ret_10
ret_11
ret_12
endc
Retardo_30_min
;1799999989 ciclos
movlw 0xFE
movwf ret_09
movlw 0xC2
movwf ret_10
movlw 0xEC
movwf ret_11
movlw 0x0C
movwf ret_12
Retardo_30_min_0
decfsz ret_09, f
goto $+2
decfsz ret_10, f
goto $+2
decfsz ret_11, f
goto $+2
decfsz ret_12, f
goto Retardo_30_min_0
;7 ciclos
goto $+1
goto $+1
goto $+1
nop
;4 ciclos (incluyendo call)
return
; Retardo de 1 hora ...........................................................
cblock
ret_13
ret_14
ret_15
ret_16
endc
Retardo_1_hora
;3599999989 ciclos
movlw 0xFE
movwf ret_13
movlw 0x84
movwf ret_14
movlw 0xD8
movwf ret_15
movlw 0x18
movwf ret_16
Retardo_1_hora_0
decfsz ret_13, f
goto $+2
decfsz ret_14, f
goto $+2
decfsz ret_15, f
goto $+2
decfsz ret_16, f
goto Retardo_1_hora_0
;7 ciclos
goto $+1
goto $+1
goto $+1
nop
;4 ciclos (incluyendo call)
return
END
Autor: Ángel Acaymo M. G.
Versión: 2.00
Publicado por primera vez: 16-11-2009
Última actualización: 02-01-2010
www.electronica-pic.blogspot.com
www.abcdatos.com/tutoriales/tutorial/v875.html
www.pic16f84a.org

Más contenido relacionado

La actualidad más candente

Transistores bjt andres ladera
Transistores bjt andres laderaTransistores bjt andres ladera
Transistores bjt andres laderaAndresEdLr
 
Dispositivos electrónicos filtros activos
Dispositivos electrónicos filtros activosDispositivos electrónicos filtros activos
Dispositivos electrónicos filtros activosJorsh Tapia
 
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...Jomicast
 
Introduccion redes industriales
Introduccion  redes industrialesIntroduccion  redes industriales
Introduccion redes industrialesErnestoR77
 
Clase 5 - Diseño de controladores por LGR
Clase 5 - Diseño de controladores por LGRClase 5 - Diseño de controladores por LGR
Clase 5 - Diseño de controladores por LGRguest21fbd4
 
Mod demod am_2014_1(1)
Mod demod am_2014_1(1)Mod demod am_2014_1(1)
Mod demod am_2014_1(1)gmeneses23
 
Laboratorio 3 electrónica de potencia I
Laboratorio 3 electrónica de potencia ILaboratorio 3 electrónica de potencia I
Laboratorio 3 electrónica de potencia Igino machuca
 
Codificadores y decodificadores
Codificadores y decodificadoresCodificadores y decodificadores
Codificadores y decodificadoresRopoga
 
Componentes
ComponentesComponentes
Componentesjnnr75
 
688050063.comparador con amplificador operacional 2012
688050063.comparador con amplificador operacional 2012688050063.comparador con amplificador operacional 2012
688050063.comparador con amplificador operacional 2012chaluoas
 

La actualidad más candente (20)

Transistores
TransistoresTransistores
Transistores
 
Transistores bjt andres ladera
Transistores bjt andres laderaTransistores bjt andres ladera
Transistores bjt andres ladera
 
Presentacion Domotica
Presentacion DomoticaPresentacion Domotica
Presentacion Domotica
 
Sistema amplificador de audio frecuencia
Sistema amplificador  de audio frecuenciaSistema amplificador  de audio frecuencia
Sistema amplificador de audio frecuencia
 
Dispositivos electrónicos filtros activos
Dispositivos electrónicos filtros activosDispositivos electrónicos filtros activos
Dispositivos electrónicos filtros activos
 
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
 
Tipos de Sensores Opticos
Tipos de Sensores OpticosTipos de Sensores Opticos
Tipos de Sensores Opticos
 
Introduccion redes industriales
Introduccion  redes industrialesIntroduccion  redes industriales
Introduccion redes industriales
 
Programación PIC16F84A
Programación PIC16F84AProgramación PIC16F84A
Programación PIC16F84A
 
Sensores ópticos
Sensores ópticosSensores ópticos
Sensores ópticos
 
Clase 5 - Diseño de controladores por LGR
Clase 5 - Diseño de controladores por LGRClase 5 - Diseño de controladores por LGR
Clase 5 - Diseño de controladores por LGR
 
Mod demod am_2014_1(1)
Mod demod am_2014_1(1)Mod demod am_2014_1(1)
Mod demod am_2014_1(1)
 
Laboratorio 3 electrónica de potencia I
Laboratorio 3 electrónica de potencia ILaboratorio 3 electrónica de potencia I
Laboratorio 3 electrónica de potencia I
 
Codificadores y decodificadores
Codificadores y decodificadoresCodificadores y decodificadores
Codificadores y decodificadores
 
Componentes
ComponentesComponentes
Componentes
 
Relé.ppt
 Relé.ppt  Relé.ppt
Relé.ppt
 
El PIC16F84
El PIC16F84El PIC16F84
El PIC16F84
 
688050063.comparador con amplificador operacional 2012
688050063.comparador con amplificador operacional 2012688050063.comparador con amplificador operacional 2012
688050063.comparador con amplificador operacional 2012
 
Arquitectura de un plc
Arquitectura de un plcArquitectura de un plc
Arquitectura de un plc
 
Seguidor de linea y metodo de quine mcclusky
Seguidor de linea y metodo de quine mccluskySeguidor de linea y metodo de quine mcclusky
Seguidor de linea y metodo de quine mcclusky
 

Similar a Microcontroladores PIC: Luz por detector de movimiento y crepuscular “Senpir”

Similar a Microcontroladores PIC: Luz por detector de movimiento y crepuscular “Senpir” (20)

Luz por detector de movimiento y crepuscular Senpir
Luz por detector de movimiento y crepuscular SenpirLuz por detector de movimiento y crepuscular Senpir
Luz por detector de movimiento y crepuscular Senpir
 
Album de diagramas
Album de diagramasAlbum de diagramas
Album de diagramas
 
Tipos y diagramas de sensores
Tipos y diagramas de sensoresTipos y diagramas de sensores
Tipos y diagramas de sensores
 
Album de diagramas
Album de diagramasAlbum de diagramas
Album de diagramas
 
Album de diagramas
Album de diagramasAlbum de diagramas
Album de diagramas
 
Aplicaciondetectordeproximidad
AplicaciondetectordeproximidadAplicaciondetectordeproximidad
Aplicaciondetectordeproximidad
 
Aplicaciondetectordeproximidad
AplicaciondetectordeproximidadAplicaciondetectordeproximidad
Aplicaciondetectordeproximidad
 
Circuitos de electrónica
Circuitos de electrónicaCircuitos de electrónica
Circuitos de electrónica
 
Montaje de un interruptor crepuscular
Montaje de un interruptor crepuscularMontaje de un interruptor crepuscular
Montaje de un interruptor crepuscular
 
88 circuitos electronicos
88 circuitos electronicos88 circuitos electronicos
88 circuitos electronicos
 
OPTOACOPLADORES V SEMESTRE.pptx
OPTOACOPLADORES V SEMESTRE.pptxOPTOACOPLADORES V SEMESTRE.pptx
OPTOACOPLADORES V SEMESTRE.pptx
 
Conexion de energizador
Conexion de energizadorConexion de energizador
Conexion de energizador
 
Detector de proximidad
Detector de proximidadDetector de proximidad
Detector de proximidad
 
Sensor
SensorSensor
Sensor
 
Practica de word
Practica de wordPractica de word
Practica de word
 
Trabajo 1
Trabajo 1Trabajo 1
Trabajo 1
 
Laboratorio n 1 arquitectura de hardware
Laboratorio n 1 arquitectura de hardwareLaboratorio n 1 arquitectura de hardware
Laboratorio n 1 arquitectura de hardware
 
Anteproyecto Infrarrojo
Anteproyecto InfrarrojoAnteproyecto Infrarrojo
Anteproyecto Infrarrojo
 
Proyecto micro
Proyecto microProyecto micro
Proyecto micro
 
Laboratorio n 2 arquitectura de hardware
Laboratorio n 2 arquitectura de hardwareLaboratorio n 2 arquitectura de hardware
Laboratorio n 2 arquitectura de hardware
 

Más de SANTIAGO PABLO ALBERTO

Manual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzadaManual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzadaSANTIAGO PABLO ALBERTO
 
Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez SANTIAGO PABLO ALBERTO
 
Programación de microcontroladores PIC en C con Fabio Pereira
Programación de microcontroladores PIC en  C con Fabio PereiraProgramación de microcontroladores PIC en  C con Fabio Pereira
Programación de microcontroladores PIC en C con Fabio PereiraSANTIAGO PABLO ALBERTO
 
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...SANTIAGO PABLO ALBERTO
 
Programación de autómatas PLC OMRON CJ/CP1
Programación de  autómatas PLC OMRON CJ/CP1Programación de  autómatas PLC OMRON CJ/CP1
Programación de autómatas PLC OMRON CJ/CP1SANTIAGO PABLO ALBERTO
 
Manual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMARTManual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMARTSANTIAGO PABLO ALBERTO
 
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...SANTIAGO PABLO ALBERTO
 
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...SANTIAGO PABLO ALBERTO
 
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...SANTIAGO PABLO ALBERTO
 
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...SANTIAGO PABLO ALBERTO
 
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...SANTIAGO PABLO ALBERTO
 

Más de SANTIAGO PABLO ALBERTO (20)

secuencia electroneumática parte 1
secuencia electroneumática parte 1secuencia electroneumática parte 1
secuencia electroneumática parte 1
 
secuencia electroneumática parte 2
secuencia electroneumática parte 2secuencia electroneumática parte 2
secuencia electroneumática parte 2
 
Manual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzadaManual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzada
 
Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez
 
Programación de microcontroladores PIC en C con Fabio Pereira
Programación de microcontroladores PIC en  C con Fabio PereiraProgramación de microcontroladores PIC en  C con Fabio Pereira
Programación de microcontroladores PIC en C con Fabio Pereira
 
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
 
Arduino: Arduino de cero a experto
Arduino: Arduino de cero a expertoArduino: Arduino de cero a experto
Arduino: Arduino de cero a experto
 
Fisica I
Fisica IFisica I
Fisica I
 
Quimica.pdf
Quimica.pdfQuimica.pdf
Quimica.pdf
 
Manual básico PLC OMRON
Manual básico PLC OMRON Manual básico PLC OMRON
Manual básico PLC OMRON
 
Programación de autómatas PLC OMRON CJ/CP1
Programación de  autómatas PLC OMRON CJ/CP1Programación de  autómatas PLC OMRON CJ/CP1
Programación de autómatas PLC OMRON CJ/CP1
 
Manual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMARTManual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMART
 
Catálogo de PLC S7-200 SMART
Catálogo de PLC S7-200 SMART Catálogo de PLC S7-200 SMART
Catálogo de PLC S7-200 SMART
 
PLC: Automatismos industriales
PLC: Automatismos industrialesPLC: Automatismos industriales
PLC: Automatismos industriales
 
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
 
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...
 
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
 
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
 
PLC: Motor Dahlander
PLC: Motor DahlanderPLC: Motor Dahlander
PLC: Motor Dahlander
 
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...
 

Último

Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfMIGUELANGELCONDORIMA4
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaSHERELYNSAMANTHAPALO1
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdfEdwinAlexanderSnchez2
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdfFernandaGarca788912
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7luisanthonycarrascos
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEANDECE
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...SuannNeyraChongShing
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.pptVitobailon
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfReneBellido1
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamientoRobertoAlejandroCast6
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 

Último (20)

Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresa
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdf
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSE
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.ppt
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 

Microcontroladores PIC: Luz por detector de movimiento y crepuscular “Senpir”

  • 1. Luz por detector de movimiento y crepuscular “Senpir” Por Ángel Acaymo M. G. – Tenerife, España metaconta@gmail.com INTRODUCCIÓN Alguna vez, en la entrada principal de una casa terrena o chalet, después de pasar por el jardín y antes de llegar a la puerta principal de la vivienda, por la noche podría ser molesto al intentar abrir la puerta en ausencia o insuficiente luz. A veces, es buena idea instalar un pequeño aparato electrónico hecho por uno mismo, un circuito capaz de realizar ciertas tareas y estar más cómodo en ciertas situaciones como ésta. Al caer la noche sería una buena idea que el circuito electrónico encienda la luz y se apague cuando empieza a llegar el Sol en las primeras horas de la mañana, por lo que se conoce como interruptor crepuscular. En caso de que no quiera consumir luz durante toda la noche o bien, utiliza las lámparas compactas también conocidas como lámparas de bajo consumo o otra posibilidad que sólo se encienda la lámpara al detectar la presencia de una persona al acercarse a la puerta principal, eso si, al entrar a la vivienda la lámpara se quedará un tiempo encendida seleccionado por la persona, por ejemplo, unos cinco minutos, después se apaga. Ambos modos lo puedes seleccionar en el propio circuito electrónico por el cual lo llamo y llamaré a partir de ahora, “Senpir”. Si lo deseas, puedes hacer el efecto contrario gracias al relé que ya tiene un conmutador e incluso en el propio sensor de movimiento. Este pequeño proyecto está pensado para éste tipo de aplicaciones o cualquier otra tarea como al encender la lámpara mientras vas a la barbacoa que tienes en el otro lado del jardín sin tocar el interruptor, al ser detectado por el sensor de movimiento (PIR), activa una alarma desde el jardín si entra un intruso, etc. Sabiendo que Senpir está controlado por un microcontrolador PIC, podría servir un pequeño proyecto de fin de curso para estudiantes de la rama electricidad- electrónica e incluso cualquier aficionado con un mínimo de conocimiento de electrónica básica. Senpir tiene dos circuitos impreso independiente, una de control y la otra de fuente de alimentación conectada entre sí con un conector y dentro de la misma caja. El motivo de diseñar dos placas diferentes en el mismo circuito electrónico de tipo módulos, es por si cualquier causa falla la placa de la fuente de alimentación, hay corte de la corriente eléctrica desde la red de la casa o por otros motivos, puedes sustituirla por otra placa o conectarla a una batería a parte e incluso en placas solares fotovoltaicas.
  • 2. Las características técnicas del Senpir son muy sencillas y entre ella destaca dos placas independientes: - Fuente de alimentación con un transformador necesario para lograr una tensión fija y estabilizada mediante un regulador. - Un Relé con un conmutador para la lámpara u otra aplicación. - Un microcontrolador PIC que controla el circuito. - Un sensor de Luz o LDR que detecta la presencia de la luz. - Un sensor infrarrojo de movimiento o PIR. Fig 1. Fotografía del Senpir.
  • 3. Fig 2. Componentes del circuito. DISEÑO DEL CIRCUITO El control central del circuito es un microcontrolador que controla no sólo el funcionamiento de de las señales de los sensores, de luz y movimiento sino los temporizadores para el relé y diodos led de aviso. Los microcontroladores incluyen microprocesador, memoria del programa, memoria de datos, puertos de entradas y salidas y otras características todo en el mismo encapsulado, ahí está claro la ventaja su reducido tamaño. El proyecto se ha elegido el popular microcontrolador PIC 16F84A del fabricante Microchip Thecnology Inc. Es muy conocido, donde hay más información, ejemplos, proyectos para aprendizaje y fácil uso. El microcontrolador está desarrollado con un programa bajo el entorno de desarrollo llamado MPLAB que puedes descargar y usar gratuitamente en la Web del fabricante Microchip así como las hojas de datos de todos los dispositivos PIC entre otros periféricos, http://www.microchip.com
  • 4. DESCRIPCIÓN Y FUNCIONAMIENTO DEL HARDWARE - Sensor de luz El sensor LDR viene de la expresión inglesa Light Dependent Resistor. Son componentes pasivos cuya resistencia o su valor óhmico varía en función de la luz recibida. Con él puedes detectar la presencia de luz y oscuridad para activar o desactivar el relé de la lámpara. Al recibir más luz, baja su valor óhmico hasta que el microcontrolador lo detecte y ejecuta su tarea determinada. - Sensor PIR El sensor PIR “Passive Infra Red” es un dispositivo piroeléctrico que mide los cambios de niveles de radiación infrarroja emitida por los objetos de su entorno alrededor de seis metros. Cambia su estado lógico en una patilla conectado al microcontrolador. Este sensor es de muy bajo costo y pequeño, se suele utilizar en sistemas de alarmas, iluminación controlada por movimiento y aplicaciones de robótica.
  • 5. Fig 3. Detector de movimiento PIR. Sus características técnicas son: - Voltaje de alimentación: 5VDC. - Visión máxima 6 metros. - Estado en su salida TTL. - Polaridad de salida seleccionable. - Poco tiempo de calibración. El sensor PIR sólo usa tres terminales, dos de alimentación y uno de datos que se conecta al microcontrolador. Fig 4. Conexión del PIR al microcontrolador. El circuito electrónico se instala dentro de la vivienda con los sensores al exterior. El sensor de luz se instala lejos de la lámpara o que no le dé luz sobre ella excepto la luz ambiente. El sensor de movimiento se instala bajo la lámpara sin que llegue el calor y luz directa ya que puede dar un funcionamiento no esperado. La fuente de alimentación que tiene 5 voltios desde de la tensión continua de 12 voltios y al menos 1 amperio. En este circuito se encuentra un regulador de tensión 7805. En su entrada dispone de un puente de diodos rectificador de onda completa de 12 voltios con su condensador que hace de filtrado para obtener 12 voltios en continua. El regulador 7805 se encarga de estabilizar los 5 voltios de alimentación del otro circuito principal más los 12 voltios para alimentar el relé. Al final se encuentra un diodo Led de encendido.
  • 6. Fig 5. Esquema fuente de alimentación. • Fig 6. Esquema eléctrico del circuito principal. El circuito principal está controlado con un µC PIC 16F84A donde se comunican dos sensores como entrada, un relé como salida y un micro interruptor para controlar el tipo de configuración deseada y tiempos de encendido. En las entradas del µC PIC 16F84A, está conectado un micro interruptor, sensor de luz y sensor de movimiento. El sensor de luz o LDR conectado al puerto RB3 (pin 9) como entrada, detecta el día y la noche con la finalidad de hacer un interruptor crepuscular, es decir, que sólo se enciende la lámpara o al caer la noche. Tiene un tiempo de veinte segundos para asegurarse que realmente es de noche o de día. El sensor de movimiento o PIR, conectado al puerto RB1 (pin 7) como entrada. Tienen elementos fabricados de un material cristalino que genera una carga eléctrica cuando se expone a una radiación infrarroja. Los cambios de la
  • 7. cantidad de radiación producen cambios de voltaje los cuales son medidos por un amplificador. El sensor PIR contiene unos filtros especiales llamados lentes de Fresnel que enfocan las señales infrarrojas sobre el elemento sensor. Cuando las señales infrarrojas del ambiente donde se encuentra el sensor cambian rápidamente, el amplificador activa la salida para indicar movimiento. Esta salida se queda activa unos segundos permitiendo al micro controlador saber si hubo movimiento. Funciona a 5VDC, gracias a que tiene un patillaje o pin que se conecta al micro controlador directamente, el sensor PIR funciona como un interruptor a la vez puedes cambiar mediante un jumper el estado lógico de la salida si deseas el efecto contrario. En la salida RA3 (pin 2) del micro controlador dispone un relé de 12VDC para activar una lámpara o lámpara de la red (220VAC). En la base del transistor T1, pasa a conducción y activa el relé. Este circuito también aísla eléctricamente la carga del micro controlador. El valor de la potencia a controlar depende de los contactos del relé y varía mucho según el modelo, en este caso soporta 10 Amperios. El diodo paralelo al relé se incluye de protección de los transistores por la fuerza contraelectromotriz. Microinterruptor Pin Puerto B ON OFF 4 RB4 (Pin 10) PIR LDR 3 RB5 (Pin 11) 5 m. 0 2 RB6 (Pin 12) 30 m. 0 1 RB7 (Pin 10) 1 h. 0 Tabla 1. Micro interruptor. A su salida del puerto A, se visualiza los Led de avisos. Led verde visualiza que se ha elegido la opción interruptor crepuscular y el rojo visualiza que se ha elegido la opción del sensor de movimiento que puedes seleccionar en el microinterruptor Int_RB4 (pin 10). Le Led azul indica que está activado o desactivado el relé en el momento de conmutar así sabrás sin salir de casa su estado actual mirando el circuito o la caja donde lo tienes instalado, en cambio, el Led ambar o amarillo significa el encendido de la fuente de alimentación. Led Amarillo Fuente alimentación Verde LDR Rojo PIR Azul Relé Tabla 2. Indicadores de los Led.
  • 8. PROGRAMA DEL MICROCONTROLADOR 16F84A El programa del PIC16F84A está escrito con el lenguaje ensamblador. Mediante el diagrama de flujo, es más fácil ver a simple vista un esquema completo sobre su funcionamiento paso por paso. Inicio PORTA = Salida PORTB = Entrada En principio Bombilla apagada ¿Int_RB4 activado? LED Rojo = OFF LED Verde = ON ¿LDR en oscuridad? Retardo20 segundos ¿LDR aún en oscuridad? Bombilla y LED Azul encendido No Si No Si Retardo 20 segundos ¿LDR ilum. por el Sol? Bombilla y LED Azul apagado Si No LED Verde= OFF LED Rojo = ON ¿LDR en oscuridad? Si No Bombilla y LED Azul apagado ¿PIR detectada presencia? Bombilla y LED Azul apagado Si No No Si Bombilla y LED Azul encendido ¿RB5 activado? ¿RB6 activado? ¿RB7 activado? Retardo5 minutos Retardo30 minutos Retardo1 hora Si Si Si No No No FIN Principal Diagrama de flujo. Fig 7. Diagrama de flujo.
  • 9. Fig 8. Cara componentes. Fig 9. Cara pistas esquema.
  • 10. Fig 10. Cara pistas.
  • 11. Fig 11. Vista perspectiva.
  • 12. Fig 12. Vista trasera.
  • 13. Fig 13. Proyecto acabado.
  • 14. VÍDEOS Vídeos del circuito Senpir funcionando con el PIC16F84A, también con código fuente para el PIC16F88. 1) Ver vídeo. 2) Ver vídeo.
  • 15. LISTA DE MATERIALES Resistencias: R1, R2, R3, R4, R11 = 10 KΩ R5, R6, R7, R9 = 330 Ω R10 = 100 Ω R12 = 33 KΩ Condensadores: C1, C2 = 22 pF Diodos: D1 = Led 5 mm bicolor verde rojo D2 = Led 5 mm Azul D3 = 1N4148 Transistor: T1 = 2N2222 Varios: R = LDR X1 = 4MHZ (Cristal de cuarzo) DSW1 = 4 interruptores P1 = 4K7 Ω Potenciómetro RL1 = 12VDC, 10Amp, 1 Conmutador S1 = Botón reset J1, J2, J4 = 2 bornes J3 = 3 bornes J5 = 4 bornes IC1 = PIC16F84A-04 (También compatible con PIC16F88)
  • 16. CÓDIGO FUENTE PIC16F84A ;¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬Senpir.asm¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ ; ; PROGRAMA: "Senpir". Luz por detector de movimiento y crepuscular. ; AUTOR: Ángel Acaymo M. G. ; E-MAIL; metaconta@gmail.com ; PROCESADOR: PIC16F84A ; FRECUENCIA: 4 MHz ; VERSIÓN: 1.00 ; DESCRIPCIÓN: ; ; Programa de un interruptor con sensor movimiento y de luz solar: Si es de noche, ; mientras el sensor de movimiento (PIR) detecta la presencia de alguien ; entorno a 6 metros, activa o se pone a 1 la entrada RA3 y la lámpara ; se enciende. En caso de que sea de día detectado por la LDR, nunca se enciende ; la lámpara. En la otra opción, cuando la LDR detecta la noche o falta de Sol, ; la lámpara se enciende, cuando sea de día, la lámpara se apaga. ; En los microinterruptores puedes activar el tiempo que tarda en apagarse la ; lámpara después de ser detectado por el sensor Pir y de noche de un máximo ; una hora y treinta y cinco minutos. ; ; ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ ; DATOS ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ LIST P=16F84A INCLUDE <P16F84A.INC> __CONFIG 3FF1 __idlocs 0001 ; ID, versión del programa. CBLOCK 0x0C ENDC #DEFINE Led_verde PORTA,0 ; Led verde indica opción LDR seleccionada. #DEFINE Led_rojo PORTA,1 ; Led rojo indica opción PIR seleccionada. #DEFINE Led_azul PORTA,2 ; Led azul indica que el Relé está activado. #DEFINE lámpara PORTA,3 ; lámpara. #DEFINE PIR PORTB,1 ; Sensor PIR. #DEFINE LDR PORTB,3 ; Sensor LDR. #DEFINE Int_RB4 PORTB,4 ; Interruptor RB4. #DEFINE Int_RB5 PORTB,5 ; Interruptor RB5. #DEFINE Int_RB6 PORTB,6 ; Interruptor RB6. #DEFINE Int_RB7 PORTB,7 ; Interruptor RB7.
  • 17. ; EEPROM ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ ORG 0x2100 ; Comienza en la dirección 0 de la memoria EERPOM. ; Datos nombre del archivo, versión del programa ; y dirección del correo electrónico. DE "Senpir.asm. v1.0. 25-03-2009. metaconta@gmail.com", 0x00 ; CÓDIGOS ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ ORG 0 Inicio bsf STATUS,RP0 ; Accede al Banco 1. clrf PORTA ; Puerto A como salidas. movlw b'11111111' ; Las 8 líneas del puerto B se configura como entradas. movwf PORTB bcf STATUS,RP0 ; Accede al Banco 0. clrf PORTA ; Supuestamente la lámpara y Led apagadas. Opcion_principal btfss Int_RB4 ; ¿Bit 4 del PORTB es "1"? ¿Int_RB4 activado? goto Opcion_LDR ; No, activa modo LDR. goto Opcion_PIR ; Sí, activa modo PIR. ; INTERRUPTOR CREPUSCULAR LDR ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ Opcion_LDR bcf Led_rojo ; Se apaga el Led rojo. bsf Led_verde ; Enciende Led verde indicando modo LDR activado. btfss LDR ; ¿La entrada LDR es igual a 1?, ¿LDR en oscuridad? goto Apaga_la_lámpara ; No, la LDR está iluminada por el Sol. La lámpara se apaga. Enciende_la_lámpara call Retardo_20_seg ; Espera 20 segundos para confirmar la oscuridad. btfss LDR ; ¿Entrada es igual a 1?, ¿LDR aún en oscuridad? goto Opcion_principal ; No, sale fuera. bsf lámpara ; Sí, enciende la lámpara. bsf Led_azul ; Led_azul activo. goto Opcion_principal Apaga_la_lámpara call Retardo_20_seg ; Espera 20 segundos para confirmar la oscuridad. btfsc LDR ; ¿Entrada es = 0?, ¿LDR sigue iluminada por luz del sol? goto Opcion_principal ; No, sale fuera. bcf lámpara ; Sí, apaga lámpara. bcf Led_azul ; Led_azul indica que la lámpara está apagada. goto Opcion_principal
  • 18. ; DETECTOR DE MOVIMIENTO ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ Opcion_PIR bcf Led_verde ; Apaga el Led verde de aviso. bsf Led_rojo ; Enciende Led rojo avisando que está activado el modo PIR. btfss LDR ; ¿La entrada LDR es igual a 1?, ¿LDR en oscuridad? goto lámpara_OFF ; No. btfss PIR ; ¿La entrada PIR es igual a 1?, ¿PIR ha detectado presencia? goto lámpara_OFF ; No, no ha detectado presencia o movimiento. lámpara_ON bsf lámpara ; Sí, enciende la lámpara. bsf Led_azul ; Led_azul activo. btfss Int_RB5 ; ¿Bit 5 del PORTB es igual a 1?, ¿Activado el interruptor RB5? goto RB6 ; No, salta a la línea siguiente. call Retardo_5_min ; Tiempo lámpara encendida 5 minutos. RB6 btfss Int_RB6 ; ¿Bit 6 del PORTB es igual a 1?, ¿Activado el interruptor RB6? goto RB7 call Retardo_30_min ; Tiempo lámpara encendida 30 minutos. RB7 btfss Int_RB7 ; ¿Bit 7 del PORTB es igual a 1?, ¿Activado el interruptor RB7? goto Opcion_principal call Retardo_1_hora ; Tiempo lámpara encendida 1 hora. goto Opcion_principal lámpara_OFF bcf lámpara ; Apaga lámpara. bcf Led_azul ; Apaga Led_azul. goto Opcion_principal ; SUBRUTINAS ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ ; Retardo de 20 segundos ................................................................ cblock ret_00 ret_01 ret_02 Nulo endc Retardo_20_seg ;19999992 ciclos movlw 0xB5
  • 19. movwf ret_00 movlw 0x99 movwf ret_01 movlw 0x2C movwf ret_02 Retardo_20_seg_0 decfsz ret_00, f goto $+2 decfsz ret_01, f goto $+2 decfsz ret_02, f goto Retardo_20_seg_0 ;4 ciclos goto $+1 goto $+1 ;4 ciclos (incluyendo call) return ; Retardo de 5 minutos .................................................................. cblock ret_05 ret_06 ret_07 ret_08 endc Retardo_5_min ;299999995 ciclos movlw 0x54 movwf ret_05 movlw 0xA1 movwf ret_06 movlw 0xFD movwf ret_07 movlw 0x02 movwf ret_08 Retardo_5_min_0 decfsz ret_05, f goto $+2 decfsz ret_06, f goto $+2 decfsz ret_07, f goto $+2 decfsz ret_08, f goto Retardo_5_min_0
  • 20. ;1 ciclo nop ;4 ciclos (incluyendo call) return ; Retardo de 30 minutos ................................................................. cblock ret_09 ret_10 ret_11 ret_12 endc Retardo_30_min ;1799999989 ciclos movlw 0xFE movwf ret_09 movlw 0xC2 movwf ret_10 movlw 0xEC movwf ret_11 movlw 0x0C movwf ret_12 Retardo_30_min_0 decfsz ret_09, f goto $+2 decfsz ret_10, f goto $+2 decfsz ret_11, f goto $+2 decfsz ret_12, f goto Retardo_30_min_0 ;7 ciclos goto $+1 goto $+1 goto $+1 nop ;4 ciclos (incluyendo call) return ; Retardo de 1 hora ..................................................................... cblock ret_13 ret_14 ret_15
  • 21. ret_16 endc Retardo_1_hora ;3599999989 ciclos movlw 0xFE movwf ret_13 movlw 0x84 movwf ret_14 movlw 0xD8 movwf ret_15 movlw 0x18 movwf ret_16 Retardo_1_hora_0 decfsz ret_13, f goto $+2 decfsz ret_14, f goto $+2 decfsz ret_15, f goto $+2 decfsz ret_16, f goto Retardo_1_hora_0 ;7 ciclos goto $+1 goto $+1 goto $+1 nop ;4 ciclos (incluyendo call) return END
  • 22. CÓDIGO FUENTE PIC16F88 ;¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬Senpir.asm¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ ; ; PROGRAMA: "Senpir". Luz por detector de movimiento y crepuscular. ; AUTOR: Ángel Acaymo M. G. ; E-MAIL; metaconta@gmail.com ; PROCESADOR: PIC16F88 ; FRECUENCIA: 4 MHz ; VERSIÓN: 1.0 ; DESCRIPCIÓN: ; ; Programa de un interruptor con sensor movimiento y de luz solar: ; Si es de noche, ; mientras el sensor de movimiento (PIR) detecta la presencia de alguien ; entorno a 6 metros, activa o se pone a 1 la entrada RA3 y la lámpara ; se enciende. En caso de que sea de día detectado por la LDR, nunca se ; enciende ; la lámpara. En la otra opción, cuando la LDR detecta la noche o falta de ; Sol, la lámpara se enciende, cuando sea de día, la lámpara se apaga. ; En los microinterruptores puedes activar el tiempo que tarda en apagarse ; la lámpara después de ser detectado por el sensor Pir ; y de noche de un máximo una hora y treinta y cinco minutos. ; ;¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ ; __CONFIG ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ ; ; _CP_OFF: Protección de código DESACTIVADO. ; _DEBUG_OFF: Debug en circuito DESACTIVADO. ; _WRT_PROTECT_OFF: Protección a escritura en memoria de programa DESACTIVADO. ; _CPD_OFF: Protección de código de datos DESACTIVADO. ; _LVP_OFF: Programación en baja tensión DESACTIVADO. ; _BODEN_OFF: Reset por Brown-out DESACTIVADO. ; _MCLRE_ON: Reset por pin externo ACTIVADO. ; _PWRTE_ON: Retraso al reset ACTIVADO. ; _WDT_OFF: Watchdog DESACTIVADO. ; _XT_OSC: Oscilador externo del tipo XT. ;--------------------------------------------------------------------------- ; _IESO_OFF: Modo de intercambio de externo a interno DESACTIVADO. ; _FCMEN_OFF: Monitor de CLK DESACTIVADO. ; DATOS ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ LIST P=16F88 INCLUDE <P16F88.INC> __CONFIG _CONFIG1, _CP_OFF & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _XT_OSC __CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF __idlocs 0001 ; ID, versión del programa. CBLOCK 0x20 ENDC #DEFINE Led_verde PORTA,0 ; Led verde indica opción LDR seleccionada.
  • 23. #DEFINE Led_rojo PORTA,1 ; Led rojo indica opción PIR seleccionada. #DEFINE Led_azul PORTA,2 ; Led azul indica que el Relé está activado. #DEFINE lámpara PORTA,3 ; lámpara. #DEFINE PIR PORTB,1 ; Sensor PIR. #DEFINE LDR PORTB,3 ; Sensor LDR. #DEFINE Int_RB4 PORTB,4 ; Interruptor RB4. #DEFINE Int_RB5 PORTB,5 ; Interruptor RB5. #DEFINE Int_RB6 PORTB,6 ; Interruptor RB6. #DEFINE Int_RB7 PORTB,7 ; Interruptor RB7. ; EEPROM ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ ORG 0x2100 ; Comienza en la dirección 0 de la memoria EERPOM. ; Datos nombre del archivo, versión del programa ; y dirección del correo electrónico. DE "Senpir_16F88.asm. v1.0. 02-01-2010. metaconta@gmail.com", 0x00 ; CÓDIGOS ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ ORG 0 Inicio BANKSEL CMCON ; Cambio al banco 1. movlw b'00000111' ; .7 movwf CMCON ; Comparadores apagados. clrf ANSEL ; Pines digitales. clrf TRISA ; PORTA como salida. movlw b'11111111' movwf TRISB ; PORTB como entrada. BANKSEL PORTA ; Cambio al banco 0. clrf PORTA ; Supuestamente la lámpara y Led apagadas. Opcion_principal btfss Int_RB4 ; ¿Bit 4 del PORTB es "1"? ¿Int_RB4 activado? goto Opcion_LDR ; No, activa modo LDR. goto Opcion_PIR ; Sí, activa modo PIR. ; INTERRUPTOR CREPUSCULAR LDR ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ Opcion_LDR bcf Led_rojo ; Se apaga el Led rojo. bsf Led_verde ; Enciende Led verde indicando modo LDR activado. btfss LDR ; ¿La entrada LDR es igual a 1?, ¿LDR en oscuridad? goto Apaga_la_lámpara ; No, la LDR está iluminada por el Sol. La lámpara se apaga. Enciende_la_lámpara call Retardo_20_seg ; Espera 20 segundos para confirmar la oscuridad. btfss LDR ; ¿Entrada es igual a 1?, ¿LDR aún en oscuridad? goto Opcion_principal ; No, sale fuera. bsf lámpara ; Sí, enciende la lámpara. bsf Led_azul ; Led_azul activo. goto Opcion_principal Apaga_la_lámpara call Retardo_20_seg ; Espera 20 segundos para confirmar la oscuridad. btfsc LDR ; ¿Entrada es = 0?, ¿LDR sigue iluminada por luz del sol? goto Opcion_principal ; No, sale fuera. bcf lámpara ; Sí, apaga lámpara.
  • 24. bcf Led_azul ; Led_azul indica que la lámpara está apagada. goto Opcion_principal ; DETECTOR DE MOVIMIENTO ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ Opcion_PIR bcf Led_verde ; Apaga el Led verde de aviso. bsf Led_rojo ; Enciende Led rojo avisando que está activado el modo PIR. btfss LDR ; ¿La entrada LDR es igual a 1?, ¿LDR en oscuridad? goto lámpara_OFF ; No. btfss PIR ; ¿La entrada PIR es igual a 1?, ¿PIR ha detectado presencia? goto lámpara_OFF ; No, no ha detectado presencia o movimiento. lámpara_ON bsf lámpara ; Sí, enciende la lámpara. bsf Led_azul ; Led_azul activo. btfss Int_RB5 ; ¿Bit 5 del PORTB es igual a 1?, ¿Activado el interruptor RB5? goto RB6 ; No, salta a la línea siguiente. call Retardo_5_min ; Tiempo lámpara encendida 5 minutos. RB6 btfss Int_RB6 ; ¿Bit 6 del PORTB es igual a 1?, ¿Activado el interruptor RB6? goto RB7 call Retardo_30_min ; Tiempo lámpara encendida 30 minutos. RB7 btfss Int_RB7 ; ¿Bit 7 del PORTB es igual a 1?, ¿Activado el interruptor RB7? goto Opcion_principal call Retardo_1_hora ; Tiempo lámpara encendida 1 hora. goto Opcion_principal lámpara_OFF bcf lámpara ; Apaga lámpara. bcf Led_azul ; Apaga Led_azul. goto Opcion_principal ; SUBRUTINAS ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ ; Retardo de 20 segundos ................................................ cblock ret_00 ret_01 ret_02 Nulo endc Retardo_20_seg ;19999992 ciclos movlw 0xB5 movwf ret_00 movlw 0x99 movwf ret_01 movlw 0x2C movwf ret_02 Retardo_20_seg_0 decfsz ret_00, f goto $+2 decfsz ret_01, f goto $+2 decfsz ret_02, f goto Retardo_20_seg_0
  • 25. ;4 ciclos goto $+1 goto $+1 ;4 ciclos (incluyendo call) return ; Retardo de 5 minutos ............................................... cblock ret_05 ret_06 ret_07 ret_08 endc Retardo_5_min ;299999995 ciclos movlw 0x54 movwf ret_05 movlw 0xA1 movwf ret_06 movlw 0xFD movwf ret_07 movlw 0x02 movwf ret_08 Retardo_5_min_0 decfsz ret_05, f goto $+2 decfsz ret_06, f goto $+2 decfsz ret_07, f goto $+2 decfsz ret_08, f goto Retardo_5_min_0 ;1 ciclo nop ;4 ciclos (incluyendo call) return ; Retardo de 30 minutos ........................................................ cblock ret_09 ret_10 ret_11 ret_12 endc Retardo_30_min ;1799999989 ciclos movlw 0xFE movwf ret_09 movlw 0xC2 movwf ret_10 movlw 0xEC movwf ret_11 movlw 0x0C
  • 26. movwf ret_12 Retardo_30_min_0 decfsz ret_09, f goto $+2 decfsz ret_10, f goto $+2 decfsz ret_11, f goto $+2 decfsz ret_12, f goto Retardo_30_min_0 ;7 ciclos goto $+1 goto $+1 goto $+1 nop ;4 ciclos (incluyendo call) return ; Retardo de 1 hora ........................................................... cblock ret_13 ret_14 ret_15 ret_16 endc Retardo_1_hora ;3599999989 ciclos movlw 0xFE movwf ret_13 movlw 0x84 movwf ret_14 movlw 0xD8 movwf ret_15 movlw 0x18 movwf ret_16 Retardo_1_hora_0 decfsz ret_13, f goto $+2 decfsz ret_14, f goto $+2 decfsz ret_15, f goto $+2 decfsz ret_16, f goto Retardo_1_hora_0 ;7 ciclos goto $+1 goto $+1 goto $+1 nop ;4 ciclos (incluyendo call) return END
  • 27. Autor: Ángel Acaymo M. G. Versión: 2.00 Publicado por primera vez: 16-11-2009 Última actualización: 02-01-2010 www.electronica-pic.blogspot.com www.abcdatos.com/tutoriales/tutorial/v875.html www.pic16f84a.org