You are on page 1of 205

Control inalmbrico de sistemas basado en el uso de energa solar

UNIVERSIDAD CARLOS III DE MADRID


ESCUELA POLITCNICA SUPERIOR
GRUPO DE SISTEMAS ELECTRNICOS DE POTENCIA

PROYECTO FIN DE CARRERA


Ingeniera Industrial: especialidad Electrnica

Control inalmbrico de sistemas


basado en el uso de energa solar

Mayo de 2012

AUTOR: Oliver Garrido Daz


TUTOR: Andrs Barrado Bautista

Control inalmbrico de sistemas basado en el uso de energa solar

Control inalmbrico de sistemas basado en el uso de energa solar

NDICE

NDICE ......................................................................................................................... 3
NDICE DE FIGURAS ................................................................................................... 7
NDICE DE TABLAS ................................................................................................... 11
1.

Introduccin y objetivos ...................................................................................... 13

2.

Estado de la tcnica en sistemas recolectores de energa ................................. 15

3.

2.1.

Tipos de sistemas ....................................................................................... 15

2.2.

Aplicaciones comerciales ............................................................................ 19

Control inalmbrico del timbre de una puerta ..................................................... 25


3.1.

Especificaciones generales del sistema ...................................................... 25

3.2.

Diseo del sistema emisor .......................................................................... 25

3.2.1. Bloque de alimentacin ........................................................................... 26


3.2.2. Bloques de control y transmisin ............................................................. 27
3.2.3. Esquema elctrico completo del sistema emisor ..................................... 30
3.3.

Diseo del sistema receptor ........................................................................ 31

3.3.1. Bloque de recepcin y validacin............................................................. 32


3.3.2. Bloque de control..................................................................................... 33
3.3.3. Bloque de disparo.................................................................................... 35
3.3.4. Esquema elctrico completo del circuito receptor .................................... 36
3.4.
4.

Resultados experimentales. ........................................................................ 36

Control inalmbrico de luminarias. ..................................................................... 43


4.1.

Especificaciones ......................................................................................... 43

4.2.

Modos de funcionamiento ........................................................................... 43

4.2.1. Descripcin del modo de asociacin........................................................ 44


4.2.2. Descripcin del modo normal de funcionamiento..................................... 45
4.2.3. Descripcin de los cdigos de identificacin ............................................ 46
4.3.

Diseo del circuito emisor. .......................................................................... 47

4.3.1. Bloque de alimentacin ........................................................................... 48


4.3.2. Bloque de control..................................................................................... 51
4.3.2.1. Esquema elctrico completo del circuito emisor................................ 52
4.3.2.2. Rutina principal del microcontrolador ................................................ 55
3

Control inalmbrico de sistemas basado en el uso de energa solar

4.3.2.3. Procedimiento de asociacin ............................................................ 57


4.3.2.4. Lectura del valor de intensidad de luz ............................................... 60
4.3.2.5. Transmisin del cdigo ..................................................................... 62
4.3.3. Bloque de transmisin ............................................................................. 65
4.4.

Diseo del circuito receptor. ........................................................................ 65

4.4.1. Bloque de alimentacin ........................................................................... 66


4.4.2. Bloque de sincronizacin ......................................................................... 67
4.4.3. Bloque de recepcin y control. ................................................................ 70
4.4.3.1. Descripcin del funcionamiento ........................................................ 70
4.4.3.2. Rutina principal del microcontrolador maestro .................................. 74
4.4.3.3. Rutina de recepcin del cdigo ......................................................... 75
4.4.3.4. Rutinas de gestin del cdigo en ambos modos de funcionamiento . 80
4.4.3.5. Subrutina de interrupcin del timer 1 ................................................ 83
4.4.3.6. Rutina de control del nivel de intensidad de luz ................................ 83
4.4.3.7. Rutina principal del microcontrolador esclavo ................................... 86
4.4.4. Bloque de disparo. .................................................................................. 89
4.5.
5.

6.

7.

Resultados experimentales generados. ...................................................... 90

Conclusiones y trabajos futuros ....................................................................... 103


5.1.

Descripcin del trabajo realizado .............................................................. 103

5.2.

Principales conclusiones ........................................................................... 103

5.3.

Trabajos futuros ........................................................................................ 104

Presupuesto. .................................................................................................... 107


6.1.

Presupuesto sistema de timbre inalmbrico. ............................................. 107

6.2.

Presupuesto sistema de control inalmbrico de luminarias. ...................... 108

Referencias...................................................................................................... 111

Anexos. .................................................................................................................... 113


Anexo 1: Esquemas elctricos y lista de componentes. ........................................ 113
Anexo 2: Programa receptor (control del timbre). .................................................. 121
Anexo 3: Programa emisor (control de luminarias). ............................................... 123
Anexo 4: Programa microcontrolador maestro (control de luminarias). ................. 133
Anexo 5: Programa del microcontrolador esclavo (control de luminarias). ............ 147
Anexo 6: Hojas de catlogo .................................................................................. 151

Control inalmbrico de sistemas basado en el uso de energa solar

Control inalmbrico de sistemas basado en el uso de energa solar

Control inalmbrico de sistemas basado en el uso de energa solar

NDICE DE FIGURAS

Fig. 2.1. Sistemas piezoelctricos (Piezo Systems) .................................................... 15


Fig. 2.2. Sistema electromagntico ............................................................................. 16
Fig. 2.3. Panel solar .................................................................................................... 16
Fig. 2.4. Placa de efecto Seebeck .............................................................................. 17
Fig. 2.5. Etiqueta de identificacin RF......................................................................... 18
Fig. 2.6. Estimacin de energa obtenida por diferentes sistemas. [1]......................... 18
Fig. 2.7. Sistema ECO200 junto al transmisor inalmbrico PTM330 ........................... 19
Fig. 2.8. Sistema VEH460 de FerroSolutions y sistema ECT310 Perpetuum .............. 20
Fig. 2.9. Reloj Seiko Thermic ...................................................................................... 20
Fig. 2.10. Mdulo sensor STM300 con placa solar ECS310 y mdulo transmisor
STM310 ...................................................................................................................... 21
Fig. 2.11. Sistema de posicionamiento GPS para animales ........................................ 21
Fig. 2.12. Sistemas mdicos alimentados con energa solar ....................................... 22
Fig. 2.13. Sensor desarrollado por la Universidad de Michigan................................... 22
Fig. 2.14. Sistema de desarrollo eZ430-RF2500-SEH de Texas Instruments ............. 23
Fig. 2.15. Timbre de puerta de la empresa Elektrobock .............................................. 23
Fig. 3.1. Diagrama de bloques del circuito emisor....................................................... 26
Fig. 3.2. Esquema del regulador MAX 666 y configuracin para salida de tensin
ajustable ..................................................................................................................... 26
Fig. 3.3. Secuencia de operacin del encoder digital .................................................. 28
Fig. 3.4. Codificacin utilizada por el encoder para los bits ......................................... 29
Fig. 3.5. Grfico para la eleccin de la resistencia externa (encoder) ......................... 29
Fig. 3.6. Mdulo transmisor a 434 MHz del fabricante Aurel ....................................... 30
Fig. 3.7. Esquema elctrico del sistema emisor .......................................................... 31
Fig. 3.8. Diagrama de bloques del circuito receptor .................................................... 32
Fig. 3.9. Mdulo receptor a 434 MHz del fabricante Aurel........................................... 32
Fig. 3.10. Grfico para la eleccin de la resistencia externa (decoder) ....................... 33
Fig. 3.11. Diagrama de flujo para el microcontrolador PIC12F508 (receptor) .............. 35
Fig. 3.12. Esquema elctrico del circuito receptor ....................................................... 36
Fig. 3.13. Carga del supercondensador ...................................................................... 37
Fig. 3.14. Frecuencia de oscilacin y cdigos del encoder y decoder ......................... 38
Fig. 3.15. Formas de onda del receptor ...................................................................... 39
Fig. 3.16. Formas de onda del receptor ...................................................................... 40
Fig. 3.17. Desfase entre pulsacin y envo del cdigo ................................................ 40
Fig. 3.18. Montajes en protoboard del prototipo .......................................................... 41
Fig. 4.1. Secuencia de asociacin entre emisor y receptores ..................................... 44
Fig. 4.2. Secuencia de operacin en el modo normal de funcionamiento.................... 45
Fig. 4.3. Codificacin utilizada para unos y ceros ....................................................... 46

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 4.4. Ejemplo de cdigos para los dos modos de funcionamiento ......................... 47
Fig. 4.5. Diagrama de bloques del emisor................................................................... 48
Fig. 4.6. Fase 1 de la bomba de carga MCP1252 ....................................................... 50
Fig. 4.7. Fase 2 de la bomba de carga MCP1252 ....................................................... 50
Fig. 4.8. Fase 3 de la bomba de carga MCP1252 ....................................................... 51
Fig. 4.9. Circuito emisor completo .............................................................................. 54
Fig. 4.10. Diagrama de flujo de la rutina principal ....................................................... 56
Fig. 4.11. Diagrama de flujo de la rutina de asociacin con un nuevo receptor........... 58
Fig. 4.12. Descripcin de las posiciones EEPROM del microcontrolador emisor ........ 59
Fig. 4.13. Eleccin del tiempo de adquisicin del convertidor A/D .............................. 61
Fig. 4.14. Diagrama de flujo de la rutina de conversin A/D ....................................... 62
Fig. 4.15. Rutina de transmisin ................................................................................. 64
Fig. 4.16. Subrutinas de gestin del tiempo de transmisin ........................................ 65
Fig. 4.17. Diagrama de bloques del receptor .............................................................. 66
Fig. 4.18. Circuito de alimentacin .............................................................................. 66
Fig. 4.19. Circuito detector de paso por cero .............................................................. 67
Fig. 4.20. Pulso de paso por cero con resistencia de polarizacin del fotodiodo de 51
k............................................................................................................................... 69
Fig. 4.21. Pulso de paso por cero con resistencia de polarizacin del fotodiodo de
100 k........................................................................................................................ 70
Fig. 4.22. Circuito de recepcin y control .................................................................... 73
Fig. 4.23. Rutina principal del microcontrolador maestro ............................................ 74
Fig. 4.24. Realizacin de la lectura de cada bit ........................................................... 75
Fig. 4.25. Subrutinas de recepcin de los bits. ........................................................... 76
Fig. 4.26. Gestin en la recepcin de cada bit. ........................................................... 77
Fig. 4.27. Descripcin de las posiciones EEPROM del microcontrolador maestro
receptor ...................................................................................................................... 78
Fig. 4.28. Rutina de recepcin de los cdigos ............................................................ 79
Fig. 4.29. Rutina de asociacin con el emisor............................................................. 81
Fig. 4.30. Rutina detallada de asociacin con el emisor ............................................. 82
Fig. 4.31. Rutina de gestin del cdigo en modo normal de funcionamiento............... 82
Fig. 4.32. Subrutina de interrupcin del timer 1 .......................................................... 83
Fig. 4.33. Diagrama de flujo de la rutina de luminosidad............................................. 86
Fig. 4.34. Rutina principal del microcontrolador esclavo (PIC12F508). ....................... 88
Fig. 4.35. Rutina del timer 0 para el microcontrolador esclavo (PIC12F508)............... 89
Fig. 4.36. Circuito de disparo del triac......................................................................... 89
Fig. 4.37. Caracterstica esttica V-I del triac y cuadrantes de disparo del triac. ......... 90
Fig. 4.38. Imagen del prototipo emisor........................................................................ 91
Fig. 4.39. Imagen del prototipo receptor. .................................................................... 91
Fig. 4.40. Formas de onda para el sistema emisor (1). ............................................... 93
Fig. 4.41. Formas de onda para el sistema emisor (2). ............................................... 94
Fig. 4.42. Formas de onda para el sistema emisor (3). ............................................... 94

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 4.43. Formas de onda para el sistema emisor (4). ............................................... 95


Fig. 4.44. Formas de onda para el sistema receptor (1). ............................................. 96
Fig. 4.45. Formas de onda para el sistema receptor (2). ............................................. 96
Fig. 4.46. Formas de onda para el sistema receptor (3). ............................................. 97
Fig. 4.47. Formas de onda para el sistema receptor (4). ............................................. 97
Fig. 4.48. Formas de onda para el sistema receptor (5). ............................................. 98
Fig. 4.49. Formas de onda para el sistema receptor (6). ............................................. 98
Fig. 4.50. Formas de onda para el sistema receptor (7). ............................................. 99
Fig. 4.51. Formas de onda para el sistema receptor (8). ............................................. 99
Fig. 4.52. Formas de onda para el sistema receptor (9). ........................................... 100
Fig. 4.53. Imagen del plano de masa especificado para el receptor. ......................... 101

Control inalmbrico de sistemas basado en el uso de energa solar

10

Control inalmbrico de sistemas basado en el uso de energa solar

NDICE DE TABLAS

Tabla 3.1. Descripcin del patillaje utilizado (PIC12F508) .......................................... 34


Tabla 4.1. Descripcin del patillaje del PIC12F675 de circuito emisor ........................ 52
Tabla 4.2. Descripcin del patillaje del microcontrolador maestro (PIC12F675) .......... 71
Tabla 4.3: Descripcin del patillaje del microcontrolador esclavo (PIC12F508) .......... 71
Tabla 4.4. Cdigos para la identificacin del nivel de intensidad de luz ...................... 71
Tabla 4.5. Tiempos para la PWM de salida en funcin del nivel de intensidad de luz . 72
Tabla 6.1. Presupuesto para los componentes del circuito emisor. ........................... 107
Tabla 6.2. Presupuesto para los componentes del circuito receptor. ........................ 108
Tabla 6.3. Presupuesto del servicio de ingeniera. ................................................... 108
Tabla 6.4. Presupuesto final del sistema del timbre inalmbrico. .............................. 108
Tabla 6.5. Presupuesto para los componentes del circuito emisor. ........................... 109
Tabla 6.6. Presupuesto para los componentes del circuito receptor. ........................ 109
Tabla 6.7. Presupuesto del servicio de ingeniera. .................................................... 110
Tabla 6.8. Presupuesto final del sistema inalmbrico de luminarias.......................... 110

11

Control inalmbrico de sistemas basado en el uso de energa solar

12

Control inalmbrico de sistemas basado en el uso de energa solar

1. Introduccin y objetivos
Actualmente pueden encontrarse en el mercado dispositivos electrnicos de bajo
consumo que se alimentan a partir de fuentes y sistemas de generacin renovables. La
utilizacin de dichos sistemas es limitada, dada su capacidad y discontinuidad energtica.
An as se han desarrollado aplicaciones de utilidad con importantes ventajas respecto a su
equivalente con alimentacin tradicional (pilas o bateras). Estos sistemas limpios
proporcionan alimentacin autnoma sin necesidad, en la mayora de los casos, de
mantenimiento. El objetivo principal de este proyecto es desarrollar dos aplicaciones a
partir de uno de estos sistemas de generacin para lograr un funcionamiento
completamente autnomo.
Estos sistemas de generacin usados en dispositivos de bajo consumo son los
llamados recolectores o energy harvesting systems en la bibliografa anglosajona. Entre
las fuentes primarias de las que extraen energa elctrica se encuentran la luz solar
(tambin luz artificial), el movimiento, gradientes de temperatura, cargas electrostticas,
etc. Cada sistema tiene sus particularidades especiales de aplicacin en funcin de factores
como su capacidad energtica, disponibilidad de la misma, tamao, peso, etc. En este
proyecto se ha optado por la energa solar por motivos que se expondrn ms adelante. Se
ha empleado un pequeo panel fotovoltaico del tamao habitual de los que usa un farol de
jardn, que habitualmente se encarga de cargar un par de pilas AA de 1,2 V y 500 mAh
durante el da para encender un diodo led durante la noche.
En relacin a la aplicacin, se ha decidido desarrollar dos sistemas basados en
radiofrecuencia. Estos sistemas utilizan circuitos integrados con reducidos consumos y
funcionalidades diversas tales como redes de sensores, sistemas de seguridad y deteccin,
riego automtico, etc. En estos ejemplos se elimina la conexin fsica entre el control y el
sistema a controlar, permitiendo una comunicacin remota a distancias de hasta decenas
de metros y un funcionamiento independiente del emisor y el receptor. Son, por lo tanto,
aplicaciones ptimas en los que poder instalar los sistemas de generacin anteriormente
mencionados.
Los productos de radiofrecuencia encontrados en el mercado se alimentan
generalmente a partir de bateras, y en algunos casos a partir de la red elctrica
(receptores). En el caso de las bateras, los problemas asociados son un almacenamiento de
energa limitado, la disminucin acelerada de su carga, oxidacin y sulfatacin de los
contactos, y en ltima instancia, prdida del electrolito que puede llegar a inutilizar el
dispositivo. Debido a ello, otro de los objetivos de este proyecto ha sido modificar el
sistema de almacenamiento para reducir en lo posible estos problemas.

13

Control inalmbrico de sistemas basado en el uso de energa solar

El primer sistema desarrollado tiene como objetivo la activacin del timbre de una
casa, mientras que el segundo sistema es un control de encendido y apagado del
alumbrado de un recinto. En ambos casos se ha construido un prototipo.
Se han escogido estas dos aplicaciones debido a su reducido nmero de activaciones
requeridas diariamente. De esta forma, el circuito emisor de ambos sistemas puede ser
alimentado puntualmente cuando sea requerido enviar una seal a los receptores, lo que
reduce el consumo y permite una mayor autonoma cuando la energa ofrecida por el panel
sea escasa o nula.
Los objetivos generales de este proyecto se resumen en:

Utilizar un pequeo panel solar como fuente de energa principal.

Evitar la utilizacin de pilas y bateras.

Desarrollar un control inalmbrico del timbre de una puerta.

Desarrollar un control inalmbrico de luminarias.

En ambas aplicaciones, el emisor no tendr, por lo tanto, conexin a la red elctrica


ni a pilas o bateras. Por el contrario, el receptor podr disponer de conexin a la red
elctrica o a una fuente de corriente continua.
Este tipo de sistemas podra aplicarse donde no sea viable o econmica la instalacin
de cableado de alimentacin, o bien en el que se requiera una mayor funcionalidad de los
sistemas

14

Control inalmbrico de sistemas basado en el uso de energa solar

2. Estado de la tcnica en sistemas recolectores de energa


2.1. Tipos de sistemas

Los sistemas de recoleccin de energa tratan de aprovechar fuentes de energa


residual de diferente ndole para su conversin en energa elctrica de baja capacidad,
generalmente del orden de Ah. Entre estas fuentes se encuentran la energa recibida del
sol, las vibraciones y sacudidas proporcionadas por el movimiento de sistemas (bicicletas,
coches, el cuerpo humano), los gradientes de temperatura entre superficies (calor
corporal, motores) o la energa captada de sistemas de radiofrecuencia. Los sistemas de
recoleccin actualmente en uso que pueden encontrarse son [1]:
Sistemas piezoelctricos: se basan en la capacidad de ciertos materiales de generar
diferencias de potencial al deformar su estructura (efecto piezoelctrico). Para optimizar la
capacidad de generacin se suelen utilizar materiales cermicos que utilizan la
combinacin plomo-zirconato-titanato, conocida como PZT (Fig. 2.1) y polmeros como el
polifluoruro de vinilideno (PVDF).

Estos materiales permiten generar tensiones en

ocasiones superiores a 100 V al deformarlos por compresin y flexin, generando


corrientes del orden del A. Dado su insuficiente nivel de corriente para la mayora de
aplicaciones se suelen utilizar para alimentar sensores, aprovechando la energa del
entorno que provoca su deformacin. Son sistemas que aprovechan principalmente las
vibraciones de baja frecuencia (<100 Hz).

Fig. 2.1. Sistemas piezoelctricos (Piezo Systems)

Sistemas electromagnticos: se basan en la ley de induccin elctrica de Faraday. Se


componen de un devanado esttico en el cual se inducen corrientes a partir de imanes
permanentes en movimiento (Fig. 2.2). Este movimiento puede ser de rotacin (relojes de
pulsera) o de traslacin (vibracin del chasis de un coche). Estos sistemas suelen tener unas
reducidas prestaciones energticas, ya que dependen de factores como la frecuencia de

15

Control inalmbrico de sistemas basado en el uso de energa solar

variacin del campo magntico y el nmero de espiras del devanado. Para conseguir
tensiones de un nivel suficiente es necesario que el devanado tenga un nmero elevado de
espiras, lo que incrementa su volumen, peso y el coste del sistema. Adems, la energa
primaria proporciona movimientos de baja frecuencia que reducen el nmero de pasos de
los imanes por el devanado, reduciendo as la amplitud de la tensin. Las aplicaciones
suelen ser las mismas que los sistemas piezoelctricos. Al igual que stos generan corriente
alterna, que debe ser rectificada y filtrada. En el caso de los sistemas electromagnticos es
esencial utilizar diodos con muy baja tensin de polarizacin directa.

Fig. 2.2. Sistema electromagntico

Sistemas solares: estn basados en el efecto fotoelctrico. Son los sistemas con diferencia
ms utilizados en aplicaciones de bajo consumo. En el mercado pueden encontrarse relojes
de pulsera, cargadores de telfonos porttiles y muchos otros productos que utilizan
paneles fotovoltaicos cuyas capacidades energticas se encuentran en el rango de 10 a 100
mAh (Fig. 2.3). Entre sus ventajas estn el proporcionar corriente continua de salida, no
tener partes mviles que puedan sufrir fatiga y romperse (menor mantenimiento) y una
elevada durabilidad. Son adems los nicos sistemas que pueden proporcionar los niveles
de tensin y corriente que exige una aplicacin de bajo consumo estndar (unidades de
voltio y miliamperio). De esta manera hay menores prdidas por transformacin.

Fig. 2.3. Panel solar

16

Control inalmbrico de sistemas basado en el uso de energa solar

Sistemas termoelctricos: estos sistemas funcionan de forma similar a los termopares


utilizados para medir temperatura. En stos se aprovecha el movimiento de cargas
producido al aplicar un gradiente de temperatura en la unin de dos metales de diferente
naturaleza (efecto Seebeck). Las cargas (electrones o huecos segn sea un material N o P)
se mueven de la unin caliente a la fra, proporcionando una tensin en relacin directa
con el gradiente aplicado. En generacin se utilizan materiales como el telururo de bismuto
(Bi2Te3). Se necesitan generalmente cientos de uniones P-N para proporcionar el nivel de
tensin adecuado para una aplicacin (Fig. 2.4). Una de sus principales aplicaciones es su
uso en sensores mdicos que aprovechan el calor corporal.

Fig. 2.4. Placa de efecto Seebeck

Sistemas radioelctricos: estos dispositivos aprovechan la energa de las ondas de radio


para alimentar su circuitera. La aplicacin tpica son las RFID passive tags o etiquetas
pasivas de identificacin por radiofrecuencia. Estas etiquetas contienen un circuito
integrado para el almacenamiento y procesado de las seales, as como una antena para
recibir y transmitir la informacin. Estas etiquetas se comunican con un lector RFID, de
forma que el lector enva una seal peridicamente para comprobar si hay respuesta de
alguna etiqueta. En caso afirmativo captura dicha informacin y la enva a un subsistema
de procesamiento de datos. Las etiquetas pasivas utilizan la misma seal del lector para
conseguir la energa que necesitan para funcionar. Estos dispositivos son muy usados para
la identificacin de productos en centros comerciales y aduanas, as como la identificacin
de animales.

17

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 2.5. Etiqueta de identificacin RF

En la Fig. 2.6 puede verse una estimacin de la energa por unidad de superficie para
las diferentes fuentes de energa utilizadas por los sistemas recolectores segn Texas
Instruments. Como puede verse, la luz es la fuente que ms energa proporciona para la
tecnologa actual disponible. Los grandes paneles son capaces de obtener hasta 1 mW de
potencia media en una clula de 100 mm2 y una eficiencia tpica del 10%.
Los sistemas termoelctricos aplicados a personas son actualmente capaces de
generar unas pocas decenas de W/cm2. Sin embargo han levantado inters para ser
empleados en dispositivos mdicos de bajo consumo [2]. A nivel industrial los gradientes
de temperatura producidos son mayores, obtenindose mayores densidades de energa.

Fig. 2.6. Estimacin de energa obtenida por diferentes sistemas. [2]

Los sistemas que aprovechan el movimiento se utilizan generalmente a nivel


industrial, donde las vibraciones en estructuras y otros escenarios se producen con mayor
frecuencia que en el caso del ser humano. Adems, estos movimientos tienen una amplitud
y frecuencia ms constantes, lo que permite optimizar el sistema de conversin. Por
ltimo, la energa conseguida de las ondas de radiofrecuencia es muy reducida respecto a
las otras tres fuentes.

18

Control inalmbrico de sistemas basado en el uso de energa solar

2.2. Aplicaciones comerciales

Los sistemas recolectores se encuentran a da de hoy instalados en algunas


aplicaciones aisladas, permaneciendo la hegemona de las pilas tradicionales debido a su
precio ms competitivo. A pesar de ello, el nmero de este tipo de productos sigue
creciendo. Existen incluso empresas especializadas en ellos. Tal es el caso de la empresa
alemana EnOcean, especializada en dispositivos inalmbricos alimentados con diferentes
sistemas de recoleccin de energa. Uno de estos sistemas es el modelo ECO200, basado en
generacin electromagntica (Fig. 2.7). Aprovechando la pulsacin de un resorte mecnico
por parte del usuario se hace pasar un imn por el interior de un solenoide. De esta forma
se produce una variacin del campo magntico que induce una fuerza electromotriz y, al
estar cerrado el circuito, una corriente elctrica. Con esta energa se alimenta un
transmisor inalmbrico para el control de sensores. El sistema ECO200 es capaz de ofrecer
un mximo de 160 J a 2 V. La corriente alterna obtenida se rectifica y almacena para
utilizarla en el momento de la transmisin, en el cual se modifica su nivel de continua [3].

Fig. 2.7. Sistema ECO200 junto al transmisor inalmbrico PTM330

La empresa americana FerroSolutions produce el generador electromagntico


VEH460, pensado para instalarse conjuntamente con la fuente del movimiento (Fig. 2.8
izquierda). Produce energa elctrica a partir de vibraciones de bajo nivel con el propsito
de alimentar sensores, transmisores RF y otros dispositivos similares [4]. El fabricante cita
como posibilidades su uso en plantas de energa, transporte y medicin subterrnea como
fuente de energa independiente que se nutra de vibraciones tpicas de 60 Hz.
La empresa EnOcean tambin produce el sistema ECT310 (Fig. 2.8 derecha) basado
en una clula Peltier para alimentar sensores inalmbricos a partir de pequeas variaciones
de temperatura. Es capaz de producir 20 mV con un gradiente de 2K (arranque del
sistema), produciendo unos 100 W con gradientes de 7K [5].

