• No se han encontrado resultados

DISENO DE UN SISTEMA DE MONITOREO PARA CASA HABITACION

N/A
N/A
Protected

Academic year: 2017

Share "DISENO DE UN SISTEMA DE MONITOREO PARA CASA HABITACION"

Copied!
153
0
0

Texto completo

(1)

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA

Y ELÉCTRICA

DISEÑO DE UN SISTEMA DE MONITOREO PARA CASA

HABITACIÓN”

TESIS

QUE PARA OBTENER EL TÍTULO DE

INGENIERO EN CONTROL Y AUTOMATIZACIÓN

PRESENTAN:

ESTRADA VENTURA CUAUHTÉMOC

GUERRERO MEDRANO GAMALIEL

ASESORES:

M. en C. MARTÍN ENRÍQUEZ SOBERANES

M. en C. IVVONE CECILIA TORRES RODRÍGUEZ

(2)
(3)

OBJETIVO GENERAL.

Diseñar un sistema automático para el ahorro de tiempo, comodidad y mejor calidad de vida dentro del hogar.

OBJETIVOS ESPECÍFICOS.

I. Diseñar diagramas de conexión con los dispositivos de campo en el sistema automático para la casa habitación.

II. Programar el microcontrolador para automatizar los dispositivos de campo.

III. Programar en Visual Basic la interfaz hombre-máquina y comunicar los dispositivos de campo.

(4)

JUSTIFICACIÓN.

A través de este proyecto se pueden obtener beneficios y comodidades en cualquier entorno en el que nos encontremos dentro de nuestro lugar de residencia, vivimos en una época en el que el crecimiento tan acelerado de la tecnología provoca que todos los sistemas cambien teniendo repercusiones en la vida social de todo ser humano.

Debemos jerarquizar actividades para poder dar prioridades a la “más importantes” dejando fuera otras actividades más triviales como las actividades que en ocasiones realizamos dentro del hogar.

Es entonces que la tecnología da pie al desarrollo de sistemas automatizados, casas inteligentes y un crecimiento tecnológico que nos permiten un mejor nivel de vida y comodidades como es la construcción de sistemas automatizados en nuestro hogar.

(5)

INTRODUCCIÓN.

(6)

ÍNDICE.

CAPÍTULO 1: ANTECEDENTES.

1.1. Edificios inteligentes y Domótica. 2

1.2. Inmótica. 3

1.3. El Hogar Digital. 3

1.4. La Vivienda Bioclimática. 4

1.5. El Hogar Seguro. 5

1.6. Introducción a la Red Domótica. 5

1.7. Introducción a los Edificios Inteligentes. 6

1.8. Edificio. 6

1.9. Edificio Automatizado. 7

1.10. Edificio Domótico. 7

1.11. Edificio Inmótico. 7

1.12. Edificio Digital. 8

1.13. Edificio Ecológico. 8

1.14. Edificios Inteligentes. 9

CAPÍTULO 2: CONTENIDO.

2.1. Sensor de Temperatura. 12

2.2. Sensor Digital LM35 12

2.3. Convertidor Analógico Digital. 14

2.3.1 Estructura del ADC0804 (Integrado ADC0804). 15

2.3.2 Descripción de Terminales. 16

2.4. Introducción al PIC16F84. 18

(7)

2.4.3 La Memoria RAM. 24

2.4.4 Registros Internos. 26

2.4.5 Set de Instrucciones del PIC16F84. 32

2.4.6 Instrucciones Orientadas a Registros. 32

2.4.7 Instrucciones Orientadas a Bits. 33

2.4.8 Instrucciones Orientadas a Constantes de Control. 33

2.4.9 Instrucciones para el Ensamblador. 34

2.4.10 Subrutinas. 34

2.4.11 Timer – Contador TMR0. 36

2.4.12 Pulsadores e Interruptores (Rebotes) 37

2.5. MPLAB-IDE. 39

2.5.1 Partes de MPLAB-IDE. 39

2.6. MAX232. 41

2.7. Protocolo RS232. 43

2.7.1 Tipos de Comunicaciones Seriales. 43

2.7.2 La Norma RS232. 44

2.8. Conector DB9. 46

2.9. Visual Basic. 49

2.9.1. Programas Secuenciales, Interactivos y Orientados a Eventos. 50

2.9.2. Programas para el Entorno Windows. 51

2.9.3. Modo de Diseño y de Ejecución. 51

2.9.4. Formularios y Controles. 52

2.9.5. Eventos. 53

2.9.6. Métodos. 53

2.9.7. Proyectos y Ficheros. 54

(8)

CAPÍTULO 3: DISEÑO DEL SISTEMA DE MEDICION DE

TEMPERATURA.

3.1. Programa del PIC 16f84 para el Sensor de Temperatura. 57 3.2. Programación del Entorno Gráfico de Visual Basic. 60

CAPÍTULO 4: DISEÑO DEL SISTEMA PARA EL ARRANQUE

AUTOMÁTICO DE LA BOMBA.

4.1 . Sensor de nivel de agua. 62

4.2 . Sistemas de abastecimiento de agua potable. 62

4.3 . Dotaciones de Agua. 64

4.4 . Dotación de Agua en una Construcción. 65

4.5 . Cisterna. 66

4.6 . Cálculo de Bomba. 68

4.7 . Sensor de Nivel para Líquidos (ELS-1150). 73

4.8 . Programa del PIC16F84 para el sensor de nivel ELS-1150. 79 4.9 . Programación en Visual Basic para el sensor de nivel ELS-1150. 82

4.10. Bombas periféricas. 85

CAPÍTULO 5: DISEÑO DEL SISTEMA PARA LA APERTURA DE

PUERTAS.

5.1. Sensor Óptico. 91

5.1.1. Principio de Funcionamiento. 93

5.1.2. Programa del PIC16F84 para el sensor óptico. 96 5.1.3. Programa de Visual Basic para el sensor óptico. 99

(9)

CAPÍTULO 6: ESTUDIO FINANCIERO-ECONÓMICO.

6.1. Inversión requerida. 109

6.2. El préstamo. 119

6.2.1. Crédito. 119

6.2.2. Diferencia entre Crédito y Préstamo. 120

6.2.3. Tipos de Préstamo. 121

6.2.4. Préstamos al Consumo. 121

6.2.5. Préstamos Personales. 121

6.2.6. Préstamos de Estudios. 121

6.2.7. Préstamos Hipotecarios. 122

ANEXOS. 123

CONCLUSIONES. 133

REFERENCIAS BIBLIOGRÁFICAS. 134

ÍNDICE DE TABLAS. 136

ÍNDICE DE FIGURAS. 138

ÍNDICE DE DIAGRAMAS. 141

(10)

CAPÍTULO 1

(11)

1.1. EDIFICIOS INTELIGENTES Y DOMÓTICA.

La casa ideal, es aquella en la que podemos disfrutar plenamente de nuestro tiempo de ocio sin que resulte necesario preocuparse de limpiar, regular la calefacción o saber si hay que hacer la compra es ya una realidad gracias a las nuevas TIC (Tecnologías de la Información y las Comunicaciones).

El origen de la domótica se remota a los años setenta, cuando tras muchas investigaciones, aparecieron los primeros dispositivos de automatización de edificios basados aún en la exitosa tecnología X-10. Durante los años siguientes la comunidad internacional mostró un creciente interés por la búsqueda de la casa ideal.

Los dispositivos destinados a edificios de oficinas, junto con otros específicos, se han ido aplicando a las viviendas de particulares u otro tipo de edificios, donde el número de necesidades que hay que cubrir es mucho más amplio, dando origen a la vivienda domótica.

En la actualidad, el número de viviendas domotizadas, es relativamente bajo respecto al total de viviendas, pero el interés de su adopción está creciendo progresivamente. Del mismo modo en que nuestros días no es aceptable que una vivienda no tenga corriente eléctrica o agua corriente, dentro de muy poco no se concebirán viviendas que no estén mínimamente domotitizadas.

(12)

aparatos del hogar, de manera que todo funcione en perfecta armonía, con la máxima utilidad y con la menor intervención por parte del usuario.

1.2. INMÓTICA.

El término inmótica, identificado también como “buiding magement system”, que hace referencia a la coordinación y gestión de las instalaciones con que se encuentran equipadas las edificaciones, así como su capacidad de comunicación, regulación y control. La inmótica motiva la productividad en el trabajo al gestionar las instalaciones del edificio como una herramienta para favoreces la producción de los empleados que se encuentran en su interior.

