Vous êtes sur la page 1sur 145

S .C.

PIC

ELECTRNICA PRCTICA CON MICROCONTROLADORES PIC

Santiago Corrales V.
Profesor de Microcontroladores PIC Director de Investigacin Gerente de la empresa S.C. PIC

S .C. PIC

Ttulo Original: ELECTRNICA PRCTICA CON MICROCONTROLADORES PIC DERECHOS RESERVADOS Diseo de Portada: Santiago Corrales V. Programacin: Santiago Corrales V. Fotografa: Santiago Corrales V. Prohibida la reproduccin total o parcial de este libro.
2006: Santiago Corrales V. Pedidos de ejemplares, Placas para el Entrenador de PIC, Servomotores, etc. A los Telfs.:02 - 2506145 / 2553526 CEL: 097087999 / 091008031 Email: S_C_PIC@Hotmail.com
Impreso en: Imprenta Grfica Manuel Cajas E13 134 y Toribio Hidalgo Telfs. 3226918 / 3226370 CEL 098394772 / 094257639 luischanc@yahoo.com.ar

IMPRESO EN ECUADOR

S .C. PIC

CONTENIDO
PROLOGO...7

1. MICROCONTROLADORES PIC CONOCIMIENTOS BASICOS


Introduccin a los microcontroladores.9 Microcontroladores PIC...9 Microcontroladores PIC 16F628A.13 Microcontroladores PIC 16F81914 Microcontroladores PIC 16F877A.15 Sntesis del manejo del software PIC BASIC PRO...16 Sntesis del manejo del software IC PROG ...18 Sntesis del manejo del software PROTEUS.22 Manejo del programador puerto paralelo de S.C. PIC24

2. PROGRAMANDO EL PIC 16F628A


Manejo de secuencias....25 Estudio de subrutinas.29 Variables32 Cambio de nombre a los puertos33 Instrucciones mltiples..33 Instruccin FOR NEXT..34 Pulsadores y switch35 Instruccin IF ELSE ENDIF36 Instruccin SELECT CASE40

S .C. PIC
Proyectos con Pulsadores y LEDs.41 Manejo de teclados hexadecimales45 Displays..49 Proyectos con teclados y displays..53 Rels de 12V..57 Diseo y construccin de 1 PLC de 8 entradas y 8 salidas controlado por un PIC 16F628A....60 Proyectos con teclados y rels de 12V..63 Instrucciin EEPROM READ WRITE71 Manejo de mdulos LCD...77 Instruccin DEFINE LCDOUT..79 Proyectos con LCDs..83 Instruccin LOOKUP85 Instruccin SOUND...87 Instruccin FREQOUT..88 Instruccin DTMFOUT.89

3. COMUNICACIN SERIAL CON EL MICROCONTROLADOR PIC 16F628A


Instruccin SERIN SEROUT.93 Comunicacin serial PIC PIC.94 Comunicacin serial Infrarroja..95 Comunicacin serial PC PIC..97 Comunicacin serial con Visual Basic 6.098 Manejo del Software LABVIEW 7.0..109 Comunicacin serial con LABVIEW 7.0117

S .C. PIC
4. MANEJO DE MODULOS DE RADIO FRECUENCIA
Instruccin POT...126

5. PROGRAMANDO EL PIC 16F819 Y EL 16F877A


Conversor ANALOGO DIGITAL127 Instruccin ADCIN..127 Diferencias entre el PIC 16F628A y el PIC 16F819130 Microcontrolador PIC 16F877A..131 Diferencias entre el PIC 16F628A, 16F819 y 16F877A..133

6. MANEJO DE MOTORES

Motores PASO PASO...135 Motores PASO PASO UNIPOLARES.136 Secuencia WAVE DRIVE...138 Secuencia FULL STEP139 Motores PASO PASO BIPOLARES140 Manejo de Servomotores.141 Instruccin PWM.143

S .C. PIC

S .C. PIC
PROLOGO
En la actualidad los microcontroladores son la herramienta fundamental para el desarrollo cientfico y tecnolgico, saber sobre estas mini computadoras es muy importante ya que se encuentran en nuestro trabajo, nuestro hogar, en los computadores, en proyectos aeroespaciales, etc. Todas estas reas de aplicacin me han motivado a realizar este libro en el cual he puesto todos mis conocimientos adquiridos por estudio y por experiencia. Lo he realizado de una manera clara para que el lector no tenga dificultad en el aprendizaje y pueda encontrar soluciones a diversos problemas que podr hallar en su vida cotidiana. Los diferentes temas que se encontrar en el libro son exclusivamente trabajados con microcontroladores PIC por ser ms econmicos y muy fciles de encontrarlos en las tiendas electrnicas. En el capitulo1 se encuentran conocimientos bsicos que el lector debe conocer para introducirse en el manejo de estos dispositivos electrnicos, el capitulo 2 trata sobre la programacin para el microcontrolador, para explicar las instrucciones del lenguaje BASIC para PIC se ha elegido el 16F628A por varias ventajas que las ir conociendo en el transcurso del libro. El capitulo 3 aprender a manejar comunicacin con el computador, entre microcontroladores, y monitoreo con LABVIEW. En el capitulo 4 se encuentra el manejo de dos dispositivos de radio frecuencia, con los cuales podr introducirse en la era inalmbrica que est gobernando el mundo entero. En el capitulo 5 se detalla el funcionamiento de dos microcontroladores ms por ser de gran ayuda a la hora de realizar un proyecto. Y en el captulo 6 el lector aprender a manejar diversos motores para realizar proyectos de robtica. Mi agradecimiento es primeramente a DIOS por haber permitido culminar con un objetivo ms de los que me he planteado en mi vida, a mis padres por su incondicional apoyo en el transcurso de mi carrera. A mis maestros, quienes en su noble labor me han transmitido sus valiosos conocimientos, en especial a los Ingenieros del rea de electrnica del colegio tcnico particular Hermano Miguel de la ciudad de Latacunga, A mi esposa y mi hija por su apoyo moral y su ayuda en la realizacin del libro. Agradezco a mis amigos quienes han aportado con sus conocimientos despejando ciertas dudas y finalmente a la empresa CORPOIMPEX representantes de Microchip para el Ecuador.

S .C. PIC

S .C. PIC

MICROCONTROLADORES PIC CONOCIMIENTOS BASICOS


INTRODUCCION A LOS MICROCONTROLADORES Existen varias empresas que actualmente se encuentran fabricando estas microcomputadoras, las cuales poseen variedad de modelos que nos facilitan la implementacin de proyectos que se pueden realizar. En este libro se detallar el estudio de los Microcontroladores PIC de MICROCHIP TECHNOLOGY Inc. Microchip es una empresa que est liderando las ventas de este dispositivo, por su bajo costo, por tener una gran variedad de modelos, y por su programacin muy sencilla, la que hace que el microcontrolador PIC se est estudiando en diversas universidades de gran prestigio a nivel mundial. MICROCONTROLADOR PIC En s un microcontrolador es un circuito integrado programable, capaz de ejecutar las rdenes grabadas en su memoria. Est compuesto de varios bloques funcionales, los cuales cumplen una tarea especfica, sus partes o componentes principales son:

Memoria ROM (Memoria de slo lectura) Memoria RAM (Memoria de acceso aleatorio) Lneas de entrada/salida (I/O) Tambin llamados puertos Lgica de control Coordina la interaccin entre los dems bloques

S .C. PIC
En la figura se puede observar la estructura interna de un microcontrolador, y como se puede apreciar posee un circuito externo de reloj, el cual indica al micro la velocidad a la que debe trabajar. Este circuito, que se conoce como oscilador o reloj, es muy simple pero de vital importancia para el buen funcionamiento del sistema, ya que sin l no podramos ejecutar las rdenes o las lneas de instruccin que se encuentran programadas en el mismo. Los diferentes tipos de cristal ms comunes para un microcontrolador PIC son:

RC. Oscilador con resistencia y condensador.

Vc c R
MICR OCON OLADOR PIC TR

OSC1 OSC2

Segn las recomendaciones de Microchip R puede tomar valores entre 5k y 100k, y C superior a 20pF.

XT. Cristal.
MICR OCON ROL T ADOR PIC

22pF OSC1 4 Mhz OSC2 22pF

HS. Cristal de alta velocidad. LP. Cristal para baja frecuencia y bajo consumo de potencia.

El microcontrolador como se ha visto anteriormente es un microcomputador, el cual necesita de perifricos de entrada y salida para su correcta utilizacin. Las entradas dependiendo de la aplicacin pueden ser: sensores, teclados, pulsadores, switch, etc. Las salidas igualmente dependiendo de la aplicacin pueden ser: leds, display, LCD, rels, computadoras, etc. Arquitectura interna del PIC. Hay dos arquitecturas conocidas: la clsica de Von Neumann, y la arquitectura Harvard,

10

S .C. PIC
Arquitectura Von Neumann Dispone de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a travs de un sistema de buses nico (direcciones, datos y control).

Arquitectura Harvard Dispone de dos memorias independientes, una que contiene slo instrucciones, y otra que contiene slo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultneamente en ambas memorias, sta es la estructura para los PIC's.

Memoria de programa Esta vendra a ser la memoria de instrucciones, aqu es donde almacenaremos nuestro programa o cdigo que el micro debe ejecutar. No hay posibilidad de utilizar memorias externas de ampliacin. Memorias EEPROM. (Electrical Erasable Programmable Read Only Memory Memoria de slo lectura Programable y borrable elctricamente).- sta tarea se hace a travs de un circuito grabador y bajo el control de un PC (IC-PROG). El nmero de veces que puede grabarse y borrarse una memoria EEPROM es finito aproximadamente 1000 veces.

Memorias FLASH. Posee las mismas caractersticas que la EEPROM, pero sta tiene menor consumo de energa y mayor capacidad de almacenamiento, por ello est sustituyendo a la memoria EEPROM.

11

S .C. PIC
La memoria de programa se divide en pginas de 2048 posiciones.

Cuando ocurre un Reset, el contador de programa (PC) apunta a la direccin 0000h, y el micro se inicia nuevamente. Por esta razn, en la primera direccin del programa se debe escribir todo lo relacionado con la iniciacin del mismo. Ahora, si ocurre una interrupcin el contador de programa (PC) apunta a la direccin 0004h, entonces ah escribiremos la programacin necesaria para atender dicha interrupcin.

Memoria de datos

Posee dos zonas distintas:

1. RAM esttica SRAM: donde residen los Registros Especficos (SFR) con 24 posiciones de tamao byte, aunque dos de ellas no son operativas y los Registros de Propsito General (GPR) con 68 posiciones.

12

S .C. PIC

2. EEPROM: de 64 bytes donde, opcionalmente, se pueden almacenar datos que no se pierden al desconectar la alimentacin. MICROCONTROLADOR PIC 16F628A

El microcontrolador PIC 16F628A, soporta 1000 ciclos de escritura en su memoria FLASH y 1.000.000 de ciclos en su memoria EEPROM, la memoria de programa que posee es de 2048 Words, memoria de datos EEPROM es de 128 bytes, la memoria RAM es de 224 bytes, 16 pines de entrada y salida, y posee 2 comparadores. A ms de esto posee grandes ventajas como son: Comunicacin AUSART, Oscilador interno de 4 MHz, Master Clear (MCLR) programable, etc. La alimentacin del microcontrolador PIC en general es de Vss = GND = 0V y de Vdd = Vcc = 5V, este valor de Vdd puede variar desde 3V hasta 5.5V. Posee a ms de ello 2 puertos de I/O el Puerto A y el Puerto B, los cuales trabajan a 8 bits cada uno y entregan 25mA por cada PIN, y en modo sumidero pueden soportar hasta 25mA por cada PIN.

13

S .C. PIC

DISTRIBUCIN DE PINES DEL PIC 16F628A MICROCONTROLADOR PIC 16F819 El microcontrolador PIC 16F819, posee una memoria de programa de 2048 Words, Memoria de datos EEPROM de 256 bytes, memoria RAM de 256 bytes y 16 pines de entrada y salida, no posee comparadores pero tiene una gran ventaja de poseer 5 conversores anlogo digital A/D, siendo sta la diferencia principal con el microcontrolador PIC 16F628A. Cada uno de estos conversores trabaja a 10bits. Tambin posee MCLR programable, comunicacin AUSART y oscilador interno, el cual se puede calibrar hasta 8 posiciones, desde 31,25 KHz hasta 8 MHz, es decir: 1. 2. 3. 4. 5. 6. 7. 8. 31,25 KHz 125 KHz 250 KHz 500 KHz 1 MHz 2 MHz 4 MHz 8 MHz

DISTRIBUCIN DE PINES DEL PIC 16F819


14

S .C. PIC
MICROCONTROLADOR PIC 16F877A El microcontrolador PIC 16F877A, posee una memoria de programa de 8192 Words, Memoria de datos EEPROM de 256 bytes, memoria RAM de 368 bytes y 33 pines de entrada y salida, los cuales se dividen en: Puerto A trabaja a 6 bits Puerto B trabaja a 8 bits Puerto C trabaja a 8 bits Puerto D trabaja a 8 bits Puerto E trabaja a 3 bits Adems de ello posee 8 Conversores Anlogo - Digital A/D, una de las principales diferencias frente a los otros pic estudiados anteriormente es la capacidad que posee, y por esta razn es el ms utilizado en proyectos avanzados que requieren mayor numero de entradas y/o salidas, como automatizacin de procesos industriales, alarmas residenciales, etc. Una desventaja es que debe ser conectado con un cristal externo, ya que no tiene incorporado el mismo y necesita tambin en el Master Clear una resistencia Pull Up, ya que no hay forma de deshabilitar esta opcin.