19

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 2.8. Sistema VEH460 de FerroSolutions y sistema ECT310 Perpetuum

En 1998 la marca de relojes Seiko lanz al mercado su modelo Thermic (Fig. 2.9), el
primer reloj alimentado a partir de la diferencia de temperatura entre la atmsfera y la
mueca del usuario.

Fig. 2.9. Reloj Seiko Thermic

Este reloj utilizaba 10 mdulos termoelctricos conectados en serie. Cada mdulo


contena un conjunto de clulas de efecto Seebeck fabricadas con Bi2Te3 (las ms eficientes
para un rango de 0 a 100 C) y unidas elctricamente entre s. Con un total de 104
elementos encerrados entre sustratos de silicio de 2 mm x 2 mm poda obtener hasta 10
A a 3V a partir de gradientes de tan solo 5C. Con una media de 1 a 3C, el sistema era
capaz de generar hasta 1,5 W [6].
Uno de los sistemas solares producidos por EnOcean es el sensor inalmbrico
STM300 (Fig. 2.10), alimentado a partir de un pequeo panel fotovoltaico. Este sensor
suele utilizarse tpicamente para la medida de temperatura y su envo a un receptor. De
esta forma se puede aplicar en sistemas de calefaccin. La placa solar est compuesta por
8 celdas y ofrecen una tensin de operacin de 3 V con 200 lux y 25C. Las corrientes de

20

Control inalmbrico de sistemas basado en el uso de energa solar

cortocircuito ofrecidas segn el modelo son 6,5 A y 14 A respectivamente para las


condiciones de luz y temperatura anteriores [7]. Por otro lado, EnOcean produce el sensor
STM310 basado tambin en energa solar.

Fig. 2.10. Mdulo sensor STM300 con placa solar ECS310 y mdulo transmisor STM310

El mercado de productos electrnicos de bajo consumo alimentados con energa


solar es muy amplio. Se pueden encontrar aplicaciones en el campo de la biologa, como
los sistemas GPS producidos por la empresa Telemetry Solutions para conocer la posicin
de animales y conocer sus movimientos migratorios (Fig. 2.11). El sistema puede incluir un
receptor para la descarga de datos a distancia [8].

Fig. 2.11. Sistema de posicionamiento GPS para animales

Tambin se han desarrollado dispositivos de este estilo en el campo mdico para la


recarga de audfonos o sistemas que miden la presin sangunea, para su uso en
poblaciones aisladas donde no llega la red elctrica (Fig. 2.12).

21

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 2.12. Sistemas mdicos alimentados con energa solar

Por otro lado, existen micro-sensores implantables en el cuerpo para medir la presin
sangunea. El modelo desarrollado por la Universidad de Michigan mide 9 milmetros
cbicos (Fig. 2.13). Utiliza dos micro-paneles solares en serie y una batera de litio de
pelcula fina de 3.6 V y 12 Ah de capacidad [9]. Para la toma de datos utiliza un
procesador ARM Cortex-M3 de 32 bits, cuyo consumo medio es menor de 1 nW [10]. Este
procesador necesita alrededor de 2000 veces menos energa en modo de bajo consumo
que su equivalente comercial.

Fig. 2.13. Sensor desarrollado por la Universidad de Michigan

Existen kits de evaluacin, como el mdulo eZ430-RF2500-SEH de Texas Instruments


(Fig. 2.14) para el desarrollo de aplicaciones electrnicas alimentadas con energa solar. En
este caso, el fabricante concibe este mdulo para el desarrollo de redes de sensores
inalmbricas basadas en su microcontrolador de bajo consumo MSP430 [11].

22

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 2.14. Sistema de desarrollo eZ430-RF2500-SEH de Texas Instruments

La empresa checa Elektobock de productos de control para el hogar (termostatos,


sensores de humedad y temperatura, aplicaciones de control remoto, etc) comercializa un
timbre de puerta inalmbrico (Fig. 2.15), donde su emisor se alimenta a partir de un panel
solar que carga una pila de 3 V. El sistema transmite a 433 MHz y consume menos de 10
mW [12].

Fig. 2.15. Timbre de puerta de la empresa Elektrobock

En los dos captulos siguientes se presenta el diseo de dos aplicaciones de control


inalmbrico basadas en el uso de un panel solar para la alimentacin de los circuitos
emisores:

En el primero de los diseos se pretende realizar el control inalmbrico del


timbre de una puerta.

El segundo diseo corresponde al control inalmbrico de luminarias con control


de la intensidad de luz.

23

Control inalmbrico de sistemas basado en el uso de energa solar

24

Control inalmbrico de sistemas basado en el uso de energa solar

3. Control inalmbrico del timbre de una puerta

Previo al control inalmbrico de luminarias se ha desarrollado una aplicacin para la


activacin del timbre de llamada de una puerta. El sistema diseado consta de un emisor
autnomo alimentado con un pequeo panel solar, y de un receptor alimentado a partir de
una fuente de corriente continua y un generador de seales. Los prototipos del emisor y
receptor se han montado y probado en protoboard.

3.1. Especificaciones generales del sistema

Como ya se introdujo en el apartado de objetivos, el sistema debe cumplir con las


siguientes especificaciones funcionales:

Alimentacin autnoma del circuito emisor a partir de un pequeo panel solar.

Eliminacin de bateras como elemento de almacenamiento. En este caso se ha


sustituido por un pequeo supercondensador.

Alimentacin del circuito emisor en el momento de llamar. El resto del tiempo


el emisor no consumir energa.

El receptor se alimentar con una fuente CC de laboratorio para las pruebas


experimentales.

Adems, el sistema debe garantizar las siguientes especificaciones tcnicas:

Un nmero mnimo de 6 llamadas al da.

Distancia mnima de transmisin de 5-10 metros.

Funcionamiento del circuito emisor a 3,3 V y del circuito receptor a 5 V.

3.2. Diseo del sistema emisor

En la Fig. 3.1 puede verse el diagrama de bloques del circuito emisor. Como puede
verse, est formado por:

Bloque de alimentacin: se encarga de generar y proporcionar la energa con los


niveles de tensin y corriente adecuados para los bloques de control y
transmisin de la informacin.

Bloque de control se encarga de generar el cdigo de informacin que activar


el timbre.

25

Control inalmbrico de sistemas basado en el uso de energa solar

Bloque de transmisin para enviar el cdigo por radiofrecuencia al circuito


receptor.

Fig. 3.1. Diagrama de bloques del circuito emisor

3.2.1. Bloque de alimentacin

El bloque de alimentacin est formado por un pequeo panel solar de 6 cm x 6 cm y


tensin mxima en vaco de 5,5 V, un supercondensador de 0,1 F/5,5V y un regulador de
tensin. El regulador de tensin convierte la tensin a su entrada en un nivel estable de
salida, generalmente de otro valor. En este caso se ha utilizado un regulador lineal MAX
666, con un nivel de salida deseado de 3,3 V.

MAX666
SENSE
Vout
Rlim

R2

Vset
R1

Fig. 3.2. Esquema del regulador MAX 666 y configuracin para salida de tensin ajustable

26

Control inalmbrico de sistemas basado en el uso de energa solar

De acuerdo con las especificaciones, el circuito emisor debe alimentarse en el


momento que se desea llamar al timbre. Para conseguir esto se ha intercalado el botn de
llamada entre el supercondensador y el regulador de tensin. De esta forma, el sistema
emisor realizar las funciones de regular la tensin, generar el cdigo y transmitirlo
durante la pulsacin del botn de llamada.
El regulador de tensin MAX 666 es capaz ajustar su salida para conseguir tensiones
entre 1,3 y 16 V a partir de un rango de entrada entre 2 y 16,5 V, con una capacidad de
corriente mxima de salida de 40 mA. La tensin de alimentacin elegida para el emisor
fue de 3,3 V, que es la tensin nominal del mdulo de radiofrecuencia escogido. El
regulador MAX 666 dispone de un comparador C1 para la limitacin de corriente de salida
y un comparador C2 para elegir un funcionamiento con salida fija a 5 V o ajustable (Fig.
3.2). La corriente de salida se limita mediante una resistencia serie en Vout (Fig. 3.2). La
entrada SENSE mide la cada de tensin en esta resistencia. En caso de superarse la
referencia de 0,5 V, se deshabilita el amplificador de error (A1), que a su vez controla el
transistor NPN. En este caso se ha fijado una corriente mxima de 10 mA suficiente para los
chips, siendo el valor de resistencia limitadora necesario de:
R lim =

0, 5 V
= 50
10 10 3

Ya que se pretende una tensin de alimentacin de 3,3 V, es necesario aadir un


divisor de tensin externo.
La tensin de salida tiene un valor de:
Vout = Vset

R1 + R 2
R1

; Vset = 1, 3 V

Siendo la relacin entre resistencias de:

R2 = R1 (

Vout
1)
1,3

Los valores escogidos para 3.3 V son:

R1 = 1 k ; R2 = 1,5 k ; Vout = 3, 25 V

3.2.2. Bloques de control y transmisin

Los bloques de control y transmisin estn formados por el dispositivo que obtiene la
secuencia digital de informacin a enviar y por el mdulo de radiofrecuencia que permite

27

Control inalmbrico de sistemas basado en el uso de energa solar

su envo de manera inalmbrica, respectivamente. La obtencin del cdigo a enviar se


realiz a partir de un encoder Holtek HT6014. Este circuito integrado es capaz de generar
un cdigo serie de 12 bits en funcin del estado de sus entradas de direccin (A0-A7) y de
datos (D8-D11). Se ha elegido este modelo por el reducido nmero de componentes
externos necesarios y su bajo consumo, ya que a 3 V demanda tpicamente 250 A, lo que
supone un consumo de 0,75 mW.
El cdigo generado se compone de 8 bits dedicados a la direccin y cuatro bits
dedicados al dato. En el caso particular de este encoder, el cdigo se genera cuando alguna
de las patillas de entrada D8-D11 se encuentra a nivel bajo (Fig. 3.3). Cuando esto sucede,
el encoder genera el cdigo serie de 12 bits y lo enva continuamente hasta que todas las
entradas dedicadas al dato (D8-D11) estn a nivel alto. La informacin de cada cdigo de
12 bits o palabra se consigue mediante una secuencia de sincronizacin formada por:

Un periodo inicial con la salida a nivel bajo de duracin 6 bits.

Un periodo de duracin de 1/6 de bit para el bit de sincronizacin.

Un periodo para el cdigo de direccin de duracin 8 bits.

Un periodo para el cdigo de datos de duracin 4 bits.

Fig. 3.3. Secuencia de operacin del encoder digital

Cada bit de direcciones o de datos se representa de forma distinta en funcin de si es


un cero o un uno. Los ceros se representan como pulsos consecutivos de duracin doble
que los unos. El fabricante incluye una tercera codificacin de bit para el caso de que la
patilla se encuentre sin conexin, correspondindose con un pulso simple seguido de un
pulso doble (Fig. 3.4). Esto permite disponer de un total de 531441 cdigos posibles (312).
Cada bit de direcciones o datos dura un tiempo equivalente a seis ciclos de reloj.

28

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 3.4. Codificacin utilizada por el encoder para los bits

En este circuito integrado, la frecuencia del oscilador interno, y por tanto la duracin
de cada bit, puede regularse a partir de la eleccin de una resistencia externa al encoder.
La frecuencia de trabajo escogida ha sido de 3 kHz a 3 V. Para estos valores, la resistencia
externa debe tomar un valor de aproximadamente 820 k (Fig. 3.5).

Fig. 3.5. Grfico para la eleccin de la resistencia externa (encoder)

Para transmitir la informacin de forma inalmbrica se ha utilizado un mdulo RF


Aurel TX-SAW MID3V (bloque de transmisin) (Fig. 3.6). Tiene un consumo tpico de 5,5 mA
a 3 V y un rango de operacin de -20C a 80C. Este dispositivo transmite en la banda libre
de 434 MHz.

29

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 3.6. Mdulo transmisor a 434 MHz del fabricante Aurel

3.2.3. Esquema elctrico completo del sistema emisor

El diseo desarrollado para el circuito emisor permite la carga continuada del


supercondensador durante las horas de luz, incluyndose un diodo de bloqueo para evitar
la descarga del supercondensador sobre el panel. La descarga hacia el resto del circuito se
produce nicamente durante la activacin del pulsador. De esta manera se consigue que el
circuito consuma energa nicamente cuando se quiere llamar al timbre, mejorando as su
autonoma y permitiendo un funcionamiento autnomo an cuando no hay luz solar.
Tras una pulsacin, el regulador obtiene aproximadamente 3,3 V en su salida hacia el
encoder y el mdulo de radiofrecuencia. El encoder genera un cdigo de 12 bits, con todos
sus bits a cero al estar todas las patillas a masa (Fig. 3.7). Al estar D8-D11 tambin a masa,
el encoder empieza a enviar el cdigo hacia el mdulo de radiofrecuencia de forma
continuada hasta cesar la pulsacin del botn.

30

Control inalmbrico de sistemas basado en el uso de energa solar

PANEL SOLAR
PULSADOR
V+

Supply

in out
MAX666

0.1F

Sense

Vin

V50
1k5

Vout

LBO

LBI

Vset

GND

Shdn

10u

1k

Supply

10u

A0

ANTENA
Vcc

GND

OUT

GND

TX

HT6014

GND

EMITTER T-SAW MID/3V

Vdd

A1

Dout

A2

OSC2

A3

OSC1

A4

LED

A5

D11

A6

D10

A7

D9

Vss

D8

10u

820k

Supply

Fig. 3.7. Esquema elctrico del sistema emisor

3.3. Diseo del sistema receptor

El circuito receptor consta de un bloque encargado de recibir el cdigo y verificar su


coincidencia con el cdigo prefijado que posee, un bloque encargado de controlar el
encendido y apagado de la carga en funcin del resultado de la validacin y un bloque de
disparo encargado de comandar la carga a partir de las rdenes efectuadas por el control
(Fig. 3.8). Para obtener un diseo comercial, el circuito receptor debera disponer de un
bloque de alimentacin autnoma, cuya fuente pudiera ser pilas o la red elctrica. Dado
que el objetivo principal en esta aplicacin era estudiar la capacidad del circuito emisor
para realizar sus tareas, el bloque de alimentacin no se ha incluido. La alimentacin se ha
realizado a partir de una fuente CC de laboratorio.

31

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 3.8. Diagrama de bloques del circuito receptor

3.3.1.

Bloque de recepcin y validacin

En el bloque de recepcin y validacin, la informacin transmitida por el sistema


emisor es captada por un mdulo receptor RF Aurel AC-RX2 que tambin trabaja a 434
MHz (Fig. 3.9). Este mdulo opera a 5 V, con un consumo tpico de 2,5 mA. Los mdulos de
radiofrecuencia utilizados trabajan con modulacin OOK, que es un tipo particular de
modulacin ASK o modulacin por desplazamiento de amplitud. La modulacin ASK se
caracteriza por representar la codificacin binaria mediante dos niveles diferentes de
amplitud para la seal portadora, manteniendo fijas la frecuencia y la fase. La modulacin
OOK simplemente representa el cero lgico con la falta de portadora. Esto permite un
mayor ahorro de energa, teniendo por contra una menor inmunidad al ruido, y por ende
ms probabilidad de fallo en la transmisin.

Fig. 3.9. Mdulo receptor a 434 MHz del fabricante Aurel

La validacin del cdigo se realiza mediante un decoder Holtek HT6034. En primer


lugar, el decoder recibe el bit de sincronizacin, el cual activa el oscilador interno para
empezar a decodificar la trama de bits. Por orden se decodifican el cdigo de direcciones y
el cdigo de datos. Una vez decodificados ambos cdigos recibidos, el decoder compara
dos veces seguidas el cdigo de direccin recibido con el cdigo de direccin de sus

32

Control inalmbrico de sistemas basado en el uso de energa solar

patillas. En caso de coincidir se decodifica y muestra el dato de 4 bits en las patillas


dedicadas al dato (D8-D11), y se pone la salida VT a nivel alto para indicar transmisin
vlida.
Para poder leer el dato correctamente, la frecuencia del decoder debe ser al menos
33 veces mayor que la del encoder. Por lo tanto, se puede escoger un valor por debajo de
91 k (Fig. 3.10), que es la resistencia a la cual se obtiene 100 kHz (33x3). En este caso se
ha escogido un valor de 62 k, lo que supone una frecuencia de casi 150 kHz. De esta
manera el decoder leer casi 50 veces ms rpido que el encoder, asegurando la lectura
correcta del cdigo.

Fig. 3.10. Grfico para la eleccin de la resistencia externa (decoder)

3.3.2.

Bloque de control

Como ya se mencion, en caso de coincidir el dato recibido con el generado a partir


de sus entradas, la salida VT se pone a nivel alto durante un instante. Esta caracterstica es
aprovechada para que un microcontrolador PIC12F508 detecte este pulso en su entrada
GP4 y dispare el circuito que comanda el timbre a travs de su salida GP1 (Tabla 3.1).
Debido a la simplicidad de la operacin que debe realizar el microcontrolador, el
modelo escogido (PIC12F508) es uno de los ms sencillos de la serie 12 de Microchip. Este
microcontrolador tiene nicamente 8 patillas y funciona en un rango de alimentacin entre
2 y 5,5 V. Dispone de un temporizador de 8 bits y un prescaler de hasta 1:256. Esto significa

33

Control inalmbrico de sistemas basado en el uso de energa solar

que deben transcurrir 256 ciclos mquina para que el registro de cuenta (TMR0) se
incremente en una unidad. En estos microcontroladores, cada ciclo mquina equivale a
cuatro ciclos de reloj. Si se decide utilizar el oscilador interno de 4 MHz como fuente de
reloj, cada ciclo mquina durar:
1
4 ciclos = 1 s
4 MHz
PATILLA

DESCRIPCIN

GP4 (IN)

Recepcin de la seal VT del decoder en caso de transmisin vlida

GP1 (OUT)

Control sobre la activacin del timbre

Tabla 3.1. Descripcin del patillaje utilizado (PIC12F508)

Como el nmero de incrementos totales del registro TMR0 es de 255, con el reloj
interno de 4 MHz podran contarse hasta:

255 256 = 65280 s = 65, 28 ms


En el diagrama de flujo del programa implementado (Fig. 3.11), el microcontrolador
permanece a la espera de recibirse un nivel alto en la salida VT del decoder. En caso de
producirse, el microcontrolador pone su salida GP1 a nivel alto, activando el bloque de
disparo. Esto permite activar el altavoz durante 2,5 segundos. Finalizado este tiempo se
pregunta de nuevo por la seal VT. De esta manera se deja un tiempo de espera entre
llamada y llamada.
Para conseguir la cuenta de los 2,5 segundos se ha utilizado una variable contador, ya
que el temporizador de 8 bits solo es capaz de contar poco ms de 65 ms con el prescaler
en modo 1:256.
En esta aplicacin, el temporizador se encarga de realizar 250 cuentas con el
prescaler a 1:256. De esta forma se cuentan hasta 64 ms.

250 256 = 64000 s = 64 ms


Y el contador se encargar de realizar 39 cuentas de 64 ms para conseguir los 2,5
segundos de duracin del timbre de llamada.

64 ms 39 = 2496 ms 2,5 s

34

Control inalmbrico de sistemas basado en el uso de energa solar

INICIO

INICIALIZACIN DE VARIABLES
DECLARO CONTADOR

NO

SEAL VT ON

SI
ACTIVO TIMBRE

ESPERO 2,5 SEGUNDOS

APAGO TIMBRE

SEAL VT OFF

NO

SI
RECARGO CONTADOR

Fig. 3.11. Diagrama de flujo para el microcontrolador PIC12F508 (receptor)

Para realizar la cuenta se debe asociar el prescaler al temporizador (bit PSA=1 del
registro OPTION) y para conseguir la combinacin 1:256, los bits PS2, PS1 y PS0 deben estar
a uno.

3.3.3. Bloque de disparo

El bloque de disparo se encarga de permitir o no el paso de corriente a travs del


altavoz en funcin de si el cdigo recibido es vlido o no. Este bloque es comandado por el
bloque de control y est constituido bsicamente por un optotriac y un triac. El optotriac
permite aislar la salida GP1 del microcontrolador en corriente continua de la etapa en
35

Control inalmbrico de sistemas basado en el uso de energa solar

alterna (Fig. 3.12), permitiendo el disparo del triac cuando la salida GP1 del
microcontrolador se pone a nivel alto. El funcionamiento detallado de este circuito se
describir ms adelante para el circuito receptor de la aplicacin de control de luminarias.

3.3.4. Esquema elctrico completo del circuito receptor

El mdulo receptor de radiofrecuencia enva el cdigo recibido a la patilla Din del


decoder a travs de la lnea datos. El decoder procede a comparar este cdigo con el que
forman sus patillas. En caso de coincidir, el decoder pone a nivel alto su salida VT,
conectada directamente a la entrada GP4 del microcontrolador.
10u
PIC12F508
RECEIVER AC-RX3

HT6034

Vdd

Vss

Vdd

GP5

GP0

A1

VT

GP4

GP1

A2

OSC2

GP3

GP2

A3

OSC1

Vcc

OUT

TP

GND

GND

IN

Vcc

GND

A0

ANTENA

1k

Disparo
1k

62k

10u
V7
5Vdc

Datos

A4

Din

A5

D11

A6

D10

A7

D9

Vss

D8

Datos

OPTOTRIAC
TIMBRE
Disparo

nodo

A/K

750
Ctodo

100n

TRIAC

AC Source

NC
K/A
750

Fig. 3.12. Esquema elctrico del circuito receptor

La resistencia que fija la frecuencia del oscilador interno del decoder se coloca, al
igual que en el encoder, entre las patillas OSC1 y OSC2.

3.4. Resultados experimentales.

Como primera prueba experimental se midieron las formas de onda de tensin y


corriente ofrecidas por el panel solar de 6x6 cm en un periodo de aproximadamente 17
minutos durante la carga del supercondensador. Partiendo de la situacin inicial con el
supercondensador descargado, se consigui una tensin final de 2,36 V y 6,11 mA para

36

Control inalmbrico de sistemas basado en el uso de energa solar

unas condiciones iniciales de luz de 900 lux (Fig. 3.13). Como puede verse, para unas
condiciones de luz limitadas no se consigue el nivel de tensin necesario. Por otro lado, el
ensayo se realiz dentro del laboratorio cercano a una ventana.

Fig. 3.13. Carga del supercondensador

En otra prueba similar a 1770 lux se consigui cargar el supercondensador a 3,3 V.


Esto supone que el panel es capaz de obtener niveles adecuados de tensin y corriente
para hacer funcionar los circuitos integrados y el mdulo de radiofrecuencia. Sin embargo,
esto no asegura, por s solo, que la aplicacin sea vlida, ya que debe asegurarse una
distancia de comunicacin suficientemente grande. Dicho de otro modo, el
supercondensador debe ser capaz de almacenar y proporcionar la energa necesaria para
salvar la distancia pretendida durante un mnimo de transmisiones al da. Adems hay que
tener en cuenta factores como la antena, cuya forma y disposicin influyen de manera
importante en la distancia de transmisin. En caso de querer comercializar el dispositivo
hay que asegurar que ste transmite a 434 MHz, que es la banda libre permitida para
Europa.
En la Fig. 3.14 puede verse la frecuencia de trabajo del encoder (3,3 kHz) y del
decoder (143 kHz) respectivamente. El fabricante Holtek especifica que la frecuencia de
lectura del decoder debe ser como mnimo 33 veces la frecuencia de trabajo del encoder.
En este caso es de 43 veces utilizando una resistencia externa de 62 k para el decoder. De
esta manera se asegura una correcta lectura del cdigo. Tambin puede verse el cdigo

37

Control inalmbrico de sistemas basado en el uso de energa solar

generado por el encoder en su salida y el cdigo a la entrada del decoder. Como puede
verse, el encoder introduce un pulso de sincronizacin seguido del cdigo de direccin y de
datos. El cdigo completo est formado por un tren de pulsos dobles de valor binario 0000
0000 0000 segn la codificacin expuesta en la Fig. 3.4.

Fig. 3.14. Frecuencia de oscilacin y cdigos del encoder y decoder

La Fig. 3.15 muestra las formas de onda del receptor ante una recepcin vlida. Como
ya se mencion, el decoder activa su salida VT para indicar al microcontrolador que el
cdigo recibido coincide con el suyo. En este momento, el microcontrolador dispara el
circuito de activacin del altavoz durante 2,5 segundos.

38

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 3.15. Formas de onda del receptor

En la Fig. 3.16 puede verse como la tensin entre los terminales del triac (traza
morada) se hace prcticamente cero al ponerse ste en conduccin. La traza azul oscura
corresponde a la tensin en la patilla Dout del encoder. Mientras se pulsa el botn de
llamada, el encoder enva repetidamente el mismo cdigo hasta que cesa la pulsacin del
botn. Por su parte, el decoder realiza la comparacin del cdigo de direcciones dos veces
seguidas. Tras verificarse la coincidencia y ponerse a nivel alto la salida VT, el
microcontrolador pone su salida GP1 a nivel alto durante 2,5 s.
Como puede verse, la patilla Din del decoder (traza azul claro) permanece a nivel alto
despus de producirse una transmisin vlida. De esta forma se mantiene activo el
oscilador interno sin atenderse a los cdigos de entrada. Tras cesar la pulsacin del botn,
el circuito emisor deja de esta alimentado. La seal VT vuelve a nivel bajo y el oscilador
retorna al modo durmiente. Sin embargo, el microcontrolador del sistema receptor seguir
activando el altavoz hasta completar los 2,5 segundos programados.

39

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 3.16. Formas de onda del receptor

La Fig. 3.17 muestra el tiempo de arranque desde que el circuito emisor recibe
energa al pulsar el botn hasta la transmisin del cdigo. Este tiempo est en torno a los
10 ms, lo que supone un tiempo menor al de transmisin. Teniendo en cuenta que el
decoder realiza la comparacin de su cdigo con dos cdigos consecutivos, el tiempo de
transmisin para la validacin ser superior a 40 ms. Debido a la rapidez de activacin del
encoder, la energa perdida en el arranque es pequea.