Por inmótica se entiende la incorporación de sistemas de gestión técnica automatizada a las instalaciones del sector terciario como son plantas industriales, hoteles, hospitales, aeropuertos, edificios de oficinas, parques tecnológicos, grandes superficies, universidades, instalaciones comunitarias en edificios de viviendas, etc.

1.3. EL HOGAR DIGITAL.

(13)

Algunas ventajas de vivir en un hogar digital y conectado son:

 Climatización y consumo energético.

- Programación del encendido y apagado de todo tipo de aparatos que

utilicen energía eléctrica, según las condiciones ambientales.

- Acomodación de los planes de tarifas reducidas (tarifa nocturna). - Contadores electrónicos que informan del consumo energético.

 Entretenimiento y confort.

- Conexión a Internet desde cualquier punto. Juegos en red. - Visión de canales de TV en cualquier habitación.

 Seguridad.

- Configuración de procedimientos de avisos en caso de intrusión o avería

(alarma técnica).

- Instalación de cámaras y micrófonos para ver y escuchar lo que pasa, con

posibilidad de grabación de video.

- Control de acceso a la vivienda.

 Servicios comunitarios.

- Control de la iluminación de las zonas comunes. - Manejo de alarmas de seguridad y alarmas técnicas. - Servicios Web para la comunidad de los propietarios.

1.4. LA VIVIENDA BIOCLIMÁTICA.

(14)

1.5. EL HOGAR SEGURO.

La domótica también se suele asociar al hogar seguro, ya que la mayor parte de los dispositivos que se utilizan para proteger una vivienda frente a intrusiones tienen mucho que ver con lo que la domótica implica. En cuanto se refiere a los aspectos de seguridad y comunicación.

1.6. INRODUCCIÓN A LA RED DOMÓTICA.

La domótica es la instalación e integración de varias redes y dispositivos electrónicos en el hogar, que permiten la automatización de actividades cotidianas y el control local o remoto de la vivienda. La domótica no son servicios ni productos aislados, si no simplemente la implementación e integración de todos los aparatos del hogar (eléctricos, electrónicos, informáticos, etc.).

Para que todos estos dispositivos puedan trabajar de forma conjunta es necesario que estén conectados a través de una red interna, red que generalmente se suele conocer por LAN (Local Area Network). Esta red cableada o inalámbrica, suele dividirse en 3 tipos de redes, según el tipo de dispositivos que se vayan a interconectar y de las aplicaciones que se vayan a ofrecer: la red de control, la red de datos y la red multimedia.

De entre todos los dispositivos de la vivienda domótica cabe destacar un elemento impredecible, el conocido por pasarela residencial (residencial gateway). Este dispositivo es el que permite la convivencia de todas estas redes y dispositivos internos, interconectándoles entre sí y con el exterior. Esta pasarela debe garantizar la seguridad de las comunicaciones hacia/desde el hogar y debe ser gestionable de forma remota1.

1 Domótica: Edificios inteligentes.

(15)

1.7. INTRODUCCIÓN A LOS EDIFICIOS INTELIGENTES.

La evolución tecnológica de diferentes disciplinas, como la microelectrónica, las telecomunicaciones, la informática, la arquitectura y la automática, han posibilitado una interacción de las mismas que han desembocado en el concepto de edificio inteligente. Las nuevas funciones y necesidades de los edificios/viviendas y de sus usuarios, nos han conducido a desarrollar nuevos productos capaces de satisfacerlas. Y todo ello, nos ha llevado a ser espectadores del nacimiento de diferentes sistemas con muy diversas cualidades, capaces de realizar dichas funciones y de comunicarse por distintos medios de transmisión. Estos sistemas además de posibilitar los niveles de automatización demandado han estado persiguiendo una serie de cualidades que han llegado a considerar factores clave en el desarrollo de los mismos.

1.8. EDIFICIO.

Un edifico “es una obra de construcción cubierta que puede utilizarse de manera independiente y que se ha construido con carácter permanente y sirve o está pensado para la protección de personas, animales u objetos”. Se pueden clasificar dentro de dos grandes grupos dependiendo de cuál sea su objetivo de uso: edificios residenciales y edificios no residenciales.

 Edificios residenciales: son aquellas construcciones de las que se utilizad por lo menos la mitad para fines residenciales.

(16)

1.9. EDIFICO AUTOMATIZADO.

Es un término clásico utilizado para referirse a un edificio o vivienda que tiene algún tipo de automatismo.

El automatismo comenzó durante el siglo XIX con el desarrollo industrial, que permitía controlar y establecer secuencialmente los procesos productivos. En los edificios las primeras funciones que se controlaban era el clima, para lograr un grado de confort y el control energético, para conseguir un óptimo consumo.

1.10. EDIFICIO DOMÓTICO.

Su objetivo es asegurar al usuario de la vivienda un aumento de confort, de la seguridad, del ahorro energético y de las facilidades de comunicación. Por lo que la domótica se refiere al conjunto de técnicas utilizadas para la automatización de la gestión y la información de las viviendas unifamiliares.

El CEDOM (Asociación Española de Domótica) define la domótica como “la incorporación al equipamiento de nuestras viviendas y edificios de una sencilla tecnología que permita gestionar en forma energéticamente eficiente, segura y confortable para el usuario los distintos aparatos e instalaciones domésticas tradicionales que conforman una vivienda (la calefacción, la lavadora, la iluminación, etc.)”.

1.11. EDIFICIO INMÓTICO.

(17)

abarca edificios más grandes, con distintos fines específicos y no sólo orientados a la calidad de vida, si no a la calidad del trabajo.

El CEDOM define a la inmótica como “la incorporación al equipamiento de edificios singulares o privilegiados, comprendidos en el mercado terciario e industria, de sistema de gestión técnica automatizada de las instalaciones”.

Aunque normalmente se tiende a emplear casi siempre el concepto de sistemas domóticos cuando se trata indistintamente de viviendas o edificios, el concepto apropiado que se debe de emplear cuando se refiere a grandes edificios es el de inmótica y no el de domótica.

1.12. EDIFICO DIGITAL.

También denominado hogar digital, es un nuevo concepto que está comenzando a utilizarse como idea de lo que puede ser el hogar del próximo futuro. Su objetivo es la materialización de la convergencia de los servicios de entretenimiento, comunicaciones, gestión digital del hogar y de infraestructuras de y equipamiento mediante las comunicaciones por redes de banda ancha, formando las nuevas homework o redes del hogar.

1.13. EDIFICIO ECOLÓGICO.

(18)

Existen varios conceptos relacionados con el edificio ecológico:

 Edifico sostenible.

 Edificio geobiológico.

 Edifico bioclimático.

 Bioconstrucción.

1.14. EDIFICIOS INTELIGENTES.

El término de edificios inteligentes es muy utilizado en la actualidad, aunque el adjetivo de inteligente puede ser pretencioso. Se podría entender por edificio inteligente un edificio domotizado al que se le incorpora inteligencia artificial para simplificar el mantenimiento, hacerlo tolerante a fallos, etc. Un edificio inteligente debe ser un edificio domótico o inmótico que además presente alguna característica que se pueda considerar como inteligente, por ejemplo: el manejo inteligente de la información, la integración con el medio ambiente, la facilidad de interaccionar con los habitantes y anticiparse a sus necesidades, etc2.

2 Domótica e Inmótica. Viviendas y edificios inteligentes.

(19)

CAPÍTULO 2

(20)

Este es un proyecto donde podremos encontrar la descripción detallada de tres circuitos propuestos para mejorar las condiciones de vida dentro del hogar desde la parte eléctrica, electrónica pasando por la etapa de potencia para poder dar salida a unos elementos de campo dentro de la casa, como lo es una bomba monofásica y un par de actuadores controlados por una electroválvula, además de que encontraremos la descripción de los elementos a utilizar, de la misma forma se muestra la programación del microcontrolador 16F84, y de la interfaz gráfica de visual Basic.

Es un hecho que en este proyecto se maneja energía eléctrica como principal energía y se realiza para una casa-habitación en donde se van a manejar algunos elementos electrónicos y eléctricos es conveniente mencionar que se debe tener un adecuado sistema de instalación eléctrica para poder proteger los equipos ahí existentes.

Dicha instalación debe estar bajo las condiciones que marca la norma de instalaciones eléctricas NOM-001-SEDE-2005(ver anexos).

(21)