DISTRIBUCIN DE PINES DEL PIC 16F877A

15

S .C. PIC
SINTESIS DEL MANEJO DEL SOFTWARE PIC BASIC PRO Pic Basic Pro es un compilador el cual permite realizar la programacin de un microcontrolador en un lenguaje de alto nivel, lenguaje Basic. A ms de este compilador tenemos el Software MicroCode Studio, que es un editor de texto exclusivo para facilitar la programacin de los microcontroladores PIC. Por lo tanto MicroCode Studio y Pic Basic Pro van juntos.

Detalle de las partes ms importantes del MicroCode Studio y del PicBasic Pro. .- Esta ventana permite al usuario seleccionar el microcontrolador que va a utilizar para la programacin, en este caso se encuentra seleccionado el Pic 16F628A

.- Explorador de Cdigo. Permite visualizar las variables, subrutinas, constantes, etc. Que durante la programacin se haya realizado, con la finalidad de encontrar o seleccionar rpidamente algn cdigo que necesitemos cambiar o editar.

16

S .C. PIC

.- Numeracin de lnea de programa.- Esta herramienta es muy importante a la hora de realizar un programa, ya que al compilarlo, si ocurre algn error nos indica cual es la lnea en donde se produjo, y facilita el arreglo del mismo. .- Permite visualizar que espacio ocup el programa en el PIC, como se puede observar se ha ocupado 59 words de 2048 words disponibles en el PIC 16F628A, o si existe algn error en el programa, aparece:

.- Indica que se produjo un error en la compilacin, del tipo sintaxis y en la lnea numero 17.

.- En esta ventana vamos a realizar nuestros programas, a ms de ello se puede observar en la parte superior se encuentra el encabezado para cada uno de los programas que se realice, donde se puede incluir el nombre del proyecto, nombre del autor, notas, etc.

.- Estas herramientas son las ms importantes a la hora de montar un proyecto, ya que nos permite realizar la compilacin del programa. Vamos a detallar cada una de ellas: .- Este botn sirve solamente para compilar el programa, se lo puede tambin activar digitando F9, desde el teclado del computador. Una vez compilado el programa

17

S .C. PIC
genera 4 archivos que son: .ASM, .MAC, .PBP y .HEX, siendo este ltimo el ms importante ya que ste sirve para grabar el microcontrolador PIC. .- Este botn tiene dos funciones a la vez, la primera es de compilar el programa y generar los 4 archivos estudiados anteriormente, y la segunda es de llamar al programador IC PROG, el cual nos permitir grabar el PIC. Tambin se lo puede activar digitando F10. SINTESIS DEL MANEJO DEL SOFTWARE IC - PROG El IC PROG es una herramienta fundamental para el programador de microcontroladores en general, ya que ste permite grabar el archivo .HEX en el micro. Este programador permite seleccionar varios dispositivos electrnicos tanto de puerto serial y puerto paralelo que permiten realizar la interfaz entre el computador y el microcontrolador, mas adelante se detallar el funcionamiento del dispositivo serial de la empresa S.C. PIC ELECTRONICA & COMPUTACION.

18

S .C. PIC
En la figura se puede apreciar que al iniciar el programa IC PROG el cdigo del programa aparece 3FFF, en todas las direcciones.

.- Por medio de la ventana abrir, buscamos la carpeta donde se haya hecho el programa, y seleccionamos el archivo .HEX que deseamos cargar en el PIC.

19

S .C. PIC
Al cargar el programa .HEX, cambian los valores de direccin, por otros distintos a 3FFF, as podremos darnos cuenta que el programa a sido cargado en el programador. .- Esta barra de herramientas es la mas importante dentro del manejo del IC PROG, a continuacin detallaremos cada una de stas opciones, .- Permite leer el contenido del microcontrolador PIC .- Este botn realiza la programacin del microcontrolador, es decir carga el archivo hexadecimal al PIC. .- Permite borrar el contenido del microcontrolador y dejarlo en blanco para poder ser grabado nuevamente. .- Como en el MicroCode Studio, en esta ventana, seleccionamos el microcontrolador que deseamos utilizar.

.- En la ventana del oscilador, seleccionamos la configuracin deseada, es decir podemos cambiar al cristal interno de 4MHz que posee el PIC 16F628A o la que necesite el usuario.

.- Aqu se puede seleccionar los Bits de configuracin, es recomendable desactivar la opcin del MCLR y dejarlo siempre como se muestra en la figura. NOTA: Para la correcta utilizacin del IC PROG, es recomendable realizar los siguientes pasos para que no tenga ningn tipo de problema:
20

S .C. PIC
1. 2. 3. 4. Seleccionar el microcontrolador PIC a utilizar. Cargar el archivo hexadecimal al IC PROG Configurar el oscilador a los requerimientos del usuario Seleccionar los bits de configuracin a los indicados anteriormente.

Siguiendo estos pasos no tendr ningn problema a la hora de realizar sus proyectos. Si an as le aparece una ventana como la siguiente:

Puede ser por dos motivos. El primero es que no se encuentra bien habilitado el Hardware a utilizar, o el segundo es que el microcontrolador que est utilizando est en mal estado, por lo que siempre debemos tener mucho cuidado con los micros porque stos son de tecnologa CMOS, y son muy vulnerables a la esttica, por lo que se aconseja manejarlos con pinzas para evitar el contacto directo con las manos.

21

S .C. PIC
SINTESIS DEL MANEJO DEL SOFTWARE PROTEUS Proteus es una herramienta fundamental para las personas que estn readicionadas con el mundo de los microcontroladores, ya que sta permite realizar simulaciones de los proyectos montados, es decir no hace falta: probar en protoboard el proyecto, comprar materiales, quemar los microcontroladores, etc. Simplemente necesitamos seleccionar cada uno de los elementos a utilizar, ya que esta poderosa herramienta contiene: Microcontroladores PIC, LCDs, Rels, Leds, Displays, etc.

A continuacin detallaremos las partes ms importantes de este Software. .- Componente.- Permite seleccionar el elemento que deseamos utilizar, de la siguiente manera: Seleccionamos el icono del componente dando un clic, seguido damos un clic en

la

, y nos aparece una ventana similar a la siguiente:

22

S .C. PIC

En la parte de Keywords: escribimos el elemento a utilizar, en este caso se ha escrito el PIC 16F628A, y en Results (1): damos doble clic para agregar el micro a la pantalla del proteus. RECOMENDACIN PARA SELECCIONAR RESISTENCIAS. 1. Escribir para el caso de una resistencia de 330 ohmios, escribir RES 330R y seleccionar la MINIRES 330R. 2. Para el caso de una resistencia de 4,7K debe escribir RES 4K7, y seleccionar la MINIRES 4K7. .- Esta herramienta permite escoger Gnd y Vcc para realizar el proyecto.

.- Power para Vcc y Ground para Gnd. .- Permite realizar lneas entre los componentes seleccionados.
23

S .C. PIC
MANEJO DEL PROGRAMADOR PUERTO PARALELO DE S.C. PIC La empresa S.C. PIC ELECTRONICA & COMPUTACION a diseado un programador totalmente econmico para que los lectores puedan realizar cada uno de los proyectos que se encuentran a lo largo del libro. Se ha elaborado un programador universal de microcontroladores PIC del tipo paralelo por presentar varias ventajas, como la rapidez que posee para grabar, borrar y leer los microcontroladores PIC. El nivel de voltaje que necesitan los microcontroladores PIC de la serie A es de 5 Vcc en la entrada de datos, y los que no poseen la A es de 13,8 Vcc, sin embargo este programador est diseado para grabar cualquiera de los dos tipos. Siendo sta la diferencia entre los microcontroladores PIC de serie A frente a los sin A.

Este programador corresponde a PROPIC2 en el IC PROG que se lo conecta al puerto paralelo del computador. Este programador soporta microcontroladores PIC de 8, 14, 18, 28 y 40 pines, comunes en las tiendas electrnicas. Para realizar la programacin lo nico que se debe hacer es seleccionar el rea donde se debe ubicar el microcontrolador y proceder a grabarlo mediante el software IC PROG que ya se ha detallado anteriormente.

24

S .C. PIC

PROGRAMANDO EL PIC 16F628A


En s la programacin de los microcontroladores PIC en lenguaje Basic, es la misma, lo nico que los diferencia unos de otros es la definicin de los puertos, y ciertas ventajas que poseen. El PIC 16F628A consta de 2 puertos el A y el B, los cuales trabajan a 8 bits cada uno, es decir se divide el puerto A y B en 8 bits de entrada o salida as: PUERTO A A.0 A.1 A.2 A.3 A.4 A.5 A.6 A.7 PUERTO B B.0 B.1 B.2 B.3 B.4 B.5 B.6 B.7

MANEJO DE SECUENCIAS
Iniciaremos las secuencias aprendiendo a utilizar las instrucciones: PORT, HIGH, LOW, PAUSE. PORT.- Esta instruccin nos permite indicar que puerto se va a ocupar, y por lo general va acompaado de otra instruccin. Su sintaxis es la siguiente: PORTB.0 ; indica que se ha seleccionado el puerto B.0 PORTA.0 ; indica que se ha seleccionado el puerto A.0 HIGH.- Permite sacar 5 Vcc o 1 Lgico por un puerto del microcontrolador, y a la vez lo convierte en salida. Ejemplo: HIGH PORTB.0 ; convierte el puerto B.0 en salida y lo coloca en 1L. LOW.- Coloca el puerto en salida y lo hace 0L, es decir lo apaga. LOW PORTB.0 ; convierte el puerto B.0 en salida y lo coloca en 0L. PAUSE.- Detiene el programa por un perodo en milisegundos as: PAUSE 1000; realiza una pausa en el programa de 1000 ms equivalente a 1 segundo.

25

S .C. PIC
Un perodo tiene 16 bits, por lo que se podr colocar una pausa hasta de 65535 milisegundos, es decir 1,09 minutos equivalentes a 65,5 segundos. Ms adelante se indicar como realizar pausas de ms de 1 min, hasta varias horas de acuerdo a las necesidades del programa. Una vez estudiadas stas instrucciones podremos empezar con nuestro primer proyecto el cual realizar la funcin de un 555 como un oscilador monoestable.

Oscilador Monoestable.PBP

Si analizamos el programa la forma de onda quedara algo as: Vcc [V]

10

t [seg]

Ahora realizaremos la simulacin en el Proteus de la siguiente manera: 1. Seleccionamos el icono de componente 2. Escribimos los elementos a utilizar, en este caso sera: 2.1. PIC 16F628A 2.2. RES 330R 2.3. LED rojo, amarillo, verde o azul 3. Procedemos a realizar el circuito como un esquemtico cualquiera quedando el diagrama mas o menos as:

26

S .C. PIC
Como se puede observar, en el proteus cada microcontrolador tiene su distribucin de pines, lo cual facilita realizar el diagrama. Ahora lo nico que falta es cargar el archivo hexadecimal al microcontrolador, aqu no vamos a ocupar el IC PROG, porque solo es una simulacin, pero s debemos cargar el archivo al micro de la siguiente manera:

Damos un clic derecho en cualquier parte del componente que se desee seleccionar y se pintar de color rojo, eso quiere decir que se ha seleccionado correctamente, si se realiza doble clic derecho, el componente se borrar. Seguido damos un clic izquierdo y aparece una pantalla como la siguiente:

27

S .C. PIC
Primero cambiamos el Oscilador a 4MHz, en la ventana Processor Clock Frequency, de Program File, lo cual me permitir buscar el archivo seleccionamos la carpeta hexadecimal en este caso sera Oscilador Monoestable. HEX. Y damos un clic en OK. Damos un clic derecho en cualquier parte de la pantalla para deshabilitar la seleccin del componente y corremos el programa digitando F12 desde el teclado del computador.

Prendido el LED durante 5 segundos

Apagado el LED .- Otra manera de correr el programa es digitando el botn RUN que es similar al PLAY de una grabadora. Se puede pausar el programa y detener el mismo con la utilizacin de los botones de sta barra de herramientas. Estos pasos se seguirn para realizar cada uno de los proyectos que se encuentran en el libro, o si prefieren pueden utilizar el simulador de un entrenador el cual posee todos los elementos que se necesitarn para cada uno de los proyectos. ste se encuentra en el CD con el nombre de Entrenador PIC 16F628A. A continuacin presentamos la figura del Entrenador diseado para realizar los proyectos con el Microcontrolador PIC 16F628A, el cual posee 8 Leds, 1 Display, 1 LCD, 3 pulsadores, 1 teclado y 1 rel.

28

S .C. PIC

ESTUDIO DE SUBRUTINAS
Las subrutinas permiten realizar una llamada a cierta parte del programa, para que realice una funcin especfica. En el compilador PicBasic Pro existen dos tipos de subrutinas la GOTO y la GOSUB, las que detallaremos a continuacin: GOTO.- Permite apuntar a cierta parte del programa donde se le haya asignado una etiqueta, y continuar con las lneas de programacin despus de la misma. Para poder entender mejor la instruccin GOTO vamos a desarrollar nuestro siguiente proyecto, el cual realizar la funcin de un 555 pero esta vez como un oscilador astable el cual estar en nivel alto durante 1 segundo y en nivel bajo durante segundo. Su forma de onda sera: Vcc [V] 5

9 10

t [seg]

29

S .C. PIC
La programacin ser la siguiente:

Oscilador Astable.PBP