Fig. 3.17. Desfase entre pulsacin y envo del cdigo

40

Control inalmbrico de sistemas basado en el uso de energa solar

En la Fig. 3.18 se muestran el circuito emisor y receptor montados en protoboard


durante las pruebas realizadas. Se realizaron pruebas de funcionamiento global en ambos
circuitos para comprobar la comunicacin y pruebas de distancia de transmisin y nmero
de comunicaciones vlidas realizadas sin el panel conectado.

Fig. 3.18. Montajes en protoboard del prototipo


En las pruebas finales de transmisin se procedi a cargar el supercondensador
durante media hora a una media de 1500 lux hasta alcanzar una tensin mxima de 3,3 V.
Gracias a que este nivel coincide con el nivel de tensin de salida fijado por el regulador
lineal, la energa disipada en ste es muy pequea. El sistema receptor se aliment a partir
de una fuente CC de laboratorio, y el altavoz mediante un generador de funciones. Se
utiliz un altavoz de 2 W/16.
Como antena se utiliz un cable unifilar de 15 cm para el emisor y de 50 cm para el
receptor. En un principio se mantuvo recto el cable de las antenas, no logrando transmitir
ms all de 1 m. Se decidi entonces darles forma de espiral, consiguindose realizar un
total de 7 transmisiones satisfactorias a una distancia de 10 m utilizando nicamente la
energa del supercondensador (sin el panel solar conectado). De esta forma se consigue
adems reducir el espacio ocupado por la antena.
Mediante esta primera aplicacin se ha podido comprobar el funcionamiento de los
circuitos emisor y receptor, verificando la capacidad del supercondensador de inyectar
energa suficiente para realizar la comunicacin inalmbrica. Tambin se ha experimentado
con el circuito de disparo para utilizarlo en la segunda aplicacin desarrollada.

41

Control inalmbrico de sistemas basado en el uso de energa solar

42

Control inalmbrico de sistemas basado en el uso de energa solar

4. Control inalmbrico de luminarias.

La aplicacin desarrollada en este proyecto pretende controlar el encendido/apagado


y nivel de intensidad de una bombilla incandescente de forma inalmbrica, tanto dentro de
recintos cerrados como a la intemperie. Se ha optado por una alimentacin a partir del
mismo panel solar y supercondensador utilizados en la aplicacin anterior, prescindiendo
del uso de bateras que habra que sustituir. Esta decisin se fundamenta en el reducido
nmero de usos diarios del sistema, lo que permitir un consumo puntual del circuito
emisor en el momento de encender o apagar la bombilla.

4.1. Especificaciones

Las principales especificaciones funcionales y tcnicas que debe cumplir el sistema


son:

Funcionamiento autnomo del emisor a partir de un panel solar y un


supercondensador.

Funcionamiento del circuito receptor a partir de la red elctrica.

Control por parte del sistema emisor de 2 receptores de manera


independiente.

El circuito receptor debe proporcionar 3 niveles de intensidad de luz. El nivel


de luz deseado se seleccionar a partir del circuito emisor.

El sistema debe asegurar la comunicacin a una distancia de 5 metros o ms,


y un mnimo de 8 transmisiones diarias para cualquier condicin de luz.

El circuito emisor trabajar con un nivel de tensin continua de 3,3 V, y el


receptor trabajar a 5 V.

4.2. Modos de funcionamiento

Como se ha dicho, el emisor ser capaz de controlar dos receptores de forma


independiente. Sin embargo, se pens en la posibilidad de que los circuitos emisor y
receptor no dispusieran de cdigos pregrabados antes de utilizar el sistema, es decir, estos
receptores no conocern inicialmente los cdigos que el emisor enve. Previo al uso normal
del sistema sera necesario asociar el emisor con los receptores. Segn esto, el sistema
tendr dos modos de funcionamiento:

43

Control inalmbrico de sistemas basado en el uso de energa solar

Modo de asociacin: en este modo de funcionamiento el circuito emisor


procede a generar y enviar el cdigo que lo vincular con un nuevo receptor.

Modo normal de funcionamiento: el circuito emisor enva a uno de los


receptores asociados la orden de encender o apagar la bombilla. En caso de
ordenar encender la bombilla, debe indicar la intensidad de luz deseada.

4.2.1. Descripcin del modo de asociacin

Para entrar en el modo asociacin, tanto el circuito emisor como receptor disponen
de un botn de asociacin. En este modo de funcionamiento se crea un vnculo entre un
determinado receptor y el emisor. La secuencia a seguir para realizar la asociacin puede
verse a continuacin (Fig. 4.1).

PULSAR EL BOTN DE MODO


ASOCIACIN DEL RECEPTOR (DEBE
ACTIVARSE EL LED DE ASOCIACIN)

PULSAR EL BOTN DE ASOCIACIN


DEL EMISOR (GENERAR CDIGO)

VISUALIZAR EL APAGADO DEL LED DE


ASOCIACIN DEL RECEPTOR

Fig. 4.1. Secuencia de asociacin entre emisor y receptores

Al pulsar el botn de asociacin del receptor, ste activa su led de asociacin y


permanece a la espera de recibir los cdigos que el emisor enve. De esta forma se indica al
usuario que el receptor ha entrado en modo asociacin con un emisor. En este momento
se ha de pulsar el botn de asociacin del emisor. Esta accin permite al emisor generar un
cdigo de asociacin de cuatro bytes. Tras guardarlo en su memoria, el sistema emisor
transmite los cdigos al receptor que permanece a la escucha. Una vez recibidos y
guardados los cdigos en su memoria, el receptor sale del modo asociacin apagando el
led de asociacin.

44

Control inalmbrico de sistemas basado en el uso de energa solar

4.2.2. Descripcin del modo normal de funcionamiento

Una vez el circuito receptor que controla una determinada fuente de luz ha sido
asociado a un emisor, ambos circuitos pueden comunicarse para controlar el encendido y
apagado de dicha fuente de luz, as como su nivel de intensidad. La secuencia de operacin
del sistema para este modo de funcionamiento puede verse a continuacin (Fig. 4.2).
PULSAR EL BOTN DEL SISTEMA
EMISOR CORRESPONDIENTE AL
RECEPTOR QUE SE DESEA
CONTROLAR

COMPROBACIN INICIAL Y ENVO DEL


CDIGO APROPIADO PARA
COMUNICARSE CON DICHO
RECEPTOR

ACTUACIN ADECUADA DEL


RECEPTOR DESEADO Y NO OTRO

Fig. 4.2. Secuencia de operacin en el modo normal de funcionamiento

Como se indic en las especificaciones, el circuito emisor debe poder controlar hasta
dos receptores distintos. Por lo tanto, ste debe incluir un botn diferente para cada
receptor. El circuito emisor tendr un total de tres botones:

Botn de asociacin.

Botn de control del receptor n 1.

Botn de control del receptor n 2.

Tras pulsarse uno de los botones de control, el emisor debe comprobar inicialmente
que realmente existe un receptor asociado a dicho botn. La asociacin se realiza siempre
por orden, es decir, se referencia el primer receptor asociado con el botn de control 1 y
as sucesivamente. En caso de no haber un receptor asociado al botn que se ha pulsado,
el emisor no realiza ninguna accin. En caso contrario enva el cdigo adecuado a dicho
receptor. Este ltimo debe cumplir la orden deseada (apagar o encender la bombilla) y no
otro receptor.

45

Control inalmbrico de sistemas basado en el uso de energa solar

4.2.3. Descripcin de los cdigos de identificacin

Para la implementacin del timbre inalmbrico del captulo 3 se han utilizado un


encoder y un decoder digital para realizar la gestin de la comunicacin. La ventaja de este
mtodo es la simplicidad del diseo, no siendo necesario programar el protocolo de
transmisin. Por contra, existe una falta de control de la informacin que se puede enviar
(nmero de bytes o el tipo de codificacin utilizada), limitndose la utilizacin de estos
dispositivos a sencillos mandos a distancia y sistemas con cdigos prefijados. En este caso
se ha implementado toda la gestin de la comunicacin en microcontroladores,
utilizndose un mtodo de codificacin similar al utilizado por el encoder/decoder para
representar los unos y los ceros pero sin duplicar el bit.

Fig. 4.3. Codificacin utilizada para unos y ceros

Cada 1 lgico se representa como un pulso a nivel alto de duracin 256 s, mientras
que un 0 lgico tiene una duracin de 512 s, el doble que un 1 lgico (Fig. 4.3). Entre bit
y bit dentro del mismo byte se deja la salida de transmisin 256 s a nivel bajo. Entre un
byte y otro se dejan 512 s de espera a nivel bajo.
Tanto en el modo de asociacin como en el modo normal de funcionamiento el
receptor ha de recibir un total de 32 bits repartidos en 4 bytes de informacin (Fig. 4.4). En
el modo de asociacin, estos 4 bytes se reparten de la siguiente manera:

Los dos primeros bytes representan el cdigo identificativo del emisor. De


esta forma, el receptor conocer al emisor con el que est asociado y no
atender a otros.

El tercer byte representa el cdigo identificativo del receptor. Este byte es


generado aleatoriamente por el emisor en la fase de asociacin. De esta
forma, cada receptor de los dos que pueden asociarse a un mismo emisor
sabr si es l quin debe actuar.

El cuarto y ltimo byte tiene objetivos diferentes en funcin del modo de


operacin (Fig. 4.4):

46

Control inalmbrico de sistemas basado en el uso de energa solar

o Modo de asociacin: el valor de este ltimo byte es siempre 0xFF, lo


que indicar al receptor que el cdigo recibido es de asociacin. Si el
receptor se encuentra en modo asociacin y el ltimo byte recibido es
0xFF, ste aceptar el cdigo y lo guardar en su memoria. En caso
contrario ignorar la transmisin.
o Modo normal de operacin: el ltimo byte representa el nivel de
intensidad de luz cuando se desea encender la bombilla. Si la luz est
encendida y se quiere apagar pulsando de nuevo el botn dedicado a
dicho receptor, este ltimo byte se ignorar. Evidentemente, el valor
del nivel de luz no debe tener nunca el valor 0xFF para evitar la
confusin entre modos de funcionamiento.

Fig. 4.4. Ejemplo de cdigos para los dos modos de funcionamiento

4.3. Diseo del circuito emisor.

El circuito emisor est formado por:

Un bloque de alimentacin encargado de proporcionar la energa necesaria


con los niveles de tensin y corriente requeridos.

Un bloque de control que gestiona los pulsadores y efecta las rdenes


correspondientes para encender y apagar una bombilla.

Bloque de transmisin para enviar la informacin por radiofrecuencia (Fig.


4.5).

47

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 4.5. Diagrama de bloques del emisor

4.3.1. Bloque de alimentacin

Con el fin de evitar el uso de pilas se ha vuelto a utilizar un supercondensador de 0,1


F/5.5V como elemento de almacenamiento. Entre ste y el panel se ha intercalado un
diodo de bloqueo que evite la descarga del supercondensador hacia el panel. Se han
utilizado diodos Schottky, con una cada de tensin directa de 0,3 V para minimizar
prdidas.
La tensin obtenida por el panel estar comprendida entre 2,5 y 5 V en funcin de las
condiciones de luz. Para que el circuito emisor funcione adecuadamente es necesario un
regulador que fije la tensin a un nivel estable. Para ello se ha empleado una bomba de
carga MCP1252 de Microcontroladorchip, que fija la tensin de salida a 3,3 5 V a partir de
un rango de entrada de 2 a 5,5 V, y una corriente mxima de salida de 120 mA, con un
consumo tpico de 80 A. Debido a que el bloque de control utilizar un microcontrolador
con un rango de alimentacin entre 2 y 5,5 V, y el bloque de transmisin un mdulo de
radiofrecuencia de tensin tpica de 3 V, se ha escogido fijar la tensin de salida de la
bomba de carga a 3,3 V.
Debido a que el sistema emisor se alimentar nicamente durante la pulsacin de
alguno de sus botones, y a que durante la pulsacin el microcontrolador debe alimentarse
y detectar la entrada que se ha activado, no es posible alimentar ste ultimo a partir de la
bomba de carga, ya que se necesitaran tantas bombas de carga como pulsadores. Por tal
motivo, la bomba de carga proporciona una tensin regulada nicamente al mdulo de
radiofrecuencia, que es el componente de mayor consumo de todo el circuito emisor (5,5
mA a 3 V). El objetivo es que, tras finalizar las operaciones del microcontrolador, la bomba

48

Control inalmbrico de sistemas basado en el uso de energa solar

de carga pase a modo de bajo consumo, deshabilitando el mdulo de radiofrecuencia


aunque el usuario mantenga el botn apretado.
La bomba de carga MCP1252 puede trabajar en modo reductor o elevador de la
tensin de salida respecto a la tensin de entrada. Este circuito integrado trabaja en tres
fases:

Trabajando en modo normal (no de bajo consumo) y en rgimen permanente,


la bomba de carga comienza a cargar el condensador externo CFLY. Esta
operacin se realiza en la mitad de un periodo del oscilador interno (Fig. 4.6).

En la segunda fase (Fig. 4.7) se compara la tensin de salida mediante un


divisor de tensin interno con una referencia interna. En el caso de estar por
debajo de la referencia, la bomba pasar a la tercera fase. En caso contrario
se mantendr en la segunda fase.

En la tercera fase la bomba transfiere la energa del condensador externo a la


salida (Fig. 4.8).

Si la transferencia de carga se realiza en la mitad de un periodo del oscilador interno,


el condensador externo necesitar ms energa, por lo que se vuelve a la fase 1 o fase de
carga del condensador. En caso contrario se retorna a la fase 2. Para fijar la tensin de
salida a 3,3 V, la entrada SELECT debe conectarse a Vin (para 5 V a GND). La bomba de
carga dispone de la patilla SHDN para su activacin. Cuando esta entrada est a nivel alto,
la bomba de carga est en modo activo. En caso contrario permanece en modo de bajo
consumo.

49

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 4.6. Fase 1 de la bomba de carga MCP1252

Fig. 4.7. Fase 2 de la bomba de carga MCP1252

50

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 4.8. Fase 3 de la bomba de carga MCP1252

4.3.2. Bloque de control

El bloque de control est formado bsicamente por un microcontrolador PIC12F675


del fabricante Microchip. Este microcontrolador tiene un rango de tensin de entrada de 2
a 5,5 V y un consumo de 0,5 mA a 3 V. Esto unido a la lenta descarga del supercondensador
le permitir disponer de una tensin de alimentacin relativamente estable sin necesidad
de regulador de entrada durante el tiempo de operacin. Este microcontrolador dispone
de:

128 bytes de memoria EEPROM de datos, necesaria en esta aplicacin para


guardar los bytes que identifican a los receptores y el nmero de dispositivos
asociados, ya que el microcontrolador se apaga cuando deja de pulsarse un
botn.

Convertidor analgico-digital de 10 bits con cuatro canales de lectura utilizado


para determinar el nivel de luminosidad deseada.

Temporizador de 8 bits y otro de 16 bits. El primero de ellos (timer 0) no


dispone de bit de control para parar su registro de cuenta (TMR0). ste se

51

Control inalmbrico de sistemas basado en el uso de energa solar

incrementa en cada ciclo de instruccin sin parar durante toda la ejecucin


del programa.

A diferencia del PIC12F508 utilizado en la aplicacin del captulo 3, este


microcontrolador s dispone de fuentes de interrupcin para un control
adecuado de la transmisin.

4.3.2.1. Esquema elctrico completo del circuito emisor

En la Tabla 4.1 se muestra la funcionalidad asignada a cada patilla del


microcontrolador. Como ya se mencion, el sistema emisor dispone de tres botones. Con la
pulsacin de cualquiera de ellos se alimenta simultneamente la entrada asignada a la
operacin a realizar y la entrada de alimentacin del microcontrolador (Fig. 4.9). Como las
tres entradas de operacin (GP1, GP2 y GP3) se unen a la de alimentacin (Vdd), es
necesario incluir un diodo en cada rama que bloquee la seal hacia las entradas no
deseadas.
La entrada GP4 del microcontrolador se asocia al canal de lectura del convertidor
analgico-digital, utilizndose un potencimetro manual para regular el nivel de tensin
que indicar la intensidad de luz deseada. Como tensin de referencia o fondo de escala
para la lectura se utiliza la tensin de alimentacin del microcontrolador.
Por ltimo, se utiliza la salida GP5 para controlar la activacin de la bomba de carga
antes de transmitir el cdigo y la salida GP0 para el envo de los cdigos hacia el mdulo de
radiofrecuencia.

PATILLA

FUNCIONALIDAD

GP0

SALIDA PARA EL ENVO DE LOS CDIGOS

GP1

ENTRADA PARA PULSADOR DE ASOCIACIN

GP2

ENTRADA PARA PULSADOR RECEPTOR 1

GP3

ENTRADA PARA PULSADOR RECEPTOR 2

GP4

ENTRADA PARA LECTURA DEL NIVEL DE INTENSIDAD DE LUZ

GP5

SALIDA DE ACTIVACIN DE LA BOMBA DE CARGA

Tabla 4.1. Descripcin del patillaje del PIC12F675 de circuito emisor

52

Control inalmbrico de sistemas basado en el uso de energa solar

En la Fig. 4.9 puede verse el circuito emisor completo. A partir de la activacin de


cualquiera de los tres pulsadores (ASOCIACIN, RECEPTOR 1 y RECEPTOR 2) se produce la
alimentacin del microcontrolador a partir del supercondensador. Al mismo tiempo se
activa tambin la entrada correspondiente que marca el modo de funcionamiento (GP1 o
GP2-GP3).
Cuando se produce el momento de enviar el cdigo de transmisin, el
microcontrolador activa a nivel alto su salida GP5 para activar la bomba de carga, que a su
vez proporciona una salida regulada de 3,3 V para el mdulo de radiofrecuencia.

53

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 4.9. Circuito emisor completo

54

Control inalmbrico de sistemas basado en el uso de energa solar

4.3.2.2. Rutina principal del microcontrolador

Cuando se pulsa alguno de los tres botones se produce la alimentacin del resto del
circuito emisor. Cuando la tensin en el microcontrolador es estable, ste realiza la
siguiente secuencia (Fig. 4.10):

Lectura en su memoria EEPROM del nmero de receptores asociados con l,


guardndose en una variable llamada n_disp.

En caso de ser la primera vez que se lee la memoria EEPROM, el valor de


todas sus posiciones ser FFh. En este caso, el valor de la variable n_disp se
inicializa a cero. En caso contrario no se modifica esta variable.

El microcontrolador procede entonces a leer las entradas GP1, GP2 y GP3


para averiguar el botn pulsado.

Si se pulsa el botn de asociacin, el microcontrolador salta a leer la rutina de


asociacin. Tras finalizar pasa a modo de bajo consumo y permanece as hasta
que cesa la alimentacin.

Si se pulsa el botn de control del receptor 2, el microcontrolador comprueba


si tiene dos receptores asociados (n_disp =2). En caso afirmativo leer de su
memoria EEPROM el byte identificador del receptor n 2 y lo guardar en la
variable codigo_rec declarada en la memoria de datos. Posteriormente
procede a convertir a digital el valor analgico de tensin en GP4, que
representa el nivel de intensidad de luz deseada. Por ltimo procede a enviar
el cdigo de cuatro bytes. Si no tiene dos receptores asociados pasar
directamente a modo de bajo consumo sin realizar ninguna operacin.

En caso de pulsarse el botn de control del receptor n 1 se comprueba


primero si hay dos receptores asociados. Si no, se pregunta si hay un nico
receptor asociado. En caso de haber uno o dos receptores asociados se
realizar la transmisin. En caso contrario (ningn receptor asociado) se pasa
a modo de bajo consumo.

55

Control inalmbrico de sistemas basado en el uso de energa solar

RUTINA PRINCIPAL

DECLARACIN DE VARIABLES
CONFIGURACIN DE REGISTROS

LEO DE EEPROM EL NMERO DE


RECEPTORES ASOCIADOS Y LO GUARDO
EN n_disp

n_disp==FFh

NO

SI
n_disp=0

NO
RECEPTOR

NO

SI

SI
NO

NO

SI

2 RECEPTORES

2 RECEPTORES

SUBRUTINA

ASOCIADOS

ASOCIADOS

ASOCIACIN

SI

SI

ASOCIADO

NO

ASOCIAR

SI

1 RECEPTOR

NO

RECEPTOR

LEO CDIGO DE

LEO CDIGO DE

RECEPTOR_1

RECEPTOR_2

MODO SLEEP
SUBRUTINA
CONVERSIN A/D

SUBRUTINA DE
TRANSMISIN

Fig. 4.10. Diagrama de flujo de la rutina principal

56

MODO SLEEP

Control inalmbrico de sistemas basado en el uso de energa solar

4.3.2.3. Procedimiento de asociacin

Antes de controlar inalmbricamente una fuente de luz hay que asociar el receptor
que lo controla al emisor elegido. Una vez el receptor queda a la espera de recibir el
cdigo, indicndolo con un diodo LED, y se pulsa del botn de asociacin del circuito
emisor, el microcontrolador realizar las siguientes tareas (Fig. 4.11):

Primeramente verificar si puede asociarse un nuevo receptor, es decir, si no


tiene ya 2 receptores asociados. En caso afirmativo, generar un byte
aleatorio que identifique al nuevo receptor y lo guardar en su memoria
EEPROM junto al nmero de dispositivos asociados incrementado en uno.
Tras esto enviar los cuatro bytes que conforman el cdigo. En caso contrario
(2 receptores asociados), el microcontrolador resetear el nmero de
dispositivos asociados para comenzar de nuevo. De esta forma se consigue
tener un sistema configurable, asociando al emisor los receptores deseados
en todo momento.

Una vez comprobado que no hay ya dos receptores asociados, el


microcontrolador lee de su memoria EEPROM la posicin que guarda el
ltimo byte aleatorio que se gener. A continuacin, lo guarda en las variables
semilla y semilla_copia.

En funcin de si el nmero de dispositivos asociados es 0 o 1, las operaciones


que producen el nmero aleatorio ser diferente. Estas operaciones se
realizan sobre la variable semilla, siendo el valor final conseguido el byte
identificador del nuevo receptor. Por tanto, el valor de semilla coincide
siempre con el valor del ltimo receptor asociado, ya que es la variable
utilizada para generarlo.

El nuevo byte se guarda en la posicin EEPROM reservada al nuevo receptor y


en la posicin que guarda siempre el ltimo byte aleatorio generado (llamado
semilla).

Si es el segundo receptor asociado, se compara su nuevo byte identificador


con el byte que se gener para el primer receptor (contenido en
semilla_copia) antes de guardar los nuevos bytes en EEPROM. En caso de
coincidir ambos valores se resetea la variable semilla antes de guardar los
bytes. En caso contrario se guardan sin modificar la variable semilla. De esta
manera se asegura que los identificadores de ambos receptores no coinciden.

57

Control inalmbrico de sistemas basado en el uso de energa solar

SUBRUTINA
ASOCIACIN

SI

2 RECEPTORES
ASOCIADOS

N DE

GUARDAR N

DISPOSITIVOS = 0

DISPOSITIVOS EN
EEPROM

NO
LEO SEMILLA DE EEPROM Y LO

SALIR

GUARDO EN SEMILLA_COPIA

SI

NO

1 RECEPTOR
ASOCIADO

GENERACIN DE

GENERACIN DE

ALEATORIO 1

ALEATORIO 2

GUARDO ALEATORIO

GUARDO ALEATORIO

EN SEMILLA

EN SEMILLA

VER SI SEMILLA COINCIDE CON SU


VALOR ANTERIOR

SI

COINCIDE

RESETEO SEMILLA

NO
PRIMER

NO

DISPOSITIVO
AADIDO

SI
GUARDO SEMILLA EN EEPROM

GUARDO SEMILLA EN EEPROM

COMO CDIGO DEL PRIMER

COMO CDIGO DEL SEGUNDO

RECEPTOR ASOCIADO

RECEPTOR ASOCIADO

HABILITO BOMBA DE CARGA

GUARDO SEMILLA y N_DISP +1

SUBRUTINA DE TRANSMISIN

EN EEPROM

DESHABILITO BOMBA DE CARGA

Fig. 4.11. Diagrama de flujo de la rutina de asociacin con un nuevo receptor

58

VOLVER

Control inalmbrico de sistemas basado en el uso de energa solar

Para guardar la informacin generada se utilizan cuatro posiciones de la memoria


EEPROM (Fig. 4.12):

En la posicin 0 se guarda el valor del nmero de dispositivos asociados. El


valor de fbrica inicial es FFh para todas las posiciones. Por tal motivo, la
primera vez que se lee el nmero de dispositivos asociados se verifica su
coincidencia con este valor. En caso afirmativo, el microcontrolador resetear
la variable n_disp.

En la posicin 1 se guarda el byte identificativo del primer receptor asociado.

En la posicin 2 se guarda el byte identificativo del segundo receptor


asociado.

En la posicin 3 se guarda el valor tomado como referencia para generar el


cdigo aleatorio de cada receptor (semilla). Este valor siempre coincide con el
valor del ltimo identificador de receptor asociado.

Fig. 4.12. Descripcin de las posiciones EEPROM del microcontrolador emisor

Una vez tiene asociado al menos un receptor, el emisor puede controlarlo pulsando
el botn correspondiente. Tras comprobar que existe un receptor asociado a la entrada
que ha detectado, el microcontrolador:

Lee de EEPROM el identificador del receptor que corresponde al botn


detectado y lo guarda en la variable codigo_rec.

Activa la bomba de carga poniendo a nivel alto su salida GP5. Esto permite la
alimentacin del bloque de transmisin a 3,3 V. La bomba de carga necesita
un mnimo de 200 s para arrancar. En este caso, el microcontrolador espera
512 s para asegurar una tensin estable en el bloque de transmisin.

Realiza la conversin a digital del valor de tensin en GP4 para determinar el


valor de intensidad de luz y transmite los cuatro bytes por orden.

59

Control inalmbrico de sistemas basado en el uso de energa solar

4.3.2.4. Lectura del valor de intensidad de luz

Para realizar la conversin analgico-digital se han de configurar primero los registros


ANSEL y ADCON0. El registro ANSEL permite:

Seleccionar los pines como entradas/salidas digitales o como entradas


analgicas. Hay cuatro posibles entradas que se pueden seleccionar como
canal de lectura, pertenecientes a los pines GP0, GP1, GP2 y GP4. El canal de
lectura elegido (GP4) debe seleccionarse como entrada analgica.