2.1. SENSOR DE TEMPERATURA.

Como primer elemento propuesto tenemos un sensor de temperatura, dicho sensor puede ir montado en cualquier lugar de interés personal en donde se pretenda monitorear de forma constante la temperatura del ambiente donde se encuentre el siguiente sensor.

Los siguientes son elementos que integran nuestro circuito:

2.2. SENSOR DIGITAL LM35.

A continuación se explica la descripción del LM35, que es, un sensor de

temperatura con una precisión calibrada de 1º C y un rango que abarca desde -55º a 150º C.

El sensor se presenta en diferentes encapsulados pero el mas común es el de la misma forma que un típico transistor con 3 patas, dos de ellas para alimentarlo y la tercera nos entrega un valor de tensión proporcional a la temperatura medida por el dispositivo.

(22)

Es muy importante la salida que nos da este elemento ya que es una salida lineal y equivale esto quiere decir que nos entrega valores de relación de 10mV/ºC como se observa en el diagrama 2.2.1.

Por lo tanto i tenemos las siguientes corrientes de salida, el LM35 estará censando e indicando las temperaturas equivalentes al valor de salida.

 +1500mV = 150ºC

 +250mV = 25ºC

 -550mV = -55ºC

El LM35 funciona en el rango de alimentación comprendido entre 4 y 30 voltios3.

La salida del LM35 permite que lo podamos conectar a un conversor Analógico/Digital y tratar la medida de corriente de forma digital, almacenarla o procesarla con un microcontrolador y de ahí continuar con la parte de comunicación con la computadora.

Es entonces que después tenemos nuestro siguiente dispositivo que se va a encargar de realizar una conversión de señal, más adelante encontramos una descripción más amplia.

(23)

2.3. CONVERTIDOR ANALÓGICO DIGITAL (INTEGRADO ADC0804).

Un convertidor analógico-digital, también conocido como codificador, es un dispositivo que convierte una señal analógica en una señal digital, generalmente en una señal codificada numéricamente.

Dicho convertidor se necesita como una interfase entre un componente analógico y uno digital. Por lo tanto este codificador entra entre el sensor y el microcontrolador.

De esta manera un convertidor A/D trasforma una señal analógica, por lo general en forma de tensión o corriente, en una señal digital. En la práctica, la lógica esta basada en dígitos binarios compuestos por 0 y 1 y la representación tiene un número finito de dígitos.

En el convertidor esta un sistema digital, con la ayuda de un reloj que genera un pulso cada periodo de muestreo t, entonces el convertidor A/D envía una señal digital (representada mediante un número binario) al controlador digital cada vez que el pulso llega.

(24)
[image:24.612.139.462.141.460.2]

2.3.1 ESTRUCTURA DEL ADC0804.

Figura 2.3.1.1 Estructura del ADC0804.

Características:

 Tecnología CMOS

 Tiene dos entradas analógicas que permite tener entradas diferenciales

) ( ) ( ; IN

IN V

V .

 Nosotros tendremos tensión de entrada analógica (ya que recibe la señal del sensor): VEAVIN()

(25)

 Tensión de alimentación: VCC 5V

 Resolución de 8 bits.

 Salida de 3 estados KHz

RC

F 606

) ( 1 . 1

1

 Tiempo de conversión = 100 μs

2.3.2 DESCRIPCIÓN DE TERMINALES.

CS Habilitación del microcircuito (chip select).

0 - habilitado.

1 - salida en 3 estados y no hay conversión.

RD Habilita los buffers de las salidas digitales.

RDCS 0 Con esta combinación se presenta la última conversión.

Si conectamos una computadora con esta combinación se pueden leer los datos e introducirlos a la computadora.

WR Escribir con un 0 en esta terminal se inicia el proceso de

conversión.

INTR (Interrumpir) Al inicio de la conversión esta terminal esta en alto,

cuando termina la conversión se va a bajo. Se utiliza para protocolo de comunicación.

VREF/2 Se utiliza cuando el rango de entrada no llega a 5 V. Se conecta

un voltaje externo para cambiar la referencia interno.

(26)

2 /

REF

V

Voltaje de entrada analógico.

2.25 0-4.5

1.5 0-3

Tabla 2.3.1 Tensión de Referencia.

 Reloj sal (salida de reloj). En esta terminal aparece la señal del reloj interno.

 Reloj ent. (entrada de reloj). Cuando se quiere utilizar un reloj externo aquí se conecta, y cuando se utiliza el interno se conecta un capacitor.

¿Cómo hace la conversión?

1) La señal analógica debe estar presente en la terminal VIN().

2) CS y WR en bajo.

3) INTR Manda una señal al exterior y comienza el proceso de conversión.

4) CS y WRen alto y comienza el tiempo del proceso de conversión,

entonces se debe dejar correr el tiempo de conversión de 100μs.

5) Al término de la conversión la terminal INTR avisa al exterior mandando

un pulso bajo.

6) Hay que activar CS y RD en bajo, para obtener los datos de la

conversión

7) Con CS y RD en alto las salidas están en alta impedancia.

Bien las señales que salen del codificador deben ser enviadas a un controlador es por eso que se para este proyecto vamos a utilizar un microcontrolador 16F84, y a continuación se hace una descripción de dicho microcontrolador, recordando que este se va encargar de hacer todo el control de nuestro sistema de temperatura4.

(27)

2.4. INTRODUCCIÓN AL PIC16F84.

El PIC16F84 es un microcontrolador, una especie de "ordenador en miniatura" que podremos programar. En su interior posee un microprocesador, una memoria RAM (volátil) donde guardaremos las variables, una memoria EEPROM (no volátil) donde guardaremos nuestro programa, un Timer o contador que nos facilitará algunas tareas.

Algunas características más representativas son:

 1Kbyte de memoria EEPROM para nuestro programa

 68 bytes (de 8 bits) de memoria RAM

 64 bytes de memoria EEPROM para datos (no volátiles)

 Solo 35 instrucciones

 13 pines de entrada/salida (un puerto de 8 bits + otro de 5 bits)

 Timer/contador de 8 bits5.

Podemos empezar con ver el diagrama del PIC16F84, en el cual se observa como están distribuidos sus pines. Este circuito integrado cuenta con 2 puertos configurables como entradas o salidas según sea el caso (más adelante lo veremos a mayor detalle) y consta de 18 patas (también conocidas como pines) las cuales se encuentran asignadas de la siguiente manera en la figura 2.4.1.

Figura 2.4.1 PIC16F84.

(28)

Debemos mencionar que se enumeran en forma de U, y de izquierda a derecha, en este caso RA2 es la pata o pin 1, y RA1 es la pata o pin 18 tal y como se observa en la figura 2.4.1.

[image:28.612.207.407.218.534.2]

La siguiente es la tabla 2.4.1, que nos muestra la organización de los pines del microcontrolador.

Tabla 2.4.1 Organización de los Pines del Microcontrolador.

El puerto A el cual tiene sólo cinco (RA0, RA1, RA2, RA3, RA4/TOCKI) pines que se pueden configurar como entrada o salida. La pata 3, o sea, RA4/TOCKI puede ser configurado a su vez como entrada/salida o como temporizador/contador. Cuando es salida se comporta como colector abierto, por lo tanto debemos poner una resistencia Pull-up a Vcc de 1 Kohm. Cuando es configurada como entrada,

funciona como disparador Schmitt Trigger por lo que puede reconocer señales con

1 Pata 1 RA2

2 Pata 2 RA3

3 Pata 3 RA4/TOCKI

4 Pata 4 MCLR

5 Pata 5 Tierra (GND)

6 Pata 6 RB0/INT

7 Pata 7 RB1

8 Pata 8 RB2

9 Pata 9 RB3

10 Pata 10 RB4 11 Pata 11 RB5 12 Pata 12 RB6 13 Pata 13 RB7 14 Pata 14 Vcc

15 Pata 15 OSC1/CLKIN 16 Pata 16 SC2/CLKOU 17 Pata 17 RA0

(29)

El puerto B tiene ocho pines (RB0/INT, RB1, RB2, RB3, RB4, RB5, RB6, RB7) que igualmente se pueden configurar como entrada o salida. Los pines 15 y 16 son únicamente para el oscilador externo. El pin 4, o sea, el MCLR (Reset) se debe conectar con una resistencia de 10 Kohm a Vcc para que el PIC funcione, si lo

queremos resetear entonces pondremos un micropulsador con una resistencia de 100 Ohm a tierra.