Para la simulacin simplemente cargamos el archivo Oscilador Astable.HEX en el entrenador, activamos el interruptor correspondiente a los leds y presionamos F12. GOSUB.- Es similar a la subrutina GOTO, apunta a cierta parte del programa donde est asignada la etiqueta, guardando su direccin de retorno, es decir cumple con la subrutina y regresa a la siguiente lnea donde se qued. Para entender esta instruccin realizaremos un programa de un led intermitente.

Led Intermitente.PBP

Como se puede observar hemos sustituido la pausa con una subrutina denominada timer, la que detiene el programa durante 1 segundo. As ahorramos espacio en el Pic ya que la instruccin PAUSE se la realiza una sola vez. Cada vez nuestros programas se irn incrementando de tamao y complicndose poco a poco, por lo que es muy importante repasar los que hemos realizados hasta el momento.
30

S .C. PIC
TRIS.- Realiza la funcin de colocar los pines seleccionados como entrada (0L) o salida (1L) dependiendo de la aplicacin a utilizar. TRISB=%00000000 con esta instruccin colocamos todos los pines del puerto B como salida, o bien se puede utilizar TRISB=0 que realiza la misma funcin. TRISB=%11111111 colocamos todos los pines del puerto B como entrada, o se puede ocupar TRISB=1. Cada bit puede ser manejado individualmente de la misma manera es decir pueden ser entrada o salida. TRISA=%11110000 con esta instruccin hacemos que los bits menos significativos del puerto A sean salidas y los mas significativos sean entradas. Una vez definido cuales son los puertos de entrada o salida, procedemos a encender o apagar los puertos as:

Instruccin TRIS. PBP

Conociendo estas herramientas en la programacin para los microcontroladores estamos listos para realizar nuestro siguiente proyecto. SEMAFORO DIGITAL

31

S .C. PIC

Semforo Digital. PBP

Si se desea utilizar focos de 110V se procede a realizar el siguiente diagrama de conexin para cada uno de los leds a utilizar:

VARIABLES
Una variable es un nombre identificador en el cual guardamos datos de forma temporal. El compilador PIC BASIC PRO posee tres tipos de variable que son: VARIABLE TIPO BIT BYTE WORD FACTOR 21 28 216 VALOR 0-1 0 - 255 0 - 65535

32

S .C. PIC
La Sintaxis a utilizar es la siguiente:

Donde X, Y, Z son nombres identificadores para la variable, los cuales pueden ser distintos de acuerdo al usuario.

CAMBIO DE NOMBRE A LOS PUERTOS


Para realizar el cambio de nombre a los puertos del microcontrolador usamos la misma instruccin estudiada anteriormente, nos referimos a la instruccin VAR. Su sintaxis es la siguiente:

Como se puede observar esta herramienta es muy fundamental a la hora de montar un proyecto, ya que permite darnos cuenta que elemento est conectado en cada uno de los puertos y evitamos errores en la programacin.

INSTRUCCIONES MULTIPLES
Otra de las herramientas fundamentales del PIC BASIC PRO son los comandos mltiples que permite escribir varias instrucciones en la misma lnea simplemente separados por ( : ).

LUCES INTERMITENTES. PBP

33

S .C. PIC
INSTRUCCION FOR NEXT
Permite ejecutar un programa n veces, y su sintaxis es la siguiente:

Donde R es una variable asignada con el valor de 1 hasta 5. Es decir realizar 5 veces Lo que contenga el cuerpo del programa. Ejemplo:

lazo FOR. PBP

Como se haba estudiado anteriormente el PIC BASIC PRO no permite realizar una pausa mayor a 65,5 segundos. Por esa razn si se desea incrementar la pausa se utilizar el lazo FOR estudiado. As:

34

S .C. PIC

PAUSA 5 MINUTOS. PBP

Mediante el lazo FOR se ha incrementado la pausa hasta 5 minutos, y as se puede seguir aumentando de acuerdo a las necesidades del usuario.

PULSADORES Y SWITCH
Existen 2 tipos de conexin para el manejo de pulsadores o switch. La primera es la conexin a 1L y la segunda la conexin a 0L. A continuacin los diagramas de conexin por cada uno de los casos.
CONEXIN A 1L.Se la conoce como 1L porque Vcc se encuentra conectado a travs de una resistencia al microcontrolador PIC, y el pulsador generar 0L cuando este sea presionado. La resistencia nos permite bajar la corriente de entrada para que el microcontrolador PIC funcione correctamente.

CONEXIN A 0L.Contraria a la anterior, sta permite ingresar 0L a travs de una resistencia al microcontrolador, y en el momento que el pulsador es digitado generar 1L. Igualmente la resistencia permite bajar la corriente a la requerida por el PIC para evitar daos o errores al ingresar los pulsos.

35

S .C. PIC
Para el control de los pulsadores o switch debemos utilizar una instruccin que nos permita realizar preguntas.

INSTRUCCIN IF ELSE ENDIF


Esta instruccin es muy utilizada para realizar preguntas en cualquier lenguaje de programacin. Sin embargo en los microcontroladores es esencial para diversas aplicaciones, y una de ellas es la utilizacin en los pulsadores o switch. Su sintaxis de manejo es la siguiente: IF pregunta es correcta THEN Realice esta programacin ELSE Caso contrario si no es correcto realice esta otra programacin ENDIF Mediante ENDIF terminamos la instruccin IF. Para aclarar esta instruccin realizaremos un programa el cual al ser presionado un pulsador prender un led, para sacar un pulsador en el proteus digitamos BUTTON en la parte de elementos.

36

S .C. PIC

Instruccin IF. PBP

Recuerden que estos proyectos pueden probar en el simulador de un entrenador que viene adjunto en el CD. Como habrn notado al inicio del programa utilice una instruccin llamada CMCON=7, y si analizaron un poquito ms se habrn dado cuenta que utilice esa instruccin porque manej el puerto A. Lo que quiere decir que esta instruccin apaga los comparadores de voltaje y digitaliza el puerto, en otras palabras me permite ocupar el puerto A. Si en la compilacin del programa se tiene el siguiente error:
Se refiere a que no se ha seleccionado el microcontrolador PIC 16F628A. Por esta razn siempre antes de realizar cualquier programa debemos fijarnos que PIC vamos a utilizar.

Otra observacin ms. Como se puede observar en el programa se pregunt si el pulsador = 0 esto quiere decir que en la parte hardware debe estar conectado a 1L, ingresando directamente a travs de una resistencia un voltaje alto al microcontrolador PIC, y cuando es pulsado cambiar de estado a 0L. El bit A.4 del puerto A es de colector abierto, lo que quiere decir que para utilizarlo debemos conectarlo por medio de una resistencia de 100 ohmios a Vcc.

37

S .C. PIC

En la figura se puede observar que los puertos RA7, RA6 y RA5 son para conectar el oscilador y el master clear respectivamente, lo que provoca que estos bits no se prendan si programamos una secuencia en el puerto A. Para solucionar este problema debemos indicar en la programacin que vamos a ocupar el oscilador y el master clear interno que posee el microcontrolador PIC 16F628A, de la siguiente manera:

Ocupando el puerto A. PBP

38

S .C. PIC

PUERTOA. Schematic Design CONEXIN PARA LA SECUENCIA UTILIZANDO EL PUERTO A

Como se puede observar en la figura solamente el bit A.4 del puerto A se encuentra conectado a travs de una resistencia de 100 ohmios a Vcc.

39

S .C. PIC
INSTRUCCIN SELECT CASE
La instruccin SELECT CASE, permite realizar preguntas, la compone una serie de IF..THENs, los cuales se denominan casos (CASE). Esta instruccin es usada para comparar una variable, con diferentes valores o rangos asignados por el usuario. Su sintaxis es:
SELECT CASE var CASE expr1 {, expr...} statements CASE expr2 {, expr...} statements {CASE ELSE statements} END SELECT

A continuacin realizaremos un ejemplo con esta instruccin, que consistir en prender y apagar un led de acuerdo al valor que se le haya asignado en la variable.

Instruccin SELECT CASE. PBP

NOTA: Para probar esta instruccin, variar el valor de la variable X y probar en el software de simulacin PROTEUS, especficamente en el archivo Entrenador del PIC 16F628A. Schematic Design.

40

S .C. PIC
PROYECTOS CON PULSADORES Y LEDS
El primer proyecto que realizaremos es que se prenda un led con un pulsador y se apague el led con el mismo pulsador.

Proyecto 1_Pulsadores. PBP

41

S .C. PIC
En el primer proyecto de secuencias se gener una subrutina denominada AR, la cual permite realizar un antirebote, la misma que indica si el pulsador sigue presionado, evitando errores a la hora de ingresar un pulso. A continuacin realizaremos un programa el que permitir incrementar o disminuir la velocidad en un juego de luces de 2 leds.

42

S .C. PIC

Proyecto2_Luces_Velocidad_Variable. PBP

Como tercer proyecto realizaremos un contador en binario, el que se va a observar en el puerto B con leds de visualizacin.

Contador binario con leds. PBP

Y como ltimo proyecto realizaremos un desplazamiento de leds hacia la izquierda y hacia la derecha.

Desplazamientos. PBP

43

S .C. PIC

44

S .C. PIC
MANEJO DE TECLADOS HEXADECIMALES
Una de las ms grandes aplicaciones de pulsadores est en los teclados, los cuales permiten al usuario ingresar datos, procesarlos y tener respuestas, por lo que estos dispositivos electrnicos se encuentran en calculadoras, alarmas residenciales, comerciales, en los equipos de sonido, en las computadoras, etc. Es decir se encuentran en casi todo tipo de aparato electrnico.

TECLADO HEXADECIMAL COMUN EN LAS TIENDAS ELECTRONICAS

La estructura interna del teclado es la siguiente:

Como se puede apreciar el teclado consta de 16 pulsadores dispuestos e interconectados en filas y columnas, dispone de un conector SIL (Single In Line) macho de 8 pines que se corresponden con las 4 filas y 4 columnas que dispone para realizar el control. Por esta razn debemos introducirnos en el manejo de una matriz 4 * 4.

45

S .C. PIC
Una matriz es una tabla rectangular de nmeros, ordenados por filas y columnas. Para nuestro caso tenemos una matriz con lgica binaria, es decir los datos de la matriz pueden variar entre 0L y 1L. 0 0 4*4 0 0 0 0 0 0 0 0 0 0 0 0 0 0

A continuacin se presenta una tabla con el nombre de cada uno de los pulsadores del teclado y sus coordenadas correspondientes a la matriz 4 * 4. Digito del Teclado 1 2 3 4 5 A B Coordenadas de la Digito del Teclado Matriz Fila 1, columna 1 6 Fila 1, columna 2 7 Fila 1, columna 3 8 Fila 2, columna 1 9 Fila 2, columna 2 0 Fila 1, columna 4 C Fila 2, columna 4 D Coordenadas de Matriz Fila 2, columna 3 Fila 3, columna 1 Fila 3, columna 2 Fila 3, columna 3 Fila 4, columna 2 Fila 3, columna 4 Fila 4, columna 4 la

Como podemos apreciar, para cada uno de los dgitos del teclado se tiene su respectiva coordenada, la cual ocuparemos al momento de realizar la parte del control con los microcontroladores PIC. Como se ha dicho anteriormente el teclado es una serie de pulsadores conectados entre s. Por lo que el teclado tambin se lo puede conectar a 0L o 1L, adems necesita en su programacin un antirebote para evitar que los datos sean errneos. Una vez entendido el manejo interno de este dispositivo electrnico realizaremos la conexin con el programa Proteus, y la programacin correspondiente para poder controlarlo. Pasaremos a realizar un programa que permita ingresar datos, y visualizarlos en un led, el cual se prender varias veces de acuerdo al dgito que se haya presionado en el teclado.

46

S .C. PIC

Manejo de Teclado Hexadecimal. Schematic Design

Para sacar un teclado en el proteus, digitamos en la parte de elementos KEYPAD y seleccionamos SMALLCALC. Si recordamos, en la parte de pulsadores la conexin a 1L se realizaba mediante una resistencia de 4,7K conectada a Vcc, y otra parte conectada a tierra para que cuando exista una pulsacin sta permita ingresar 0L. En el teclado se ha realizado el mismo procedimiento, con la nica diferencia que las columnas van conectadas a la parte de Vcc por medio de una resistencia de 4,7K y las filas van conectadas directamente al microcontrolador para por medio de stas poder censarlas y proceder a preguntar por cada dgito del teclado.

47

S .C. PIC

Manejo de Teclado Hexadecimal. PBP

48

S .C. PIC
Como se puede apreciar en el programa, el barrido que se realiza en el teclado es sumamente rpido, ya que no generamos ninguna pausa en el mismo. De esta manera logramos que el microcontrolador genere un dato por cada una de las teclas presionadas, en ste caso dar un valor a X de acuerdo al nmero de dgito pulsado, el cual se cargar en el lazo FOR y generar X veces el parpadeo del led. Tambin se puede notar que el antirebote para el teclado se forma con las 4 columnas del mismo, obteniendo datos exactos.

DISPLAY s
Una de las aplicaciones de los leds se encuentra en los displays, que son dispositivos electrnicos que permiten visualizar datos en forma de nmeros, letras o palabras si se los coloca uno tras otro, permitiendo al usuario identificar lugares, contar equipos, etc. Existen displays en el mercado de varios tipos: displays 7*5, displays de 7 segmentos tipo nodo o ctodo comn, entre otros. En este caso empezaremos estudiando los displays de 7 segmentos. Un display de 7 segmentos quiere decir que consta de 7 leds internos los cuales se encuentran conectados de tal manera que permiten al usuario visualizar nmeros. Cada uno de los segmentos tiene su respectivo nombre As:

Ctodo comn significa que el ctodo de cada uno de los leds que conforman el display se encuentra conectado entre s, y cada uno de los segmentos se prender con niveles de voltaje altos es decir con 1L. nodo comn significa que el nodo de cada uno de los leds que conforman el display se encuentra conectado entre s, y cada uno de los segmentos se prender con niveles de voltaje bajos es decir con 0L.

49

S .C. PIC
Para sacar un display en el Proteus, digitamos en la parte de elementos Display y seleccionamos el que dice display active. Realizaremos una prctica que permita visualizar los nmeros del 0 al 9 en un display de 7 segmentos tipo nodo comn. Lo primero que se debe hacer es generar una tabla para identificar cual es la lgica binaria para encender cada uno de los segmentos que identificar cada nmero.

Nmero Nmero g Decimal Binario Cero 0000 1 Uno 0001 1 Dos 0010 0 Tres 0011 0 Cuatro 0100 0 Cinco 0101 0 Seis 0110 0 Siete 0111 1 Ocho 1000 0 Nueve 1001 0

f 0 1 1 1 0 0 0 1 0 0

e 0 1 0 1 1 1 0 1 0 1

d 0 1 0 0 1 0 0 1 0 1

c 0 0 1 0 0 0 0 0 0 0

b 0 0 0 0 0 1 1 0 0 0

a 0 1 0 0 1 0 1 0 0 0

Como se puede apreciar en la tabla los segmentos se encendern con niveles de voltaje bajos es decir con 0L por que estamos usando un display tipo nodo comn. Por lo tanto el diagrama en el proteus sera as:

Display 7 segmentos. Schematic Design

50

S .C. PIC
Las resistencias que se ocupa son de 330 ohmios igual como se ocupaba en los leds, ya que stas sirven para evitar que superen el voltaje permitido y sufran daos. A continuacin presentamos la programacin correspondiente para esta prctica.

DISPLAY 7 SEGMENTOS. PBP

Lo nico que se ha realizado en el programa es copiar el cdigo para cada uno de los nmeros decimales que se realiz anteriormente. Otra manera de visualizar nmeros en un display es mediante el circuito integrado 7447 si el display es nodo comn o el 7448 si el display es ctodo comn. Lo que realizan estos integrados es convertir un cdigo binario de entrada en el cdigo de salida para cada uno de los nmeros que se encuentran en la tabla para poder visualizarlos. Para sacar el 7447 en el proteus digitamos en la parte de elementos 74LS47 y procedemos a armar el siguiente circuito.

51

S .C. PIC

Display 74LS47. Schematic Design

Como se puede apreciar lo nico que se ha incrementado es el integrado a la salida del PIC, en la programacin se debe manejar solamente los 4 bits del puerto B, es decir del B.0 hasta el B.3.

Display 74LS47. PBP

Lo que se realiz en el programa es un contador binario desde 0 hasta 9, similar al realizado en los proyectos con pulsadores y leds.

52

S .C. PIC
PROYECTOS CON TECLADOS Y DISPLAYS
El primer proyecto consistir en manejar un teclado hexadecimal y visualizar los datos en un display, es decir, de acuerdo al dgito presionado se visualizar el nmero en un display de 7 segmentos.

Proyecto1_Teclado_Display. Schematic Design

En el diagrama se puede apreciar que se est manejando todos los bits del puerto B para el teclado y los 4 primeros bits del puerto A para el display, por lo que la programacin sera la siguiente:

53

S .C. PIC

Proyecto1_teclados_display.PBP

54

S .C. PIC
El segundo proyecto consiste en realizar un dado digital, al presionar un pulsador el display empezar a recorrer los nmeros del dado que varan de 1 a 6 y cuando el usuario suelte el pulsador aparecer el dgito en el display.

Dado Digital. Schematic Design

La programacin para el Dado sera:

55

S .C. PIC

Dado digital. PBP

56

S .C. PIC
RELES DE 12V
Los rels permiten al usuario conectar varios equipos de potencia, como son motores de corriente alterna, bombas de agua, focos de 110V, etc. Es decir podemos controlar circuitos de alta potencia, iniciando la automatizacin de diferentes procesos a nivel Industrial. El rel es un dispositivo electrnico que internamente posee una bobina la cual al energizarla adecuadamente producir un campo magntico, haciendo que los contactos internos cambien de estado. Para cargar un rel a la hoja del proteus debemos introducir la palabra RELAY en la parte de elementos, teniendo en cuenta que se debe seleccionar el rel que dice active para poder realizar la simulacin. La manera de conectar un rel a un microcontrolador es la siguiente:

Conexin de un Rel. Schematic Design

Como se puede apreciar el rel que estamos ocupando es un rel de 12V, por lo que necesariamente necesita una fuente de 12V para poder funcionar. A ms de ello se est colocando un led, en el mismo puerto de salida para el rel, que permitir visualizar si el Rel se encuentra activado o no, ya que en la realidad no vamos a visualizar como en la simulacin que los contactos cambian de estado. Sino se escuchar un sonido alertando el cambio de estado de los mismos.

57

S .C. PIC
Continuando con la conexin del rel, se puede apreciar que se est colocando un diodo 1N4007, el cual permite proteger al microcontrolador. Adems de ello se ocupa un transistor 2N3904 el cual funciona en corte y saturacin, permitiendo energizar o no energizar la bobina del rel de 12V. Como se ocupar una fuente de 12V, es necesario tener en cuenta que el microcontrolador PIC se polariza con niveles de voltaje que oscilan entre 3,5V hasta 5,5V, por esta razn realizaremos la conexin para ocupar una sola fuente de 12V, y con una salida de 5V para colocarla en el microcontrolador que se est ocupando.

Fuente de 12V y 5V. Schematic Design

En el circuito de la figura se est ocupando un regulador de voltaje (7805), el cual permite bajar el nivel de voltaje de entrada a 5V, si se necesitara bajar el nivel de voltaje a 9V se debera ocupar un regulador de voltaje (7809), y si en un caso se necesitara un nivel de voltaje de -12V se debera ocupar un (7912). Es decir la serie 78XX permite regular el voltaje de entrada a un voltaje positivo de acuerdo al nivel requerido por el usuario, y la serie 79XX permite regular el voltaje de entrada a un nivel de voltaje negativo de acuerdo a las necesidades del usuario. A continuacin realizaremos un programa que permita accionar un rel por medio de un pulsador y poder visualizar el cambio de contactos que ofrece este dispositivo electrnico.

58

S .C. PIC

Conexin de un Rel_con_Pulsador. Schematic Design

En la figura podemos apreciar que hemos aadido un pulsador conectado a 1L en el BIT A.0 del puerto A.

Manejo_Rel. PBP

Como se puede notar en el programa lo nico que se ha realizado es encender o apagar un BIT del puerto B, el que se lo ha definido con el nombre de rel. El pulsador de entrada, se lo puede cambiar por finales de carrera, sensores magnticos, sensores de movimiento, etc. Con la finalidad de obtener un proceso automtico.

59

S .C. PIC
DISEO Y CONSTRUCCION DE UN PLC DE 8 ENTRADAS Y 8 SALIDAS CONTROLADO POR UN MICROCONTROLADOR PIC 16F628A
Un PLC (Controlador Lgico Programable) es un dispositivo electrnico que permite realizar varias funciones a nivel industrial. Actualmente existe una gran variedad de empresas que se encuentran fabricando este tipo de instrumentos, que se basa esencialmente en un microcontrolador y diferentes rels internos que permiten el cambio de contactos de acuerdo a una o varias seales de entrada. A nivel industrial es muy utilizado para automatizar diferentes procesos, teniendo ventajas como el suprimir espacio al no tener que trabajar con armarios llenos de RELAYS de alta potencia que ocupaban cuartos enteros para ese propsito. Como se ha dicho anteriormente el PLC consta de un microcontrolador interno, el cual debe ser necesariamente programado para su funcionamiento, por esta razn los PLC poseen diferentes lenguajes de programacin, facilitando al usuario obtener el proceso que l requiera. La nica desventaja que ste posee es su alto costo en el mercado. En nuestro caso realizaremos un PLC controlado con un microcontrolador PIC 16F628A, el cual tendr internamente 8 rels para realizar las salidas y tendr 8 entradas conectadas a 1L para realizar su programacin. A continuacin presentamos la lista de materiales necesarios para realizar un PLC de 8 entradas y 8 salidas.
LISTA DE MATERIALES 16 Resistencias de 4,7K A W. 16 Resistencias de 330 ohmios 8 leds de alto brillo color rojo para las entradas 8 leds de alto brillo color azul para las salidas 8 borneras de 3 entradas para las salidas del PLC 4 borneras de 3 entradas para las entradas del PLC 8 diodos 1N4007 8 transistores 2N3904 1 PIC 16F628A Placa de circuito impreso de S.C. PIC PLC 23-02

60

S .C. PIC
DIAGRAMA DE CONEXIN

PLC 8 ENTRADAS Y 8 SALIDAS. Schematic Design

Como se puede apreciar en el diagrama, se ha utilizado leds de visualizacin tanto a la entrada como a la salida, para indicar que la entrada est activa y que el rel se ha accionado. A ms de ello se est ocupando pulsadores como referencia de entrada, los cuales pueden cambiarse por sensores como ya se ha explicado anteriormente. Noten tambin que se ha suprimido los diodos 1N4007 que se deben conectar en la entrada de polarizacin de cada rel, esto se debe a que en simulacin no existe el problema que se pueda quemar el microcontrolador, pero en la realidad es totalmente necesario utilizar este diodo de proteccin. Ahora realizaremos una aplicacin con este dispositivo, que consistir en lo siguiente: Por medio de una entrada del PLC se accionen todas las salidas, pase un tiempo de 10 segundos y empiece a accionar los rels uno por uno hacia abajo.

61

S .C. PIC

Aplicacin PLC-01.PBP

Como se puede apreciar en la programacin se a ocupado lo aprendido anteriormente, se ha realizando secuencias a las salidas, de acuerdo a lo que se pide en la aplicacin. Noten que la programacin va directamente al microcontrolador, ya que ste es la cabeza del PLC.

62

S .C. PIC
PROYECTOS CON TECLADOS Y RELES DE 12V
El primer proyecto consiste en realizar una cerradura electrnica con una clave que se guardar en la memoria FLASH que posee el microcontrolador PIC 16F628A. La Memoria flash es una forma evolucionada de la memoria EEPROM que permite que mltiples posiciones de memoria sean escritas o borradas en una misma operacin de programacin mediante impulsos elctricos, frente a las anteriores que slo permite escribir o borrar una nica celda cada vez. Por ello, flash permite funcionar a velocidades muy superiores cuando los sistemas emplean lectura y escritura en diferentes puntos de esta memoria al mismo tiempo. Las memorias flash son de tipo no voltil, esto es, la informacin que almacena no se pierde en cuanto se desconecta de la corriente, una caracterstica muy valorada para la multitud de usos en los que se emplea este tipo de memoria. A continuacin presentamos el diagrama esquemtico para este proyecto.

Cerradura Digital MEMORIA FLASH. Schematic Design

63

S .C. PIC
La programacin para este proyecto sera:

64

S .C. PIC

65

S .C. PIC

Cerradura Digital Memoria FLASH. PBP

DETALLE DEL FUNCIONAMIENTO Este sistema tiene asignada la clave [5, 2, 6, 9], la cual al ser digitada por el usuario, accionar al rel de 12V, el que permanecer energizado durante 5 segundos, si en caso de que la clave ingresada sea incorrecta el sistema realizar un destello de un LED 10 veces alertando al usuario que la clave no es la correcta.

66

S .C. PIC
El segundo proyecto consiste en realizar una cerradura electrnica con una clave que se guardar en la memoria RAM que posee el microcontrolador PIC 16F628A y a su vez esta clave la cambiar el usuario de acuerdo a sus necesidades. Una memoria RAM (Random Access Memory), memoria de acceso aleatorio, es donde el microcontrolador guarda los datos que est utilizando en el momento presente; la cual permite grabarlos en variables definidas por el usuario, pero necesita que la energa suministrada al dispositivo no se la retire, para evitar que stos se pierdan. Para simular esta prctica se puede utilizar el mismo diagrama esquemtico (Cerradura Digital MEMORIA FLASH. Schematic Design) visto anteriormente. La programacin para este proyecto sera:

67

S .C. PIC

68

S .C. PIC

69

S .C. PIC

Cerradura Digital Memoria RAM. PBP

La clave de fbrica para este proyecto es [0, 0, 0, 0] Como se puede apreciar en el programa lo que se ha realizado es definir variables (CLAVE1, CLAVE2, CLAVE3 y CLAVE4), las que almacenarn datos en la memoria RAM que posee cada una de ellas hasta un tamao de 256. Y en el cambio de Clave los valores de fbrica se cambiarn por los asignados por el usuario, y se mantendrn en el sistema hasta que el usuario lo cambie o se desconecte de la fuente de entrada. DETALLE DEL FUNCIONAMIENTO Al ejecutar el programa, debemos asignar la Clave de fbrica para que la puerta (RELE) se abra, el sistema accionar el rel y esperar 5 segundos para retornar a sus valores iniciales, si el usuario desea cambiar la clave de fbrica lo que debe hacer es ejecutar los 3 primeros dgitos de la clave y digitar el signo + del teclado, el que prender un LED y se mantendr prendido hasta que se ejecute la nueva clave, que se asignar en la memoria RAM del microcontrolador PIC, una vez digitados los cuatro nuevos nmeros, observar que el LED se apago, indicando que su clave se grab exitosamente. Y para accionar nuevamente el rel lo que deber realizar es digitar la nueva clave que guard. En caso de que la clave ingresada sea errnea, el sistema realizar el destello de un LED 10 veces, el que indicar que la clave ingresada no es la correcta. En caso de olvidarse el nmero de la clave debe resetear el sistema (Deshabilitando la energa y l habilitndola nuevamente), as el sistema accionar la clave de fbrica.