Seleccionar el reloj de conversin. Un ciclo de conversin requiere de 11


veces el tiempo de adquisicin. Este tiempo es la suma de:
o El tiempo de activacin del amplificador interno.
o El tiempo aproximado de carga del condensador interno a la tensin
aplicada al canal de lectura.
o Un tiempo de retardo debido a la temperatura.

Debe elegirse un reloj que permita asegurar el tiempo de conversin. Existen


diferentes tiempos de adquisicin en funcin de la frecuencia del reloj del sistema y del
modo de operacin escogido (Fig. 4.13). Para esta aplicacin se emplea el oscilador interno
del microcontrolador (4 MHz), por lo que el modo de operacin es con un reloj derivado de
este oscilador a una frecuencia mxima de 500 kHz. Para este modo de operacin y
tensiones mayores de 3 V, el tiempo de adquisicin tpico es de 4 s (Fig. 4.13), lo que
supone un tiempo de conversin para los 10 bits de 44 s.
El registro ADCON0 es el encargado de gestionar la conversin. En l puede elegirse:

Una conversin justificada a la izquierda o a la derecha. El valor digital de 10


bits que se obtenga estar en los registros ADRESL y ADRESH. En este caso se
utiliza una justificacin a la izquierda:
o 8 bits ms significativos en el registro ADRESH y los 2 menos
significativos en el registro ADRESL.
o Los 2 bits menos significativos se desprecian para el nivel de
luminosidad.

La referencia de tensin o fondo de escala a partir de:


o La tensin de alimentacin del microcontrolador (Vdd).
o Tensin externa introducida por el pin Vref (GP1).

Se ha utilizado como alimentacin del microcontrolador Vdd. Aunque esta tensin no


es constante, ya que el supercondensador se descarga en cada transmisin, la tensin en el

60

Control inalmbrico de sistemas basado en el uso de energa solar

canal de lectura cae proporcionalmente a dicha tensin, debido a que el potencimetro


parte tambin de esta tensin.

El canal analgico de lectura. En este caso se ha escogido AN3 (canal


correspondiente al pin GP4).

Fig. 4.13. Eleccin del tiempo de adquisicin del convertidor A/D

Para realizar la conversin se realiza la siguiente secuencia (Fig. 4.14):

El bit ADON (ADCON0) debe estar a 1 para permitir la alimentacin de la


circuitera del convertidor.

Cuando se pone el bit GO/DONE (ADCON0) a 1 por software se inicia la


conversin. Finalizada la conversin, este bit se pone a cero automticamente
por hardware.

El valor digital de 8 bits contenido en el registro ADRESH se almacena en la


variable codigo_adc.

Se vuelve a poner a 0 el bit ADON para un menor consumo del


microcontrolador.

61

Control inalmbrico de sistemas basado en el uso de energa solar

SUBRUTINA DE
CONVERSION A/D

ALIMENTO CIRCUITERA
CONVERSOR (ADON=1)

INICIO CONVERSION (BIT


GO/DONE DE ADCON0 A 1)

FIN DE

NO

CONVERSIN

SI
CODIGO_ADC= ADRESH

DESACTIVO CONVERSOR (BIT


ADON=0)

RETURN

Fig. 4.14. Diagrama de flujo de la rutina de conversin A/D

4.3.2.5. Transmisin del cdigo

Una vez realizada la conversin se dispone ya de los 4 bytes que forman el cdigo:

Los dos primeros bytes correspondientes al identificador de emisor son fijos y


se declaran en las variables cdigo_ID1 y cdigo_ID2 cada vez que el
microcontrolador arranca.

El byte identificador de receptor se guarda en la variable codigo_rec.

El byte con el valor de intensidad de luz se guarda en cdigo_adc.

Para gestionar la transmisin del cdigo se ha utilizado (Fig. 4.15):

Una variable genrica llamada cdigo para ir cargando cada uno de los bytes
por turnos.

Bits de control para conocer en todo momento qu byte se est enviando y


en qu modo de funcionamiento se trabaja.
62

Control inalmbrico de sistemas basado en el uso de energa solar

La trama de bits de cada byte enviado por la salida GP0 se realiza de la siguiente
manera (Fig. 4.15):

Se pregunta por el valor de cada bit empezando por el menos significativo.

En caso de ser 1 se pone a nivel alto la salida GP0 durante 256 s.

Si es 0 se pone a nivel alto durante 512 s.

Antes de enviar el ltimo byte se debe preguntar por el modo de funcionamiento (bit
de control) para enviar el valor correcto (Fig. 4.15):

En el modo de asociacin, la variable cdigo se carga con el valor 0xFF.

En el modo normal de funcionamiento, la variable cdigo se carga con el


valor de la variable cdigo_adc.

Al finalizar la transmisin, el microcontrolador pasa a modo de bajo consumo


mientras contine la pulsacin. Al hacer esto, su salida GP5 vuelve a nivel bajo,
desactivando la bomba de carga y el bloque de transmisin. Cuando finaliza la pulsacin
del botn cesa la descarga del supercondensador hacia el circuito.
Para controlar la duracin de cada bit enviado se ha empleado uno de los
temporizadores que posee el microcontrolador (timer 0). Este timer de 8 bits no dispone
de bit de control para comenzar o parar su registro de cuenta TMR0. En modo
temporizador y prescaler 1:1, TMR0 se incrementa en uno con cada ciclo de instruccin.
Para realizar las cuentas se han realizado las siguientes operaciones:

Se ha configurado el registro OPTION_REG para utilizar un prescaler de 1:8.


De esta forma se necesitan 8 ciclos de instruccin para que TMR0 se
incremente en uno.

Para realizar una cuenta de 256 s se necesitan 32 incrementos del registro


TMR0. Restando al valor mximo de cuenta el nmero de incrementos se
obtiene el valor de precarga de TMR0:
256
= 32 incrementos; 32d = 20h; FFh 20h = DFh
8

Se ha empleado la fuente de interrupcin del timer 0 para controlar el


apagado de la salida GP0 tras finalizar la cuenta. Para habilitar la interrupcin
se debe poner a 1 el bit T0IE y el bit GIE, ambos del registro INTCON.

Una vez salta la interrupcin, el bit T0IF (flag de interrupcin del timer 0) del
registro INTCON se pone automticamente a nivel alto por hardware. Este bit

63

Control inalmbrico de sistemas basado en el uso de energa solar

es til para detectar qu fuente de interrupcin ha saltado cuando se utilizan


ms de una. En este caso solo se utiliza la fuente de interrupcin del timer 0.

Tras producirse la interrupcin hay que poner a cero el bit T0IF e inhabilitar
las interrupciones poniendo a cero el bit GIE. Tras esto se apaga la salida GP0.

RUTINA DE
TRANSMISIN

**

*
CDIGO 1

NO

CARGO

BIT X==0

NO
CALL UNO

SI

PRIMER BYTE

ENVIADO

CALL CERO

SI
CDIGO 2

NO

ENVIADO

**

CARGO
SEGUNDO BYTE

CDIGO 3

NO

CARGO
TERCER BYTE

ENVIADO

CDIGO_ADC

SI
ESPERO 512 s

SI

NO
CDIGO 4

SI

NO

SI

CARGO

ENVIADO

LTIMO BIT

NO

MODO
PROGRAMACIN

SI
CDIGO 4

NO
CARGO 0xFF

ENVIADO

SI
VOLVER

Fig. 4.15. Rutina de transmisin

En la Fig. 4.16 se muestra la subrutina de interrupcin del timer 0. Al finalizar la


cuenta se apaga la salida de envo del cdigo (GP0). Tambin se muestran las subrutinas
encargadas de precargar un valor especfico de cuenta en el timer 0 en funcin del valor
del bit que se quiere enviar. Estas subrutinas se llaman desde la rutina de transmisin.

64

Control inalmbrico de sistemas basado en el uso de energa solar

TIMER 0

CERO

UNO

RESETEO FLAG INTERRUPCIN TIMER 0

PRECARGO VALOR CONTAR 512 S

PRECARGO VALOR CONTAR 256 S

INHABILITO INTERRUPCIONES

HABILITO INTERRUPCIN TIMER 0

HABILITO INTERRUPCIN TIMER 0

APAGO SALIDA

SALIDA=1

SALIDA=1

RETURN

RETURN

RETFIE

Fig. 4.16. Subrutinas de gestin del tiempo de transmisin

4.3.3.

Bloque de transmisin

El bloque de transmisin est formado por un mdulo de radiofrecuencia Aurel TXSAW MID/3V igual al utilizado en la aplicacin del timbre inalmbrico y por una antena
helicoidal de 15 cm. El mdulo opera a una tensin de 3,3 V proporcionada por la bomba
de carga y trabaja en la banda libre de 434 MHz.

4.4. Diseo del circuito receptor.

El circuito receptor es el encargado de controlar directamente el encendido y


apagado de la bombilla. Este circuito consta de cuatro bloques (Fig. 4.17):

Bloque de alimentacin: encargado de obtener una tensin estable de 5 V


para el bloque de recepcin y control a partir de la red elctrica.

Bloque de recepcin y control: gestiona el encendido de la bombilla a partir


de los cdigos enviados por el circuito emisor.

Bloque de sincronizacin: este circuito proporciona una seal de paso por


cero de la seal de red. Esto permite tomar el paso por cero como referencia
para modificar el ngulo de disparo y variar as la intensidad de luz.

Bloque de disparo: este circuito es el encargado de permitir o no el paso de la


corriente por la bombilla (carga).

65

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 4.17. Diagrama de bloques del receptor

4.4.1.

Bloque de alimentacin

Todo el circuito receptor se alimenta a partir de la red de 230 V. Para obtener el nivel
de continua adecuado para los circuitos integrados se ha utilizado un puente rectificador y
un convertidor CC-CC reductor del fabricante Rohm Semiconductor, modelo BP5041A1.

BP5041A1

10

CC/CC

Vin

GND

Fusible 0.5 A

1 2

L78L05

Vcc

Vout

10
V+
0.1u/400V

220u

33u

10u/450V
FREQ = 50
VAMPL = 311

GND

V-

Fig. 4.18. Circuito de alimentacin

El convertidor BP5041A1 obtiene 12 V en su salida a partir del nivel de red rectificado


en media onda y filtrado. Los niveles de tensin de entrada permitidos van desde los 226 V

66

Control inalmbrico de sistemas basado en el uso de energa solar

hasta los 390 V. Ofrece una corriente mxima de salida de 100 mA (Vi=282 V) a una
frecuencia de conmutacin de 42 kHz y una eficiencia tpica del 62% en estas condiciones.
El rizado mximo es de 0,15 Vpp (Vi=282 V, Io=50 mA). Se ha utilizado un fusible con una
corriente de corte de 500 mA por indicacin del fabricante. Los 5 V necesarios para los
chips de control se obtienen mediante un regulador L78L05 (Fig. 4.18).

4.4.2.

Bloque de sincronizacin

El circuito de recepcin y control necesita conocer cuando se produce el paso por


cero de la seal de red para realizar la gestin del ngulo de disparo y controlar as el nivel
de luminosidad. Por este motivo se utiliza un bloque de sincronizacin. El circuito
propuesto (Fig. 4.19) aprovecha la seal rectificada del puente completo (Fig. 4.18). Para
obtener los pulsos de paso por cero se ha utilizado un optoacoplador Vishay 4N37. Este
dispositivo dispone de un fototransistor disparado por un led de infrarrojos, lo que permite
aislar el circuito de potencia del circuito de control.
Vcc
100k
V+

4N37

1k

GP1 (PIC12F508)

V-

Fig. 4.19. Circuito detector de paso por cero

Cuando existe suficiente tensin de entrada para polarizar en directa el led, ste
activar el fototransistor, poniendo la patilla GP1 del microcontrolador de control a masa.
Si se produce el paso por cero de la corriente, el transistor quedar desactivado, teniendo
en su colector aproximadamente la tensin de la fuente Vcc. De esta manera se obtiene el
pulso de paso por cero. Dado el pequeo valor de la capacidad interna del fototransistor (6
pF para la unin colector-emisor), los tiempos de conmutacin no se ven influenciados en
gran medida debido a ste. Sin embargo no ocurre lo mismo con el led.

tauf = Rf Cf = 103 6 pF = 6 ns > Fototransistor


5 tauf = 30 ns > Fototransistor

67

Control inalmbrico de sistemas basado en el uso de energa solar

tauL = RL CL = 100 103 25 pF = 2.5 s > Led


5 tauL = 12.5 s > Led
El fototransistor permite una corriente mxima de 50 mA, por lo que se ha aadido
una resistencia de 1 k para limitar esta corriente. Suponiendo el fototransistor ideal en
conduccin, la corriente mxima por l sera de:

I m xf =

5V
= 5 mA
1 k

Por otro lado, se ha introducido una resistencia para limitar la corriente por el
circuito de potencia. La mxima corriente permitida en el led es de 60 mA, siendo su cada
de tensin tpica de 1,3 V a 10 mA. A la salida del puente de diodos se van a tener picos
mximos de:

V m x = 230 2 = 325 V
Debe tenerse en cuenta que a la entrada del optotriac (bloque de disparo) no debe
superarse una corriente de 50 mA. Si se pretende una corriente de aproximadamente 10
mA para el valor mximo de tensin, el valor mnimo de la resistencia ser de:
RL =

325 1, 3
= 33 k
10 mA

Con un valor superior de resistencia, la corriente por sta ser menor, minimizndose
las prdidas de potencia. Sin embargo, para un valor ms alto de resistencia, el tiempo de
carga del condensador interno del diodo ser mayor, producindose un ensanchamiento
del pulso de paso por cero a la salida del optoacoplador. Esto puede perjudicar el control
de tiempos realizado para el nivel de iluminacin. Para el caso de 51 k se produciran
prdidas de potencia de:

325 1,3
I Lmx =
= 6, 4 mA;
51 k

6, 4 10 3 2
PL m x = (
) 51103 = 1,04 W
2

Esto produce un calentamiento excesivo para una resistencia de W, ya que sta no


tiene tiempo para refrigerarse antes del siguiente pico, acumulndose el calor hasta la
destruccin de la misma. Por tal motivo se ha escogido una resistencia de 100 k, que
produce una corriente y potencia mximas de:

I L max =

325 1,3
= 3, 2 mA ;
100

PL max = (

68

3, 2 10 3 2
) 100 103 = 0,5 W
2

Control inalmbrico de sistemas basado en el uso de energa solar

En la Fig. 4.20 y Fig. 4.21 se representa la duracin del pulso para 51 k y 100 k,
respectivamente. Como puede verse, para 51 k el pulso dura unos 800 s y para 100 k
es de hasta 3 ms, lo que limita el tiempo disponible para activar la bombilla. Para una
frecuencia de red de 50 Hz, cada ciclo de la onda rectificada dura 10 ms. Si quiere activarse
la bombilla durante 8 ms por ciclo (80%), tras un paso por cero el microcontrolador cuenta
2 ms con la bombilla apagada. Tras esto, activa la bombilla hasta el prximo ciclo mientras
pregunta por otro paso por cero. Si la resistencia de polarizacin fuera de 100 k, el
microcontrolador detectara el mismo paso por cero en 3 ms antes de finalizar su cuenta de
8 ms, lo que provoca un fallo de control. Este problema se soluciona por software, evitando
que el microcontrolador atienda su entrada de paso por cero hasta que el nivel del pulso
sea nulo. As se asegura que el pulso finaliza antes de volver a preguntar por el siguiente
pulso.

Fig. 4.20. Pulso de paso por cero con resistencia de polarizacin del fotodiodo de 51 k

69

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 4.21. Pulso de paso por cero con resistencia de polarizacin del fotodiodo de 100 k

4.4.3.

Bloque de recepcin y control.

El circuito de recepcin y control es el encargado de recibir los cdigos y gestionarlos


para el control de la bombilla. La recepcin se realiza mediante un mdulo de
radiofrecuencia igual al utilizado en la aplicacin del timbre inalmbrico (Aurel AC-RX2).
Para el control se utilizan dos microcontroladores que gestionan todo el proceso:

Un microcontrolador principal o maestro (PIC12F675) se encarga de validar


las transmisiones e indicar al microcontrolador esclavo las acciones a realizar
sobre la bombilla.

Un microcontrolador esclavo (PIC12F508) que acta sobre el bloque de


disparo.

4.4.3.1. Descripcin del funcionamiento

En la Fig. 4.22 puede verse el esquema de la parte de control del circuito receptor. El
mdulo transmisor se encarga de enviar el cdigo recibido por radiofrecuencia al
microcontrolador maestro (PIC12F675) por su patilla GP2. Las entradas GP3 y GP4 se
dedican a los pulsadores de reset y asociacin respectivamente. As mismo se dedica la

70

Control inalmbrico de sistemas basado en el uso de energa solar

salida GP5 para el diodo led que indica la entrada en modo asociacin, y las salidas GP0 y
GP1 de comunicacin con el microcontrolador esclavo (Tabla 4.2).

GP0
GP1
GP2
GP3
GP4
GP5

SALIDA DE COMUNICACIN (INTENSIDAD)


SALIDA DE COMUNICACIN (INTENSIDAD)
ENTRADA PARA RECIBIR LOS CDIGOS
ENTRADA PULSADOR DE RESET
ENTRADA PULSADOR DE ASOCIACIN/RECIBIR CONFIRMACIN
SALIDA LED DE ASOCIACIN

Tabla 4.2. Descripcin del patillaje del microcontrolador maestro (PIC12F675)

GP0
GP1
GP2
GP3
GP4
GP5

SALIDA DE CONFIRMACIN
ENTRADA DETECCIN DE PASOS POR CERO
SALIDA PARA PWM
ENTRADA PULSADOR DE RESET
ENTRADA DE COMUNICACIN (INTENSIDAD)
ENTRADA DE COMUNICACIN (INTENSIDAD)

Tabla 4.3: Descripcin del patillaje del microcontrolador esclavo (PIC12F508)

El microcontrolador esclavo dedica dos entradas para comunicarse con el


microcontrolador maestro (GP4 y GP5). A travs de estas entradas, el microcontrolador
esclavo recibe el cdigo binario que interpretar segn la Tabla 4.4.
GP5
0
0
1
1

GP4
0
1
0
1

FUNCIN
Luz apagada
Nivel 1
Nivel 2
Nivel 3

Tabla 4.4. Cdigos para la identificacin del nivel de intensidad de luz

Cada vez que el microcontrolador esclavo recibe los niveles lgicos en sus entradas
GP4 y GP5, ste enva por su salida GP0 la seal que confirma que ha recibido e
interpretado el cdigo. El microcontrolador maestro recibe esta seal por la entrada del
pulsador de asociacin (GP4) por la falta de pines. A pesar de ello no se producen

71

Control inalmbrico de sistemas basado en el uso de energa solar

problemas, ya que nunca se puede producir una nueva asociacin mientras se controla la
bombilla.
Una vez el microcontrolador esclavo recibe el nivel de intensidad, debe generar la
seal cuadrada correspondiente al nivel de luz segn la Tabla 4.5.
Tiempo a nivel bajo (ms)
5
3
0

Tiempo a nivel alto (ms)


5
7
10

Rango
1 (50%)
2 (70%)
3 (100%)

Tabla 4.5. Tiempos para la PWM de salida en funcin del nivel de intensidad de luz

72

GND

Vdd

RECEPTOR RF AC-RX4

OUT
Vcc

DATOS

220n

73
in out

1k

BOTN ASOCIACIN

RANGORECIBIDO(OUT)

Vdd

LED ASOCIAR

2.7k

220n

Vdd
Vdd

10k

GP3

GP2

GP1

GP0

GP5
GP4

Vss

Vdd

PIC12F675

2.7k

GND

56k

TP

GND

GND

IN

Vcc

ANTENA

Fig. 4.22. Circuito de recepcin y control


in out

BOTN RESET

DATOS

56k

bit de rango 1

bit de rango 0

LED POWER

Vdd

GP3

GP4

GP5

Vdd

GP2

GP1

GP0

Vss

PIC12F508

220n

56k

41

GND

OPTOTRIAC (OUT)

PASOS POR CERO(IN)

RANGORECIBIDO(OUT)

Control inalmbrico de sistemas basado en el uso de energa solar

Control inalmbrico de sistemas basado en el uso de energa solar

4.4.3.2. Rutina principal del microcontrolador maestro

Antes de que el circuito receptor comience a controlar la bombilla debe estar


asociado a un emisor. La primera vez que se arranca el receptor, el microcontrolador
maestro pregunta nicamente por el botn de asociacin (Fig. 4.23). Cuando ste se pulsa,
el microcontrolador maestro entra en la rutina de asociacin. El circuito receptor se puede
asociar tantas veces como se quiera y con el emisor que se desee.
Cuando un receptor est asociado a un emisor, el microcontrolador maestro
pregunta por una nueva asociacin o por la llegada de un cdigo de actuacin sobre la
bombilla. En el primer caso volver a asociarse con otro emisor y en el segundo caso saltar
a la rutina de control de la bombilla (rutina de luminosidad). Tras finalizar la rutina que
toque se comienza de nuevo.

RUTINA PRINCIPAL

PRECARGA DE VALORES
CONFIGURACIN DE REGISTROS

NO
PRIMERA

SI

ASOCIACIN

VEZ
NO
RUTINA

SI
RUTINA

ASOCIACIN

SI

ASOCIACIN

ASOCIACIN

NO
RECIBO

NO

CDIGO

DESACTIVO BIT FALLO

SI
RUTINA RECEPCIN
CDIGO

SI

FALLO

NO

RUTINA
LUMINOSIDAD

Fig. 4.23. Rutina principal del microcontrolador maestro

74

Control inalmbrico de sistemas basado en el uso de energa solar

4.4.3.3. Rutina de recepcin del cdigo

La rutina de recepcin del cdigo gestiona la llegada de los 4 bytes de informacin


tanto en el modo asociacin como en el modo normal de funcionamiento. En esta rutina se
utilizan los dos timers disponibles en el microcontrolador PIC12F675.
El timer 0 (8 bits) se utiliza para controlar la duracin de cada bit que llega. De esta
forma se puede saber si el bit recibido es un 1 o un 0. Cada bit 1 tiene una duracin de
256 s, y un bit 0 dura 512 s. En este caso, el timer 0 del microcontrolador maestro
cuenta 464 s antes de leer el bit (Fig. 4.24). Esta cuenta se realiza mediante 58
incrementos con el prescaler 1:8, lo que supone un valor de precarga de:

58 cuentas 8 = 464 s; 58d = 3Ah; FFh 3Ah = C5h > TMR0

Fig. 4.24. Realizacin de la lectura de cada bit

La eleccin de 464 s es debida al retardo observado en el cdigo obtenido por el


receptor respecto al emitido. Adems se ha observado que la duracin de los bits en los
primeros momentos de la recepcin se incrementaba de forma indeseada, lo que
provocaba fallos en el cdigo ledo por el microcontrolador maestro. Un tiempo de espera
de 464 s permite la lectura correcta del bit y tiempo suficiente para realizar las
operaciones posteriores antes de llegar a 512 s. El fin de la cuenta se detecta
preguntando por la activacin de su flag T0IF del registro INTCON.
El timer 1 (16 bits) se utiliza para romper la espera del microcontrolador maestro
ante la llegada de un bit. Este timer, a diferencia del timer 0, permite parar y encender su
registro de cuenta (TMR1). Se ha configurado con el prescaler 1:1 (cada incremento del
registro equivale a un ciclo de instruccin), con lo que se puede contar un mximo de
65536 s. Esto es as debido a que cada ciclo de instruccin corresponde a 4 ciclos del reloj

75

Control inalmbrico de sistemas basado en el uso de energa solar

interno de 4 MHz. Por tanto, cada instruccin se ejecutar en 1 s (salvo instrucciones


condicionales y saltos incondicionales).

El timer 1 se desborda al pasar su registro TMR1 de FFFFh a 0000h. Como una


transmisin vlida no dura ms de 50 ms, se ha decidido contabilizar hasta 65 ms antes de
producir la interrupcin del timer 1 que permita salir de la espera. La precarga utilizada
para contar 65 ms es de:

65000d = FDE8h ; FFFFh FDE8h = 217h > TMR1


De esta forma se evita que el microcontrolador maestro permanezca esperando
indefinidamente ante un fallo en la transmisin que no permita recibir los 32 bits (4 bytes).
La rutina de recepcin de cdigo comienza en el momento de detectarse el primer bit
(Fig. 4.28), realizndose a continuacin las siguientes operaciones:

En el instante en que se detecta el primer bit se inicializan y comienzan a


contar los dos timers.

Cuando termina de contar el timer 0 se pregunta por el nivel en la entrada


GP2 (lectura de los cdigos). Si sta est a nivel alto, el bit recibido ser un 0.
En caso contrario ser un 1. En cada caso se saltar a la subrutina
correspondiente (CERO o UNO) para guardar el bit en una variable llamada
cdigo e incrementar un contador del nmero total de bits recibidos.

UNO

CERO

INCREMENTO CONTADOR 32 BITS

INCREMENTO CONTADOR 32 BITS

CARRY = 1

CARRY = 0

ROTAR VARIABLE CODIGO

ROTAR VARIABLE CODIGO

RETURN

RETURN

Fig. 4.25. Subrutinas de recepcin de los bits.

76

Control inalmbrico de sistemas basado en el uso de energa solar

Al final de la recepcin se comprueba que vale 32 para verificar la validez de


la transmisin.
Para gestionar la llegada de cada byte se hace lo siguiente:

Cada bit recibido se guarda en el bit C (carry) del registro STATUS, y se rota la
variable utilizada en la recepcin de cada byte (cdigo).

Para conseguir el byte completo se rota la variable cdigo un total de 8


veces. El ltimo bit recibido en cada byte ser el ms significativo de ste, por
lo que los bytes se leern al revs.

Fig. 4.26. Gestin en la recepcin de cada bit.