La máxima capacidad de corriente para los puertos se muestra en la tabla 2.4.2.

PUERTO A PUERTO B

MODO

SUMIDERO 80 mA 150 mA

MODO

[image:29.612.207.406.276.364.2]

FUENTE 50 mA 100 mA

Tabla 2.4.2 Capacidad de corriente para los puertos.

Por último tenemos los pines 14 (Tierra (GND)) y 5 (Vcc) que son la alimentación la

cual no debe sobrepasar los 5 Volts.

Es importante denotar que los pines de los puertos no utilizados los debemos conectar a +5V (Vcc) con una resistencia de 10 Kohm6.

OSC1/CLKIN y OSC2/CLKOUT: son para el oscilador, los tipos de osciladores más usados son el XT (cristal de cuarzo) y el RC (resistencia y condensador) el modo de conexión dado es el siguiente, y se puede ver en la tabla 2.4.3.

(30)

XT cristal y dos condensadores. Oscilador compuesto por un

C1=C2=22pF

Crystal = 4MHz

RC Oscilador compuesto por una

resistencia y un condensador.

C1 alrededor de 20pF

[image:30.612.108.491.95.478.2]

R1 = 100K, ó 5K

Tabla 2.4.3 Conexión de los osciladores XT y RC.

Nosotros proponemos utilizar un oscilador del tipo XT.

Algunos de los pines tienen varias funciones, en la tabla 2.4.4 se describe cada uno de ellos7.

(31)

Pin Nombre Tipo Funciones

16 OSC1/CLKIN Input Señal 1 del Cristal oscilador. En modo RC, señal proveniente del oscilador RC.

15 OSC2/CLKOUT Output Señal 2 del Cristal oscilador. En modo RC, se genera una señal de salida (CLKOUT), que tiene ¼ de la frecuencia de la señal en OSC1 y determina el ciclo de instrucción.

4 MCLR Input Señal de reset externa. En modo de programación, recibe una señal de 12 a 13 Volts.

17 RA0 Bi Señal de entrada o salida. 18 RA1 Bi Señal de entrada o salida. 1 RA2 Bi Señal de entrada o salida. 2 RA3 Bi Señal de entrada o salida.

3 RA4/T0CLK1 Bi Señal de entrada o salida. También puede programarse para ser la entrada de reloj para el registro TMR0.

6 RB0/INT Bi Señal de entrada o salida. También puede programarse para funcionar como interrupción externa.

7 RB1 Bi Señal de entrada o salida. 8 RB2 Bi Señal de entrada o salida. 9 RB3 Bi Señal de entrada o salida. 10 RB4 Bi Señal de entrada o salida. 11 RB5 Bi Señal de entrada o salida.

12 RB6 Bi Señal de entrada o salida. En modo de programación, es una entrada de reloj para sincronizar los datos seriales.

13 RB7 Bi Señal de entrada o salida. En modo de programación. Es una señal con datos en formato serial.

5 Vss 5 V. Alimentación del circuito.

[image:31.612.86.530.82.572.2]

14 Vdd GND Tierra del circuito.

(32)

2.4.1 ORGANIZACIÓN DE LA MEMORIA.

En primer lugar tenemos que distinguir claramente entre tres tipos de memoria:

 La primera es la memoria EEPROM donde almacenaremos el programa que haremos, esta memoria solo podrá ser leída por el PIC (el PIC va leyendo las instrucciones del programa almacenado en esta memoria y las va ejecutando). Por cierto a que recordar que al apagar el PIC esta memoria no se borra.

 La segunda es la memoria RAM en cuyos registros se irán almacenando los valores de las variables que nosotros queramos y cuando nosotros queramos (por programa), al apagar el PIC esta memoria se borra.

 Y la tercera es la memoria EEPROM para datos, es un espacio de memoria EEPROM en la que se pueden guardar variables que queremos conservar aunque se apague el PIC.

2.4.2. LA MEMORIA EEPROM Ó MEMORIA DE PROGRAMA.

El espacio marcado como "User Memory Space" es el espacio de memoria donde irá nuestro programa, comprende las direcciones de memoria desde la 0000h hasta la 3FFh (3FFh en decimal es 1023, mas la dirección 0000h hacen 1024 direcciones, es decir, 1Kbyte).

"Reset Vector" es la primera dirección a la que se dirige el PIC al encenderlo o al resetearlo.

(33)
[image:33.612.216.390.90.386.2]

Figura 2.4.2.1 Distribución de la memoria RAM.

2.4.3 LA MEMORIA RAM.

La memoria RAM no solo se usa para almacenar nuestras variables, también se almacenan una serie de registros que configuran y controlan el PIC.

Podemos observar en la figura 6.3-1.1 que esta memoria esta dividida en dos bancos, el banco 0 y el banco 1, antes de acceder a un registro de esta memoria tenemos que preguntarnos en que banco estamos, generalmente se trabaja en el banco 0, ya veremos mas adelante como cambiamos de banco de memoria.

(34)
[image:34.612.201.410.141.540.2]

Podremos acceder al resto de registros para cambiar la configuración o el estado del PIC, figura 2.4.3.1.

(35)

2.4.4 REGISTROS INTERNOS.

A continuación se explican todos los registros de configuración y control de la memoria RAM. Estos registros se usan para controlar los pines del PIC, y para consultar los resultados de las operaciones de la ALU (unidad aritmética lógica).

EN BANCO “0”.

 INDF (direccionamiento indirecto): Dirección 00h, sirve para ver el dato de la dirección a la que apunta el registro FSR (dir. 04h) que veremos mas adelante.

 TMR0 (Timer/contador): Dirección 01h, Aquí se puede ver el valor en tiempo real del Timer/contador. También se puede introducir un valor y alterar así el conteo. Este conteo puede ser interno (cuenta ciclos de reloj) o externo (cuenta pulsos introducidos por RA4).

 PCL (Parte baja del contador de programa): Dirección 02h, Modificando este registro se modifica el contador de programa, este contador de programa es el que señala al PIC en que dirección (de EEPROM) tiene que leer la siguiente instrucción. Esto se utiliza mucho para consultar tablas.

 STATUS: Dirección 03h, este es uno de los registros mas importantes y el que mas vas a utilizar. Hay que analizar el funcionamiento de este registro bit a bit.

(36)

no se baja solo a “0”, hay que hacerlo por programa si queremos volverlo a utilizar.

 DC (digit carry), Dirección STATUS, 1 (bit 1): lo mismo que el anterior pero esta vez nos avisa si el número no cabe en cuatro bits.

 Z (zero), Dirección STATUS, 2 (bit 2): Se pone a "1" si la operación anterior ha sido cero. Y pasa a "0" si la operación anterior no ha sido cero. Se usa para comprobar la igualdad entre dos números (restándolos, si el resultado es cero ambos números son iguales).

 PD (Power - Down bit), Dirección STATUS, 3 (bit3) se pone a "0" después de ejecutar la instrucción SLEEP, se pone a "1" después de ejecutar la instrucción CLRWDT o después de un power-up.

 TO (Timer Up), Dirección STATUS, 4 (bit4) se pone a "0" cuando se acaba el tiempo del WATCHDOG, Se pone a "1" después de ejecutar las instrucciones, CLRWDT o SLEEP o después de un power-up.

 RP0 y RP1 (selección de banco), Dirección STATUS 5 y STATUS 6. Como el PIC16F84 solo tiene dos bancos de memoria el RP1 no se usa para nada, la selección del banco se hace mediante RP0 (STATUS 5), si está a "0" nos encontramos en el banco 0, y si está a "1" nos encontramos en el banco 1.

 IRP, Dirección STATUS 7, En este PIC no se usa para nada.

 FSR (Puntero), Dirección 04h, se usa para direccionamiento indirecto en combinación con el registro INDF (dirección 00h): se carga la dirección del registro que queremos leer indirectamente en FSR y se lee el contenido de dicho registró en INDF.

(37)

Correspondencia:

 RA0 ==> PORTA,0

 RA1 ==> PORTA,1

 RA2 ==> PORTA,2

 RA3 ==> PORTA,3

 RA4 ==> PORTA,4

 PORTB (Puerto B), Dirección 06h igual que PORTA pero con el puerto B