70

S .C. PIC
El tercer proyecto consiste en realizar una cerradura electrnica con una clave que se guardar en la memoria EEPROM que posee el microcontrolador PIC 16F628A y a su vez esta clave la cambiar el usuario de acuerdo a sus necesidades, con la finalidad de que si desconecta el suministro de energa al sistema esta permanezca con la misma clave utilizada. La memoria EEPROM (Electrical Erasable Programable Read Only Memory), memoria de lectura de programacin y borrado elctrico, es del tipo no voltil, que quiere decir que los datos que se guardarn en esta no se borrarn al momento de desconectar la energa del circuito. Para los microcontroladores de la serie A, el tiempo que permanecer los datos en este tipo de memoria es de 100 aos, en cambio en los microcontroladores que no poseen la A, el tiempo es de 40 aos. (Datos obtenidos en la pgina Web de Microchip)

INSTRUCCIN EEPROM READ WRITE


Antes de continuar desarrollando este proyecto es importante conocer cada una de las instrucciones que permitirn manejar los datos de la memoria EEPROM que posee el microcontrolador PIC 16F628A. EEPROM.- Esta instruccin permite grabar datos en la memoria que lleva el mismo nombre, los cuales se irn posicionando en cada una de las celdas del microcontrolador, cabe destacar que el PIC 16F628A, posee 128 celdas para grabar datos, las cuales manejan 1 BYTE cada una, que significa que podremos guardar un nmero hasta de 255 La sintaxis de manejo es la siguiente: EEPROM 0, [6,2,S,C,6,8]; indica que los datos [6,2,S,C,6,8] se guardarn en las celdas 0, 1, 2, 3, 4, 5 de la memoria EEPROM, y en cuanto a las letras, se grabar el carcter ASCII correspondiente a cada una de ellas. READ.- Esta instruccin permite leer los datos que se encuentran en la memoria EEPROM, y guardar el contenido de las celdas en una variable previamente definida por el usuario, su sintaxis es: READ 0, A; significa, lea lo que contiene la direccin cero de la memoria eeprom guarde en la variable A. READ 1, B; significa, lea lo que contiene la direccin uno de la memoria eeprom guarde en la variable B. READ 2, C; significa, lea lo que contiene la direccin dos de la memoria eeprom guarde en la variable C. READ 3, D; significa, lea lo que contiene la direccin tres de la memoria eeprom guarde en la variable D. READ 4, E; significa, lea lo que contiene la direccin cuatro de la memoria eeprom guarde en la variable E. y y y y y

71

S .C. PIC
READ 5, F; significa, lea lo que contiene la direccin cinco de la memoria eeprom y guarde en la variable F. WRITE.- Esta instruccin permite escribir o sobrescribir una direccin o celda de la memoria eeprom, su sintaxis es: WRITE 0, DATOS; significa, guarde en la direccin o celda cero de la memoria EEPROM lo que contenga la variable DATOS. Conocido el funcionamiento de estas instrucciones realizaremos la programacin para la cerradura electrnica con clave en la memoria EEPROM.

72

S .C. PIC

73

S .C. PIC

Cerradura Digital Memoria EEPROM. PBP

74

S .C. PIC
DETALLE DEL FUNCIONAMIENTO El funcionamiento de este tipo de cerradura es muy similar a la anterior, la nica diferencia es que la nueva clave asignada por el usuario no se va a borrar si existe un corte de energa. Para probar este circuito se lo puede cargar en el mismo diagrama esquemtico (Cerradura Digital MEMORIA FLASH. Schematic Design) visto anteriormente. NOTA: En simulacin el circuito va a funcionar exactamente igual al anterior de la memoria RAM, pero es muy importante que se tenga presente que al hacer la prctica real si se le retira la energa al sistema, la nueva clave asignada por el usuario es la que se mantendr. En la parte de simulacin como abra notado no se puede desconectar la energa al microcontrolador, porque este se encuentra internamente energizado, lo que nos dificulta realizar la prueba de este circuito. Y por ltimo, es aconsejable anotar la nueva clave que se le asigne al sistema, ya que si nos la olvidamos no se va poder abrir la puerta (Energizar el rel), sino esta funcin la tendremos que realizar leyendo el microcontrolador PIC con el IC-PROG y observando los datos asignados en la Direccin de datos EEPROM.

Como se puede observar en la figura los datos que se encuentran en la memoria EEPROM es [0, 0, 0, 0].

75

S .C. PIC

76

S .C. PIC
MANEJO DE MODULOS LCD
Un LCD (Liquid Crystal Display), pantalla de cristal lquido, es una de las herramientas mayormente utilizadas para desplegar algn tipo de informacin, as tenemos por ejemplo, en las cabinas telefnicas, para visualizar el costo de la llamada que se est realizando un display LCD. En el mercado existe gran variedad de mdulos LCD, los que permiten realizar grficos, los alfanumricos 16*2, 16*4, 8*2, , con backlight, sin backlight, etc. En esta ocasin estudiaremos los mdulos LCD alfanumricos 16 * 2 y 8 * 2 con backlight azul. Ya que este presenta la ventaja de darle la elegancia al proyecto que se vaya a realizar, ya que la luz de fondo es azul y las letras son blancas. LCD alfanumrico 16 * 2.- Este tipo de LCD, permite visualizar datos de hasta 16 caracteres por 2 lneas, cada carcter est compuesto por una matriz de leds 7*5, permitiendo formar cualquier letra que se le asigne desde el microcontrolador. El backlight es el color de fondo que va a tener el LCD, entre ellos se encuentran los de color azul, amarillo, blanco, naranja, rojo. Y de acuerdo a estos colores varan su precio en el mercado. No es indispensable que un LCD tenga luz de fondo o backlight, ya que si el usuario lo desea no lo conecta, ahorrando energa y consumo de corriente.

LCD alfanumrico 8 * 2.- Este tipo de LCD, permite visualizar datos de hasta 8 caracteres por 2 lneas, siendo esta la nica diferencia en comparacin con el LCD 16*2. Y de acuerdo a la aplicacin que realice el usuario debe seleccionar el LCD a utilizar.

77

S .C. PIC
El LCD consta de 14 pines, para realizar el manejo o el control del mdulo y 2 pines adicionales para controlar el backlight que posee, en LCDs que no poseen la funcin de backlight o que no poseen luz de fondo, solamente poseen 14 pines para utilizarlos en la parte de control. A continuacin presentamos una tabla correspondiente a las funciones que realizan cada uno de los pines del LCD.
# PIN

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Smbolo DESCRIPCION Vss Pin donde se conecta al GND del sistema Vdd Pin donde se conecta a Vdd o 5V del sistema Vo Ajuste para el contraste del LCD vara de (0 5V) RS Registro de control/datos (Al microcontrolador) R/W Read / Write, lectura y escritura del LCD (A GND del sistema) E Enable, habilita o deshabilita el mdulo LCD (Al microcontrolador) D0 Bit para datos menos significativo D1 D2 D3 D4 D5 D6 D7 Bit para datos mas significativo A nodo del Backlight, Vdd K Ctodo del Backlight GND

Como se puede apreciar en la tabla, Los bits que permiten controlar el LCD son 8, lo cual representa una gran velocidad en visualizacin de datos. Pero una pequea desventaja es que debemos conectar varios cables a nuestro sistema, y ocupar todo un puerto completo para transmisin de los mismos. Por esta razn los fabricantes de LCDs, permiten al usuario trabajar solamente con 4 Bits para transmisin de datos, lo que significa que se enviarn grupos de 4 bits, primero los ms altos y luego los ms bajos, la velocidad de transmisin sera menor pero no representara problemas porque el LCD trabaja en el orden de microsegundos. Conocida la disposicin de pines del mdulo LCD, pasaremos a estudiar las instrucciones que permiten al usuario controlarlos y manejarlos de acuerdo a sus necesidades.

78

S .C. PIC
INSTRUCCIN DEFINE LCDOUT
Para continuar con el estudio de este dispositivo electrnico, debemos conocer las instrucciones DEFINE y LCDOUT, las cuales me permitirn controlar y manejar estos mdulos. DEFINE.- Algunos elementos como el oscilador, master clear, etc. Se encuentran predefinidos en el compilador Pic Basic Pro, sta instruccin permite definir ciertos elementos o cambiarlos de definicin a los que necesite el usuario. Para el caso de los mdulos de LCDs, es necesario definir lo siguiente:

NOTA: Se aconseja utilizar siempre todas las definiciones en un solo puerto, es decir escoger el puerto B, o el puerto A en el caso del PIC 16F628A. Para evitar que los datos sean incorrectos. LCDOUT.- Esta instruccin es de escritura solamente, y su funcin es fijar al mdulo LCD para empezar a escribir en cada uno de los caracteres que posee, y necesita de un comando para su utilizacin. A continuacin se presenta una tabla con cada uno de los comandos que posee el compilador. COMANDO
$FE, 1 $FE, 2 $FE, $0C $FE, $0E $FE, $0F $FE, $10 $FE, $14 $FE, $80 $FE, $C0

OPERACION Limpia el visor del LCD Vuelve al inicio del LCD Apaga el cursor Subrayado del cursor activo Parpadeo del cursor activo Mover el cursor a una posicin a la izquierda Mover el cursor una posicin a la derecha Mueve el cursor al comienzo de la primera lnea Mueve el cursor al comienzo de la segunda lnea

79

S .C. PIC
Conocida la teora realizaremos una prctica que consiste en visualizar en un LCD el siguiente texto: Practica con Microcontrolador Para sacar el LCD en el proteus, digitar en la parte de elementos la palabra LM016L. El diagrama esquemtico de simulacin para esta prctica es:

LCD. Schematic Design

Y la programacin sera:

Mdulo LCD. PBP

80

S .C. PIC
Como se puede apreciar en el programa, lo nico que se ha realizado es definir los puertos del LCD a trabajar, y manejar la instruccin LCDOUT para displayar el texto pedido para la prctica. Noten tambin que no se ha realizado ninguna pausa en la programacin sino que se envi directamente a finalizar el programa. Esto lo realizamos para darnos cuenta que el LCD queda cargado con la frase que se le asigno, debido a que el mdulo posee una memoria interna que hace que mantenga visualizando lo que envi el usuario. Y al simular el proyecto aparecer:

NOTA: En el simulador Proteus no existe el LCD 8*2, pero las conexiones son las mismas, la nica diferencia es que acepta hasta 8 caracteres, por lo que se debe simular ocupando solo 8 caracteres. Si se desea visualizar en un mdulo LCD algn nmero decimal de una variable lo que se debe realizar es lo siguiente: Que significa: Limpie el visor del LCD, ubique el cursor al comienzo de la primera lnea, y visualice el decimal de lo que contenga la variable datos.

81

S .C. PIC
En caso de que sea necesario sacar 2 o ms decimales se procede:

Que significa: Limpie el visor del LCD, ubique el cursor al comienzo de la primera lnea, y visualice con 2 decimales lo que contenga la variable datos. Tambin se puede insertar texto y el decimal de algn nmero de la siguiente manera:

Que significa: Limpie el visor del LCD, ubique el cursor al comienzo de la primera lnea, y visualice: X= y el decimal de lo que contenga la variable datos, es decir si datos tiene un valor de 245 entonces el usuario observar:

82

S .C. PIC
PROYECTOS CON LCDs
El primer proyecto consiste en realizar un reloj digital utilizando un LCD. El diagrama de conexin para simulacin sera:

Reloj Digital. Schematic Design

La programacin para esta prctica sera:

83

S .C. PIC

Reloj Digital. PBP

Como se puede apreciar lo que se ha realizado es un contador, mediante la instruccin FOR NEXT que ya se ha estudiado anteriormente. La pausa generada entre la lnea que tiene los 2 puntos y la que no lo tiene permite visualizar un efecto de intermitencia. Se ha colocado una pausa de 790 milisegundos para tener la hora real de un reloj normal.

84

S .C. PIC
La segunda prctica consiste en realizar un desplazamiento de un texto en el LCD. Para este propsito es necesario tener en cuenta la Instruccin LOOKUP

INSTRUCCIN LOOKUP
Puede ser usado para obtener valores de una tabla de constantes de 8 bits, permite obtener un carcter de letras o nmeros de una cadena y guardarlos en una variable asignada por el usuario. Su sintaxis de manejo es:
Toma el segundo carcter de la cadena HOLA y lo guarda en la variable DATOS

Si la manejamos con un lazo FOR, se podr obtener un efecto de desplazamiento de texto. El diagrama esquemtico para la simulacin en el proteus ser:

Desplazamientos LCD. Schematic Design

85

S .C. PIC
Y su programacin ser:

Desplazamientos de texto en LCD. PBP

86

S .C. PIC
INSTRUCCIN SOUND
Esta instruccin permite generar sonido, trabaja a 8 bits, y el ruido generado va en un rango de 0 a 255. Su sintaxis de manejo es:

Que quiere decir saque por el puerto B el tono 110, mantngalo durante 10 milisegundos, y saque el tono 100 durante 20 milisegundos. A continuacin se realizar esta prctica con simulacin en el software proteus. Para realizar esta prctica se debe seleccionar en el proteus el elemento SOUNDER el que permitir simular un parlante de 8 ohmios, y para escuchar se debe tener los parlantes del computador encendidos. El diagrama de conexin sera:

Instruccin SOUND. Schematic Design

Su programacin ser:

Instruccin SOUND. PBP

87

S .C. PIC
INSTRUCCIN FREQOUT
Permite al usuario sacar frecuencias por un PIN, las cuales pueden estar entre 0 a 32767 Hz, y su sintaxis de manejo es:

A continuacin se realizar un circuito que permita generar tonos de telfono por un puerto del microcontrolador PIC, el cual podr ser probado con el diagrama esquemtico anterior. (Instruccin SOUND. Schematic Design)

Instruccin FREQOUT. Schematic Design

88

S .C. PIC
INSTRUCCIN DTMFOUT
Lo que se realiz en el programa anterior es generar los tonos de telfono para un nmero celular, obteniendo cambios de frecuencia cada 50 milisegundos. Ahora con el estudio de la instruccin DTMFOUT podremos sacar los mismos tonos de celular de una manera ms sencilla, es decir simplemente escribiendo el nmero de telfono a llamar. La sintaxis de manejo para esta instruccin es:

Que significa saque por el BIT B.0 las frecuencias correspondientes a digitar los nmeros de telfono 0, 9, 7, 0, 8, 7, 9, 9, 9 As de esa manera podremos realizar un telfono con el microcontrolador PIC. Para realizar la prueba de esta instruccin generaremos una llamada telefnica al nmero 2 506 145, la cual se escuchar en un parlante de 8 ohmios. La simulacin de esta prctica se puede realizar en el mismo circuito anterior. (Instruccin SOUND. Schematic Design) La programacin ser:

Instruccin DTMFOUT. PBP

Para realizar una llamada telefnica con el microcontrolador se debe accionar un rel para indicarle a la entrada de la lnea telefnica que se descolg el auricular y proceder a enviar los tonos correspondientes al nmero que se desee llamar. El siguiente diagrama de conexin permite realizar esta funcin:

89

S .C. PIC

Instruccin SOUND. Schematic Design

Las resistencias de 680 ohmios a 1 watio, hacen relacin a la carga Z, de un telfono comn. La programacin para realizar la llamada telefnica ser:

Llamada telefnica. PBP

En el programa se energiza el rel de 12V, para simular la accin del levantamiento del auricular en un telfono convencional.

90

S .C. PIC
COMUNICACIN SERIAL CON EL MICROCONTROLADOR PIC 16F628A
Un cable de comunicacin serial permite que dos dispositivos se comuniquen uno con otro enviando y recibiendo datos por una lnea de transmisin y otra lnea de recepcin. Los datos enviados por esta lnea, se enviarn en grupos de 8 bits, utilizando un formato de envo denominado cdigo ASCII.

Tabla Ejemplos ASCII