Una vez se ha recibido un byte completo, lo cual se sabe mediante una variable
empleada que cuenta cuando se han recibido 8 bits, se ha de preguntar por el modo de
funcionamiento. As el microcontrolador sabr si debe almacenar el byte recibido en la
rutina ASOCIAR (modo asociacin) verificar su coincidencia con el valor de su EEPROM en
la rutina NO_ASOCIAR (modo normal). En ambos casos, la operacin se realiza tras la
recepcin de cada uno de los bytes, utilizndose bits de control para conocer qu byte
llega.
Los bytes recibidos se guardan siempre en memoria EEPROM de datos. En la primera
posicin se guarda la variable que anuncia si se est asociado o no con un emisor. En caso
afirmativo, el valor guardado ser F0h. Este valor se guarda en el momento de la
asociacin. Adems, el receptor debe guardar los dos cdigos de emisor para conocer a su
interlocutor, as como su propio cdigo de receptor que gener aleatoriamente el emisor
(Fig. 4.27).
Al finalizar la llegada de todos los bytes se comprueba si han llegado los cuatro, y si el
contador de bits ha llegado a 32. En caso afirmativo se para el timer 1 y se inhabilita su
interrupcin. En caso contrario se activa un bit de fallo y se espera la interrupcin del timer
1.

77

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 4.27. Descripcin de las posiciones EEPROM del microcontrolador maestro receptor

78

Control inalmbrico de sistemas basado en el uso de energa solar

RECEPCIN CDIGOS

INICIALIZO TIMER 0
FLAG INTERRUPCIN TIMER 0=0

ACTIVO TIMER 1

NO
BIT

SI

NO

FIN CUENTA
TIMER 0

SI
FLAG INTERRUPCIN TIMER 0 =0

SI

GP2=0

NO

UNO

CERO

DECREMENTO CONTADOR DE BITS


NO

4 BYTES
NO

SI
ACTIVO BIT

NO

32 BITS

8 BITS
SI

DE FALLO

CONTADOR=8
SI
PARAR TIMER 1
INHABILITAR LA

NO

INTERRUPCIN TIMER 1

MODO

SI

ASOCIACIN
NO_ASOCIAR

VOLVER

Fig. 4.28. Rutina de recepcin de los cdigos

79

ASOCIAR

Control inalmbrico de sistemas basado en el uso de energa solar

4.4.3.4. Rutinas de gestin del cdigo en ambos modos de funcionamiento

En el modo asociacin, el microcontrolador maestro realiza las siguientes operaciones (Fig.


4.29

Fig. 4.29):

Enciende el led de asociacin.

Espera la llegada de los 4 bytes. Cuando llega el primer bit, salta a la rutina de
recepcin del cdigo de asociacin.

Al mismo tiempo que se espera el cdigo, se pregunta de nuevo por la


pulsacin del botn de asociacin. En caso de que sta se produzca, el
microcontrolador sale del modo asociacin. Esta opcin posibilita una salida
del modo asociacin en caso de que el receptor ya estuviera asociado y se
pretendiera asociarlo a otro emisor.

RUTINA ASOCIACIN

ACTIVO LED DE MODO


ASOCIACIN
NO

SALIR MODO

NO

LLEGA CDIGO

ASOCIACIN
SI

SI

RUTINA RECEPCIN
CDIGO

APAGO LED DE MODO


ASOCIACIN

VOLVER A RUTINA PRINCIPAL

80

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 4.29. Rutina de asociacin con el emisor

Dentro de la rutina de recepcin de cdigo, la gestin de los bytes en el modo


asociacin se realiza mediante la subrutina ASOCIAR (Fig. 4.30). Para mantener un control
de la llegada de cada byte se utilizan bits de control. Tras la llegada de los tres primeros
bytes:

Si el cuarto byte coincide con el valor FFh, el cdigo es efectivamente de


asociacin y el microcontrolador guardar los tres primeros bytes en
EEPROM.

En caso contrario sale de la rutina de asociacin sin guardar nada.

SUBRUTINA ASOCIAR

SEGUNDO CODIGO

SI

CDIGO N2

EMISOR=CODIGO RECIBIDO
NO
CODIGO RECEPTOR=CODIGO

SI

CDIGO N3

RECIBIDO
NO

CDIGO N4

NO

SI

CDIGO==0xFF

SI

NO

PRIMER CODIGO

GUARDO VARIABLES

EMISOR=CODIGO RECIBIDO

EN EEPROM

ACTIVO BIT DE FIN DE LOS 4


BYTES

VOLVER

81

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 4.30. Rutina detallada de asociacin con el emisor

La subrutina NO_ASOCIAR detalla la recepcin de los bytes en el modo normal de


funcionamiento (Fig. 4.31Error! No se encuentra el origen de la referencia.):

Los tres primeros bytes se validan comparndolos con los bytes guardados en
memoria EEPROM. En caso de no coincidir alguno de ellos se activa el bit de
fallo. Este bit se chequear en la rutina principal.

En caso de ser una transmisin vlida, el cuarto byte se guarda en la variable


codigo_ADC, que ser utilizado en la rutina LUMINOSIDAD para determinar
el nivel de intensidad de luz deseado.
SUBRUTINA NO_ASOCIAR

CDIGO N2

SI

COINCIDEN

SI

NO
NO

CDIGO N3

ACTIVO BIT DE

SI

FALLO
NO
CODIGO CONVERSOR

SI

COINCIDEN

CDIGO N4

SI

A/C=CODIGO RECIBIDO
NO

NO

PRIMER CODIGO
EMISOR=CODIGO RECIBIDO

NO

COINCIDEN

ACTIVO BIT DE
FALLO

SI

VOLVER

Fig. 4.31. Rutina de gestin del cdigo en modo normal de funcionamiento

82

Control inalmbrico de sistemas basado en el uso de energa solar

4.4.3.5. Subrutina de interrupcin del timer 1

Para gestionar la interrupcin del timer 1 se hace lo siguiente:

Se activa el bit TMR1IE del registro PIE1, que habilita la interrupcin del timer
1.

Se activa el bit PEIE del registro INTCON, que habilita las interrupciones de los
perifricos.

Se activa el bit GIE del registro INTCON, que habilita todas las interrupciones.

Al llegar el primer bit del cdigo se activa la cuenta del timer 1 mediante el bit
TMR1ON del registro T1CON.

En caso de producirse una transmisin incompleta, el timer 1 se desborda y


dispara su interrupcin. Se resetea su flag de interrupcin (TMR1IF) del
registro PIR1.

Se para registro de cuenta TMR1 (TMR1ON=0)

Se activa un bit de control definido para indicar el fallo de la transmisin.


Cuando se regresa de la interrupcin, la rutina de recepcin de cdigo, que
permaneca preguntando por la llegada de un bit y simultneamente por el bit
de fallo, regresa sin realizar ninguna accin.

SUBRUTINA INTERRUPCIN
TIMER 1

RESETEO FLAG DE INTERRUPCIN TIMER 1


APAGO TIMER 1
INHABILITO INTERRUPCIN TIMER 1
ACTIVO BIT DE FALLO

RETFIE

Fig. 4.32. Subrutina de interrupcin del timer 1

4.4.3.6. Rutina de control del nivel de intensidad de luz

83

Control inalmbrico de sistemas basado en el uso de energa solar

Una vez llega una transmisin vlida en el modo normal de funcionamiento se salta a
la rutina de LUMINOSIDAD. Esta rutina realiza las siguientes operaciones:

Se determina en primer lugar el nivel de luminosidad en el que se encuentra


el cuarto byte recibido, restando paulatinamente a los valores extremos de
cada nivel (80, 160 y 255) el valor guardado en la variable codigo_ADC.

Identificado el nivel de intensidad de luz deseado, debe indicrsele al


microcontrolador esclavo mediante las salidas GP0 y GP1, siguiendo la
combinacin adecuada segn la Tabla 4.4. Hecho esto, el microcontrolador
maestro espera la respuesta de confirmacin en su entrada GP4. Gracias a la
seal de confirmacin, ambos microcontroladores conocen en todo momento
el estado de la bombilla.

Tras esto, el microcontrolador esclavo enciende la bombilla y controla su nivel


de luz mientras el microcontrolador maestro permanece a la espera de que
llegue un cdigo vlido para apagarla.

Con la bombilla encendida, en caso de recibir una transmisin para apagarla,


los nicos bytes que importan son los tres primeros, ya que la nica accin
posible a partir de aqu es apagar la bombilla. Al gestionar el apagado de la
bombilla dentro de la rutina LUMINOSIDAD se evita el riesgo de asociar el
receptor a un nuevo emisor con la bombilla encendida. Tambin permite la
utilizacin de la entrada GP4 del microcontrolador maestro para dos
funciones distintas. No obstante, para evitar problemas se ha incluido un
botn de reset que reinicia el programa de los microcontroladores.

Si la bombilla est encendida, una nueva transmisin vlida hacia el mismo


receptor apagar ste, es decir, no se puede variar el nivel de luminosidad
posteriormente a tener la bombilla encendida con otro nivel.

84

Control inalmbrico de sistemas basado en el uso de energa solar

RUTINA LUMINOSIDAD

SI

RANGO 1

INDICO RANGO 1 AL

NO
GP4==1

MICROCONTROLADO

SI

NO
SI

RANGO 2

INDICO RANGO 2 AL

NO
GP4==1

MICROCONTROLADO

NO

SI

INDICO RANGO 3 AL
MICROCONTROLADO

NO

ACTIVO FLAG DE LUZ

SI

GP4==1

ENCENDIDA

PRECARGO TIMER 1

NO
RECIBO
CDIGOS

SI
RECEPCIN CDIGOS

SI

FALLO

NO
INDICO AL
MICROCONTROLADOR
ESCLAVO APAGAR LA

VOLVER A RUTINA
PRINCIPAL

SI

NO

85
GP4==0

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 4.33. Diagrama de flujo de la rutina de luminosidad.

4.4.3.7.

Rutina principal del microcontrolador esclavo

En su rutina principal, el microcontrolador esclavo se encarga de (Fig. 4.34):

Comprobar el nivel mediante el estado de sus patillas GP4 y GP5. En funcin


de ste, si la bombilla est apagada la encender, cargando un determinado
valor de cuenta en el registro TMR0 para generar la PWM que controla el
nivel de intensidad. Tambin indicar al microcontrolador maestro que ha
recibido el cdigo por medio de su salida GP0.

Cuando la bombilla est encendida y se detecta un paso por cero, el timer 0


comienza a contabilizar el tiempo a nivel bajo de la PWM (Tabla 4.5). Este
tiempo es el tiempo que permanece la bombilla apagada dentro del periodo
de 10 ms que dura la seal rectificada de red. Finalizado el tiempo a nivel
bajo, se activa la salida GP2 para encender la bombilla. Esta salida mantiene
activado el bloque de disparo hasta el siguiente paso por cero.
Simultneamente se pregunta en la rutina por el estado de las patillas GP4 y
GP5.

Si la bombilla est encendida y las patillas GP4 y GP5 se hacen 0 es debido a


que el microcontrolador maestro ha recibido una transmisin vlida para que
se apague la luz. En este caso, el microcontrolador esclavo apagar su salida
GP2 en el siguiente paso por cero.

86

Control inalmbrico de sistemas basado en el uso de energa solar

RUTINA PRINCIPAL
ESCLAVO
****
CONFIGURO REGISTROS E
INICIALIZO VARIABLES

SI

RANGO 1

CARGO VALOR DE CUENTA DE


RANGO 1 Y ENVO OK

*
NO
SI

RANGO 2

CARGO VALOR DE CUENTA DE


RANGO 2 Y ENVO OK

**
NO
NO

CARGO VALOR DE CUENTA DE

SI

RANGO 3

RANGO 3 Y ENVO OK

***

ACTIVO SALIDA DE
CONFIRMACIN (GP0)

NO
NO

PASO POR

APAGAR

CERO

LUZ

SI

SI
NO

APAGO SALIDA

PASO POR
CERO
RUTINA TIMER 0

APAGO SALIDA

ACTIVO SALIDA

APAGO SALIDA DE
CONFIRMACIN

**

***

EN FUNCIN DEL
RANGO

87
****

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 4.34. Rutina principal del microcontrolador esclavo (PIC12F508).

El PIC12F508 utilizado como microcontrolador esclavo tiene nicamente un timer de


8 bits (timer 0), de funcionamiento idntico al del PIC12F675, salvo que este
microcontrolador no produce interrupcin al desbordarse su timer. Debido a esto no se
pueden calcular precargas para los diferentes tiempos de cuenta y esperar la interrupcin.
En su lugar, se resetea el registro TMR0 y se pregunta cuando llega al valor deseado.
Con un prescaler 1:16 y 63 incrementos de TMR0 se consigue temporizar 1 ms:

63 cuentas 16 (prescaler) = 1008 s = 1 ms


A travs de una variable contador se consigue la cuenta de los milisegundos
requeridos segn el nivel (Tabla 4.5).
La eleccin del prescaler tiene dos objetivos:

Sirve para ajustar el tiempo de cuenta que queremos lograr.

Evitar fallos en el programa.

SUBRUTINA TIMER 0

RESETEO REGISTRO DE
CUENTA (TMR0)

CARGO TMR0 EN
ACUMULADOR

TMR0==63

SI

NO

NO

FIN
CUENTA

GP4 Y GP5
SI

==0
SI
VOLVER

88

NO

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 4.35. Rutina del timer 0 para el microcontrolador esclavo (PIC12F508).

Debido a que el timer 0 del PIC12F508 no puede producir interrupcin, y se


incrementa constantemente sin posibilidad de pararlo durante la ejecucin del programa,
puede ocurrir que con un valor de prescaler pequeo, el registro TMR0 se incremente
demasiado pronto, pasndose del valor al que queremos conseguir. Si, por ejemplo, se
escoge un prescaler 1:2, el registro TMR0 se incrementa cada dos ciclos de instruccin,
pudiendo rebasar fcilmente el valor de cuenta deseado (63d) antes de llegar a preguntar
si se ha alcanzado dicho valor. Esto es debido a que se necesitan ms de dos ciclos de
instruccin para preguntar por el valor. La rutina de temporizacin entra entonces en un
bucle infinito en la que nunca se alcanza el valor pretendido. El diseador debe, por tanto,
elegir un prescaler suficiente mente grande para evitar este problema.
4.4.4. Bloque de disparo.

El circuito de disparo (Fig. 4.36) dispone de un triac NXP BT137 como componente
principal para controlar la corriente por la bombilla. Este dispositivo es a su vez controlado
por un optotriac Sharp de la serie PC3SF11YVZ, que es a su vez controlado por el
microcontrolador esclavo (PIC12F508) del circuito de control. La principal misin del
optotriac es proporcionar aislamiento ptico entre el circuito de control (microcontrolador)
y el de potencia (triac).
BOMBILLA

OPTOTRIAC
2
nodo

A/K

H
L

GP2 (PIC12F508)

R2=20k
Ctodo

TRIAC

230Vac

NC
K/A
R1=20k

Fig. 4.36. Circuito de disparo del triac.

El triac funciona como un tiristor bidireccional con tres terminales. Esta caracterstica
le permite controlar el paso de corriente en ambos sentidos. El terminal de puerta (G) es el

89

Control inalmbrico de sistemas basado en el uso de energa solar

terminal utilizado para provocar el disparo. El triac puede dispararse por corriente de
puerta positiva o negativa (Fig. 4.37). El bloqueo se produce cuando la corriente baja por
debajo del nivel de corriente de mantenimiento (IH).

Fig. 4.37. Caracterstica esttica V-I del triac y cuadrantes de disparo del triac.

La corriente mxima en conduccin del triac BT137 es de 8 A. Teniendo en cuenta


que se ha utilizado una bombilla de 100 W, la corriente eficaz mxima por el triac sera de:

I f m x triac =

100 W
= 0, 435 A
230 V

Por otro lado, no debe sobrepasarse la corriente mxima de cebado del optotriac.
Esta corriente es de 0,1 A, por lo que debe elegirse una resistencia para limitarla (R1). En el
laboratorio se han realizado pruebas con diferentes valores, eligindose finalmente una
resistencia de 20 k. La intensidad eficaz de puerta en el peor caso (sin tener en cuenta la
tensin en conduccin del optotriac) ser:

IG, max =

Vred, max 325 V


=
= 16,25 mA
R1
20 k

Esta corriente es menor que la corriente eficaz mxima en conduccin (0,1 A) y


mayor que la corriente mnima de disparo (<10 mA).

4.5. Resultados experimentales generados.

En la Fig. 4.38 y Fig. 4.39 pueden verse respectivamente los prototipos de emisor y
receptor finalizados. Para el diseo del PCB se utiliz el programa gratuito DesignSpark de
la empresa RS Components. Este software permite montar el circuito a partir de las
extensas libreras de componentes que posee, y realizar un rutado automtico de las

90

Control inalmbrico de sistemas basado en el uso de energa solar

pistas. Adems permite obtener una vista en tres dimensiones del diseo realizado para
obtener una idea del resultado final.

Fig. 4.38. Imagen del prototipo emisor.

Fig. 4.39. Imagen del prototipo receptor.

Para simular los programas se utiliz el entorno de desarrollo MPLAB del fabricante
Microchip, as como el entorno de simulacin Proteus. Los programas fueron grabados con
el programador PICKit2 (Microchip). Un factor a tener en cuenta antes de la programacin
consiste en que estos microcontroladores guardan en su ltima direccin de memoria de
programa (1FFh para el PIC12F508 y 3FFh para el PIC12F675) el valor de calibracin de su
oscilador interno. Este valor (6 bits) viene grabado de fbrica y es necesario para ajustar la

91

Control inalmbrico de sistemas basado en el uso de energa solar

frecuencia a su valor exacto de 4 MHz. Antes de proceder a grabar el programa es


necesario proteger el cdigo, activando el bit CP (code protection bit) de la palabra de
configuracin mediante su correspondiente fusible en la cabecera del programa. De esta
forma, durante la grabacin se borra toda la memoria de programa menos la ltima
posicin. En caso contrario se borra toda la memoria, perdindose el valor de calibracin.
Como el software grabador lee primero el valor del oscilador antes de grabar el programa,
ste reportara un error del valor cargado en el registro OSCCAL y se abortara la grabacin.
Perder el valor de calibracin supone inutilidad del circuito integrado.
En la Fig. 4.40 puede verse en azul oscuro el pulso de alimentacin del
microcontrolador emisor en el momento de apretar uno de los botones asignados a
receptores. Esta seal indica el nivel de tensin del supercondensador durante la
transmisin (3.4V). Tambin se muestra el nivel de tensin ledo por el canal del conversor
analgico-digital en la patilla GP4 (azul claro) y el cdigo transmitido (morado). Como se
explic en anteriores apartados, los cdigos se leen al revs, siendo el bit ms significativo
de cada byte el que queda ms a la derecha. Para el ltimo byte transmitido (lectura del
conversor A/D) ser 00101001 (41d). Como es menor que 80d estaremos en el nivel 1
(50%) de luminosidad en caso de querer encender la bombilla. Los dos primeros bytes
(cdigo identificador del emisor) son 11111111 (FFh) y 11110000 (F0h) respectivamente. El
byte identificativo del receptor generado aleatoriamente durante el modo asociacin se
corresponde con 11111010 (FAh).
Uno de los problemas identificados ha sido el elevado tiempo necesario para que el
microcontrolador arranque. Como puede verse, desde la pulsacin del botn hasta el
comienzo de la transmisin transcurren casi 100 ms, lo que reduce la cantidad de energa
disponible y el nmero de transmisiones que se pueden realizar.
Para identificar el problema se ha programado un pulso al comienzo del programa
para descartar que sea un problema de programacin. As mismo se ha descartado la
influencia del condensador de desacoplo y los diodos de bloqueo. El problema radica en la
variacin mnima de tensin que permite el microcontrolador en su patilla de alimentacin
(0,05 V/ms) para asegurar una tensin estable en el arranque. En este caso, para una
tensin de 3,4 V se necesitara un tiempo mnimo de 68 ms. Esto es debido a que el circuito
de Power-on Reset mantiene al microcontrolador en estado de reset hasta que se alcanza
una tensin de alimentacin estable. Esto supone que el tiempo de arranque es unas tres
veces superior al requerido para realizar todo el proceso de gestin y transmisin. Este
problema, a diferencia del encoder del primer diseo, produce un consumo del circuito
que merma el nmero total de transmisiones que se pueden realizar.

92

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 4.40. Formas de onda para el sistema emisor (1).

Se consigui realizar 5 transmisiones satisfactorias a 1 m de distancia con el


supercondensador cargado a diferentes niveles de tensin. No se consigui transmitir a
ms distancia ni a travs de la fuente de laboratorio. No existe, por tanto, falta de potencia
en la transmisin. El problema se achaca a la configuracin de la antena y al diseo de la
PCB.
La Fig. 4.41 muestra en azul oscuro el pulso en la salida GP5 del microcontrolador
para activar la bomba de carga. La bomba de carga nicamente se activa antes de enviar
los cdigos para reducir el consumo. Previamente se espera a que la bomba de carga
alcance un valor estable de tensin a su salida. En azul claro y morado se muestran la
entrada y salida de la bomba de carga respectivamente. En este caso, la bomba de carga
funciona en modo elevador, aplicando escalones de tensin hasta alcanzar el valor
pretendido. Como puede verse, la tensin de salida se mantiene constante a 3,3 V con un
rizado menor que la tensin de alimentacin general gracias a un condensador de salida de
1 F. Los escalones en la tensin de entrada son provocados por la absorcin y entrega de
energa realizada por el condensador de la bomba de carga ente C+ y C- (CFLY), que produce
junto al condensador de salida (1 F) una larga cola de descarga una vez finaliza la
transmisin.

93

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 4.41. Formas de onda para el sistema emisor (2).

En la Fig. 4.42 puede verse la bomba de carga funcionando en modo reductor


(Vin=4,5 V). Como se ha dicho, la cola en la salida de la bomba de carga (morado) es debida
a la descarga de los condensadores cuando cesa la alimentacin.

Fig. 4.42. Formas de onda para el sistema emisor (3).

94

Control inalmbrico de sistemas basado en el uso de energa solar

Un valor grande del condensador de salida permite un menor rizado en la tensin (40
mVpp en este caso), teniendo el inconveniente de una mayor prdida por energa no
aprovechada durante transmisin (cola de descarga). Es por tanto un compromiso entre el
nivel de rizado que se necesita y la energa disponible.
La Fig. 4.43 muestra mejor la cada en la tensin de entrada (azul oscuro) al enviar
cada bit del cdigo. Tambin puede verse la inyeccin de corriente que demanda la bomba
de carga para obtener la tensin de salida y en la transmisin.

Fig. 4.43. Formas de onda para el sistema emisor (4).

En las tres figuras siguientes se muestran respectivamente los cdigos de recepcin y


las ondas PWM asociadas al valor del ltimo byte. Tambin se muestra la tensin en los
terminales del triac para cada PWM. La seal PWM de 50% (Fig. 4.44) se corresponde con
el cdigo 0d, la seal de 70% (Fig. 4.45) al cdigo 85d y el 100% (Fig. 4.46) al cdigo 209d.
En las seales PWM del 50% y del 70% se ha medido el valor de cuenta del
microcontrolador (5 ms y 3 ms respectivamente).
En la Fig. 4.46 puede observarse como el triac intenta apagarse cuando se producen
los pasos por cero de la seal de red. Se dispara el triac con corriente positiva en el
semiciclo positivo, y con corriente negativa en el semiciclo negativo. Se puede apreciar la
diferencia de sensibilidad en el disparo.

95

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 4.44. Formas de onda para el sistema receptor (1).

Fig. 4.45. Formas de onda para el sistema receptor (2).

96

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 4.46. Formas de onda para el sistema receptor (3).

En las Fig. 4.47 a Fig. 4.49 pueden verse las seales de control entre el
microcontrolador maestro y el esclavo para los distintos niveles de luminosidad. Las
seales de entrada al microcontrolador esclavo (GP4 y GP5) le indican la PWM a generar. El
microcontrolador esclavo mantendr su salida GP0 a nivel alto hasta la recepcin de otro
cdigo vlido.

Fig. 4.47. Formas de onda para el sistema receptor (4).

97

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 4.48. Formas de onda para el sistema receptor (5).

Fig. 4.49. Formas de onda para el sistema receptor (6).

En la Fig. 4.50 puede verse la seal PWM al 50% sincronizada con los pulsos de paso
por cero. Posteriormente a la recepcin del cdigo se espera el siguiente paso por cero
para temporizar, en este caso, 5 ms antes de activar la salida GP2.

98

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 4.50. Formas de onda para el sistema receptor (7).

En la Fig. 4.51 tambin se incluye un detalle de la corriente por la bombilla. Esta


corriente est en fase con la tensin dado el carcter resistivo de la carga.

Fig. 4.51. Formas de onda para el sistema receptor (8).

99

Control inalmbrico de sistemas basado en el uso de energa solar

Uno de los problemas encontrados durante las pruebas, que no ha podido


solucionarse, ha sido la aparicin de pulsos indeseados en la salida del mdulo receptor
durante el encendido de la bombilla. Tanto para la bombilla apagada como encendida, el
mdulo de radiofrecuencia es bastante sensible al ruido, observndose picos en su salida.
Con la bombilla encendida, estos picos son peridicos, produciendo en el microcontrolador
maestro un error continuado en la recepcin del cdigo. Esto provoca que ste no consiga
apagar la bombilla cuando recibe la orden de apagar la bombilla. Cuando la bombilla est
apagada no se producen estos picos peridicos, sino pequeos pulsos debidos al ruido
ambiental, que la programacin del microcontrolador ignora mediante la interrupcin del
timer 1. Como puede verse en la Fig. 4.52, con la bombilla encendida se obtiene un ruido
radiado de la misma frecuencia que la red.

Fig. 4.52. Formas de onda para el sistema receptor (9).

Para abordar este sistema habra que disear una nueva placa con un plano de masa
y un blindaje adecuado a las caractersticas de la aplicacin. Indicar que con posterioridad a
la fabricacin y prueba del prototipo se encontr un nuevo documento con las
especificaciones del plano de masa que debe rodear el mdulo receptor RF (Fig. 4.53).

100

Control inalmbrico de sistemas basado en el uso de energa solar

Fig. 4.53. Imagen del plano de masa especificado para el receptor.

Segn estas especificaciones, el condensador de desacoplo debe tener un valor


mnimo de 100 nF, conectado lo ms cerca posible de la alimentacin. La antena de ltigo
sugerida debe tener unos 16,5 cm de larga y aproximadamente 1 mm de dimetro. Su
fijacin debe hacerse adecuadamente, proponindose un radio de 50 mm para su conexin
a la placa y una impedancia de 50 entre la misma y la patilla de entrada al mdulo. Esto
es as debido a que la mayora de circuitos de radiofrecuencia se disean para impedancias
de salida de 50 . Esta lnea debe ser lo ms corta posible para reducir la inductancia. En el
lado opuesto de la placa bajo la lnea de 50 debe incluirse un plano de masa. Se debe
mantener el mdulo al menos 5 cm de otros componentes del circuito, particularmente de
microprocesadores y sus circuitos de reloj. No deben fijarse componentes cerca de la lnea
de 50 , manteniendo un mnimo de 5 cm de distancia. Tambin se aconseja mantener
unos 5 cm alrededor de la antena libre de componentes si la conexin de sta a la placa es
directa.