Correspondencia:

 RB0 ==> PORTB,0

 RB1 ==> PORTB,1

 RB2 ==> PORTB,2

 RB3 ==> PORTB,3

 RB4 ==> PORTB,4

 RB5 ==> PORTB,5

 RB6 ==> PORTB,6

 RB7 ==> PORTB,7

 Dirección 07h, No utilizada por este PIC.

 EEDATA, Dirección 08h. En este registro se pone el dato que se quiere grabar en la EEPROM de datos

 EEADR, Dirección 09h. En este registro se pone la dirección de la EEPROM de datos donde queremos almacenar el contenido de EEDATA

 PCLATH, Dirección 0Ah. Modifica la parte alta del contador de programa (PC), el contador de programa se compone de 13 bits, los 8 bits de menor peso se pueden modificar con PCL (dirección 02h) y los 5 bits de mayor peso se pueden modificar con PCLATH.

(38)

 RBIF (Flag de interrupción por cambio de PORTB) Dirección INTCON, 0 (bit 0) se pone a "1" cuando alguno de los pines RB4, RB5, RB6, o RB7 cambia su estado. Una vez que está a "1" no pasa a "0" por si mismo: hay que ponerlo a cero por programa.

 INTF (Flag de interrupción de RB0) Dirección INTCON, 1. Si está a "1" es que ha ocurrido una interrupción por RB0, si está a "0" es que dicha interrupción no ha ocurrido. Este bit es una copia de RB0.

 TOIF (Flag de interrupción por desbordamiento de TMR0) Dirección INTCON, 2. Cuando TMR0 se desborda este Flag avisa poniéndose a "1". Poner a "0" por programa.

 RBIE (Habilita la interrupción por cambio de PORTB) Dirección INTCON, 3. Si está a "1" las interrupciones por cambio de PORTB son posibles.

 INTE (Habilita la interrupción por RB0) Dirección INTCON, 4. Si lo ponemos a "1" la interrupción por RB0 es posible.

 TOIE (Habilita la interrupción por desbordamiento de TMR0) Dirección INTCON, 5. Si este bit esta a "1" la interrupción por desbordamiento de TMR0 es posible.

 EEIE (Habilita la interrupción por fin de escritura en la EEPROM de datos) Dirección INTCON, 6. Cuando este bit está a "1" la interrupción cuando acaba la escritura en la EEPROM de datos es posible.

 GIE (Habilita las interrupciones globalmente) Dirección INTCON, 7. Este bit permite que cualquier interrupción de las anteriores sea posible. Para usar alguna de las interrupciones anteriores hay que habilitarlas globalmente e individualmente.

En BANCO “1”.

 INDF, Dirección 00h, Igual que en el Banco 0