ASCII 00 00 00 00 00 11 00 00 00 11 00 01 01 00 00 01 01 10 00 01 01 11 10 10 Hex 00 30 31 41 61 7B Carcter (nulo) 0 1 a A {

ASCII son las siglas de American Standard Code for Information Interchange o Cdigo Estndar Americano para el Intercambio de informacin. El formato ASCII es reconocido por todas las computadoras y se puede utilizar para comunicarse con el microcontrolador. Como se pudo ver de la tabla del ejemplo, un conjunto de bits representa cada carcter. Una forma ms compacta de representar un conjunto de bits, es mediante la representacin Hexadecimal. Esta representacin toma 4 bits y los representa por un nmero o una letra que va del 0 al F. Se llama comunicacin serial, porque los cdigos se reciben uno detrs de otro o en serie. Existen 2 tipos de comunicacin serial, la sincrnica y la asincrnica, la nica diferencia entre los dos es: La comunicacin sincrnica necesita una seal de reloj para compararlos con la lnea de envo de datos y garantizar que los datos enviados sean los correctos.

91

S .C. PIC
En cambio la comunicacin serial asincrnica enva datos sin necesidad de una seal de reloj, en su reemplazo ocupa un mecanismo como referencia tierra (norma RS232), o voltajes referenciales (norma RS422/485). En este libro se va a estudiar la comunicacin serial asincrnica, por ser la ms utilizada a nivel mundial por varias empresas de comunicacin y tambin porque nos permitir comunicarnos con el software LABVIEW y VISUAL BASIC 6.0. La manera de transmisin de datos en comunicacin serial asincrnica se detalla en el siguiente diagrama:
BIT DE PARADA BIT DE PARADA BIT DE INICIO BIT DE INICIO

011000 0 1

+5V

0V

Nmero enviado
El grfico corresponde al nmero 01100001 correspondiente al ASCII de A como se anot en la tabla de ejemplo. Las computadoras poseen la norma RS232 para realizar comunicacin serial, la cual utiliza lgica inversa para realizar la comunicacin serial, que significa que 5V = 0L y 0V = 1L, la manera de transmisin de datos para la letra A, en esta norma ser:

011000 0 1

+5V

0V

Nmero enviado

92

S .C. PIC
VELOCIDADES DE TRANSMISIN DE DATOS Las velocidades para transmisin de datos van desde los 300 hasta los 9600 bits por segundo en el modo de comunicacin serial, pero hay que tener presente si son velocidades de datos verdaderos, o datos invertidos. A continuacin presentaremos una tabla con las velocidades para cada uno de stos casos: Dato Verdadero T300 T1200 T2400 T9600 Dato Invertido N300 N1200 N2400 N9600

INSTRUCCIN SERIN SEROUT


Las instrucciones que permite al microcontrolador manejar la comunicacin serial son SERIN y SEROUT, las cuales recepta y transmite el dato serial respectivamente. Para utilizar estas instrucciones es necesario incluir los modos de comunicacin mediante la siguiente instruccin:

SERIN.- Como se ha dicho anteriormente esta instruccin permite recibir un dato enviado serialmente por otro dispositivo electrnico, y su sintaxis es:

Que significa: Recepte el dato serial por el BIT B.0 del puerto B a una velocidad de 2400 bits por segundo y guarde en la variable DATOS. SEROUT.- Mediante esta instruccin se enviarn datos seriales por un pin del microcontrolador, su sintaxis es:

Que significa: Enve el dato A en cdigo ASCII a una velocidad de 2400 bits por segundo por el BIT B.0 del puerto B. Conocida la teora de la comunicacin serial pasaremos a realizar una aplicacin.

93

S .C. PIC
COMUNICACION SERIAL PIC PIC
Para realizar comunicacin serial es importante tener en cuenta que deben existir dos dispositivos que se encuentren a la misma velocidad tanto para transmitir como para recibir datos seriales, para esta aplicacin utilizaremos dos microcontroladores PIC 16F628A los cuales uno de ellos ser el transmisor y otro el receptor. De ah que el diagrama esquemtico para realizar este tipo de simulacin ser:

Comunicacin serial PIC - PIC. Schematic Design

Como se puede observar en la figura, se ha conectado para el PIC transmisor un pulsador, el cual al ser presionado enviar un dato serial al otro microcontrolador, el cual receptar ese dato y encender el LED del PIC receptor. La programacin para el microcontrolador PIC que ser el transmisor es:

Transmisor. PBP

94

S .C. PIC
La programacin para el microcontrolador PIC que ser el receptor es:

Receptor. PBP

COMUNICACIN SERIAL INFRARROJA


Actualmente la electrnica se encuentra desarrollando equipos con tecnologa inalmbrica (sin cables), que le permite al usuario tener mas espacio y mayor esttica en sus oficinas, hogares, etc. Lo que hace indispensable comenzar a desarrollar programas que utilicen este tipo de tecnologa. La comunicacin serial infrarroja permite al usuario comunicarse entre 2 dispositivos electrnicos que se encuentren separados hasta una distancia de 10mts, pero con la desventaja que los LEDs infrarrojos de estos dispositivos que actan como transmisor y receptor deben estar alineados. El transmisor no es ms que un LED infrarrojo, el que enviar los datos seriales. Y el receptor es un LED infrarrojo en forma de un transistor que receptar los datos, posee un encapsulado oscuro para evitar que la luz solar o luz artificial distorsionen la informacin recibida. En cuanto al tratamiento de los datos, que se le debe dar a este tipo de comunicacin serial, es igual al estudiado anteriormente, lo que quiere decir que en lugar del cable que se ocup para comunicar el primer dispositivo con el otro, se utilizar un diodo LED infrarrojo transmisor y un diodo LED infrarrojo receptor los que enviarn y recibirn datos respectivamente. Y la programacin ser la misma. Por lo tanto la conexin para el mdulo de transmisin de datos infrarrojos es:

95

S .C. PIC

Transmisor Infrarrojo. Schematic Design

Noten que se ha adicionado un pulsador, y que el LED infrarrojo se encuentra accionado a travs de un transistor 2N3904. El diagrama para el receptor es:

Receptor Infrarrojo. Schematic Design

En el receptor se ha adicionado un LED que se prender cuando el pulsador del circuito transmisor sea digitado.

96

S .C. PIC
COMUNICACIN SERIAL PC PIC
La comunicacin serial que ocupa el computador es del tipo RS232, utilizando lgica inversa para transmisin y recepcin de datos. Se la puede hallar en el conector DB9 MACHO que posee cada CPU (Unidad central de proceso). Ciertas computadoras utilizan este conector para colocar perifricos de entrada como el mouse, PLCs, entre otros. Cada uno de los pines del puerto serial est dedicado a un propsito especfico, que fue determinado cuando se elabor el estndar RS232. A continuacin se presenta una tabla con cada una de las funciones que realiza este puerto.

Propsito de cada uno de los pines del Conector DB9


# 1 2 3 4 5 6 7 8 9 Tierra de chasis Recibe los datos (RD) Transmite los datos (TD) Terminal de Datos esta Listo (DTR) Tierra de seal Conjunto de Datos esta Listo (DSR) Solicita Permiso para Enviar Datos (RTS) Pista Libre para Enviar Datos (CTS) Timbre Telefnico (RI) Propsito

Como se puede apreciar en la tabla, los pines 2 y 3 son los ms importantes para nosotros ya que permiten recibir y transmitir datos respectivamente.

97

S .C. PIC
Para introducirnos en el manejo de la comunicacin serial con el computador utilizaremos el software VISUAL BASIC 6.0.

COMUNICACIN SERIAL CON VISUAL BASIC 6.0


Visual Basic es una herramienta que permite realizar una programacin orientada a objetos, que significa que cada uno de los elementos que se escoja en la pantalla podr ser programado.

Al iniciar Visual Basic aparece la pantalla Nuevo proyecto, en donde se seleccionar el tipo de proyecto que se va a realizar. Por defecto aparece la aplicacin EXE estndar que es la que necesitamos para realizar el control computarizado de proyectos electrnicos con microcontroladores mediante comunicacin serial.

98

S .C. PIC
Aparecer una pantalla similar a la siguiente:

Esta pantalla contiene una seccin que se llama Form1, la cual permite al usuario generar el Formulario, es decir permite visualizar como va a quedar nuestro proyecto con los elementos que necesite para su proyecto. En la izquierda de la pantalla se encuentra la barra de elementos, los cuales se les ir agregando de acuerdo a las necesidades del proyecto. En la derecha superior de la pantalla se encuentra el explorador de proyectos el que permitir observar el nombre del proyecto, y el nombre del o los formularios que el usuario agregue al mismo de acuerdo a sus necesidades. En la derecha inferior de la pantalla se encuentra la ventana de propiedades, donde el usuario cambiar el nombre, el tamao, los colores, entre otros, a cada uno de los objetos a programar.

99

S .C. PIC
Para realizar comunicacin serial con este software es necesario agregar a la ventana de herramientas el modo de comunicaciones realizando un clic derecho en la parte inferior de la ventana de herramientas, seleccionamos componentes.

. Aparecer la siguiente ventana:

100

S .C. PIC
En la que se va a buscar el componente Microsoft Comm control 6.0, y se lo seleccionar de la siguiente manera:

Al realizar este procedimiento se cargar en la ventana de herramientas un nuevo elemento parecido a un telfono analgico.

Este elemento es el que permite al usuario comunicarse con el puerto serial que posee el computador.

101

S .C. PIC
Conocidos los elementos ms importantes para el manejo de este software, realizaremos una prctica que consistir en prender un LED desde el computador durante 5 segundos , apagar el LED y a la vez monitorearlo, utilizando Visual Basic 6.0 Para realizar esta prctica debemos adicionar al formulario los siguientes componentes: Un botn (CommandButton) Un reloj (Timer), que permitir monitorear el LED si se encuentra encendido o apagado. Modo de comunicaciones Un crculo, simulando un LED

Y el formulario queda de la siguiente manera:

Para sacar el crculo se debe escoger la herramienta shape que permite dibujar rectngulos, cuadrados, valos, crculos, etc. Para nuestro caso ocuparemos un crculo, pero hay que tener en cuenta que por defecto visual Basic carga al shape con un rectngulo, lo que significa que en las propiedades del objeto shape se debe cambiar a crculo as:

102

S .C. PIC

Seleccionar la herramienta shape y arrastrar como se muestra en el grfico de la parte superior, seleccionar el objeto y en la parte de propiedades proceder a cambiar a crculo.

Para seleccionar un color plomo al crculo hay que seleccionar en propiedades del elemento, FillColor y escoger el color a usar, y en FillStyle seleccionar SOLID, para que el color se fije en todo el crculo.
103

S .C. PIC
Quedando el crculo completamente editado que simular un LED para el monitoreo.

Para visualizar cual es la velocidad de envo y recepcin de datos para la comunicacin serial hay que ingresar a las propiedades del componente para las comunicaciones. Para esto dar clic derecho con el mouse en el componente similar a un telfono y seleccionar propiedades, donde aparecer una pantalla como la siguiente:

104

S .C. PIC
Donde indica los valores para la comunicacin serial. Que se encuentran establecidos en: 9600,n,8,1 que significa: Envo de 8 bits de datos seriales, sin paridad y con un bit de parada a una velocidad de 9600 bits por segundo. Esta ventana tambin permite seleccionar el puerto de comunicaciones que se va a utilizar para realizar la prctica. Ahora lo nico que falta es realizar la programacin para este proyecto que ser la siguiente: Como se ha dicho anteriormente que visual Basic es una herramienta orientada a objetos, empezaremos a programar el objeto formulario. Dando doble clic en cualquier parte del formulario que no contenga ningn elemento. Aparecer una ventana similar a:

En donde programaremos lo siguiente: Cuando se ejecute el programa, habilite el puerto de comunicaciones y a la vez permita correr el timer a intervalos de 1 milisegundo:

Luego se procederemos a programar el objeto CommandButton, el que permitir encender el LED desde el computador, actuando como un pulsador. Para esto dar doble clic en el objeto Command1.

Doble clic para que aparezca la pantalla para la programacin y donde se escribir:

Esta parte del programa lo nico que realiza es enviar el dato serial de P para que el microcontrolador recepte este dato y encienda el LED.

105

S .C. PIC
Ahora lo nico que hace falta es programar el timer, para que realice el monitoreo del LED. Si se encuentra encendido, cambiar el color del crculo a rojo; caso contrario cambiar el color del crculo a plomo, monitoreando de esta manera el encendido y apagado de un LED. Para cumplir con este objetivo hay que dar doble clic en el componente timer que es similar a un reloj, en donde aparecer la siguiente ventana:

Procederemos a ingresar el cdigo necesario para el monitoreo:

Como se puede notar, en esta parte de la programacin lo que se ha realizado es receptar un dato serial, y preguntar por ese dato si es E o A, y si es E pintar el color del crculo por rojo y si es A pintar el color del crculo de plomo. El programa completo quedara as:

106

S .C. PIC

Ahora continuaremos con el microcontrolador. El diagrama esquemtico para este proyecto ser:

Comunicacin serial con Visual Basic. Schematic Design

Como se puede apreciar el Pin transmisor del conector DB9 est conectado con el Pin que actuar como receptor en el microcontrolador, y viceversa.

107

S .C. PIC
La programacin para el microcontrolador ser:

Comunicacin serial con Visual Basic. PBP

108

S .C. PIC
MANEJO DEL SOFTWARE LABVIEW 7.0
El LabView es un lenguaje de programacin de alto nivel, de tipo grfico, y enfocado al uso en instrumentacin. Pero como lenguaje de programacin, debido a que cuenta con todas las estructuras, puede ser usado para elaborar cualquier algoritmo que se desee, en cualquier aplicacin, como en anlisis, telemtica, juegos, manejo de textos, etc. Cada programa realizado en LabView ser llamado Instrumento Virtual (VI). El lenguaje mas apto para realizar proyectos computarizados se lo ha considerado al software LABVIEW por varias razones como: Es muy simple de manejar, debido a que est basado en un nuevo sistema de programacin grfica, llamada lenguaje G. Es un programa enfocado hacia la instrumentacin virtual, por lo que cuenta con numerosas herramientas de presentacin, en grficas, botones, indicadores y controles, los cuales son muy esquemticos y de gran elegancia. Estos seran complicados de realizar en bases como c++ o visual Basic donde el tiempo para lograr el mismo efecto sera muchas veces mayor. Es un programa de mucho poder donde se cuentan con libreras especializadas para manejos de DAQ (Sistemas de adquisicin de datos), Redes, Comunicaciones, Anlisis Estadstico, Comunicacin con Bases de Datos (til para una automatizacin de una empresa a nivel total). Con este las horas de desarrollo de una aplicacin por ingeniero, se reducen a un nivel mnimo. Como se programa creando subrutinas en mdulos de bloques, se pueden usar otros bloques creados anteriormente como aplicaciones por otras personas. Es un programa que permite pasar las aplicaciones entre diferentes plataformas como Macintosh y seguir funcionando.

109

S .C. PIC
Sus partes ms importantes son: EL PANEL FRONTAL: Donde se ven los datos, se manipulan y controlan.

Es en esta pantalla es donde se encontrarn los elementos que el usuario vaya a utilizar. Para visualizar la tabla de controles dar clic derecho en cualquier parte de la pantalla y aparecer una ventana similar a:

110

S .C. PIC
Donde se encuentran botones, switch, leds controles numricos, indicadores grficos, etc. EL DIAGRAMA DE BLOQUES: En este se aprecia la estructura del programa, su funcin y algoritmo, de una forma grfica en lenguaje G, donde los datos fluyen a travs de lneas.

Cada elemento que se seleccione en el panel frontal aparecer encerrado en un cuadro dentro de la pantalla, en el diagrama de bloques, en donde se llevar a cabo la programacin que el usuario la vaya a desarrollar mediante conexiones o uniones del mouse. As:

111

S .C. PIC
EL PROGRAMA COMPILADO: Cuando se escribe en LabView, el algoritmo escrito de forma grfica no es ejecutable por el computador, por tanto, LabView lo analiza, y elabora un cdigo assembler, con base en el cdigo fuente de tipo grfico. Esta es una operacin automtica que ocurre al ejecutar el algoritmo, por tanto no es importante entender como sucede esto. Lo que si es algo para apreciar, es que en este proceso, se encuentran los errores de confeccin que son mostrados en una lista de errores, donde con solo darle doble clic al error, se aprecia en el diagrama de bloques, donde ocurre ste, para su correccin. LOS DATOS: Como el algoritmo maneja datos, requiere de un espacio en memoria para estos, lo que hace tomar en cuenta que el computador usado debe tener la memoria suficiente para manejarlos. Por ejemplo, cuando se usan grandes matrices en clculos se puede requerir de mucho espacio. Tanto en el panel frontal como en el diagrama de bloques, existe una paleta de herramientas, que sirve tanto para editar el VI, o ejecutarlo segn el modo de trabajo que se tenga. PALETA DEL PANEL FRONTAL

Ejecuta el programa repetitivamente. Permite detener el programa Pausa el programa

Ejecuta el programa una sola vez, por esta razn se debe tomar en cuenta que si no se realiza un lazo repetitivo, el usuario no podr observar el funcionamiento del programa, debido a que el programa se ejecutar muy rpido.

Entendido el funcionamiento de las partes ms importantes del LABVIEW pasaremos a realizar una prctica sencilla, que permita prender y apagar un led mediante un interruptor.

112

S .C. PIC
Para la realizacin de esta prctica en la ventana de LabView seleccionar una hoja virtual en blanco, as:

En el panel frontal seleccionar un interruptor y un led

113

S .C. PIC
Digitar CRTL + E para pasar al diagrama de bloques donde se realizar la programacin grfica para este proyecto, que consistir en unir mediante el mouse los dos objetos para prender y apagar el led mediante el interruptor.

Noten que al presionar CTRL + E aparece la pantalla del diagrama de bloques con los dos objetos seleccionados en el panel frontal. Ahora simplemente hay que ejecutar el programa para visualizar el proyecto.

NOTA: Tener en cuenta que si se desea observar el funcionamiento hay que correr el programa con el icono que ejecuta el programa repetitivamente, ya que no se le ha asignado ningn lazo repetitivo al proyecto.

114

S .C. PIC
Si se desea que este proyecto se mantenga mediante un lazo repetitivo, se procede de la siguiente manera: En el diagrama de bloques dar clic derecho en cualquier parte de la pantalla y se tiene una nueva ventana con diferentes herramientas:

En esta ventana se tiene varios elementos, los cuales permiten realizar funciones de comparacin, suma, resta, entrada de datos, salida de datos, etc. Para nuestro caso se seleccionar en Exec Ctrl para seleccionar un lazo While Loop que permite realizar repeticiones en el sistema.

Para que este lazo funcione en la prctica que estamos realizando se lo debe adicionar dentro de los elementos que se est utilizando de la siguiente manera:

115

S .C. PIC

Y como se puede apreciar al colocar este lazo se gener un nuevo elemento denominado STOP, el que permitir parar el sistema en cualquier momento durante su ejecucin. Para ejecutar el programa basta con dar un clic en el icono , el que ejecutar el programa repetidamente gracias al lazo While Loop que se ha adicionado al sistema.

116

S .C. PIC
COMUNICACIN SERIAL CON LABVIEW 7.0
LABVIEW permite utilizar tarjetas de adquisicin de datos para comunicarnos con perifricos externos al computador, lo cual tiene grandiosas ventajas, pero los costos de estas tarjetas son muy elevados. LABVIEW permite comunicarse con los puertos de comunicacin que posee el computador, tanto con el puerto paralelo, como con el puerto serial, siendo esta una de las grandes ventajas ya que el microcontrolador PIC puede aceptar un dato serial enviado desde el computador. A continuacin realizaremos un ejemplo que permita recibir un dato serial y visualizarlo en un LED. Para este propsito se necesita un LED como indicador y un botn para iniciar la comunicacin serial, adicionando un indicador tipo texto para visualizar lo que contiene la buffer al ingreso de los datos seriales. La pantalla en el panel frontal quedara as:

Para comparar si el estado del pulsador es alto o bajo es necesario ingresar en el diagrama de bloques la funcin Case Structure, la cual permitir obtener un dato verdadero si se digit el pulsador y un dato falso si no se lo presion.

117

S .C. PIC
Seguidamente se colocar esta opcin en el diagrama de bloques.

Cuando el dato sea verdadero, el sistema permitir el ingreso de datos seriales, caso contrario el sistema no aceptar el ingreso de los mismos.

118

S .C. PIC
Es necesario incluir el modo de comunicacin serial que se encuentra en Instrumentos I/O.

Noten que en esta tabla, se encuentra la configuracin del puerto serial, el que contiene: Modo para lectura, modo para escritura, modo para cerrar el puerto de comunicacin serial, entre otros. Los que necesitamos para el presente proyecto son: Los modos de configuracin, lectura y cerrar que posee el puerto serial.

119

S .C. PIC
A ms de estos modos es necesario incrementar el Resource Name Constant

Quedando la pantalla completa as:

120

S .C. PIC
Para el caso de que el pulsador no se digite, la programacin en diagrama de bloques quedar:

La funcin de este sistema ya se ha detallado anteriormente, y la programacin para el microcontrolador consistir en enviar el dato serial de A de la siguiente manera:

Comunicacin serial con LABVIEW 7.0. PBP

121

S .C. PIC

122

S .C. PIC

MANEJO DE MODULOS DE RADIO FRECUENCIA


La RADIO FRECUENCIA, permite al usuario comunicarse entre dos equipos, a travs de dispositivos de transmisin y recepcin de datos, sin necesidad que los equipos se encuentren alineados, y en algunos casos, no necesitan que se encuentren en lnea de vista, es decir puede estar un equipo en una habitacin y otro equipo en otra habitacin. Actualmente existen en el mercado una gran variedad de mdulos de radio frecuencia, los cuales permiten al usuario operar con dispositivos electrnicos sin necesidad de cables. En algunos casos estos mdulos no son muy costosos, como los mdulos de transmisin y recepcin de datos de FUTURLEC.

Cada uno de estos mdulos necesita circuitos integrados que permitan codificar la seal que estn enviando y recibiendo, en el caso del transmisor de radio frecuencia necesita el circuito integrado HT12D, y el receptor utiliza el HT12E. El fabricante de ste tipo de mdulos, trabaja con modulaciones de tipo ASK, por su bajo costo y alto desempeo a la hora de transmitir y recibir datos. Poseen 2 tipos de frecuencia, la de 315 MHz y la de 433.92 MHz. El manejo de estos mdulos de RF, es muy sencilla, ya que estos circuitos integrados tienen la ventaja de asignar un cdigo para transmisin de datos, el cual debe ser el mismo en el receptor para que el sistema pueda funcionar. Los circuitos integrados HT12D y HT12E, operan hasta 4 bits, si se desea mayor capacidad para el trabajo se debe utilizar los circuitos HT648L en el caso del receptor y HT640 para el transmisor.

123

S .C. PIC
El diagrama de conexin para este tipo de dispositivos se presenta a continuacin:

Noten que la entrada de datos se la realiza por el PIN 14 del HT12D, y el cdigo se lo asigna del PIN 1 hasta el PIN A7, en este caso el cdigo ser: 00000000 para recibir datos.

En el HT12E, tambin se le ha asignado el mismo cdigo para transmitir datos, haciendo que de esta manera el un dispositivo sea el receptor y el otro el transmisor. Para enviar datos con el microcontrolador lo que se tiene que hacer es en lugar de los switch que se encuentran del PIN D0 al PIN D3 colocar 4 bits del puerto B.

124

S .C. PIC
Actualmente existen microcontroladores que tienen la ventaja de convertirse en mdulos de transmisin y recepcin de radio frecuencia como son: Los RFPICs. Para transmitir datos se tiene al rfPIC 12F675 y para recibir datos al rfRXD0420, pero el circuito que se debe montar es muy complicado, ya que las bobinas que necesita no se encuentran en el mercado. Por esta razn MICROCHIP ha desarrollado mdulos de transmisin y recepcin de radiofrecuencia para evitarnos la complejidad de armar estos circuitos.

El manejo de estos mdulos de radio frecuencia no es muy complejo, ya que lo nico que se debe realizar es medir la variacin del potencimetro que posee el transmisor y de acuerdo a ese dato proceder a realizar una funcin especfica. A ms de estos mdulos es necesario tener un microcontrolador, el cual medir la variacin del potencimetro. Por esta razn es necesario estudiar la instruccin POT, la cual permite medir la variacin de un potencimetro de 5K hasta 50K de acuerdo a la carga y descarga de un capacitor conectado en serie. El diagrama esquemtico para esta funcin ser:

Instruccin POT. Schematic Design

125

S .C. PIC
INSTRUCCIN POT
La sintaxis de esta instruccin es:

Que significa: Tome el dato del potencimetro a 8bits y gurdelo en la variable DATO. La programacin para esta prctica ser:

Medida de un Potencimetro. PBP

De esta manera se podr leer el mdulo de radio frecuencia conectando el PIN RA3 del receptor en la entrada del PIN RB0 del microcontrolador PIC y de acuerdo a ese dato de 8bits, realizar cualquier tipo de aplicacin, como el monitoreo de una plataforma para la alineacin de vehculos.

126

S .C. PIC

PROGRAMANDO EL PIC 16F819 Y EL 16F877A


MICROCONTROLADOR PIC 16F819
La programacin para los microcontroladores en general es la misma, lo que difiere unos de otros es la capacidad que poseen, y ciertas ventajas ms como la de tener conversores anlogo digital. El microcontrolador PIC 16F819 posee 5 conversores anlogo digital, permitiendo al usuario ocupar esta ventaja para realizar sistemas de medida de temperatura, sistemas automotrices como el balanceo de llantas, entre otros. Tambin tiene la ventaja de utilizar oscilador interno, que puede variar desde 31.25 KHz hasta 8MHz

CONVERSOR ANLOGO DIGITAL


Para utilizar la conversin anloga digital que posee ste microcontrolador es necesario estudiar la instruccin ADCIN.

INSTRUCCIN ADCIN
Los bits del puerto A, que permiten realizar la funcin de conversores anlogo digital son el A.0, A.1, A.2, A.3 y A.4, los que detectan el nivel de voltaje que ingresa por el PIN, y si trabajamos a 8 bits, el nivel de voltaje los dividir en 256 segmentos que irn desde 0 a 255. Por lo tanto la instruccin ADCIN, permite entregar niveles de voltaje y guardarlos en una variable definida por el usuario. Su sintaxis de manejo es:

Que significa lea el canal cero, y guarde el resultado obtenido en la variable DATOS. Si recordamos. Para apagar los comparadores de voltaje del puerto A que posee el microcontrolador PIC 16F628A y convertirlos a digitales, se realizaba mediante la instruccin CMCON=7. Para este tipo de microcontrolador la instruccin que permite realizar esta funcin es: ADCON1=7.

127

S .C. PIC
A continuacin se presenta un programa el cual permite leer los niveles de voltaje que ingresan por el pin que acta como conversor anlogo digital que posee el microcontrolador PIC 16F819. El potencimetro debe ser de 5K hasta 50K. El diagrama de conexin ser:

Conversor Anlogo - Digital. Schematic Design

Y la programacin para esta prctica ser:

128

S .C. PIC

Conversor Anlogo Digital PIC 16F819. PBP

En el software proteus no se encuentra este microcontrolador, por lo que el circuito se lo puede probar en el PIC 16F877A, que es similar, pero con la diferencia que tiene 40 pines para trabajar. Ms adelante se indicar las ventajas de utilizar este microcontrolador. Uno de los proyectos mas utilizados con este tipo de microcontrolador PIC es un termmetro digital utilizando el sensor de temperatura LM 35, el cual presenta en su pin de salida una variacin de 10 mV por cada grado centgrado que haya censado. La alimentacin para este censor vara entre 4 a 30 voltios, para nuestro caso lo alimentaremos con 5 Vcc. El diagrama para utilizar este sensor ser:

129

S .C. PIC
DIFERENCIAS ENTRE EL PIC 16F628A Y EL PIC 16F819
En la siguiente tabla se presenta las principales diferencias entre los microcontroladores PIC 16F628A y el PIC 16F819
PIC Memoria de Programa Memoria de datos EEPROM Memoria RAM Comparadores Conversores A/D Puertos

16F628A 16F819

2048 2048

128 256

224 256

2 N/D

N/D 5

2 2

130

S .C. PIC
MICROCONTROLADOR PIC 16F877A
Este tipo de microcontroladores es uno de los ms utilizados para realizar proyectos que requieren mayor capacidad para guardar datos, mayor nmero de puertos para trabajar como entrada o salida, etc. Este microcontrolador, necesita un oscilador externo, y una resistencia pull up para conectarlo en el master clear, ya que no hay forma de deshabilitarlo. Una manera sencilla de darse cuenta que el microcontrolador posee las ventajas de tener oscilador interno y master clear programable es directamente en el IC- PROG.

En el grfico se puede observar que en las opciones de configuracin para el PIC 16F628A existe una que dice IntRC CLKOUT, que significa que posee oscilador interno. Y en los bits de configuracin se puede deshabilitar la opcin del MCRL, para no ocupar el Master clear. Ahora si seleccionamos en el IC-PROG el PIC 16F877A, nos daremos cuenta que estas opciones no se las encuentra, indicando al usuario que no posee master clear programable ni oscilador interno.

131

S .C. PIC

Por esta razn para que el PIC 16F877A funcione es necesaria la siguiente conexin:

132

S .C. PIC
En cuanto a la programacin la nica diferencia es que hay que seleccionar en el compilador PIC BASIC PRO el PIC 16F877A, y para digitalizar el puerto A, se tiene que incluir la instruccin ADCON1=7.

DIFERENCIAS ENTRE EL PIC 16F628A, 16F819 Y 16F877A


En la siguiente tabla se presenta las principales diferencias entre los microcontroladores PIC 16F628A y el PIC 16F819
PIC Memoria de Programa Memoria de datos EEPROM Memoria RAM Comparadores Conversores A/D Puertos

16F628A 16F819 16F877A

2048 2048 8192

128 256 256

224 256 368

2 N/D N/D

N/D 5 8

2 2 5

133

S .C. PIC

134

S .C. PIC

MANEJO DE MOTORES
Los motores son una herramienta fundamental para realizar procesos industriales, como el transportar un producto de una estacin a otra, se utiliza tambin en proyectos de robtica, mecatrnica, entre otros. En el presente libro detallaremos el funcionamiento de motores paso paso y de servomotores. Los cuales ayudarn al lector a realizar proyectos como: posicionadores, robots, etc.

MOTORES PASO - PASO


Los motores paso paso son muy utilizados en mecanismos donde es muy importante la precisin del movimiento, como en robtica, en proyectos aeroespaciales, en maquinarias industriales como fresadoras, tornos, inclusive los encontramos en las computadoras en perifricos como las impresoras, CD-ROM, floppy disk, etc. La diferencia con los motores de corriente continua y corriente alterna se encuentra en que los motores paso paso son ms precisos, en su velocidad, movimiento y giros, ya que trabajan con seales digitales, es decir con 0L y 1L. Existen 2 tipos de motores paso paso, los bipolares y los unipolares, la diferencia entre ellos es que los motores bipolares poseen 2 bobinas y son de 4 hilos, en cambio los motores unipolares poseen mayor nmero de bobinas facilitando el manejo al usuario, y poseen desde 5 hasta 8 hilos para su manejo. En el proteus podemos encontrar los 2 tipos de motores paso paso, digitando en la parte de elementos la palabra motor.

135

S .C. PIC
Para manejar el motor paso paso bipolar se requiere de un circuito integrado L298 que dispone de 2 puentes H (H Bridge) o por lo menos debemos hacer un arreglo de 8 transistores, (4 NPN y 4 PNP). Tambin se necesita el circuito integrado L297 En cuanto al voltaje de alimentacin que se requiere para los 2 tipos de motores, varan entre 1.3V, 1,9V, 4,5V, 5V, 12V y 24V, y la corriente que consume un motor puede estar desde 300mA hasta 3, dependiendo del torque que ste se encuentre manejando.

MOTORES PASO PASO UNIPOLARES


El motor paso paso UNIPOLAR, posee de 5 a 8 hilos como ya se ha dicho anteriormente, siendo sta una de las grandes ventajas para trabajar con este tipo de motor, ya que el circuito de control es muy sencillo. El nico inconveniente que se tiene es poder identificar las 4 bobinas principales (A, B, C, D). A continuacin se presenta una gama de colores con la que se las puede identificar: BOBINA COLOR A Amarillo B Naranja C Negro D Caf Y los dems hilos sern los comunes, los cuales se los conecta a la entrada del voltaje de operacin. En las especificaciones del motor viene dado el grado de precisin, entre algunos de ellos tenemos de 0.72, 1.8, 3.75, 7.5, 15, 90 etc. Y de acuerdo al grado que gire el motor por impulso, se debe dar un nmero de pasos para que este gire una vuelta completa, por ejemplo: Para un motor que el grado de giro sea 90, el nmero de pasos que debe dar para dar una vuelta completa ser de 4, para un motor de 1,8 el nmero de pasos ser 200. Para manejar este tipo de motor es necesario un circuito integrado buffer ULN2003, el cual es de muy bajo costo y posee toda la circuitera interna para manejar este tipo de motores. Por lo tanto el diagrama de conexin es:

136

S .C. PIC

Motor Unipolar. Schematic Design

En cuanto a la programacin de este tipo de motores, se lo realiza mediante secuencias, es decir para que el motor gire un paso, se tiene que energizar las bobinas A, C, B y D. En el motor de paso que posee el proteus la disposicin de pines es:

Donde A, B, C y D son las bobinas que posee el motor. Las secuencias mas utilizadas para la energizacin de las bobinas son: WAVE DRIVE FULL STEP

137

S .C. PIC
SECUENCIA WAVE DRIVE
El programa para utilizar esta secuencia es:

Secuencia WAVE DRIVE. PBP

Como se puede observar en el programa lo nico que se ha utilizado es la funcin trisb para generar secuencias.

138

S .C. PIC
SECUENCIA FULL STEP
Tambin se la conoce con el nombre de secuencia por paso completo. Es la ms utilizada a nivel de la robtica, ya que permite mantener energizadas 2 bobinas y obtener un alto torque de paso y retencin. El programa que permite realizar esta secuencia es:

Secuencia FULL STEP. PBP

139

S .C. PIC
MOTORES PASO PASO BIPOLARES
El diagrama de conexin para utilizar estos motores es:

Motor bipolar. Schematic Design

Los circuitos integrados L297, y L298 permiten generar las secuencias necesarias para energizar las bobinas del motor bipolar. Por lo tanto la programacin para este tipo de motor es:

MOTOR bipolar. PBP

140

S .C. PIC
MANEJO DE SERVOMOTORES
Los servos son un tipo especial de motor que se caracterizan por su capacidad para posicionarse de forma inmediata en cualquier posicin dentro de su rango de operacin.

Para ello, el servo espera un tren de pulsos que se corresponden con el movimiento a realizar. Estn generalmente formados por un amplificador, un motor, la reduccin de engranaje y la realimentacin, todo en una misma caja de pequeas dimensiones. El resultado es un servo de posicin con un margen de operacin de 180 aproximadamente. Como se puede apreciar en la figura, posee tres cables. El rojo es alimentacin (+5V), el negro es tierra (GND) y el cable amarillo es el que permite realizar el control. El motor interno que posee, es de corriente directa, el cual posee una tarjeta controladora la cual le indica cuantas vueltas debe girar para acomodar el engranaje. La posicin deseada se determina por medio de pulsos, siendo la duracin del pulso la que indica el ngulo de giro por esta razn cada servomotor tiene sus mrgenes de operacin que corresponden al ancho de pulso ya sea mximo o mnimo. El intervalo de tiempo con los que opera el servomotor est dado entre 10 y 30 milisegundos, para que un servomotor se mantenga en la misma posicin durante un cierto tiempo es necesario enviarle continuamente el pulso correspondiente al ngulo en el que se encuentra.

141

S .C. PIC
En este libro se estudiar el servomotor HITEC HS 311, por ser ms econmico y tener un torque de salida de 3.0Kg.cm, suficiente para proyectos de robtica. A continuacin se presenta la generacin de pulsos que necesita un servomotor HITEC HS 311, para sus tres posiciones:

Para realizar la programacin para el control de los servomotores es importante estudiar la instruccin PWM, la cual permite generar pulsos por un PIN del microcontrolador.

142

S .C. PIC
INSTRUCCIN PWM
PULSE WIDTH MODULATION, modulacin por ancho de pulso, esta instruccin permite enviar un tren de pulsos modulado por ancho a un PIN. Cada ciclo de PWM est compuesto de 256 pasos. Su sintaxis es:

Que quiere decir, saque 3 pulsos al 50% en alto por el BIT B.0 del puerto B. Cada ciclo depende de la frecuencia del oscilador, para un cristal de 4 MHZ cada ciclo ser de 5 milisegundos de largo, para un cristal de 20 MHz cada ciclo ser aproximadamente de 1 milisegundo. A continuacin se realizar una prctica que permita girar el motor a la izquierda y a la derecha, mediante dos pulsadores. El diagrama de conexin es:

Servomotor. Schematic Design

143

S .C. PIC
Y la programacin para este proyecto es:

SERVOMOTOR. PBP

144

S .C. PIC
Con estos conocimientos podr realizar un robot como el que se muestra a continuacin.

En el CD encontrar una simulacin con el movimiento que debe realizar las patas del ROBOT para que no existan atascos en el avance del mismo. Como se aprecia este robot se ha realizado con servomotores estudiados en el libro.

145