101

Control inalmbrico de sistemas basado en el uso de energa solar

102

Control inalmbrico de sistemas basado en el uso de energa solar

5. Conclusiones y trabajos futuros


5.1. Descripcin del trabajo realizado

Al comienzo de este documento se han presentado aplicaciones comerciales que


incorporan sistemas de recoleccin de energa renovable. Tomando estos sistemas como
fuente de inspiracin se han desarrollado dos aplicaciones diferentes basadas en
radiofrecuencia y alimentadas a partir de un pequeo panel solar.
El primero de los sistemas desarrollados se basa en la activacin inalmbrica con
radiofrecuencia del timbre de una puerta. Las especificaciones iniciales perseguan un
sistema completamente autnomo a partir de un sistema renovable que fuera capaz de
proporcionar un mnimo de transmisiones al da.
El segundo sistema desarrollado es un control inalmbrico de luminarias en una casa
o en un jardn tambin mediante radiofrecuencia. La aplicacin del sistema de luminarias
en un recinto cerrado est limitada por el tipo de placa solar que se utilice. En este caso se
ha empleado una placa de silicio monocristalino, pensada para condiciones de luz directa
(exteriores). La utilizacin ms acertada de esta aplicacin podra encontrarse en el control
de las luces exteriores de un recinto.

5.2. Principales conclusiones

Para la aplicacin de control de un timbre inalmbrico:

Se ha diseado y montado en protoboard los circuitos emisor y receptor del


sistema.

Se ha conseguido alimentar el circuito emisor a partir de un pequeo panel


solar de 6 cm x 6 cm, almacenando la energa en un supercondensador de 0,1
F. Esta energa ha sido acondicionada mediante el circuito de potencia
diseado.

Se ha conseguido realizar hasta 7 transmisiones a 10 metros a partir del


supercondensador cargado a 3,3 V durante 20 minutos desde el panel solar.

El nivel de iluminancia, medida con un luxmetro durante la carga, fue de


1780 lux.

El supercondensador de 0,1 F se mostr suficiente para proporcionar la


energa diaria necesaria.

Durante la obtencin de los resultados experimentales se han utilizado


antenas helicoidales de 15 cm para el emisor y de 50 cm para el receptor.

103

Control inalmbrico de sistemas basado en el uso de energa solar

Para la aplicacin del control inalmbrico de luminarias:

Se ha diseado y fabricado en circuito impreso los circuitos emisor y receptor


del sistema.

Se ha conseguido transmitir a partir de la energa almacenada en un


supercondensador de 0,1 F y acondicionada por el circuito de potencia
diseado. Dicha energa se ha obtenido de un pequeo panel solar de 6 cm x
6 cm.

Se ha conseguido implementar todas las funcionalidades deseadas en los


microcontroladores seleccionados, en concreto el encendido y apagado de
dos luminarias independientes y el control de su intensidad luminosa.

Se consiguieron realizar hasta 5 transmisiones vlidas a 1 metro de distancia


con las mismas condiciones de luz que con la primera aplicacin. En ambas
aplicaciones cabe destacar la gran sensibilidad al ruido del mdulo receptor
Aurel AC-RX2. Se ha conseguido, por tanto, el funcionamiento del circuito
emisor sin llegar a cumplir el nmero mnimo de transmisiones deseadas.

Durante la obtencin de los resultados experimentales se han utilizado


antenas helicoidales de 15 cm para el emisor y de 50 cm para el receptor.

5.3. Trabajos futuros

Con la primera aplicacin queda pendiente la construccin de un prototipo en


PCB. Se necesita modificar el diseo del circuito receptor para que funcione
con la red elctrica.

Se necesita mejorar la disposicin de la antena para conseguir mayores


distancias de transmisin y reducir la longitud de las mismas. A pesar de esto,
los resultados son satisfactorios para poder iniciar la construccin del
prototipo en PCB. Para un mayor nmero de transmisiones puede utilizarse
un supercondensador de valor superior.

Es necesario realizar en ambas aplicaciones las pruebas de funcionamiento en


exteriores. De esta forma se podr comprobar el comportamiento del
supercondensador frente a las variaciones de temperatura, prdidas de
energa, etc.

Para las pruebas en exteriores es necesario asegurar el aislamiento de los


componentes para evitar la oxidacin de los contactos y las pistas. As mismo

104

Control inalmbrico de sistemas basado en el uso de energa solar

es conveniente que el panel solar se encuentre separado fsicamente del PCB


para reducir el calor y la humedad en los componentes, dado que el panel se
orienta al exterior, y por tanto absorber buena parte del calor del sol en su
superficie.

En cuanto a la segunda aplicacin, uno de sus puntos dbiles es no permitir la


posibilidad de acceder a la informacin contenida en el emisor para poder
conocer el nmero de receptores asociados a ste. Se ha implementado as
dado el ahorro de energa conseguido y el reducido nmero de pines
disponibles del microcontrolador elegido. En caso de querer ampliar las
prestaciones del control de luminarias sera necesario elegir nuevos
microcontroladores.

Si se desea modificar el nivel de luz cuando la bombilla est ya encendida, es


necesario elegir un nuevo microcontrolador y disear una nueva estrategia de
control. As mismo, sera posible incluir ms niveles de luz.

Al igual que en la primera aplicacin, queda pendiente un estudio


pormenorizado del diseo de la antena para reducir su tamao sin perder
prestaciones en cuanto a distancia y efectividad en la transmisin.

Es necesario modificar el diseo emisor para conseguir una carga rpida del
microcontrolador, que evite perder ms de 30 ms desde la activacin del
pulsador hasta que se consigue la estabilizacin de la tensin de alimentacin.

Uno de los problemas ms notables de la segunda aplicacin es la produccin


de ruido radiado en la salida del mdulo de radiofrecuencia del circuito
receptor cuando la bombilla est encendida en los niveles del 50% y del 70%.
No as en el caso del 100%. Este ruido est relacionado con la conmutacin
del triac. Queda pendiente la eliminacin de este problema.

La falta de plano de masa rodeando el mdulo RF incrementa la influencia de


perturbaciones radiadas del circuito y externas. Este ruido produce pulsos
aleatorios de 5 V en la entrada del microcontrolador maestro, provocando
fallos en la recepcin. Hace falta, por tanto, modificar el diseo del PCB y la
disposicin de los componentes en l. Se ha de incluir un plano de masa
suficiente alrededor del mdulo RF y la antena que reduzca las impedancias
parsitas, siguiendo las indicaciones de la Fig. 4.53.

105

Control inalmbrico de sistemas basado en el uso de energa solar

106

Control inalmbrico de sistemas basado en el uso de energa solar

6. Presupuesto.

El presupuesto para ambos sistemas consta de dos partes: una para los componentes
utilizados en el diseo y otra para los servicios de ingeniera. sta ltima incluye los costes
del diseo, bsqueda de componentes, montaje y prueba de los circuitos.

6.1. Presupuesto sistema de timbre inalmbrico.

Componente
Panel solar
Pulsador
Diodo Schottky STM
STPS1L30U
Regulador MAX666
Encoder Holtek 6014
Transmisor RF Aurel
Antena RF 433 MHz
Soporte antenna RF
Otros*
PRECIO BASE
IVA (18%)
TOTAL

PRESUPUESTO COMPONENTES (EMISOR)


Precio/ud ()
Cantidad
5
1
1
3
0,3
1
4,66
1,69
6,17
5,29
1,21

1
1
1
1
1

Precio total ()
5
3
0,30
4,66
1,69
6,17
5,29
1,21
2
24,85
4,47
29,32

* precio estimado

Tabla 6.1. Presupuesto para los componentes del circuito emisor.

Componente
Decoder Holtek 6034
Microcontrolador PIC
12F508
Mdulo receptor
Aurel AC-RX2
Antena RF 433 MHz
Soporte antena RF
SOLUTIONS SCRTM4RA
Fototriac Sharp
pc3sf11yvz
Triac NXP BT137
Otros*
PRECIO BASE
IVA (18%)

PRESUPUESTO COMPONENTES (RECEPTOR)


Precio/ud ()
Cantidad
1,73
1
0,73
1

Precio total ()
1,73
0,73

5,05

5,05

5,29
1,21

5,29
1,21

1,22

1,22

0,6

0,60
3
15,96
2,87

107

Control inalmbrico de sistemas basado en el uso de energa solar

TOTAL

18,83

* precio estimado

Tabla 6.2. Presupuesto para los componentes del circuito receptor.

El precio del panel solar se ha estimado al existir una oferta muy variada. Tambin se
ha estimado el precio de componentes generales, como resistencias y condensadores.
PRESUPUESTO INGENIERA
Precio hora trabajada (/h)
Nmero de horas (8 h/da,
5 das laborables/semana, 2 meses)
PRECIO BASE
IVA (18%)
TOTAL

40
320
12800
2304
15104

Tabla 6.3. Presupuesto del servicio de ingeniera.

PRESUPUESTO TIMBRE INALMBRICO


Componentes del sistema emisor
Componentes del sistema receptor
Ingeniera
PRECIO BASE
IVA (18%)
TOTAL

24,85
15,96
12800
12840,81
2311,34
15152,15

Tabla 6.4. Presupuesto final del sistema del timbre inalmbrico.

6.2. Presupuesto sistema de control inalmbrico de luminarias.

Componente
Panel solar
Pulsador
Microcontrolador
PIC12F675
Diodo Schottky STM
STPS1L30U
Condensador SD,0.1F
5.5V vertical
Bomba de carga
MCP1252-33X50I/MS

PRESUPUESTO COMPONENTES (EMISOR)


Precio/ud ()
Cantidad
5
1
1
3
1,58
1

Precio total ()
5
3
1,58

0,30

1,20

1,79

1,79

1,662

1,662

108

Control inalmbrico de sistemas basado en el uso de energa solar

Potencimetro 1K
Transmisor RF Aurel
Antena RF 433 MHz
Soporte antena RF
SOLUTIONS
Otros*
PRECIO BASE
IVA (18%)
TOTAL

2,12
6,17
5,29
1,21

1
1
1
1

2,12
6,17
5,29
1,21
2
26,27
4,73
31

* precio estimado

Tabla 6.5. Presupuesto para los componentes del circuito emisor.

Componente
Pulsador
Fusible 0.5 A
Portafusible
Microcontrolador PIC
12F508
Microcontrolador
PIC12F675
Diodo Schottky STM
STPS1L30U
AC/DC Converter NonIsol. 12V 100mA
Diodo
Optoacoplador Vishay
4n37
Mdulo receptor
Aurel AC-RX2
Antena RF 433 MHz
Soporte antena RF
SCRTM4RA
Fototriac Sharp
pc3sf11yvz
Triac NXP BT137
Diodo LED
Otros*
PRECIO BASE
IVA (18%)
TOTAL

PRESUPUESTO COMPONENTES (RECEPTOR)


Precio/ud ()
Cantidad
1
2
0,4
1
1,2
1
0,73
1

Precio total ()
2
0,4
1,2
0,73

1,58

1,58

0,30

0,30

5,89

5,89

1,7
0,37

4
1

6,8
0,37

5,05

5,05

5,29
1,21

5,29
1,21

1,22

1,22

0,6
0,5

1
2

0,6
1
3
31,36
5,64
37

* precio estimado

Tabla 6.6. Presupuesto para los componentes del circuito receptor.

109

Control inalmbrico de sistemas basado en el uso de energa solar

PRESUPUESTO INGENIERA
Precio hora trabajada (/h)
Nmero de horas (8 h/da,
5 das laborables/semana, 4 meses)
PRECIO BASE
IVA (18%)
TOTAL

40
640
25600
4608
30208

Tabla 6.7. Presupuesto del servicio de ingeniera.

PRESUPUESTO CONTROL LUMINARIAS


Componentes del sistema emisor
Componentes del sistema receptor
Ingeniera
PRECIO BASE
IVA (18%)
TOTAL

26,27
31,36
25600
25657,63
4618,37
30276

Tabla 6.8. Presupuesto final del sistema inalmbrico de luminarias.

110

Control inalmbrico de sistemas basado en el uso de energa solar

7. Referencias.

[1]

Proyecto fin de carrera Estado de la Tcnica en Microgeneracin. Oliver Garrido, Andrs


Barrado. Universidad Carlos III de Madrid.

[2]

[3]

White Paper: Energy Harvesting. ULP meets energy harvesting: A game-changing


combination for design engineers. Murugavel Raju, MCU Strategic Marketing, Texas
Instruments.
ECO200 energy harvester EnOcean datasheet.

[4]

Pgina oficial de la empresa FerroSolutions: http://www.ferrosi.com/products.html

[5]

Low-cost ultra-low-voltage DC/DC converter for powering battery-less EnOcean radio


modules by thermal energy (ECT310 Perpetuum).

[6]

Energy Scavenging for Mobile and Wireless Electronics. Joseph A. Paradiso. MIT. Thad
Starner. Georgia Institute of Technology.

[7]

ECS310 solar cell datasheet.

[8]

Pgina de modelos GPS alimentados con energa solar de la empresa Telemetry Solutions:
http://www.telemetrysolutions.com/solar-power.php.

[9]

Millimeter-Scale Nearly Perpetual Sensor System with Stacked Battery and Solar Cells.
Gregory Chen, Matthew Fojtik, DaeyeonKim, David Fick, JunsunPark, MingooSeok, MaoTerChen, ZhiyoongFoo, Dennis Sylvester, David Blaauw. Electrical Engineering & Computer
Science Department. The University of Michigan, Ann Arbor.

[10]

Noticiario de la Universidad de Michigan: http://ns.umich.edu/new/releases/7520

[11]

Pgina de Texas Instruments dedicada a su herramienta de desarrollo para recoleccin de


energa solar: http://www.ti.com/tool/ez430-rf2500-seh

[12]

Pgina de la empresa Electrobock:


doorbell/product.html?id=189

111

http://www.elektrobock.cz/en/solar-wireless-

Control inalmbrico de sistemas basado en el uso de energa solar

112

Control inalmbrico de sistemas basado en el uso de energa solar

Anexos.
Anexo 1: Esquemas elctricos y lista de componentes.
APLICACIN 1: EMISOR

113

Control inalmbrico de sistemas basado en el uso de energa solar

APLICACIN 1: RECEPTOR

114

Control inalmbrico de sistemas basado en el uso de energa solar

LISTA DE COMPONENTES UTILIZADOS (EMISOR)


PANEL SOLAR 6 X 6 cm
DIODO SCHOTTKY Vishay 10BQ015TRPBF
SUPERCONDENSADOR 0,1 F/5,5 V
PULSADOR Multimec 3FTL6
CONDENSADOR 10 F,25 V X 3
CONDENSADOR SMD 10 F, 10 V
RESISTENCIA 50 , W
RESISTENCIA 1k5 , W
RESISTENCIA 1k, W
RESISTENCIA 820 k, W
REGULADOR LINEAL MAX666
ENCODER Holtek HT6014
MDULO TRANSMISOR Aurel T-SAW MID 3V
ANTENA HELICOIDAL 15 cm
LISTA DE COMPONENTES UTILIZADOS (RECEPTOR)
MDULO RECEPTOR Aurel AC-RX3
DECODER Holtek HT6034
MICROCONTROLADOR Microchip PIC12F508
OPTOTRIAC Sharp S2S5
TRIAC Philips BT137
CONDENSADOR 100 nF, 10 V
CONDENSADOR 10 F, 25 V X 2
RESISTENCIA 750 , W x 2
RESISTENCIA 1 k, W x 2
RESISTENCIA 62 k, W
ALTAVOZ 16 /2 W
ANTENA HELICOIDAL 50 cm

115

Control inalmbrico de sistemas basado en el uso de energa solar

APLICACIN 2: EMISOR

116

Control inalmbrico de sistemas basado en el uso de energa solar

APLICACIN 2: RECEPTOR

10

BP5041A1

Vin

GND

Fusible 0.5 A

1 2

L78L05

Vcc

Vout

10
V+
220u

0.1u/400V

33u

10u/450V
FREQ = 50
VAMPL = 311

GND

V-

Vcc
100k
V+

4N37

1k

GP1 (PIC12F508)

V-

BOMBILLA

OPTOTRIAC

nodo

A/K

H
L

GP2 (PIC12F508)

20k
Ctodo

TRIAC

NC
K/A
20k

117

230Vac

GND

Vdd

RECEPTOR RF AC-RX4

Vcc

OUT

DATOS

220n

GND

IN

Vcc

ANTENA

118
in out

1k

BOTN ASOCIACIN

RANGORECIBIDO(OUT)

Vdd

LED ASOCIAR

2.7k

220n

Vdd
Vdd

GP2

GP3

10k

GP1

GP0

GP5
GP4

Vss

Vdd

PIC12F675

2.7k

GND

56k

TP

GND
in out

BOTN RESET

DATOS

56k

bit de rango 1

bit de rango 0

LED POWER

Vdd

GP3

GP4

GP5

Vdd

GP2

GP1

GP0

Vss

PIC12F508

220n

56k

41

GND

OPTOTRIAC (OUT)

PASOS POR CERO(IN)

RANGORECIBIDO(OUT)

Control inalmbrico de sistemas basado en el uso de energa solar

Control inalmbrico de sistemas basado en el uso de energa solar

LISTA DE COMPONENTES UTILIZADOS (EMISOR)


PANEL SOLAR 6 X 6 cm
DIODO SCHOTTKY ST G23Z008 x 4
SUPERCONDENSADOR 0,1 F/5,5 V
PULSADOR Multimec 3FTL6 x 3
CONDENSADOR 4,7 F, 25 V X 3
CONDENSADOR SMD 1 F, 10 V
CONDENSADOR 1 F, 25 V
RESISTENCIA 4,7 k, W x 2
RESISTENCIA 47 k, W
POTENCIMETRO 1k, 500 mW
RESISTENCIA 1k, W
BOMBA DE CARGA Microchip MCP1252
MICROCONTROLADOR Microchip PIC12F675
MDULO TRANSMISOR Aurel T-SAW MID 3V
ANTENA HELICOIDAL 15 cm
LISTA DE COMPONENTES UTILIZADOS (RECEPTOR)
DIODO RECTIFICADOR ST STTAB12D x 5
DIODO SCHOTTKY ST G23Z008
SUPERCONDENSADOR 0,1 F/5,5 V
CONDENSADOR 10 F/450 V
CONDENSADOR 0,1 F/400 V
CONDENSADOR 220 F, 63 V
CONDENSADOR 33 F, 25 V
CONDENSADOR 220 nF, 25 V x 2
RESISTENCIA 10 , W
RESISTENCIA 1 k, W x 2
RESISTENCIA 20 k, W x 2
RESISTENCIA 27 k, W
RESISTENCIA 10 k, W
RESISTENCIA 41 , W
RESISTENCIA 2,7 k, W
MICROCONTROLADOR Microchip PIC12F675
MICROCONTROLADOR Microchip PIC12F508
PULSADOR Multimec 3FTL6 x 2
FUSIBLE 0,5 A
PORTAFUSIBLES Schurter 20 x 5 mm
MDULO RECEPTOR Aurel AC-RX4
ANTENA HELICOIDAL 50 cm
REGULADOR L78L05
CONVERTIDOR CC-CC Rohm BP5041A1
OPTOTRIAC Sharp PC3SF11YVZ
OPTOACOPLADOR Vishay 4N37
TRIAC Philips BT137
LED x 2 Vishay TLDR4400
BOMBILLA 230 V, 100 W

119

Control inalmbrico de sistemas basado en el uso de energa solar

120

Control inalmbrico de sistemas basado en el uso de energa solar

Anexo 2: Programa receptor (control del timbre).


list

p=12F508

; list directive to define processor

#include <p12F508.inc>

; processor specific variable definitions

__CONFIG _MCLRE_OFF & _CP_ON & _WDT_OFF & _IntRC_OSC


; Defino variables
CBLOCK 0x07
contador

; Variable para contar 2,5 segundos

ENDC
;**********************************************************************
ORG

0x1FF

ORG

0x000

; Vector de reset

movwf OSCCAL
; Comienzo del programa
start
movlw b'111101'

; Todo entradas menos GP1.

tris GPIO
movlw

b'11010111'

; Preescaler 1:256 para el TMR0

option
movlw 0x27

; Cuento 39 veces 64ms = 2500 ms = 2,5 s

movwf contador
bcf GPIO,1

; Apago el timbre.

salto
btfss GPIO,4

; Se ha pulsado la tecla del pulsador?.

goto salto
bsf GPIO,1

; Enciendo el timbre.

call espera
; Realizo la temporizacin
bcf GPIO,1

; Apago el timbre.

final
btfsc GPIO,4
goto final
goto salto
; Rutina del timer 0
espera
clrf TMR0

; Inicio timer 0

salto1
movf TMR0,w
xorlw .250
btfss STATUS,Z
goto salto1
decfsz contador,1

; Cuento 250x256=64 ms 39 veces hasta que contador=0

goto espera
movlw 0x27

; Recargo contador antes de volver

movwf contador
retlw 0x00
END

121

Control inalmbrico de sistemas basado en el uso de energa solar

122

Control inalmbrico de sistemas basado en el uso de energa solar

Anexo 3: Programa emisor (control de luminarias).


list

p=12F675

; list directive to define processor

#include <p12F675.inc>
errorlevel -302

; processor specific variable definitions

; suppress message 302 from list file

__CONFIG _CP_ON & _CPD_OFF & _BODEN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT
; Declaracin de variables a partir de la 0x20
CBLOCK 0x20
n_disp

; Nmero de dispositivos asociados (max 2).*************************** GUARDAR EN EEPROM

codigo_ID1

; Contienen el codigo identificador del emisor (16 bits).

codigo_ID2
codigo_rec1

; Contiene el cdigo del receptor1 (8 bits).**************************** GUARDAR EN EEPROM

codigo_rec2

; Contiene el cdigo del receptor2 (8 bits).****************************GUARDAR EN EEPROM

codigo_ADC

; Guardo el cdigo del ADC

semilla

; Semilla para generar el cdigo aleatorio.**************************** GUARDAR EN EEPROM

codigo

; Variable para ir cargando los cdigos a transmitir.

codigo_rec ; Variable para cargar el codigo receptor a enviar.


addr

; Se cargan las direcciones de memoria de las variables a guardar en EEPROM.

bits

; bits.0=0 -> No enviamos cdigo porque no hay receptores asociados.


; bits.2=1 -> Terminamos de enviar el cuarto cdigo en modo programacin
; bits.4=1 -> Enviamos el segundo identificador del emisor.
; bits.7=1 -> Al terminar de emitir el cdigo del receptor.
; bits.5 -> bit de programacin.
; bits.6=1 -> codigo_ADC enviado.

bits_wait

; Bit de espera (solo bit 0)

semilla_copia

; Variable para comparar semilla con su valor anterior

ENDC
;******************************************************************************************
ORG

0x000

goto start
ORG

0x004

; processor reset vector


; go to beginning of program
; Vector de interrupcin.

call interrupt
RETFIE
;******************************************************************************************
;*********************************COMIENZO DEL PROGRAMA**********************************
;******************************************************************************************
; Leo el valor de calibracin del oscilador interno (direccin 0x3FF)
start
bsf

STATUS,RP0

call 0x3FF
movwf OSCCAL

; set file register bank to 1


; retrieve factory calibration value
; update register with factory cal value

;******************************************************************************************
; CONFIGURACIN DE REGISTROS

123

Control inalmbrico de sistemas basado en el uso de energa solar

banksel GPIO
clrf GPIO

; Inicializo GPIO.

banksel ANSEL
movlw 0x38

; Valor 111000 (GP4 como entrada analgica y reloj derivado del oscilador interno a 500 kHz).

movwf ANSEL
banksel CMCON
movlw 0x07

; Comparador deshabilitado.

movwf CMCON
movlw 0x0C

; Valor 00001100 (A/D justificado a la izquierda, Vref=Vdd, Canal 3 para lectura ADC (AN3)).

movwf ADCON0

; NO OLVIDAR PONER ADON=0 una vez realizada la conversin (alimentacin del mdulo ADC).

banksel TRISIO
movlw 1Eh ; Valor del puerto 011110.
; GP0: salida digital para enviar los cdigos.
; GP1: entrada digital para el pulsador de programacin.
; GP2: entrada digital para el pulsador del receptor 1.
; GP3: entrada digital para el pulsador del receptor 2.
; GP4: entrada analgica para la toma del dato del A/D (AN3).
; GP5: salida de activacin de la bomba de carga.
movwf TRISIO
movlw 0xC0
movwf INTCON
bcf GPIO,0

; Salida de envo de cdigos a 0.

movlw 0x02

; Prescaler 1:8 asignado a Timer 0.

OPTION
banksel GPIO
;******************************************************************************************
; INICIALIZACIN DE VALORES
valores
movlw 0xFF ; Cargo los valores de codigo_ID1 y de codigo_ID2 (valores fijos).
movwf codigo_ID1
movlw 0xF0
movwf codigo_ID2
clrf bits

; Inicializo los bits de control.

bcf GPIO,5

; Transmisor deshabilitado.

bcf bits_wait,0

; Inicializo bit de espera

;******************************************************************************************
cargar_EEPROM
; Primero cargo el nmero de dispositivos (n_disp) para ver si tengo que realizar todo el ciclo.
movlw 0x00

; Leo 'n_disp' de la direccin 0 de la EEPROM.

movwf addr
call leer_EEPROM
movwf n_disp
; Comprobacin del nmero de dispositivos asociados.
movf n_disp,0

124

Control inalmbrico de sistemas basado en el uso de energa solar

xorlw 0xFF

; El valor original de fbrica en la EEPROM es FFh.

btfss STATUS,Z

; Pregunto si es la primera vez que asocio al emisor un receptor.

goto bucle

; NO

clrf n_disp

; Primera vez -> n_disp = 0

;******************************************************************************************
; PREGUNTO POR LOS PULSADORES
bucle
btfss GPIO,1

; Pregunto por el pulsador de asociacin.

goto bucle_1
goto programacin

; Asociamos un nuevo receptor.