(39)
[image:39.612.215.397.213.374.2]

 PS0, PS1 y PS2 (Bits del 0 al 2) Configuración del prescaler: El prescaler es un divisor de pulsos que está a la entrada del Timer-contador. El prescaler divide el número de pulsos que le entran al timer-contador o al Wachtdog. El factor de división es el siguiente (según los valores de PS2, PS1 y PS0 respectivamente. Se puede ver en la tabla 2.4.1.1.

Tabla 2.4.4.1 Factor de División PS2, PS1 PS0.

 PSA, Dirección OPTION 3. Bit de asignación de prescaler: si está a "1" el prescaler se asigna a WDT (Wachtdog), si está a "0" se asigna al TMR0.

 TOSE, Dirección OPTION 4. Bit de selección del tipo de flanco para TMR0. A "1" se incrementa TMR0 por flanco descendente de RA4, a "0" se incrementa TMR0 por flanco ascendente de RA4.

 TOCS, Dirección OPTION 5. Selecciona la entrada de reloj de TMR0. A "1" la entrada de reloj de TMR0 es por flanco de la patilla RA4, a "0" la entrada de reloj de TMR0 es por ciclo de reloj interno.

 INTEDG, Dirección OPTION 6. Tipo de flanco para la interrupción por RB0: A "1" la interrupción será por flanco ascendente, a "0" la interrupción será por flanco descendente.

 RBPU, dirección OPTION 7. Carga Pull-Up en puerto B. A "0" todas las salidas del puerto B tendrán una carga de pull-Up interna.

 PCL, Dirección 02h, igual que en el banco 0.

 STATUS, Dirección 03h, Igual que en el banco 0. Bit Value TMR Rate WDT Rate

0 1:2 1:1

1 1:4 1:2

10 1:8 1:4

11 1:16 1:8

100 1:32 1:16

101 1:64 1:32

110 1:128 1:64

(40)

 FSR, Dirección 04h, Igual que en el banco 0.

 TRISA, Dirección 05h, Configura el puerto A como entrada o salida. Si un bit de este registro se pone a "0" el pin correspondiente en el puerto A será una salida, por el contrario, si se pone a "1" el pin correspondiente en el puerto A será una entrada.

 TRISB, Dirección 06h, Igual que el anterior pero con el puerto B.

 Dirección 07h, No usada en este PIC.

 EECON1, Dirección 08h, Controla la lectura y escritura en la EEPROM de datos. Se estudia bit a bit.

 RD, Dirección EECON1, 0 (bit 0) A "1" iniciamos el ciclo de lectura, cuando acaba el ciclo se pone a "0" el solito realiza la operación.

 WR, Dirección EECON1, 1 (bit 1) A "1" indicamos que comienza el ciclo de escritura, cuando acaba el ciclo se pone a "0" él solito realiza la operación.

 WREN, Dirección EECON1, 2 (bit 2) si lo ponemos a "1" se permite la escritura, a "0" no se permite.

 WRERR, Dirección EECON1, 3 (bit 3) error de escritura, si está a "1" indica que no se ha terminado el ciclo de escritura.

 EEIF, Dirección EECON1, 4 (bit 4) interrupción de ciclo de escritura de la EEPROM, si está a "1" indica que el ciclo de escritura ha terminado, hay que ponerlo a "0" por programa.

 Bits del 5 al 7 no se utilizan.

 EECON2, Dirección 09h, Se utiliza para la escritura en la EEPROM de datos como medida de seguridad: para poder guardar algo en la EPROM hay que cargar el valor 55h en este registro.

 PCLATH, Dirección 0Ah, Igual que en el banco 0.

(41)

2.4.5 SET DE INSTRUCCIONES DEL PIC16F84.

Para entender mejor cada instrucción se explica a continuación el significado de algunos parámetros:

 f: Registro al que afecta la instrucción

 W: Acumulador (Working register)

 b: Número de bit (hay instrucciones que afectan a un solo bit)

 k: constante (un número)

 d: selección de destino del resultado de la instrucción, puede ser "0" o "1", si es "0" el resultado se guarda en el acumulador (W) y si es "1" se guarda en el registro f al que afecta la instrucción.

2.4.6 INSTRUCCIONES ORIENTADAS A REGISTROS.

 ADDWF f, d Suma W y el registro f, el resultado lo guarda según d (si d=0 se guarda en W y si d=1 se guarda en f).

 ANDWF f, d Realiza la operación AND lógica entre W y f, el resultado lo guarda según d.

 CLRF f Borra el registro f (pone todos sus bits a cero).

 CLRW Borra el acumulador.

 COMF f, d Calcula el complementario del registro f (los bits que están a "0" los pone a "1" y viceversa. Resultado según d.

 DECF f, d Decremento de f en uno (le resta uno). Resultado según d.

 DECFSZ f, d Decremento f y se salta la siguiente instrucción si el resultado es cero. Resultado según d.

 INCF f, d Incrementa f en uno (le suma uno). Resultado según d.

 INCFSZ f, d Incrementa f y se salta la siguiente instrucción si el resultado es cero (cuando se desborda un registro vuelve al valor 00h). Resultado según d.

(42)

 MOVF f, d Mueve el contenido del registro f a W si d=0 (si d=1 lo vuelve a poner en el mismo registro)

 MOVWF f mueve el valor de W a f.

 NOP No hace nada, solo pierde el tiempo durante un ciclo.

 RLF f, d Rota el registro f hacia la izquierda a través del bit CARRY (todos los bits se mueven un lugar hacia la izquierda, el bit 7 de f pasa al CARRY y el bit CARRY pasa al bit 0 de f). Resultado según d.

 RRF f, d Lo mismo que RLF pero hacia la derecha.

 SUBWF f, d Resta f y W (f - W). Resultado según d.

 SWAPF f, d intercambia los 4 primeros bits de f por los otros cuatro. Resultado según d.

 XORWF f, d Realiza la operación lógica XOR (OR exclusiva) entre W y f. Resultado según d.

Lo que se pone después de “;” solo son comentarios para el programa.

2.4.7 INSTRUCCIONES ORIENTADAS A BITS.

 BCF f, b Pone a "0" el bit b del registro f

 BSF f, d Pone a "1" el bit b del registro f

 BTFSC f, b Se salta la siguiente instrucción si el bit b del registro f es "0"

 BTFSS f, b Se salta la siguiente instrucción si el bit b del registro f es "1"

2.4.8 INSTRUCCIONES ORIENTADAS A CONSTANTES DE CONTROL.

 ADDLW k Le suma el valor k al acumulador (W).

 ANDLW k Operación lógica AND entre W y el valor k (resultado en W).

 CALL k Llamada a subrutina cuyo inicio esta en la dirección k.

 CLRWDT - Borra el registro Watch dog.

 GOTO k Salta a la dirección k de programa.

 IORLW k Operación lógica OR entre W y el valor k (resultado en W).

(43)

 RETFIE - Instrucción para volver de la interrupción.

 RETLW k carga el valor k en W y vuelve de la interrupción.

 RETURN - vuelve de una subrutina.

 SLEEP - El PIC pasa a modo de Stand by

2.4.9 INSTRUCCIONES PARA EL ENSAMBLADOR.

Existen una serie de instrucciones que son para el ensamblador y nos hacen la tarea de programación más sencilla y más legible.

 EQU: Un ejemplo de esto son las etiquetas, podemos poner un nombre a un registro de memoria, esto se hace mediante la instrucción EQU.

 #DEFINE: Otra instrucción para el ensamblador que usaremos será la instrucción #DEFINE. Es parecido a EQU, solo que aquí no ponemos etiquetas a un registro, podemos ponerla a una instrucción entera,

 ORG: Indica al ensamblador la dirección (de memoria de programa) donde se guardará la instrucción que vaya a continuación.

 END: Se escribe al final del programa para indicar que ya ha acabado. (es obligatorio, si no da error).

 Etiquetas a direcciones de Programa: muy útiles para usar con instrucciones CALL (Llamada a subrutina) o GOTO (Salto).

2.4.10 SUBRUTINAS.

(44)
[image:44.612.218.390.87.279.2]

Figura 2.4.10.1 Subrutinas.

Cuando se produce una interrupción el PIC deja automáticamente lo que esté haciendo, va directo a la dirección 04h de programa y ejecuta lo que encuentre a partir de allí hasta encontrarse con la instrucción RETFIE que le hará abandonar la interrupción y volver al lugar donde se encontraba antes de producirse dicha interrupción.

Para que se pueda producir una interrupción hay que habilitar las interrupciones globalmente y la interrupción en concreto que queremos utilizar (con el registro INTCON). Este PIC tiene 4 tipos de posibles interrupciones:

1. Por cambio en los bits RB4-RB7. 2. Por el estado de RB0.

3. Por desbordamiento del Timer-contador.

4. Por fin de ciclo de escritura de la EEPROM de datos.

Mientras se está ejecutando una interrupción no se puede producir otra interrupción, el PIC no lo permite.

(45)

modificados en la propia interrupción, como el acumulador o el STATUS. Para que la interrupción no eche a perder el buen funcionamiento del programa principal conviene guardar los valores de estos registros en otras variables que no vayamos a modificar. Antes de salir de la interrupción volvemos a restaurar los valores guardados y todo solucionado8.

2.4.11 TIMER - CONTADOR TMR0.

El registro TMR0 puede contar ciclos de instrucción interna o pulsos de entrada por RA4 según el valor del bit 5 del registro OPTION (TOCS). Si este bit está a "1" TMR0 cuenta pulsos por RA4 y se le llama Contador; si el bit está a "0" cuenta ciclos de instrucción interna y se le llama Timer.

Cada ciclo de instrucción dura 4 veces el ciclo del reloj del PIC (para un reloj de 4MHz ==> Ciclo reloj=0,25 µSeg ==> Ciclo instrucción = 4 X 0,25 = 1µSeg).

Cuando lo usamos como contador (Por RA4) podemos determinar si el incremento se hará por flanco ascendente o descendente con el bit 4 del registro OPTION (TOSE).

Podemos leer o escribir el registro TMR0 en cualquier momento. Cuando escribamos en él deja de contar durante dos ciclos, cuando lo leamos no pasa nada.

Podemos asignar el prescaler al TMR0 , si hacemos esto podemos elegir el factor en el que se verá dividido el conteo mediante los bits del 0 al 2 del registro OPTION según la tabla del factor de división .

8

Microcontrolador PIC 16F84. Desarrollo de Proyectos. Enrique Palacios Municio Fernando Remiro Domínguez, Lucas J. López Pérez.

(46)

También podemos utilizar la interrupción que se produce cuando se desborda el TMR0, es decir, cuando pasa de FFh a 00h. (Se configura desde el registro INTCON).

2.4.12 PULSADORES E INTERRUPTORES (REBOTES).

Es muy normal usar pulsadores o interruptores en alguna de las entradas del PIC para controlarlo. Estos pulsadores no hacen una conexión perfecta e instantánea como podemos pensar, un pulsador se compone de dos partes de metal que entran en contacto (choca una con la otra) al accionarlo. Este choque genera unos pequeñísimos rebotes que suceden tan rápido que son imperceptibles para nosotros, sin embargo, no lo son para el PIC que trabaja a esas velocidades. Esto es un problema muy común que puede provocar problemas si no lo conocemos. La siguiente figura 2.4.12.1 muestra lo que pasaría al accionar un pulsador.

Figura 2.4.12.1 Pulsador.

La solución es sencilla, basta con añadir un pequeño retardo en nuestro programa desde que se detecta el primer pulso hasta que se vuelve a leer la entrada del pulsador. Dicho retardo debe ser suficientemente largo para asegurar que cuando finalice ya se hayan extinguido los rebotes, pero también suficientemente corto para que sea imperceptible para nosotros9.

(47)
(48)

2.5. MPLAB-IDE.

MPLAB-IDE es una Plataforma de Desarrollo Integrada bajo Windows, con múltiples prestaciones, que permite escribir el programa para los PIC en lenguaje ensamblador (assembler), crear proyectos, ensamblar o compilar, simular el programa y finalmente programar el componente, si se cuenta con el programador adecuado(quemador).

MPLAB incorpora todas las utilidades necesarias para la realización de cualquier proyecto, el programa permite editar el archivo fuente en lenguaje ensamblador de nuestro proyecto, además de ensamblarlo y simularlo en pantalla, para poder ejecutarlo posteriormente en modo paso a paso y ver como evolucionarían de forma real tanto sus registros internos, la memoria RAM y EEPROM de usuario como la memoria de programa, según se fueran ejecutando las instrucciones.

Nos vamos a centrar en la versión 7.50 de Microchip. Que se muestra en la figura 2.5.1.1.

2.5.1 PARTES DE MPLAB-IDE.

EDITOR: Editor incorporado que permite escribir y editar programas u otros archivos de texto.

PROJECT MANAGER: Organiza los distintos archivos relacionados con un programa en un proyecto. Permite crear un proyecto, editar y simular un programa. Además crea archivos objetos y permite bajar archivos hacia emuladores (MPLAB-ICE) o simuladores de hardware (SIMICE).

SIMULADOR: Simulador de eventos discretos que permite simular programas con ilimitados breakpoint, examinar/modificar registros, observar variables, tiempos y simular estímulos externos.

(49)
[image:49.612.119.495.161.455.2]

LINKER: Permite unir varios archivos objetos en uno solo, generados por el ensamblador o compiladores C como MPAB-C18 o compiladores de terceros10.

Figura 2.5.1.1 MPLAB-IDE.

Debemos recordar que el PIC entrega señal digital, ¿Cómo vamos hacer para que se comunique con la computadora?, bueno para responder a esta pregunta debemos anexar otro componente electrónico el cual se encarga de comunicarse con la PC a través de puerto RS232 por medio del cable de comunicación DB9, más adelante veremos esto con mayor detalle, por ahora explicaremos el circuito integrado MAX232.

(50)

2.6. MAX232.

Para poder comunicar un microcontrolador con la computadora, es recomendable hacerlo a través de un circuito integrado llamado MAX232, dicho circuito regula los niveles de tensión para poder enviar información en forma de señales digitales a través de la línea RS23211.

Así el MAX232 soluciona la conexión necesaria para lograr comunicación entre el puerto serie de una PC y cualquier otro circuito con funcionamiento en base a señales de nivel TTL/CMOS.

El circuito integrado posee dos conversores de nivel TTL a RS232 y otros dos que, a la inversa, convierten de RS232 a TTL.

Estos conversores son suficientes para manejar las cuatro señales más utilizadas del puerto serie del PC, que son TX, RX, RTS y CTS.

TX es la señal de transmisión de datos, RX es la de recepción, y RTS y CTS se utilizan para establecer el protocolo para el envío y recepción de los datos.

Además este circuito necesita de 5 V para su funcionamiento.

A continuación en la figura 2.6.1 se muestra la estructura del integrado MAX23212.

Donde se puede ver todo lo mencionado anteriormente además de que se ve la estructura interna del mismo.

11 http://robots-argentina.com.ar/Comunicacion_max232.htm

(51)
[image:51.612.200.396.92.455.2]

Figura 2.6.1 Estructura del Integrado MAX32.

Como se observa en la figura 2.6.1, el MAX232 dispone internamente de 4 conversores de niveles TTL al bus estándar RS232 y viceversa.

Para que el MAX232 funcione correctamente deberemos de poner unos condensadores externos, todo esto lo podemos ver en el mismo diagrama.

(52)

2.7. PROTOCOLO RS-232.

Tenemos que el puerto serial de las computadoras es conocido como puerto RS-232, la ventaja de este puerto es que todas las computadoras traen al menos un puerto serial, este permite la comunicaciones entre otros dispositivos tales como una computadora, el mouse, la impresora y para nuestro caso con los microcontroladores y los elementos montados en campo.

Existen dos formas de intercambiar información binaria: de forma paralela y de forma serial. La comunicación paralela transmite todos los bits de un dato de maneras simultánea, por lo tanto la velocidad de transferencia es rápida, sin embargo tiene la desventaja de utilizar una gran cantidad de líneas, es por ello que se vuelve mas costoso y tiene las desventaja de atenuarse a grandes distancias, por la capacitancia entre conductores así como sus parámetros distribuidos.

2.7.1 TIPOS DE COMUNICACIONES SERIALES.

Existen dos tipos de comunicaciones seriales: la síncrona y asíncrona.

En la comunicación serial síncrona, se necesitan 2 líneas, una línea sobre la cual se transmitirán los datos y otra la cual contendrá los pulsos de reloj que indicaran cuando un dato es valido.

En la comunicación serial asíncrona, no son necesarios los pulsos de reloj. La duración de cada bit esta determinada por la velocidad con la cual se realiza la transferencia de datos.

(53)

correspondientes al dato, empezando siempre por el BIT menos significativo (LSB), y terminando con el BIT mas significativo.

Debemos sincronizar el receptor con el transmisor, esto quiere decir que el transmisor y el receptor deberán tener los mismos parámetros de velocidad, paridad, número de bits del dato transmitido y de BIT de parada.

2.7.2 LA NORMA RS-232.

Debido a que existe un gran aumento de equipos de control y automatización, y se debe realizar comunicación entre ellos, en este protocolo surgió la necesidad de un acuerdo que permitirá a los equipos de varios fabricantes comunicarse entre si. Así que la EIA (Electronics Industry Association) elaboro la norma RS-232, la cual define la interfase mecánica, los pines, las señales y los protocolos que debe cumplir la comunicación serial.

Entonces esta norma especifica que el RS-232 debe cumplir con los siguientes niveles de tensión:

Para un “1” lógico es una tensión comprendida entre –5V y –15V en el transmisor y entre -3V y –25V en el receptor.

De la misma forma para un “0” lógico es una tensión comprendido entre +5V y +15V en el trasmisor y entre +3V y +25V en el receptor.

(54)

cuando se trabaja con familias con tecnología TTL/CMOS se asume que un “0” lógico es igual a cero V, y un “1” lógico es igual a 5V.

La importancia de conocer esta norma, radica en los niveles de tensión que maneja el puerto serial del ordenador, ya que son diferentes a los que utilizan los microcontroladores y los demás circuitos integrados. Por lo tanto se necesita de una interfase que haga posible la conversión de niveles de tensión y para esto utilizamos el circuito integrado MAX232 anteriormente descrito13.

Para que la transmisión de datos se pueda realizar de los elementos de campo a la PC, lo hacemos a través de cable DB9, este es el medio físico por el cual se realizará, aquí presentamos una explicación acerca de este conector.

13 Serial Port Complete Programming and Circuits for RS-232 and RS-485 Links and Networks.

(55)

2.8. CONECTOR DB9.

El conector DB9 es un cable de comunicación, con dos extremos de forma DB9; se llama así porque tiene la forma de una D; y tiene el numero 9 porque tiene 9 pines de conexión (patitas).

Este tipo de conector se encuentras en la parte posterior de la computadora; pero en la PC hay conectores DB9 macho, por el que se conectan los dispositivos al puerto serie. Sin embargo los conectores hembra que se enchufan tienen una colocación de pines diferente, de manera que se conectan el pin 1 del macho con el pin 1 del hembra, el pin2 con el 2, y así sucesivamente como se observa en la figura 2.8.1.

Figura 2.8.1 Conector DB9 macho y hembra.

La información asociada a cada uno de los pines es de la tabla 2.8.1.

Número de pin Señal

1 DCD (Data Carrier Detect)

2 RX

3 TX

4 DTR (Data Terminal Ready)

5 GND

6 DSR (Data Sheet Ready)

7 RTS (Request To Send)

8 CTS (Clear To Send)

9 RI (Ring Indicador)

(56)

Las características de los pines y su nombre típico son:

TX Transmitir Datos Señal de salida

RX Recibir Datos Señal de entrada

RTS Solicitud de envió Señal de salida

DTR Terminal de datos listo Señal de salida

CTS Libre para envió Señal de entrada

DSR Equipo de datos listo Señal de entrada

DCD Detección de portadora Señal de entrada

GND Tierra Referencia para señales

RI Indicador de llamada Señal de entrada

Los pines que portan los datos son RX y TX los demás se encargan de otros trabajos, el DTR indica que el ordenador esta encendido, DSR que el dispositivo conectado al puerto esta encendido, RTS que el ordenador al no estar ocupado puede recibir datos, al revés de CTS que lo que informa es que es el dispositivo el que puede recibir datos, DCD detecta que existen presencia de datos, etc.14.

Antes de iniciar cualquier comunicación con el puerto RS232 se debe de determinar el protocolo a seguir dado que el estándar del protocolo no permite indicar en que modo se esta trabajando, es la persona que utiliza el protocolo el que debe decidir y configurar ambas partes antes de iniciar la transmisión de datos.

(57)

Siendo los parámetros a configurar los siguientes:

 Protocolo serie (numero bits-paridad-bits stop).

 Velocidad de puerto.

 Protocolo de control de flujo (RTS/CTS o XON/XOFF).

(58)

2.9. VISUAL BASIC.

Visual Basic 6.0 es una excelente herramienta de programación que permite crear aplicaciones propias (programas) para Windows. Con ella se puede crear desde una simple calculadora hasta una hoja de cálculo de la talla de Excel (en sus primeras versiones...), pasando por un procesador de textos o cualquier otra aplicación que se le ocurra al programador. Sus aplicaciones en Ingeniería son casi ilimitadas: representación de movimientos mecánicos o de funciones matemáticas, gráficas termodinámicas, simulación de circuitos, etc.

Este programa permite crear ventanas, botones, menús y cualquier otro elemento de Windows de una forma fácil e intuitiva. El lenguaje de programación que se utilizará será el Basic.

Visual Basic 6.0 es uno de los lenguajes de programación que más entusiasmo despiertan entre los programadores, tanto expertos como novatos. En el caso de los programadores expertos por la facilidad con la que desarrollan aplicaciones complejas en poquísimo tiempo (comparado con lo que cuesta programar en Visual C++, por ejemplo).

En el caso de los programadores novatos por el hecho de ver de lo que son capaces a los pocos minutos de empezar su aprendizaje. El precio que hay que pagar por utilizar Visual Basic 6.0 es una menor velocidad o eficiencia en las aplicaciones.

(59)

Visual Basic 6.0 es también un programa basado en objetos, aunque no orientado a objetos como C++ o Java. La diferencia está en que Visual Basic 6.0 utiliza objetos con propiedades y métodos, pero carece de los mecanismos de herencia y polimorfismo propios de los verdaderos lenguajes orientados a objetos como Java y C++.

2.9.1 PROGRAMAS SECUENCIALES, INTERACTIVOS Y ORIENTADOS A EVENTOS.

Existen distintos tipos de programas. En los primeros tiempos de los ordenadores los programas eran de tipo secuencial (también llamados tipo batch). Un programa secuencial es un programa que se arranca, lee los datos que necesita, realiza los cálculos e imprime o guarda en el disco los resultados. De ordinario, mientras un programa secuencial está ejecutándose no necesita ninguna intervención del usuario. A este tipo de programas se les llama también programas basados u orientados a procedimientos o a algoritmos.

Los programas interactivos exigen la intervención del usuario en tiempo de ejecución, bien para suministrar datos, bien para indicar al programa lo que debe hacer por medio de menús. Los programas interactivos limitan y orientan la acción del usuario. Un ejemplo de programa interactivo podría ser Matlab.

Por su parte los programas orientados a eventos son los programas típicos de Windows, tales como Netscape, Word, Excel y PowerPoint. Cuando uno de estos programas ha arrancado, lo único que hace es quedarse a la espera de las acciones del usuario, que en este caso son llamadas eventos.

(60)

acciones que el usuario puede realizar en un momento determinado son variadísimas, y exigen un tipo especial de programación: la programación orientada a eventos. Este tipo de programación es sensiblemente más complicada que la secuencial y la interactiva, pero Visual Basic 6.0 la hace especialmente sencilla y agradable.

2.9.2 PROGRAMAS PARA EL ENTORNO WINDOWS.

Visual Basic 6.0 está orientado a la realización de programas para Windows, pudiendo incorporar todos los elementos de este entorno informático: ventanas, botones, cajas de diálogo y de texto, botones de opción y de selección, barras de desplazamiento, gráficos, menús, etc.

Prácticamente todos los elementos de interacción con el usuario de los que dispone Windows 95/98/NT pueden ser programados en Visual Basic 6.0 de un modo muy sencillo. En ocasiones bastan unas pocas operaciones con el ratón y la introducción a través del teclado de algunas sentencias para disponer de aplicaciones con todas las características de Windows.

2.9.3 MODO DE DISEÑO Y MODO DE EJECUCIÓN.

La aplicación Visual Basic de Microsoft puede trabajar de dos modos distintos: en modo de diseño y en modo de ejecución. En modo de diseño el usuario construye interactivamente la aplicación, colocando controles en el formulario, definiendo sus propiedades, y desarrollando funciones para gestionar los eventos.

(61)

Hay algunas propiedades de los controles que deben establecerse en modo de diseño, pero muchas otras pueden cambiarse en tiempo de ejecución desde el programa escrito en Visual Basic 6.0.

2.9.4 FORMULARIOS Y CONTROLES.

Cada uno de los elementos gráficos que pueden formar parte de una aplicación típica de Windows es un tipo de control: los botones, las cajas de diálogo y de texto, las cajas de selección despegables, los botones de opción y de selección, las barras de desplazamiento horizontales y verticales, los gráficos, los menús, y muchos otros tipos de elementos son controles para Visual Basic 6.0. Cada control debe tener un nombre a través del cual se puede hacer referencia a él en el programa. Visual Basic 6.0 proporciona nombres de inicio que el usuario puede modificar.

En la terminología de Visual Basic 6.0 se llama formulario (form) a una ventana. Un formulario puede ser considerado como una especie de contenedor para los controles. Una aplicación puede tener varios formularios, pero un único formulario puede ser suficiente para las aplicaciones más sencillas. Los formularios deben también tener un nombre, que puede crearse siguiendo las mismas reglas que para los controles.

Cada formulario y cada tipo de control tienen un conjunto de propiedades que definen su aspecto gráfico (tamaño, color, posición en la ventana, tipo y tamaño de letra, etc.) y su forma de responder a las acciones del usuario (si está activo o no, por ejemplo). Cada propiedad tiene un nombre que viene ya definido por el lenguaje.

(62)

otros objetos de su clase. Así pues, cada clase, tipo de objeto o control tiene su conjunto de propiedades, y cada objeto o control concreto tiene unos valores determinados para las propiedades de su clase.

Casi todas las propiedades de los objetos pueden establecerse en tiempo de diseño y también en tiempo de ejecución. Se puede acceder a una propiedad de un objeto por medio del nombre del objeto a que pertenece, seguido de un punto y el nombre de la propiedad.

2.9.5 EVENTOS.

Ya se ha dicho que las acciones del usuario sobre el programa se llaman eventos. Son eventos típicos el hacer clic sobre un botón, el hacer doble clic sobre el nombre de un fichero para abrirlo, el arrastrar un icono, el pulsar una tecla o combinación de teclas, el elegir una opción de un menú, el escribir en una caja de texto, o simplemente mover el ratón.

Cada vez que se produce un evento sobre un determinado tipo de control, Visual Basic 6.0 arranca una determinada función o procedimiento que realiza la acción programada por el usuario para ese evento concreto. Estos procedimientos se llaman con un nombre que se forma a partir del nombre del objeto y el nombre del evento, separados por el carácter (_).

2.9.6 MÉTODOS.

(63)

lenguaje y que se libere al usuario de la tarea de programarlos. Cada tipo de objeto o de control tiene sus propios métodos.

2.9.7 PROYECTOS Y FICHEROS.

Cada aplicación que se empieza a desarrollar en Visual Basic 6.0 es un nuevo proyecto. Un proyecto comprende otras componentes más sencillas, como por ejemplo los formularios (que son las ventanas de la interfase de usuario de la nueva aplicación) y los módulos (que son conjuntos de funciones y procedimientos sin interfase gráfica de usuario).

2.9.8 EL ENTORNO DE PROGRAMACIÓN VISUAL BASIC 6.0.

Cuando se arranca Visual Basic 6.0 aparece en la pantalla una configuración que tiene los siguientes elementos:

1. La barra de títulos, la barra de menús y la barra de herramientas de Visual Basic 6.0 en modo Diseño.

2. Caja de herramientas (toolbox) con los controles disponibles.

3. Formulario (form) en gris, en que se pueden ir situando los controles. Está dotado de una rejilla (grid) para facilitar la alineación de los controles.

4. Ventana de proyecto, que muestra los formularios y otros módulos de programas que forman parte de la aplicación.

5. Ventana de Propiedades, en la que se pueden ver las propiedades del objeto seleccionado o del propio formulario. Si esta ventana no aparece, se puede hacer visible con la tecla <F4>.

(64)
[image:64.612.87.502.130.424.2]

La figura 2.9.8.1 muestra el entorno gráfico de Visual Basic.

(65)
(66)

3.1. PROGRAMA DEL PIC 16F84 PARA EL SENSOR DE TEMPERATURA.

[image:66.612.92.513.206.505.2]

Este es el entorno gráfico donde se hace el desarrollo del programa del PIC16F84, también se pueden mostar las funciones especiales del registro y la memoria del programa.

Figura 3.1.1 Programación en MPLAB para el Sensor de Temperatura.

A continuación se presenta la programación para el sensor de temperatura:

;***************************IPN************************ ;**************************ESIME***********************

;*******************UNIDAD ZACATENCO*******************

;*********INGENIERIA EN CONTROL Y AUTOMATIZACION******* ;******************************************************

;Declaracion de registros************************** LIST P=16F84

Figure

Figura 2.3.1.1 Estructura del ADC0804.
Tabla 2.4.1 Organización de los Pines del Microcontrolador.
Tabla 2.4.2 Capacidad de corriente para los puertos.
Tabla 2.4.3 Conexión de los osciladores XT y RC.
+7

Referencias

Documento similar

If certification of devices under the MDR has not been finalised before expiry of the Directive’s certificate, and where the device does not present an unacceptable risk to health

In addition to the requirements set out in Chapter VII MDR, also other MDR requirements should apply to ‘legacy devices’, provided that those requirements

The notified body that issued the AIMDD or MDD certificate may confirm in writing (after having reviewed manufacturer’s description of the (proposed) change) that the

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

E Clamades andaua sienpre sobre el caua- 11o de madera, y en poco tienpo fue tan lexos, que el no sabia en donde estaña; pero el tomo muy gran esfuergo en si, y pensó yendo assi

diabetes, chronic respiratory disease and cancer) targeted in the Global Action Plan on NCDs as well as other noncommunicable conditions of particular concern in the European

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la

En la contrastación de las hipótesis de investigación se usaron pruebas paramétricas y no paramétrica previo análisis de la normalidad de los datos pretest y postest,