bucle_1
btfss GPIO,2

; Pregunto por el pulsador 1 (receptor 1).

goto bucle_2
goto pulsador_1
bucle_2
btfss GPIO,3

; Pregunto por el pulsador 2 (receptor 2).

goto bucle
goto pulsador_2
;******************************************************************************************
; PULSADOR_1 ACTIVADO
; Camino del pulsador_1.
; Pregunto por el valor de n_disp.
pulsador_1
movf n_disp,0
xorlw 0x02
btfss STATUS,Z
goto n_disp_11
bcf STATUS,Z
transmision
; Leo de la EEPROM el byte del receptor_1.
bsf GPIO,5

; Transmisor RF habilitado.

call espera

; Espera de 512 us para estabilizacin de la bomba de carga.

call wait_for_T0
call espera
call wait_for_T0
movlw 0x01

; Leo'codigo_rec1' de la EPROM.

movwf addr
call leer_EEPROM
movwf codigo_rec

; Guardo en la variable 'codigo_rec' el valor del cdigo receptor

call conversion

; Realizo la conversin del ADC

goto seguir_22

; Realizo la transmisin de los cdigos

; n_disp no es = 2, pero puede ser = 1


n_disp_11
movf n_disp,0
xorlw 0x01
btfss STATUS,Z
goto DORMIR

; No hay dispositivos aadidos -> Desconecto el microcontrolador.

bcf STATUS,Z
goto transmision

125

Control inalmbrico de sistemas basado en el uso de energa solar

;******************************************************************************************
; PULSADOR_2 ACTIVADO
; Camino del pulsador_2.
; Pregunto por el valor de n_disp.
pulsador_2
movf n_disp,0
xorlw 0x02
btfss STATUS,Z
goto DORMIR

; No hay dispositivos aadidos -> Desconecto el microcontrolador.

bcf STATUS,Z
bsf GPIO,5

; Transmisor habilitado.

call espera

; Espera de 512 us para dar tiempo a la bomba de carga a iniciarse

call wait_for_T0
call espera
call wait_for_T0
; Leo de la EEPROM el valor del receptor_2.
movlw 0x02 ; Leo'codigo_rec2' de la EPROM.
movwf addr
call leer_EEPROM
movwf codigo_rec
; Realizo conversin del ADC
call conversion

; Conversin AD.

;******************************************************************************************
; CARGA DEL CDIGO A ENVIAR
seguir_22
movf codigo_ID1,0

; Cargo el primer identificador en la variable cdigo.

movwf codigo
bsf bits,4
goto enviar_COD

; Envo el byte.

seguir_222
movf codigo_ID2,0

; Cargo el segundo identificador en la variable cdigo.

movwf codigo
goto enviar_COD

; Envo el byte.

seguir_333
movf codigo_rec,0

; Cargo el cdigo receptor en la variable cdigo.

movwf codigo
bsf bits,7
btfss bits,5

; Modo programacin?.

goto send
bsf bits,2

; SI

send
goto enviar_COD

; Envo el byte.

seguir_444
movf codigo_ADC,0

; Cargo el cdigo del ADC en la variable cdigo.

movwf codigo
bsf bits,6
goto enviar_COD

; Envo el byte.

;******************************************************************************************

126

Control inalmbrico de sistemas basado en el uso de energa solar

; PULSADOR_PROGRAMACION ON
programacion
bsf bits,5

; Activo bit de programacin.

movf n_disp,0
xorlw 0x02
btfss STATUS,Z

; Si n_disp=2 -> Reseteo n_disp.

goto pos

; Sino aado 1 a n_disp.

; Reseteo los cdigos existentes en EEPROM (los 2 receptores).


bcf STATUS,Z
clrf n_disp
bsf STATUS, RP0

; Banco 1 (para escribir en EEADR y EEDATA).

movf n_disp,w
movwf EEDATA

; Dato que quiero escribir

movlw 0x00 ; Guardo en EEPROM n_disp


movwf EEADR

; Direccin donde quiero escribir.

call escribir_EEPROM
goto DORMIR
;*********************************************************************
pos
; Cargo la variable semilla.
movlw 0x03 ; Leo 'semilla' de la EEPROM.
movwf addr
call leer_EEPROM
movwf semilla
movwf semilla_copia
; Pregunto si el nmero de dispositivos es 1.
movf n_disp,0
xorlw 0x01
btfss STATUS,Z
goto sem_2
; Genero cdigo aleatorio (cdigo del nuevo receptor).
; En funcin de si n_disp es 0 1 se entrar en una parte o en otra.
sem_1

; n_disp=1.

movlw 0x05
addwf semilla,1
swapf semilla,1
rlf semilla,1
sem_2

; n_disp=0.

rlf semilla,1
rlf semilla,1
movlw 0x02
addwf semilla,1
rrf semilla,1
rrf semilla,1
rrf semilla,1
rrf semilla,1
swapf semilla,1
; Verifico si coincide con el anterior valor de semilla.
movf semilla,0
xorwf semilla_copia,0
btfss STATUS,Z
goto sigo
bcf STATUS,Z

127

Control inalmbrico de sistemas basado en el uso de energa solar

clrf semilla
; Fin de generacin del nuevo identificador aleatorio.
sigo
movf semilla,0

; Preparo el nuevo cdigo de receptor para enviarlo.

movwf codigo_rec
; Pregunto qu nmero de dispositivo ha sido el ltimo en aadirse.
pos_22
movf n_disp,0
xorlw 0x00
btfss STATUS,Z
goto dos
; Se aade el primer dispositivo.
uno
bsf STATUS, RP0

; Banco 1 (para escribir en EEADR y EEDATA).

movf semilla,w
movwf EEDATA

; Dato que quiero escribir.

movlw 0x01 ; Guardo en EEPROM codigo_rec1.


movwf EEADR

; Direccin donde quiero escribir.

call escribir_EEPROM
goto save
; Se aade el segundo dispositivo.
dos
bsf STATUS, RP0

; Banco 1 (para escribir en EEADR y EEDATA).

movf semilla,w
movwf EEDATA

; Dato que quiero escribir.

movlw 0x02 ; Guardo en EEPROM codigo_rec2.


movwf EEADR

; Direccin que queremos leer.

call escribir_EEPROM
; Guardar semilla y n_disp.
save
bsf GPIO,5

; Transmisor habilitado.

bsf STATUS, RP0

; Banco 1 (para escribir en EEADR y EEDATA).

movf semilla,w
movwf EEDATA

; Dato que quiero escribir.

movlw 0x03 ; Guardo semilla.


movwf EEADR

; Direccin que queremos leer.

call escribir_EEPROM
incf n_disp

; Incremento el nmero de dispositivos.

bsf STATUS, RP0

; Banco 1 (para escribir en EEADR y EEDATA).

movf n_disp,w
movwf EEDATA

; Dato que quiero escribir.

movlw 0x00

; Guardo n_disp.

movwf EEADR

; Direccin que queremos leer.

call escribir_EEPROM
goto seguir_22

; Envo el cdigo.

prog_end
clrf bits
fin_prog
goto DORMIR

; Finalizo.

;******************************************************************************************
; CONTROL DE LA SECUENCIA DE ENVO DE LOS CDIGOS
saltito

128

Control inalmbrico de sistemas basado en el uso de energa solar

call espera

; Espera de 512 us entre cdigo y cdigo.

call wait_for_T0
call espera
call wait_for_T0
; Compruebo el cdigo a enviar
regreso_1
btfss bits,4

; Enviamos el segundo identificador del emisor o no?.

goto jumpy ; NO.


bcf bits,4

; SI.

goto seguir_222
jumpy
btfss bits,7

; bits.7=1 -> hemos acabado de enviar el cdigo entero.

goto seguir_333

; Envo el cdigo del receptor.

jumpy1
btfss bits,5

; Si bits.5=1 -> MODO PROGRAMACIN -> No envo cdigo del ADC.

goto cod_ADC
btfss bits,2
goto prog_end

; SI -> Vuelvo a la rutina de programacin para guardar los valores en EEPROM.

bcf bits,2
movlw 0xFF
movwf codigo
goto enviar_COD
cod_ADC
btfss bits,6

; codigo_ADC enviado?.

goto seguir_444

; NO -> Envo el valor del A/D.

regreso
clrf bits

; Inicializo los bits de control.

goto DORMIR

; Finalizo transmisin.

;******************************************************************************************
; ENVO DEL CDIGO DE 8 BITS
enviar_COD
; Comienzo envo cdigo
btfss codigo,0

; Bit 0

goto no
call salida_si
goto sig0
no
call salida_no
sig0
btfss codigo,1

; Bit 1

goto no1
call salida_si
goto sig1
no1
call salida_no
sig1
btfss codigo,2

; Bit 2

goto no2
call salida_si
goto sig2

129

Control inalmbrico de sistemas basado en el uso de energa solar

no2
call salida_no
sig2
btfss codigo,3

; Bit 3

goto no3
call salida_si
goto sig3
no3
call salida_no
sig3
btfss codigo,4

; Bit 4

goto no4
call salida_si
goto sig4
no4
call salida_no
sig4
btfss codigo,5

; Bit 5

goto no5
call salida_si
goto sig5
no5
call salida_no
sig5
btfss codigo,6

; Bit 6

goto no6
call salida_si
goto sig6
no6
call salida_no
sig6
btfss codigo,7

; Bit 7

goto no7
call salida_si
goto sig7
no7
call salida_no
sig7
bcf GPIO,0

; Fin de transmisin

goto saltito
;******************************************************************************************
; FIN DEL PROGRAMA
DORMIR
bcf GPIO,5

; Transmisor RF desconectado.

sleep

; Desconectamos el microcontrolador para conseguir el menor consumo posible

FINAL
goto FINAL

130

Control inalmbrico de sistemas basado en el uso de energa solar

;**********************************************************************************
;**********************************SUBRUTINAS**************************************
;**********************************************************************************
; CONVERSIN DEL ADC
conversion
banksel ADCON0
bsf ADCON0,0

; ADON=1 -> Alimento circuitera del ADC.

nop
nop
nop
conv_AD
bsf ADCON0,1

; GO/DONE=1 -> Inicio conversin.

conv_fin
btfsc ADCON0,1
goto conv_fin
movf ADRESH,w
movwf codigo_ADC

; Guardo el valor ledo por el ADC.

bcf ADCON0,0

; Apago ADON para que no consuma corriente.

return
;**********************************************************************************
; SUBRUTINAS DE CONTROL DE LOS BITS
salida_si
bsf GPIO,0

; Bit 0=1.

call espera

; Pulso de 256 us.

call wait_for_T0
bcf GPIO,0
call espera
call wait_for_T0
return
salida_no
bsf GPIO,0

; Bit 0=0.

call espera

; Pulso de 512 us (2x256).

call wait_for_T0
call espera
call wait_for_T0
bcf GPIO,0
call espera
call wait_for_T0
return
;**********************************************************************************
; SUBRUTINA DE LECTURA DE LA EEPROM
leer_EEPROM
bsf STATUS,RP0

; Banco 1.

movf addr,w
movwf EEADR

; Direccin que queremos leer.

bsf EECON1,RD

; Bit de lectura a 1.

movf EEDATA,W

; Movemos el dato al acumulador.

bcf STATUS,RP0

; Banco 0.

return
;**********************************************************************************

131

Control inalmbrico de sistemas basado en el uso de energa solar

; SUBRUTINA DE ESCRITURA EN LA EEPROM


escribir_EEPROM
bsf STATUS,RP0

; Banco 1.

bsf EECON1,WREN

; Permito escritura.

bcf INTCON,GIE
movlw 55h

;Deshabilito interrupciones.
; Desbloquear escritura.

movwf EECON2 ;
movlw 0xAA ;
movwf EECON2 ;
bsf EECON1,WR

; Comienzo escritura.

wait_EEPROM
btfsc EECON1,WR
goto wait_EEPROM
bsf INTCON,GIE

; Habilito interrupciones.

bcf STATUS,RP0

; Banco 0.

return
;**********************************************************************************
; SUBRUTINA DE HABILITACIN DE INTERRUPCIN Y PRECARGA DE TIMER 0
espera
; Habilito interrupcin de timer 0
bcf INTCON,T0IF

; Reseteo bit de interrupcin

bsf INTCON,T0IE

; Habilito interrupcin timer_0

bsf INTCON,GIE

; Habilito interrupciones

; Cargo valor de cuenta


movlw 0xDF

; Realizo 32 cuentas -> 32 x 8(prescaler)=256 us para un bit 1

movwf TMR0
return
;**********************************************************************************
; SUBRUTINA DE CONTROL DE INTERRUPCIN DE TIMER 0
interrupt
; Pregunto por bit de interrupcin de timer 0
btfss INTCON,T0IF

; Interrupcin de timer_0?

goto volver
bcf INTCON,T0IF

; Reseteo bit de interrupcin de timer 0

bcf INTCON,T0IE

; Inhabilito interrupcin timer_0

bsf bits_wait,0

; Activo bit de espera

volver
return
;**********************************************************************************
; SUBRUTINA DE ESPERA DE INTERRUPCIN DE TIMER 0
wait_for_T0
btfss bits_wait,0
goto wait_for_T0
bcf bits_wait,0
return
END

132

Control inalmbrico de sistemas basado en el uso de energa solar

Anexo 4: Programa microcontrolador maestro (control de luminarias).

list

p=12F675

; list directive to define processor

#include <p12F675.inc>
errorlevel -302

; processor specific variable definitions

; suppress message 302 from list file

__CONFIG _CP_ON & _CPD_OFF & _BODEN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT
; Declaracin de variables a partir de la 0x20
CBLOCK 0x20
dispositivo ; Variable para saber si ya est asignado a un emisor.
codigo

; Variable para ir recogiendo los cdigos recibidos.

codigo_ID1

; Cdigos fijos del emisor.

codigo_ID2
codigo_rec

; Cdigo identificador del receptor.

codigo_ADC

; Cdigo del ADC.

bits

; Bits de control de recepcin de cada cdigo de 8 bits.


; bits.0=1 -> He recibido codigo_ID2.
; bits.1=1 -> He recibido codigo_rec.
; bits.2=1 -> He recibido codigo_ADC.
; bits.4=1 -> He recibido codigo_ID2 (modo programacin).
; bits.5=1 -> He recibido codigo_rec (modo programacin).
; bits.6=1 -> He recibido el cuarto cdigo (modo programacin)
; bits.7=1 -> Bit de programacin (no espero el codigo_AD).

bits_2

; bits_2.7=1 -> Error en algn cdigo recibido (bit de fallo).

bits_fin_rec

; bits_fin_rec.0=1 -> Se han recibido los 4 bytes completos.


; bits_fin_rec.5=1 -> Empiezo a recibir cdigos.
; bits_fin_rec.6=1 -> Indico desbordamiento timer 1.
; bits_fin_rec.7=1 -> El cdigo recibido en modo asociacin no es un cdigo de asociacin.

addr

; Se cargan las direcciones de memoria de las variables a guardar en EEPROM.

contador_bits

; Contador para contar los bits que me llegan de cada cdigo (byte).

contador_total

; Cuenta el nmero de bits totales (han de ser 32 bits, 4 bytes de 8 bits cada uno).

ENDC

;**********************************************************************
; Descripcin memoria EEPROM.
; 00h: 'dispositivo'
; 01h: 'codigo_ID1'
; 02h: 'codigo_ID2'
; 03h: 'codigo_rec'
;**********************************************************************

133

Control inalmbrico de sistemas basado en el uso de energa solar

; NIVELES
; GP0 GP1
; 0

-> APAGAR

; 0

-> RANGO 1

; 1

-> RANGO 2

; 1

-> RANGO 3

ORG

0x000

goto start

; processor reset vector


; ir a inicio del programa.

; ZONA DE INTERRUPCIONES
ORG

0x004

; localizacin vector interrupcin.

call interrupt
RETFIE
;**********************************************************************
; COMIENZO DEL PROGRAMA.
start
bsf

STATUS,RP0

; set file register bank to 1

call 0x3FF

; retrieve factory calibration value

movwf OSCCAL

; update register with factory cal value

; CONFIGURACIN DE REGISTROS.
bcf STATUS,RP0

; Banco 0.

clrf GPIO

; Inicializo GPIO.

movlw 07h ; Comparador off.


movwf CMCON
clrf T1CON ; Reloj interno como fuente para timer 1 (Fosc/4) y prescaler 1:1.
bsf STATUS,RP0
clrf ANSEL

; Banco 1.

; No se utiliza el ADC (I/O digitales).

movlw 1Ch ; GP0: salida de comunicacin con PIC12F508 para determinar rango.
; GP1: salida de comunicacin con PIC12F508 para determinar rango.
; GP2: entrada de recibir cdigos.
; GP3: entrada para pulsador reset.
; GP4: entrada para pulsador de asociacin y para recibir OK del PIC12F508 sobre el rango.
; GP5: salida para el LED de asociacin.
movwf TRISIO

; Valor puerto 011100

movlw 0x02

; Preescaler 1:8 para el TMR0.

OPTION
bcf STATUS,RP0

; Banco 0.

; Inicializacin de variables
valores
bcf GPIO,5

; LED asociacin OFF.

bcf GPIO,0

; Salidas de control de cdigos a 0.

bcf GPIO,1
valores_1

134

Control inalmbrico de sistemas basado en el uso de energa solar

clrf bits

; Inicializo bits de control de los bytes recibidos.

clrf bits_2

; Reseteo bit de control de fallo.

clrf bits_fin_rec

; Inicializo bit de fin de recepcin de bytes.

clrf codigo

; Inicializo variable 'codigo'.

movlw 0x08

; Inicializo el contador de bits para cada byte.

movwf contador_bits
clrf contador_total

; Inicializo contador de bits totales que recibo en una transmisin (debo recibir 32 bits en total).

call precarga_T1

; Preparo timer 1 para cuando reciba los cdigos (cuenta 65 ms).

;************************************************************************
; COMIENZO PROGRAMA
;************************************************************************
cargar_EEPROM
; Primero cargo el valor de 'dispositivo' de la EEPROM para ver si est asociado a un emisor.
movlw 0x00

; En la direccin 0 de la EEPROM est 'dispositivo'

movwf addr
call leer_EEPROM

; Veo si estoy asociado a un emisor.

movwf dispositivo
movf dispositivo,0
xorlw 0xF0

; Si 'dispositivo'= F0h -> el receptor ya est asociado.

btfss STATUS,Z
goto bucle_programm ; Pregunto solo por el pulsador de asociacin.
bcf STATUS,Z

; Receptor asociado.

call cargar_cod

; Como est asociado cargo los cdigos de emisor y receptor.

goto bucle_prog
; La primera vez pregunto solo por el pulsador de asociacin.
bucle_programm
btfss GPIO,4

; Asociacin o no?.

goto bucle_programm ; NO.


; SI.
bucle_programm_1
btfsc GPIO,4

; Espero a fin de pulsacin.

goto bucle_programm_1
call precarga_T1

; Espero desborde de timer 1 para evitar glitches.

bsf T1CON,TMR1ON

; Cuenta timer 1.

glitches
btfss bits_fin_rec,6

; Desborde de timer 1?.

goto glitches
bcf bits_fin_rec,6

; Reseteo bit de desbordamiento.

goto programacion
;**********************************************************
; Con el receptor ya asociado pregunto por el estado de las dos entradas.
bucle_prog
btfss GPIO,4
goto bucle_11

; Asociacin o no?.
; Pregunto por la recepcin.

bucle_prog_1
btfsc GPIO,4

; Espero a fin de pulsacin.

goto bucle_prog_1
call precarga_T1

; Espero desborde de timer 1 para evitar glitches.

135

Control inalmbrico de sistemas basado en el uso de energa solar

bsf T1CON,TMR1ON

; Cuenta timer 1.

glitches_1
btfss bits_fin_rec,6

; Desborde de timer 1 (no han llegado todos los bits)?.

goto glitches_1
bcf bits_fin_rec,6

; Reseteo bit de desbordamiento.

goto programacion
bucle_11
btfss GPIO,2

; Cdigos ?.

goto bucle_prog
call get_code

; Salto a rutina de recepcin de cdigos.

clrf bits

; Reseteo bits de control antes de recibir otra transmisin.

;******************************************************************
; VERIFICACIN DE LOS CDIGOS OBTENIDOS ESTANDO LA BOMBILLA APAGADA
;******************************************************************
verificar_OFF
; Pregunto por el bit de fallo.
btfsc bits_2,7

; Hay fallo?.

goto fallo

; SI -> No hacemos nada, ya que la bombilla est apagada.

goto LUMINOSIDAD

; Luz apagada -> encender.

;*******************************************************************************
;*********************************************
; SALIDA NO VLIDA ESTANDO LA BOMBILLA APAGADA
;*********************************************
fallo
bcf bits_2,7

; Reseteo bit de control de fallo.

goto valores

; Fallo -> no hago nada.

;*******************************************************************************
; RUTINA DE CONTROL DE LOS RANGOS DE LUMINOSIDAD
;*******************************************************************************
; Pregunto por el rango de luz.
LUMINOSIDAD
; La bombilla estaba apagada -> pregunto por el rango de luminosidad que quiero.
bcf STATUS,C
movf codigo_ADC,0
sublw .80
btfss STATUS,C

; Si (.80)-codigo_ADC=1 -> (.80) > codigo_ADC -> Estamos en el rango correcto.

goto sig_rango

; Pregunto por el siguiente rango.

bcf STATUS,C
; Precargo e inicio cuenta timer 1 por si no me llega el OK del microcontrolador esclavo.
precharge
bcf bits_2,7 ; Reseteo bit de fallo.
bcf bits_fin_rec,6

; Reseteo bit de desborde de timer 1.

call precarga_T1

; Preparo timer 1 para contar mientras espero OK del microcontrolador esclavo.

bsf T1CON,TMR1ON

; Cuenta timer 1.

; RANGO_1
bsf GPIO,1

; Indico rango 1 al microcontrolador esclavo.

136

Control inalmbrico de sistemas basado en el uso de energa solar

bcf GPIO,0
; Espero desborde de timer 1 (no llega OK) o el OK de rango recibido por el esclavo.
error_desborde
btfsc bits_fin_rec,6

; Desborde de timer 1?

goto precharge

; SI -> sigo controlando la luminosidad de la bombilla.

btfss GPIO,4 ; Pregunto por el OK del PIC12F508.


goto error_desborde
bsf bits_fin_rec,1

; Indico que hemos encendido la luz despus de recibir el OK del PIC12F508.

bcf T1CON,TMR1ON

; Paro cuenta timer 1.

call precarga_T1

; Preparo timer 1 para cuando reciba los cdigos.

; Pregunto si me llega un cdigo.


rango_1
btfss GPIO,2 ; Cdigo ?.
goto rango_1
call get_code

; Paso a recibir el cdigo.

; Pregunto por fallo en la transmisin


btfsc bits_2,7

; Fallo ?

error_desborde_2
bcf GPIO,1

; NO -> Indico al PIC12F508 que apague la bombilla.

bcf GPIO,0
precharge_1
bcf T1CON,TMR1ON

; Paro cuenta timer 1.

bcf bits_fin_rec,6

; Reseteo bit de desborde de timer 1.

call precarga_T1

; Preparo timer 1 para contar mientras espero OK del microcontrolador esclavo.

bsf T1CON,TMR1ON

; Cuenta timer 1.

error_desborde_1
btfsc bits_fin_rec,6

; Desborde ?

goto error_desborde_2 ; SI -> Vuelvo a decirle al esclavo que apague la bombilla.


btfsc GPIO,4 ; Pregunto por el OK del PIC12F508
goto error_desborde_1
bcf bits_fin_rec,1

; Indico que hemos apagado la luz despus de recibir el OK del PIC12F508.

bcf T1CON,TMR1ON

; Paro cuenta timer 1.

goto valores_1
;********************************************
sig_rango
bcf STATUS,C
movf codigo_ADC,0
sublw .160
btfss STATUS,C

; Si (.160)-codigo_ADC=1 -> (.160) > codigo_ADC -> Estamos en el rango correcto.

goto sig_rango_1

; Pregunto por el siguiente rango

bcf STATUS,C
; Precargo e inicio cuenta timer 1 por si no me llega el OK del microcontrolador esclavo
precharge_11
bcf bits_2,7 ; Reseteo bit de fallo.
bcf bits_fin_rec,6

; Reseteo bit de desborde de timer 1.

call precarga_T1

; Preparo timer 1 para contar mientras espero OK del microcontrolador esclavo.

bsf T1CON,TMR1ON

; Cuenta timer 1.

; RANGO_2
bcf GPIO,1

; Indico rango 2 al microcontrolador esclavo.

bsf GPIO,0
; Espero desborde de timer 1 (no llega OK) o el OK de rango recibido.

137

Control inalmbrico de sistemas basado en el uso de energa solar

error_desborde_11
btfsc bits_fin_rec,6

; Desborde de timer 1?.

goto precharge_11

; NO -> desborde de timer 1.

btfss GPIO,4 ; Pregunto por el OK del PIC12F508.


goto error_desborde_11
bsf bits_fin_rec,1

; Indico que hemos encendido la luz despus de recibir el OK del PIC12F508.

bcf T1CON,TMR1ON

; Paro cuenta timer 1.

call precarga_T1

; Preparo timer 1 para cuando reciba los cdigos.

; Pregunto si me llega un cdigo.


rango_2
btfss GPIO,2 ; Cdigo ?.
goto rango_2
call get_code

; Paso a recibir el cdigo.

; Pregunto por fallo en la transmisin.


btfsc bits_2,7

; Fallo ?

error_desborde_22
bcf GPIO,1

; NO -> Indico al PIC12F508 que apague la bombilla

bcf GPIO,0
precharge_22
bcf T1CON,TMR1ON

; Paro cuenta timer 1.

bcf bits_fin_rec,6

; Reseteo bit de desborde de timer 1.

call precarga_T1

; Preparo timer 1 para contar mientras espero OK del microcontrolador esclavo.

bsf T1CON,TMR1ON

; Cuenta timer 1.

error_desborde_12
btfsc bits_fin_rec,6

; Desborde ?.

goto error_desborde_22

; SI -> Vuelvo a decirle al esclavo que apague la bombilla.

btfsc GPIO,4 ; Pregunto por el OK del PIC12F508.


goto error_desborde_12
bcf bits_fin_rec,1

; Indico que hemos apagado la luz despus de recibir el OK del PIC12F508.

bcf T1CON,TMR1ON

; Paro cuenta timer 1.

goto valores_1
;********************************************
sig_rango_1
bcf STATUS,C
movf codigo_ADC,0
sublw .255
btfss STATUS,C

; Si (.255)-codigo_ADC=1 -> (.255) > codigo_ADC -> Estamos en el rango correcto.

goto cargar_EEPROM

; Vuelvo por no detectarse nada -> FALLO.

bcf STATUS,C
; Precargo e inicio cuenta timer 1 por si no me llega el OK del microcontrolador esclavo.
precharge_111
bcf bits_2,7 ; Reseteo bit de fallo.
bcf bits_fin_rec,6

; Reseteo bit de desborde de timer 1.

call precarga_T1

; Preparo timer 1 para contar mientras espero OK del microcontrolador esclavo.

bsf T1CON,TMR1ON

; Cuenta timer 1.

; RANGO_3
bsf GPIO,1

; Indico rango 3 al microcontrolador esclavo.

bsf GPIO,0
; Espero desborde de timer 1 (no llega OK) o el OK de rango recibido.

138

Control inalmbrico de sistemas basado en el uso de energa solar

error_desborde_111
btfsc bits_fin_rec,6

; Desborde de timer 1?.

goto precharge_111

; NO -> desborde de timer 1.

btfss GPIO,4 ; Pregunto por el OK del PIC12F508.


goto error_desborde_111
bsf bits_fin_rec,1

; Indico que hemos encendido la luz despus de recibir el OK del PIC12F508.

bcf T1CON,TMR1ON

; Paro cuenta timer 1.

call precarga_T1

; Preparo timer 1 para cuando reciba los cdigos.

; Pregunto si me llega un cdigo.


rango_3
btfss GPIO,2 ; Cdigo ?.
goto rango_3
call get_code

; Paso a recibir el cdigo.

; Pregunto por fallo en la transmisin.


btfsc bits_2,7

; Fallo ?.

error_desborde_222
bcf GPIO,1

; NO -> Indico al PIC12F508 que apague la bombilla.

bcf GPIO,0
precharge_222
bcf T1CON,TMR1ON

; Paro cuenta timer 1.

bcf bits_fin_rec,6

; Reseteo bit de desborde de timer 1.

call precarga_T1

; Preparo timer 1 para contar mientras espero OK del microcontrolador esclavo.

bsf T1CON,TMR1ON

; Cuenta timer 1.

error_desborde_13
btfsc bits_fin_rec,6

; Desborde ?.

goto error_desborde_222 ; SI -> Vuelvo a decirle al esclavo que apague la bombilla.


btfsc GPIO,4 ; Pregunto por el OK del PIC12F508.
goto error_desborde_13
bcf bits_fin_rec,1

; Indico que hemos apagado la luz despus de recibir el OK del PIC12F508.

bcf T1CON,TMR1ON

; Paro cuenta timer 1.

goto valores_1
; Fin de rutina LUMINOSIDAD
;*******************************************************************************
; RUTINA DE ASOCIACIN CON EMISOR (MODO ASOCIACIN)
;*******************************************************************************
programacion
; Bit de programacin ON
bsf bits,7

; Bit de asociacin a 1.

; Inicio programacin
bsf GPIO,5

; Led asociacin ON.

btfsc bits_fin_rec,1

; Est la luz encendida? -> comprobacin por si acaso.

goto end_prog

; SI -> salgo del modo asociacin.

; Pregunto si hay recepcin o pulsacin del botn de asociacin (abortar modo asociacin).
arrep
btfss GPIO,4 ; Salir del modo asociacin?.
goto no_arrep
arrep_1
btfsc GPIO,4 ; Espero a fin de pulsacin.

139

Control inalmbrico de sistemas basado en el uso de energa solar

goto arrep_1
goto end_prog

; Fin de asociacin sin recibir cdigo.

no_arrep
btfss GPIO,2 ; Se reciben cdigos de asociacin?.
goto arrep
; Recepcin cdigo del modo asociacin.
call get_code

; Recibo los cdigos

btfss bits_fin_rec,7

; Error en el bit de asociacin ?.

goto out

; NO -> Guardamos los cdigos en EEPROM.

goto end_prog

; SI -> Salimos sin hacer nada.

; Guardo los cdigos en EEPROM


out
btfsc bits_2,7

; Fallo en el nmero de bits recibidos ?

goto end_prog

; SI -> salgo sin guardar

bsf STATUS, RP0

; Banco 1 (para escribir en EEADR y EEDATA)

movf codigo_ID1,w
movwf EEDATA

; Dato que quiero escribir

movlw 0x01 ; Guardo en EEPROM 'codigo_ID1'


movwf EEADR

; Direccin donde quiero escribir.

call escribir_EEPROM
;**********************************************
bsf STATUS, RP0

; Banco 1 (para escribir en EEADR y EEDATA)

movf codigo_ID2,w
movwf EEDATA

; Dato que quiero escribir

movlw 0x02 ; Guardo en EEPROM 'codigo_ID2'


movwf EEADR

; Direccin donde quiero escribir.

call escribir_EEPROM
;**********************************************
bsf STATUS, RP0

; Banco 1 (para escribir en EEADR y EEDATA)

movf codigo_rec,w
movwf EEDATA

; Dato que quiero escribir

movlw 0x03 ; Guardo en EEPROM 'codigo_rec'


movwf EEADR

; Direccin donde quiero escribir.

call escribir_EEPROM
;**********************************************
bsf STATUS, RP0

; Banco 1 (para escribir en EEADR y EEDATA)

movlw 0xF0 ; Valor de aadido cuando se asocia el receptor a un emisor.


movwf EEDATA

; Dato que quiero escribir

movlw 0x00 ; Guardo en EEPROM 'aadido'


movwf EEADR

; Direccin donde quiero escribir.

call escribir_EEPROM
; Fin modo asociacin.
end_prog
goto valores ; Vuelvo al inicio para cargar todos los valores iniciales
;*******************************************************************************
; ****************************** SUBRUTINAS ************************************
;*******************************************************************************
;*******************************************************************************
; RUTINAS DE GESTIN DEL CDIGO RECIBIDO

140

Control inalmbrico de sistemas basado en el uso de energa solar

;*******************************************************************************
; Es un 1
salida_si
incf contador_total

; incremento el contador de bits (32)

bsf STATUS,C
rrf codigo
return
; Es un 0
salida_no
incf contador_total
bcf STATUS,C
rrf codigo
return
;*******************************************************************************
; SUBRUTINA DE LECTURA DE LA EEPROM
;*******************************************************************************
leer_EEPROM
bsf STATUS,RP0

;Banco 1.

movf addr,w

movwf EEADR

;Direccin que queremos leer.

bsf EECON1,RD

;Bit de lectura a 1.

movf EEDATA,W

;Movemos el dato al acumulador.

bcf STATUS,RP0

;Banco 0.

return
;*******************************************************************************
; SUBRUTINA DE ESCRITURA DE LA EEPROM
;*******************************************************************************
escribir_EEPROM
bsf STATUS,RP0

;Banco 1.

bsf EECON1,WREN

;Permito escritura.

bcf INTCON,GIE

;Deshabilito interrupciones.

movlw 55h ;Desbloquear escritura.


movwf EECON2 ;
movlw 0xAA ;
movwf EECON2 ;
bsf EECON1,WR

;Comienzo escritura.

wait_EEPROM
btfsc EECON1,WR
goto wait_EEPROM
bsf INTCON,GIE

;Habilito interrupciones.

bcf STATUS,RP0

;Banco 0.

return
;*******************************************************************************
; SUBRUTINA PARA CARGAR CDIGOS DE EMISOR Y RECEPTOR.
;*******************************************************************************
; Si el receptor est asociado a un emisor, cargo los cdigos desde la EEPROM
cargar_cod

141

Control inalmbrico de sistemas basado en el uso de energa solar

movlw 0x01 ; En la direccin 1 de la EEPROM est 'codigo_ID1'.


movwf addr
call leer_EEPROM
movwf codigo_ID1
;*************************
movlw 0x02 ; En la direccin 2 de la EEPROM est 'codigo_ID2'.
movwf addr
call leer_EEPROM
movwf codigo_ID2
;*************************
movlw 0x03 ; En la direccin 3 de la EEPROM est 'codigo_rec'.
movwf addr
call leer_EEPROM
movwf codigo_rec
return
;*******************************************************************************
; PRECARGA DEL TIMER_0.
;*******************************************************************************
; Cuento 464 us = 58 incrementos x 8 (prescaler).
espera_T0
; Cargo valor de cuenta.
movlw 0xC5

; Realizo 58 cuentas

movwf TMR0
return
;*******************************************************************************
; RUTINA DE CONTROL DE LLEGADA DE LOS BITS
;*******************************************************************************
get_code
bsf bits_fin_rec,5

; Empiezo a recibir cdigos (lo pongo a 1 cuando empiezo a recibir cdigos).

clrf TMR0

; Reseteo TMR0.

bcf INTCON,T0IF

; Reseteo flag de overflow de timer 0 cuando empiezo.

; Activo timer 1 para salir de la espera de bits en caso de fallo en la transmisin.


; Cuento 65 ms (duracin mayor de una transmisin). Si tras esto no recibo los 32 bits -> FALLO.
; Si la transmisin es completa (recibo 32 bits) paro el timer tras la recepcin.
bsf T1CON,TMR1ON ; Cuenta timer 1.
loop
btfss GPIO,2 ; Bit recibido?.
goto fail
call espera_T0

; Precargo el valor de cuenta de timer 0.

overflow
btfss INTCON,T0IF

; Pregunto si timer 0 ha terminado.

goto overflow

; NO -> Espero.

bcf INTCON,T0IF

; SI -> Reseteo bit de overflow timer 0.

btfss GPIO,2 ; Me llega un 1 o un 0?.


goto uno

; Es un 1.

call salida_no

; Es un 0.

goto siguiente
uno
call salida_si
siguiente
decfsz contador_bits
goto wait_zero

; Decremento el contador de bits cada vez que me llega uno.


; No me ha llegado todo el byte -> espero a que GP2 se ponga a cero para esperar el siguiente bit.

142

Control inalmbrico de sistemas basado en el uso de energa solar

movlw 0x08

; Recargo la variable de cuenta del n bits recibidos de cada byte.

movwf contador_bits
btfss bits,7

; Modo asociacin?.

goto byte_noprog

; NO.

call reception_prog

; SI.

goto fin_def
byte_noprog
call reception_noprog ; Modo normal.
fin_def
btfss bits_fin_rec,0

; Se han recibido los 4 bytes completos ?.

goto wait_zero

; NO -> Vuelvo para recibir otro byte nuevo.

bcf bits_fin_rec,0

; Reseteo bit de 4 bytes completos.

goto lastback

; Todos los cdigos recibidos -> vuelvo de la subrutina.

wait_zero
btfsc GPIO,2 ; Espero a que la entrada sea 0.
goto wait_zero
goto loop

; SI -> Espero siguiente bit.

fail
btfss bits_fin_rec,6

; Fallo ?

goto loop

; NO -> sigo preguntando por nuevos bits.

bcf bits_fin_rec,6

; SI -> El timer 1 ha llegado al final de la cuenta y ha saltado su interrupcin.

goto fail_2
; Compruebo por si acaso si me han llegado 32 bits.
lastback
movf contador_total,0
xorlw 0x20 ; Me han llegado 32 bits?.
btfss STATUS,Z
goto fail_2

; NO.

bcf STATUS,Z

; SI.

goto back_99
fail_2
bsf bits_2,7 ; Indico FALLO.
back_99
bcf T1CON,TMR1ON

; Paro timer 1.

clrf INTCON

; Deshabilito interrupciones (en este caso la de Timer 1).

bcf bits_fin_rec,5

; Reseteo bit de recibir cdigo.

clrf contador_total

; Inicializo contador del nmero total de bits en una transmisin (32 bits).

movlw 0x08

; Recargo la variable de cuenta del n bits recibidos de cada byte.

movwf contador_bits
return
;*******************************************************************************
; RUTINA DE RECEPCIN DE CDIGOS EN MODO PROGRAMACIN
;*******************************************************************************
reception_prog
btfss bits,4

; Pregunto por el bit de control 4.

goto jumpy_1
movf codigo,0

; Se ha recibido codigo_ID2.

movwf codigo_ID2
bcf bits,4
bsf bits,5
goto back_getcode
jumpy_1

143

Control inalmbrico de sistemas basado en el uso de energa solar

btfss bits,5

; Pregunto por el bit de control 5.

goto jumpy_3
movf codigo,0

; Se ha recibido codigo_rec.

movwf codigo_rec
bcf bits,5

; Reseteo bit de codigo receptor.

bsf bits,6

; Activo bit de cuarto cdigo.

goto back_getcode

; Vuelvo para recibir cdigo de asociacin (0xFF).

jumpy_3
btfss bits,6

; Pregunto por el bit de cuarto cdigo.

goto jumpy_2
bcf bits,6

; Reseteo bit de cuarto cdigo.

movf codigo,0
xorlw 0xFF
btfss STATUS,Z
goto back_getcode_err ; No es un cdigo de programacin -> salgo sin guardar.
bcf STATUS,Z
goto back_getcode_def
jumpy_2
movf codigo,0

; Se ha recibido codigo_ID1.

movwf codigo_ID1
bsf bits,4
goto back_getcode
back_getcode_err
bcf STATUS,Z
bsf bits_fin_rec,7

; Activo bit de error en el cdigo de asociacin.

back_getcode_def
bsf bits_fin_rec,0

; Activo bit de fin de bytes recibidos.

back_getcode
return
;*******************************************************************************
; RUTINA DE RECEPCIN DE CDIGOS CON EL RECEPTOR ASOCIADO
;*******************************************************************************
reception_noprog
; Compruebo los cdigos cuando ya estoy asociado a un emisor.
btfss bits,0
goto jumper
movf codigo,0

; Se ha recibido el segundo identificador.

xorwf codigo_ID2,0
btfss STATUS,Z
bsf bits_2,7

; Indico FALLO.

bcf STATUS,Z
bcf bits,0
bsf bits,1
goto back_getcodenoprog
jumper
btfss bits,1
goto jumper_2

144

Control inalmbrico de sistemas basado en el uso de energa solar

movf codigo,0

; Se ha recibido el receptor.

xorwf codigo_rec,0
btfss STATUS,Z
bsf bits_2,7

; Indico FALLO.

bcf bits,1

; SI -> vuelvo al modo asociacin.

bsf bits,2
goto back_getcodenoprog
jumper_2
btfss bits,2
goto jumper_1
movf codigo,0

; Se ha recibido codigo_ADC y lo guardo en codigo_ADC.

movwf codigo_ADC
bcf bits,2
goto back_getcodenoprog_def
jumper_1
movf codigo,0

; Se ha recibido el primer identificador.

xorwf codigo_ID1,0
btfss STATUS,Z
bsf bits_2,7

; Indico FALLO

bsf bits,0

; Indico que el siguiente es codigo_ID2.

goto back_getcodenoprog
back_getcodenoprog_def
bsf bits_fin_rec,0

; Activo bit de fin de bytes recibidos.

back_getcodenoprog
return
;*******************************************************************************
; RUTINA DE INTERRUPCIN DE TIMER 1
;*******************************************************************************
interrupt
bcf PIR1,TMR1IF

; Reseteo bit de interrupcin de timer 1.

bcf T1CON,TMR1ON
clrf INTCON

; Apago timer 1.
; Deshabilito interrupcin timer 1.

bsf bits_fin_rec,6

; Indico que debo salir del bucle infinito que pregunta si me llega un bit.

return
;*******************************************************************************
; PRECARGA DEL TIMER_1 CUANDO RECIBO LOS CDIGOS.
;*******************************************************************************
; En esta rutina cuento un total de 65 ms (ms de lo que dura la transmisin).
precarga_T1
movlw 0x02

; Precargo el valor (FFFFh-FDE8h=217h=535d).

movwf TMR1H
movlw 0x17
movwf TMR1L
; Activo interrupcin de timer 1
bsf STATUS,RP0

; Activo interrupcin timer 1.

bsf PIE1,TMR1IE
bcf STATUS,RP0
movlw 0xC0

; Activo GIE y PEIE.

movwf INTCON
return
END

145

Control inalmbrico de sistemas basado en el uso de energa solar

146

Control inalmbrico de sistemas basado en el uso de energa solar

Anexo 5: Programa del microcontrolador esclavo (control de luminarias).

list

p=12F508

; list directive to define processor

#include <p12F508.inc>

; processor specific variable definitions

__CONFIG _MCLRE_ON & _CP_ON & _WDT_OFF & _IntRC_OSC


; Defino variables
CBLOCK 0x07
contador ; Variable para contar el tiempo de apagado por ciclo tras una deteccin de un paso por cero
ENDC
; COMBINACIONES
; GP5 GP4
; 0

0 -> APAGO LA BOMBILLA

; 0

1 -> RANGO 1

; 1

0 -> RANGO 2

; 1

1 -> RANGO 3

;**********************************************************************
ORG

0x1FF

; processor reset vector

; Internal RC calibration value is placed at location 0x1FF by Microcontroladorchip


; as a movlw k, where the k is a literal value.
ORG

0x000

; coding begins here

movwf OSCCAL

; update register with factory cal value

; Comienzo del programa


start
movlw b'111010'

; GP0: salida para indicar a PIC12F675 que se han recibido las rdenes.
; GP1: entrada para detectar pasos por cero.
; GP2: salida para la PWM.
; GP3: entrada reset comn con PIC12F675.
; GP4: entrada para conocer el rango.
; GP5: entrada para conocer el rango.

tris GPIO
movlw

b'00000011'

; Preescaler 1:16 para el TMR0.

option
begin
bcf GPIO,2

; Inicio salidas a 0.

bcf GPIO,0
salto
btfss GPIO,4

; Veo el rango.

goto salto1
call temporizar_ini

; Espero 32us.

goto salto2
salto1
btfss GPIO,5

goto salto

147

Control inalmbrico de sistemas basado en el uso de energa solar

call temporizar_ini

; Espero 32us.

goto salto3
salto2
btfss GPIO,5

goto vuelta

; RANGO 1.

goto vuelta_2

; RANGO 3.

salto3
btfss GPIO,4

goto vuelta_1

; RANGO 2.

goto vuelta_2

; RANGO 3.

;Rango 1
vuelta
bsf GPIO,0

; Mando el OK al PIC12F675 para indicarle que se han recibido el rango.

prec1
call precarga_1

; Realizo la precarga del timer 0.

wait
btfss GPIO,1

; Paso por cero ?.

goto question

; NO.

bcf GPIO,2

; Apago salida.

call temporizar

; Espero el tiempo necesario antes de activar la salida.

bsf GPIO,2

; Activo salida.

; Pregunto si fin del paso por cero.


paso_aun
btfsc GPIO,1

; Sigo en el paso por cero ?.

goto paso_aun

; NO.

goto prec1
;**************************
;Rango 2
vuelta_1
bsf GPIO,0

; Mando el pulso al PIC12F675 para indicarle que se ha recibido el rango.

prec2
call precarga_2

; Realizo la precarga.

wait_1
btfss GPIO,1

; Paso por cero ?.

goto question_1

; NO.

bcf GPIO,2

; Apago salida.

call temporizar

; Espero el tiempo necesario antes de activar la salida.

bsf GPIO,2

; Activo salida.

; Pregunto si fin del paso por cero.


paso_aun_1
btfsc GPIO,1

; Sigo en el paso por cero ?.

goto paso_aun_1

; NO.

goto prec2
;**************************
;Rango 3
vuelta_2
bsf GPIO,0

; Mando el pulso al PIC12F675 para indicarle que se han recibido los pulsos y el pulso final.

wait_2

148

Control inalmbrico de sistemas basado en el uso de energa solar

btfss GPIO,1

; Paso por cero ?.

goto wait_2
bsf GPIO,2

; Enciendo salida.

goto question_2

; Espero a que se ordene apagar la bombilla.

;**************************
; Preguntas de si me llegan nuevos pulsos mientras realizo PWM.
question
btfsc GPIO,4

; Apagar bombilla ?.

goto wait
wait_zero
btfsc GPIO,5
goto wait
; GP4 y GP5 son 0 -> Apagar la bombilla.
wait_zero4
btfss GPIO,1

; Paso por cero ?.

goto wait_zero4
bcf GPIO,2

; Apago salida.

bcf GPIO,0

; Fin de pulso de OK.

goto begin
;********************
question_1
btfsc GPIO,5

; Apagar bombilla ?.

goto wait_1
wait_zero1
btfsc GPIO,4
goto wait_1
; GP4 y GP5 son 0 -> Apagar la bombilla.
wait_zero5
btfss GPIO,1

; Paso por cero ?.

goto wait_zero5
bcf GPIO,2

; Apago salida.

bcf GPIO,0

; Fin de pulso de OK.

goto begin
;********************
question_2
btfsc GPIO,4

; Espero a la orden de apagar la bombilla.

goto question_2
wait_zero2
btfsc GPIO,5
goto wait_zero2
; GP4 y GP5 son 0 -> Apagar la bombilla.
wait_zero6
btfss GPIO,1

; Paso por cero ?.

goto wait_zero6
bcf GPIO,2

; Apago salida.

bcf GPIO,0

; OK.

goto begin
;*********************************************************************************************
; SUBRUTINAS
;*********************************************************************************************
temporizar

; Despus de cambiar el estado de la salida espero a que la entrada se estabilice.

clrf TMR0

; Inicio timer 0.

bucle

149

Control inalmbrico de sistemas basado en el uso de energa solar

movf TMR0,w

; Cuento 63 x 16 = 1008us = 1ms.

xorlw .63
btfss STATUS,Z
goto bucle_9

; Se ha contado 1 ms?.
; NO-> pregunto por las entradas de rango.

bcf STATUS,Z

; SI-> sigo con la cuenta.

goto seguir
bucle_9
btfsc GPIO,4

; GP4==0?

goto bucle
btfsc GPIO,5

; NO
; GP5==0?

goto bucle

; NO

goto back

; SI -> apagar la bombilla

seguir
decfsz contador,1

; Decremento el contador.

goto temporizar

; No se ha acabado la cuenta.

back
retlw 0x00
;*********************************************************************************************
;*********************************************************************************************
temporizar_ini
clrf TMR0

; Inicio timer 0.

bucle_1
movf TMR0,w

; Cuento 16 x 2= 32us.

xorlw .2
btfss STATUS,Z
goto bucle_1
bcf STATUS,Z
retlw 0x00
;*********************************************************************************************
;*********************************************************************************************
precarga_1
movlw 0x05

; Precarga del rango 1 (5 ms) -> 50%.

movwf contador
retlw 0x00
;*********************************************************************************************
precarga_2
movlw 0x03

; Precarga del rango 2 (3 ms) -> 70%.

movwf contador
retlw 0x00
;*********************************************************************************************
END

150

Control inalmbrico de sistemas basado en el uso de energa solar

Anexo 6: Hojas de catlogo

151

Control inalmbrico de sistemas basado en el uso de energa solar

152

Control inalmbrico de sistemas basado en el uso de energa solar

153

Control inalmbrico de sistemas basado en el uso de energa solar

154

Control inalmbrico de sistemas basado en el uso de energa solar

155

Control inalmbrico de sistemas basado en el uso de energa solar

156

Control inalmbrico de sistemas basado en el uso de energa solar

157

Control inalmbrico de sistemas basado en el uso de energa solar

158

Control inalmbrico de sistemas basado en el uso de energa solar

159

Control inalmbrico de sistemas basado en el uso de energa solar

160

Control inalmbrico de sistemas basado en el uso de energa solar

161

Control inalmbrico de sistemas basado en el uso de energa solar

162

Control inalmbrico de sistemas basado en el uso de energa solar

163

Control inalmbrico de sistemas basado en el uso de energa solar

164

Control inalmbrico de sistemas basado en el uso de energa solar

165

Control inalmbrico de sistemas basado en el uso de energa solar

166

Control inalmbrico de sistemas basado en el uso de energa solar

167

Control inalmbrico de sistemas basado en el uso de energa solar

168

Control inalmbrico de sistemas basado en el uso de energa solar

169

Control inalmbrico de sistemas basado en el uso de energa solar

170

Control inalmbrico de sistemas basado en el uso de energa solar

171

Control inalmbrico de sistemas basado en el uso de energa solar

172

Control inalmbrico de sistemas basado en el uso de energa solar

173

Control inalmbrico de sistemas basado en el uso de energa solar

174

Control inalmbrico de sistemas basado en el uso de energa solar

175

Control inalmbrico de sistemas basado en el uso de energa solar

176

Control inalmbrico de sistemas basado en el uso de energa solar

177

Control inalmbrico de sistemas basado en el uso de energa solar

178

Control inalmbrico de sistemas basado en el uso de energa solar

179

Control inalmbrico de sistemas basado en el uso de energa solar

180

Control inalmbrico de sistemas basado en el uso de energa solar

181

Control inalmbrico de sistemas basado en el uso de energa solar

182

Control inalmbrico de sistemas basado en el uso de energa solar

183

Control inalmbrico de sistemas basado en el uso de energa solar

184

Control inalmbrico de sistemas basado en el uso de energa solar

185

Control inalmbrico de sistemas basado en el uso de energa solar

186

Control inalmbrico de sistemas basado en el uso de energa solar

187

Control inalmbrico de sistemas basado en el uso de energa solar

188

Control inalmbrico de sistemas basado en el uso de energa solar

189

Control inalmbrico de sistemas basado en el uso de energa solar

190

Control inalmbrico de sistemas basado en el uso de energa solar

191

Control inalmbrico de sistemas basado en el uso de energa solar

192

Control inalmbrico de sistemas basado en el uso de energa solar

193

Control inalmbrico de sistemas basado en el uso de energa solar

194

Control inalmbrico de sistemas basado en el uso de energa solar

195

Control inalmbrico de sistemas basado en el uso de energa solar

196

Control inalmbrico de sistemas basado en el uso de energa solar

197

Control inalmbrico de sistemas basado en el uso de energa solar

198

Control inalmbrico de sistemas basado en el uso de energa solar

199

Control inalmbrico de sistemas basado en el uso de energa solar

200

Control inalmbrico de sistemas basado en el uso de energa solar

201

Control inalmbrico de sistemas basado en el uso de energa solar

202

Control inalmbrico de sistemas basado en el uso de energa solar

203

Control inalmbrico de sistemas basado en el uso de energa solar

204

Control inalmbrico de sistemas basado en el uso de energa solar

205

You might also like