Club Saber Electrónica Nro. 113. Todo sobre microcontroladores
Transcrição
Club Saber Electrónica Nro. 113. Todo sobre microcontroladores
2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1 Editorial - Editorial - Editorial - Editorial Nº 113 Director de la Colección Club Saber Electrónica Ing. Horacio D. Vallejo Jefe de Redacción Pablo M. Dodero Club Saber Electrónica es una publicación de Saber Internacional SA de CV de México y Editorial Quark SRL de Argentina Editor Responsable en Argentina y México: Ing. Horacio D. Vallejo Administración México: Patricia Rivero Rivero Comercio Exterior México: Margarita Rivero Rivero Director Club Saber Electrónica: José María Nieves Responsable de Atención al Lector: Alejandro A. Vallejo Coordinador Internacional Luis Alberto Castro Regalado Publicidad Argentina: 4301-8804 - México: 5839-5277 Internet: www.webelectronica.com.ar Web Manager: Pablo Ábalos Club Saber Electrónica. Fecha de publicación: julio 2014. Publicación mensual editada y publicada por Editorial Quark, He rre ra 761 (1295) Ca pi tal Fe de ral, Ar gen ti na (00541143018804), en conjunto con Saber Internacional SA de CV, Av. Moctezuma Nº 2, Col. Sta. Agueda, Ecatepec de Morelos, México (005255-58395277), con Certificado de Licitud del título (en trámite). Distribución en México: REI SA de CV. Distribución en Argentina: Capital: Carlos Cancellaro e Hijos SH, Gutenberg 3258 - Cap. 4301-4942 - Interior: Distribuidora Bertrán S.A.C. Av. Vélez Sársfield 1950 - Cap. – Distribu ción en Uru guay: Ro de sol SA Ciu da de la 1416 – Montevideo, 901-1184 – La Editorial no se responsabiliza por el contenido de las notas firmadas. Todos los productos o marcas que se mencionan son a los efectos de prestar un servicio al lector, y no entrañan responsabilidad de nuestra parte. Está prohibida la reproducción total o parcial del material contenido en esta revista, así como la industrialización y/o comercialización de los aparatos o ideas que aparecen en los mencionados textos, bajo pena de sanciones legales, salvo mediante autorización por escrito de la Editorial. Revista Club Saber Electrónica, ISSN: 1668-6004 Desdequeelprimermicrocontroladorviólaluzen el mundo (el 4004), y cuya única y principal operacióneraunasumade1bit,secomenzóconunacarreratecnológicaquelejosdeverelfin,díaadíava logrando cosas inimaginables, tal es el caso de los microcontroladoresquevendríanaserelejemploresumido y en miniatura de una computadora personal(PC). Haceyaunosañosaparecióunnuevosistemacon todaslasventajasdeMicrochipymuchomás,nosreferimos a PICAXE, un chip especial que facilita aún más la tarea del técnico proyectista y armador. Los microcontroladores PICAXE, son PICs comunes (Hechos por Microchip) a los que se les ha grabado un peq ueñ o prog ram a int ern o den om in ad o firmw ar e (firmware o programación en firme, es un bloque de instrucciones de programa para propósitos específicos,grabadoenunamemoriatipoROM,queestablecelalógicademásbajonivelquecontrolaloscircuitos electrónicos de un dispositivo de cualquier tipo) para que no precise de un circuito externo para ser grabadoyparaqueelprogramaagrabarpuedaser escritoenBasicyhastaendiagramadeflujo. Si todavía no los conoce, dé una mirada a esta obra y verifique usted mismo las ventajas de estos nuevosmicrocontroladores. IngHoracioD.Vallejo ISBN Nº: 987-1116-62-4 IndIce de la Obra pIcaxe: la nueva fOrma de prOgramar un pIc.......................................................3 Conociendo los microcontroladores de este sistema ...........................................................................5 Utilitario gratuito para hacer programas..............................................................................................7 Trabajando con PICAXE - Paso a paso: uso de entradas y salidas .....................................................9 Kit entrenador para PICAXE 08........................................................................................................14 Aprendiendo a programar la tarjeta entrenadora 08 ..........................................................................17 Juego de luces tipo auto fanstástico...................................................................................................21 Alarma para puertas y ventanas empleando la tarjeta entrenadora PICAXE 08 ...............................25 Tarjeta entrenadora PICAXE 18........................................................................................................29 Aprendiendo a utilizar el ADC en la tarjeta entrenadora del PICAXE 18 ........................................33 Control de temperatura con la tarjeta entrenadora PICAXE 18 ........................................................39 Programa para desplegar números BCD con la tarjeta entrenadora del PICAXE 18........................45 PLC de 5 entradas y 8 salidas............................................................................................................50 Programación combinacional del PLC - PICAXE 18 .......................................................................61 Sistema de alarma domiciliaria inteligente........................................................................................71 Alarma multipropósito con PICAXE para aprendizaje .....................................................................71 Algunos conceptos para recordar ......................................................................................................73 Prueba de funcionamiento del transistor ...........................................................................................74 Verificación de las uniones soldadas .................................................................................................76 Verificación de los componentes .......................................................................................................76 Conexión de la batería .......................................................................................................................77 Descarga de un programa para probar el LED ..................................................................................77 Prueba de la salida .............................................................................................................................77 Prueba del zumbador .........................................................................................................................78 Prueba del interruptor ........................................................................................................................78 Prueba de la fotorresistencia..............................................................................................................79 Ideas de programación.......................................................................................................................79 Programa 1.........................................................................................................................................79 Programa 2.........................................................................................................................................81 Central de alarma inteligente.............................................................................................................82 Programación de la central ................................................................................................................85 El programa inteligente .....................................................................................................................87 Fuente para sistema de alarma con control automático de baterías...................................................88 Sirena para alarma con habilitación lógica........................................................................................90 2 Club Saber eleCtróniCa PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC PICAXE:LaNuevaForma deProgramarunPIC Desdequeelprimermicroprocesadorviolaluzdelmundo(el4004),ycuyaúnicayprincipaloperacióneraunasumade1bit,secomenzóconunacarreratecnológicaquelejosdever elfin,díacondíasevanlograndocosasinimaginables,taleselcasodelosmicrocontroladoresquevendríanaserelejemploresumidoyenpequeñodeunacomputadorapersonal(PC). Un microcontrolador que puede ser de 8, 18, 28, 40 terminales o más, internamente dentro de su encapsulado posee como equipamiento mínimo un microprocesador, memoria RAM, y distintas versiones de memoria ROM. Los microcontroladores más avanzados aparte de lo mencionado anteriormente también llegan a poseer temporizadores, ADC, DAC, Comunicación en paralelo, USAR, etc. En la figura 1 vemos todo lo necesario para programar un PICAXE. Un microcontrolador, desde el punto de vista de operación, puede considerarse como si fuera una PC, ya que cuenta con el conjunto básico de implementos que necesita realizar sus funciones, esto es, microprocesador, disco duro, memoria RAM, etc. Clásicamente, cuando programamos un microcontrolador, de forma implícita se tiene que desarrollar un programa que trabaja a manera del BIOS de una PC, ya que lo primero que debemos tomar en cuenta es la configuración de sus puertos ya sea como de entrada o de salida, configurar sus demás herramientas como pueden ser los temporizadores, los ACD, etc. Han aparecido en el mercado sistemas de desarrollo que permiten la programación del microcontrolador de una manera relativamente fácil, en la cual se puede emular el proceso que nos interesa desarrollar. Para la mayoría de estos sistemas de desarrollo, una vez que se tiene terminada la aplicación, el paso siguiente es armar el prototipo e insertar el microcontrolador debidamente programado. Recientemente ha sido lanzado al mercado un sistema de desarrollo para programar microcontroladores PIC llamado PICAXE, que de por sí quien ha utilizado estos microcontroladores pueden constatar lo sencillo que resulta su programación, el sistema de desarrollo PICAXE hace las cosas todavía más sencillas para el programador, ya que se cuenta con dos opciones de diseñar una aplicación, una por medio de diagramas de flujo y otra es por medio de Figura 1 “BASIC”, y aunque esto no Todo SobrE mICroCoNTroLAdorES PICAXE 3 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC es ninguna novedad, ya que estas herramientas existían con anterioridad, lo ventajoso del PICAXE radica en el hecho de que se trata de un microcontrolador PIC el que en un segmento de memoria ROM interna le ha sido grabado, desde su fabricación, un firmware a manera de BIOS que simplifica la forma de programarlo. Al igual que en todos los sistemas de desarrollo, existen ya predefinidas toda una serie de tarjetas de prácticas sobre las cuales podemos emular las aplicaciones que hemos diseñado, pero gracias al firmware que poseen los microcontroladores PICAXE “se puede armar la aplicación completa incluyendo al microcontrolador”, y sobre la aplicación programarlo sin necesidad del sistema de desarrollo, ni del circuito programador de microcontroladores. Ver figura 2. De hecho, el sistema PICAXE hace más accesible la programación de microcontroladores a todas aquellas personas que tan sólo cumplan con el único e indispensable requisito que es el de querer aprender. Vea en la figura 3 una pantalla de la aplicación que nos permitirá realizar el programa que vamos a cargar adentro del PIC. Aquí no vamos a mencionar las ventajas y desventajas del sistema PICAXE con respecto a otros, lo único que podemos agregar es que se trata de otra manera de programar microcontroladores PIC, empleando diagramas de flujo y/o lenguaje BASIC, (figura 4) los cuales ya sea de manera conciente o totalmente implícita recurrimos a ellos para elaborar un programa. A lo largo de este libro iremos aprendiendo paso a paso la forma de cómo programar los microcontroladores bajo el sistema PICAXE, para ello como primer paso emplearemos una tarjeta de desarrollo de la cual proporcionaremos su circuitería para que ustedes la puedan armar, posteriormente después de realizar algunas practicas, avanzáremos ya sobre aplicaciones en donde se tenga al microcontrolador como elemento principal y al cual programaremos en sitio. Pues bien, los invitamos a que exploren esta nueva forma de programar microcontroladores, que estamos seguros les será de gran utilidad. Figura 2 Figura 3 Figura 4 4 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC ConociendolosMicrocontroladores deesteSistema El PICAXE es un sistema de microcontroladores PIC muy fácil de programar ya que utiliza un lenguaje BASIC muy sencillo, además de contar también con la posibilidad de programarlos con diagramas de flujo. El sistema PICAXE aprovecha todas las características de los microcontroladores de bajo costo que incorporan memoria FLASH. El sistema PICAXE está disponible en tres versiones que son el de 8 terminales (PICAXE08), 18 terminales (PICAXE-18) y 28 terminales (PICAXE-28). En estos microcontroladores ya se tienen definidas las terminales que tienen la función de entrada y salida de datos, además de las terminales que sirven para programar al PICAXE en sitio, o en otras palabras sobre la misma aplicación. En las figuras 5, 6 y 7 se muestran los circuitos esquemáticos de la disposición de cada uno de los microcontroladores PICAXE. En la figura 5 se muestra el circuito esquemático para un PICAXE de 8 terminales, de las cuales las que están identificadas como Pin1 E/S, Pin2 E/S, Pin3 E/S y Pin4 E/S, son terminales que pueden funcionar como entradas o salidas de datos del exterior hacia el microcontrolador. Las terminales identificadas como Serial En y Serial Sal, se utilizan para programar al microcontrolador a través del puerto serie de una PC, para lo cual las terminales del conector identificado como CON1 se hacen llegar al conector DB9 de la PC tal como se muestra en la figura 4. Por otra parte, de la misma figura 1 se observa que la terminal identificada como Serial Sal, cumple con una doble función, y dependiendo de donde se ubique un jumper selector en el conector CON2, se podrá programar al PIC o esa misma terminal una vez programado el PIC tendrá la función de una terminal de salida de datos. Del circuito esquemático de la figura 6 se observa la forma en que están dispuestas Figura 6 Figura 5 Todo SobrE mICroCoNTroLAdorES PICAXE 5 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC las terminales de un PICAXE de 18 terminales, de las cuales las que se encuentran identificadas como En 0, En 1, En 2, En 6 y En 7 son dedicadas exclusivamente para adquirir datos del exterior hacia el microcontrolador. Las terminales que se encuentran identificadas de la Sal 0 a Sal 7 son exclusivamente para enviar datos hacia afuera del microcontrolador, mientras que las terminales identificadas como Serial Sal y Serial En se utilizan para programar al microcontrolador. En el circuito de la figura 7 se muestra la forma de conectar a un PICAXE de 28 terminales, en donde aparte de las terminales de entrada que se encuentran definidas como En 0 a En 7, también se cuenta con las terminales de salida identificadas como Sal 0 a Sal 7, además de 4 terminales para entrada de datos analógicos, y por último las terminales de programación del microcontrolador. Ya se ha mencionado que el sistema PICAXE no requiere de programador o borrador, ya que utiliza únicamente tres alambres conectados al puerto serie de una computadora, tal como se describe Figura 7 en la figura 8. Una vez que han sido identificadas las terminales a utilizar en el conector del puerto serie de la PC, ahora lo que sigue es preparar la conexión hacia el PIC, tomando en cuenta las terminales tal como se observa en la figura 9. Como se puede apreciar de la figura 9, se puede emplear (es recomendable) un plug de los utilizados para conectar los audífonos a la salida de audio de un walkman o Figura 8 discman, y tener un cable con un conector DB9 en un extremo y un plug de audio en el otro, tal como se ilustra en la figura 10. Por último diremos que para armar el cable de programación, tal como se muestra en la figura 10, en las figuras 8 y 9 se muestra la configuración de las terminales tanto del conector DB9 como el plug de audio. Figura 9 Figura 10 6 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC UtilitarioGratuito paraHacerProgramas Lo diferente del sistema de microcontroladores PICAXE, con respecto a la programación tradicional de los microcontroladores PIC, radica en la programación basada en un lenguaje BASIC y diagramas de flujo. Esto hace que los microcontroladores del sistema PICAXE sean muy fáciles de programar, en un ambiente amigable. Para programar los microcontroladores PICAXE debemos, en primera instancia, instalar el software que contiene el ambiente de programación, por lo que describiremos paso a paso la forma de hacerlo. El software lo puede bajar de nuestra página de internet que usted ya conoce www.webelectronica.com.ar, debe hacer click en el ícono password e ingresar la clave PICAXEPRO. Recuerde que para bajar cualquier información debe ser socio del club SE, lo cual es gratuito y puede inscribirse por Internet en sólo un par de minutos (siga las instrucciones que dimos para bajar el programa PICAXEPRO y encontrará cómo hacerse socio si aún no lo es). Una vez que se tenga el software, se encontrará con una carpeta con el nombre de “progedit”, a la cual debemos acceder (observe la figura 11). Luego debemos ingresar a la carpeta progedit y tenemos que ubicar el programa identificado como “Programming Editor”, al cual debemos de hacerle un doble click con el ratón de la PC para que éste se ejecute y se pueda instalar el programa de los PICAXE, tal como se muestra en la figura 12. Figura 11 Carpeta progedit. Figura 12 Software de instalación “Programming Editor”. Figura 13 Ventana de bienvenida para la instalación del software de los PICAXE. Figura 14 Acuerdo de licencia. Todo SobrE mICroCoNTroLAdorES PICAXE 7 PICAXE: L A N uEvA F ormA dE P rogrAmAr Figura 15 Información del usuario. Figura 16 Destino del software. Figura 17 Ventana de confirmación de datos. Figura 18 Ventana de instalación del software. 8 uN PIC Una vez que ejecutamos el programa de instalación Programming Editor aparecerá la ventana que se muestra en la figura 13, sobre la cual debemos de oprimir con el ratón el cuadro identificado como “next” para que continúe la instalación. Posteriormente será desplegada la ventana donde se muestra la licencia que debemos aceptar, porque de otra manera no podremos continuar con la instalación del software, por lo que nuevamente oprimiremos el cuadro identificado como “next”, esta acción se indica en la figura 14. Como paso siguiente, pregunta por el nombre del usuario que normalmente utilizará el software, aquí podemos instalar la aplicación para que pueda ser utilizada por todas las personas que utilicen la computadora, y después de seleccionar esta acción tenemos que oprimir el cuadro identificado como “next”, tal como se muestra en la figura 15. Posteriormente debemos decir en dónde se guardará el software de programación, que por lo general, aquí no tenemos que modificar dato alguno, a menos de que querramos asignar otra localidad, tal como se ilustra en la figura 16. Una vez seleccionada la opción correspondiente, procederemos a hacer click sobre el cuadro identificado como “next”. Por último, aparecerá una ventana de confirmación para estar seguros de que los datos que introdujimos se encuentran correctos, si es así debemos oprimir el cuadro identificado como “next” para que continúe la instalación, tal como se aprecia en la figura 17. Cuando se está instalando el software se indica gráficamente tal como se ilustra en la figura 18, aquí debemos esperar hasta que se terminen de instalar, tanto el software de programación como todas las utilerías que serán empleadas por los PICAXE. En la figura 19 se muestra la ventana que nos indica que ya se ha concluido con la instalación, por lo que debemos oprimir el cuadro identificado como “finish”. Una vez instalado el software de programación de los PICAXE, en el escritorio de nuestra PC encontraremos un ícono de acceso directo identificado como “PICAXE Programming Editor”, Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr Figura 20 Icono de acceso rápido en el escritorio de la PC. Figura 19 Ventana final. Figura 21 Lenguaje BASIC para programar los PICAXE. Figura 22 Diagrama de flujo para programar los PICAXE. uN PIC al cual, para comenzar a programar los microcon tro la do res, debemos hacer un doble click con el mouse para que se ejecute el programa, tal como se muestra en la figura 20. En la figura 21 y 22 se observa un ejemplo del ambiente gráfico, tanto en lenguaje BASIC como en diagrama de flujo. TrAbAjANdo CoN PICAXE PASo A PASo:USo dE ENTrAdAS y SALIdAS Para empezar a utilizar el sistema de microcontroladores PICAXE comenzaremos con una aplicación muy sencilla, por lo que en primera instancia nos dedicaremos a encender y apagar leds, de acuerdo al estado que guarden las terminales de entrada de datos del microcontrolador. Cabe aclarar que conforme se avance en los temas de PICAXE podremos incorporar controles para motores, utilización de convertidores analógico - digital (ADC), etc. Recordemos que el sistema PICAXE está disponible en tres versiones que son el de 8 terminales (PICAXE-08), 18 terminales (PICAXE-18) y 28 terminales (PICAXE-28), y en función de las terminales que tienen disponibles para la entrada y salida de datos, serán las que ocuparemos para comunicar al microcontrolador con el exterior. Comencemos pues con el primer circuito para visualizar la salida de datos, y se trata de un circuito muy sencillo para encender leds, el cual se muestra en la figura 23. Este circuito lo podemos reproducir tantas veces como terminales de salida se tengan disponibles. Ahora veamos cuál sería el primer circuito que se recomienda para ingresar datos discretos (digitales) al microcontrolador, y se trata de un interruptor con reposición automática (push-boton), el cual se muestra en el circuito de la figura 24. De igual manera que en el caso del circuito de la figura 23, se puede reproducir el circuito de la figura 24 tantas veces como entradas ten- Todo SobrE mICroCoNTroLAdorES PICAXE 9 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC ga disponible el microcontrolador. Para realizar el primer ejercicio vamos a elegir uno de los tres tipos de microcontroladores PICAXE que se tienen disponibles, que en este primer ejercicio se trata del PICAXE-18; pero posteriormente se realizarán ejercicios con todos los tipos de microcontroladores PICAXE. El circuito propuesto para esta primera experiencia se muestra en la figura 25, en la cual se tiene 1 entrada y 1 salida. Para programar el microcontrolador PICAXE la primer acción que tenemos que realizar es abrir el software de programación llamado “PICAXE Programming Editor” y que previamente tuvo que ser instalado. Una vez que hacemos doble click sobre el ícono del software de programación y accedemos al ambiente de programación, aparece una ventana en donde se configuran las opciones con las cuales trabajaremos. Como primer paso, ya que es la primera vez que utilizamos este software, es conveniente seleccionar el menú identificado como “Language” ya que aquí es donde se configura el lenguaje con el cual estaremos interactuando, si desea más detalles sobre esta parte del programa, puede bajarlo de Internet o adquirir la revista Saber Electrónica Nº 215. De internet, puede bajarlo desde nuestra web con la clave “progpicaxe”. Para empezar a trabajar debemos configuar el programa (es muy sencillo, si lo desea, baje el tema completo desde nuestra web), seleccionando la opción “Modo” del menú para elegir el PICAXE que vamos a emplear en nuestro proyecto, qué frecuencia de operación tendremos (generalmente 4MHz), etc. Luego, debemos elegir la opción “modo” del menú para indicar en qué puerto tendremos el circuito para descargar el programa. De la figura 26 observamos el ambiente de trabajo que presenta el software de programación de los microcontroladores PICAXE, en el Figura 24 Figura 23 cual se aprecia un espacio en blanco que es donde se ingresan las instrucciones en forma de “BASIC”. Figura 25 10 Todo SobrE mICroCoNTroLAdorES PICAXE ¿Qué instrucciones son las que utilizaremos? Si no sabemos, no es el fin del mundo y vamos paso a paso. Para comenzar utilizaremos una opción que se cuenta en este software para programar a los microcontroladores que son los diagramas de flujo, por PICAXE: L A N uEvA F ormA lo que como se indica en la figura 26, seleccionamos de la barra de herramientas la opción “Archivo”, posteriormente “Nuevo” y por último “Nuevo Organigrama”, y lo que aparecerá será el ambiente de trabajo para ingresar el diagrama de flujo de nuestro programa. Para comenzar, éste va a ser nuestro campo de trabajo ya que de forma intuitiva todos sabemos hacer diagramas de flujo. Pues bien, antes de seleccionar los bloques que lo constituirán, vamos a describir cuál es el algoritmo del programa que queremos desarrollar: “Cuandoseoprimaunpush-botonseenciendaunled,ycuandosesuelteelpush-botonseapagueelled”. Existen bloques prediseñados que nos auxilian en el manejo del estado que guardan las terminales de entrada del microcontrolador de manera independiente, por lo que como se muestra en la figura 27 seleccionamos el recuadro que tiene indicado un rombo y dentro de éste la palabra “if”. Ahora lo que tenemos que hacer es seleccionar qué condición es la que utilizaremos, que para este ejercicio será la que se encuentra dentro del recuadro que tiene una figura de un rombo y dentro de éste la palabra “Pin” (observe la figura 28), esto es, estaremos leyendo la condición de una terminal de entrada que, por defecto cuando lo ubicamos sobre nuestra área de trabajo, siempre se coloca la entrada 0 (terminal 17 del microcontrolador figura 25). Este bloque tiene la tarea de leer el estado lógico de la terminal de entrada y la compara con un 1 lógico y dependiendo de si la entrada es igual o no, tiene dos posibles salidas “Y” por si es igual a 1 lógico y “N” por si la entrada es 0 lógico. Y por último, oprimimos el recuadro que tiene una flecha en forma de U para regresar al menú principal. De acuerdo al algoritmo que planteamos líneas atrás, lo que tenemos que hacer es que se encienda un led cuando en la terminal de entrada se encuentre un 1 lógico, o que el led se apague cuando en la entrada se encuentra un 0 lógico. Para esta actividad recurrimos al recuadro identificado con la palabra “Out”, ya que es ahí donde se encuentran los bloques que actúan sobre las dE P rogrAmAr uN PIC Figura 26 Figura 27 Figura 28 Figura 29 Todo SobrE mICroCoNTroLAdorES PICAXE 11 PICAXE: L A N uEvA F ormA dE P rogrAmAr Figura 30 Figura 31 Figura 32 uN PIC terminales de salida del microcontrolador. Una vez en el interior del menú de bloques de salida, tenemos que seleccionar la acción que hará que el led se encienda o se apague, por lo que en primer instancia seleccionamos el bloque identificado con la palabra “High”, el cual quiere decir que la salida se encenderá, por cierto cuando seleccionamos este bloque, por defecto se ubica la salida 0 (terminal 6 del microcontrolador figura 25), tal como se ilustra en la figura 30. Ya se tiene entonces, el bloque que encenderá el led por lo que ahora requerimos la acción correspondiente con su apagado, y ésta corresponde al recuadro identificado con la palabra “Low” que es precisamente el bloque que realizará la tarea de apagar el led, y también por defecto al seleccionarlo por primera vez, se ubica en la salida 0. Una vez que ya tenemos los bloques que necesitamos para ingresarle o sacarle datos al microcontrolador PICAXE, procedemos ahora a unir los bloques para realicen el algoritmo que fue planteado líneas atrás, para ello existe una herramienta que se encuentra en un recuadro identificado con una línea vertical que en sus extremos tiene un “*”. Cuando seleccionamos esta herramienta y acercamos el puntero del ratón sobre alguno de los bloques que ya se encuentran en el área de trabajo, se les aparece un círculo de color rojo en aquel punto que requiere una conexión, tal como se ilustra en la figura 30. Ya seleccionado el punto de conexión trazamos la línea hasta el siguiente punto de conexión de un bloque para realizar la unión lógica del flujo de datos, cabe aclarar que para cada unión que se necesite realizar, se tiene que volver a seleccionar la herra- Figura 34 Figura 33 12 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC mienta de conexión, en la figura 31 podemos apreciar la conexión completa de todos los bloques. Si ya terminamos de diseñar nuestro diagrama de flujo y antes de programar el microcontrolador, es importante saber si el programa va a funcionar, porque recuerden que no es lo mismo “desear” que el microcontrolador haga lo que según nosotros programamos, a lo que realmente hace en función del programa que ingresamos. Existe en el software de los PICAXE la posibilidad de simular el programa, y eso es lo que vamos a hacer, por lo que seleccionamos el recuadro que tiene el símbolo de una punta de flecha tal como se ilustra en la figura 31, lo seleccionamos y enseguida aparecerán 2 ventanas, una de ellas indica el estado lógico que guardan las salidas y entradas del microcontrolador, esta ventana aparece en la parte inferior de la imagen de la figura 32. Los recuadros verdes que se iluminan indican qué salidas están siendo activas con un 1 lógico, mientras que los que aparecen debajo de los cuadros verdes, indican la posición de las señales de entrada al microcontrolador, los cuales cuando se encuentran en la posición inferior significa que la entrada se encuentra en 0 lógico, y si están en la posición superior la entrada se encuentra en 1 lógico. Por otra parte también se observa que, dependiendo dónde se encuentre la posición del switch, se iluminará en color rojo la línea que une los diferentes bloques que son afectados por la respuesta del estado lógico de entrada, y de esta manera podemos visualizar qué es lo que está sucediendo con nuestro programa. Una vez que simulamos nuestro programa y observamos que las condiciones del algoritmo se cumplen (encender un led cuando se tiene un 1 lógico en la entrada y apagar el led cuando se tiene un 0 lógico en la misma entrada), ya estamos listos para dar el siguiente paso, que es convertir el diagrama de flujo a instrucciones de BASIC, para lo cual en la barra de herramientas seleccionamos el menú identificado como “Organigrama” y después la opción “Convertir el Organigrama a Basic” (de manera rápida pudimos presionar la tecla F5), tema que Ud. puede bajar sin cargo de nuestra web (www.webelectronica.com.ar). Ahora lo que tenemos que hacer es conectar el cable, tanto al puerto serie de la PC como a las terminales del microcontrolador que se indican en el diagrama de la figura 25 para programar al PICAXE, anteriormente propusimos la manera en cómo se debe construir el cable de programación, tomando en cuenta las terminales que se deben ocupar. Para grabarle el programa al microcontrolador debemos dirigir la flecha del ratón a la barra de herramientas y seleccionar el menú “PICAXE”, después la instrucción “Ejecutar” (o de manera rápida F5), tal como se muestra en la figura 33. En ese mismo instante aparecerá una ventana indicando que se está llevando a cabo la programación del microcontrolador PICAXE. Cuando se encuentra en la fase de programación, una barra que irá creciendo nos dirá la cantidad de código que está siendo descargado hacia el microcontrolador. Cuando se termina de grabar el microcontrolador aparecerá una ventana que nos indica la finalización del proceso de programación, figura 34. Ahora podemos verificar en el microcontrolador, que el programa que diseñamos se encuentra perfectamente bien, por lo que tenemos que oprimir el push - boton y esta acción debe encender el led, y cuando soltemos el push - boton el led se debe apagar. Cualquier otro funcionamiento nos quiere decir que debemos revisar nuestro programa y tenemos que regresarnos hasta la etapa en donde diseñamos al diagrama de flujo, ya que algo se encuentra mal. Todo SobrE mICroCoNTroLAdorES PICAXE 13 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC KIT ENTrENAdor PArA PICAXE08 En esta oportunidad diseñaremos nuestra primera tarjeta de entrenamiento universal para programar microcontroladores PICAXE, y como en todo comienzo daremos inicio por lo más sencillo y más pequeño, esto es, los microcontroladores de 8 terminales denominados PICAXE – 08. En primera instancia recordemos cuál es la configuración de un PICAXE–08, para en función de ello, tomar en cuenta de cuántas entradas y cuántas salidas podemos echar mano y aprovecharlas al máximo (figura 35). Tenemos la oportunidad de disponer de un total de 4 E/S (4 entradas y 4 salidas), pero no nos confundamos, si sumamos el número de salidas con el número de entradas tendremos un total de 8 y el PICAXE–08 que manejaremos tiene solamente 8 terminales. ¿Esto quiere decir que las terminales de salida y de entrada ocupan todas las que posee? La respuesta es “no”, ya que en esas 8 terminales deben estar las 4 entradas, las 4 salidas además de las 2 terminales de aliFigura 35 mentación y 2 para programarlo. Específicamente para los PICAXE–08 las terminales 3, 5, 6 y 7 cumplen con una doble función, por lo que debemos tener cuidado cuando los programemos, porque por ejemplo la terminal 3 puede comportarse como una terminal de entrada o una terminal Figura 36 14 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC de salida, todo depende cómo la contemplemos cuando realicemos el programa del PICAXE–08. La tarjeta entrenadora que proponemos tiene la posibilidad de explotar al máximo las propiedades del PICAXE–08, y será por medio de jumpers como se podrá configurar la circuitería tanto para programar como para fijar entradas o salidas de datos, en la figura 36 se muestra el circuito esquemático de la tarjeta entrenadora completa. A continuación describiremos cada parte de esta tarjeta entrenadora para que podamos sacarle el máximo provecho. En primer término identificaremos la ubicación de dónde instalar el microcontrolador PICAXE–08, éste debe encontrarse en la base identificada como IC1 respetando la identificación de las terminales (figura 37). Los conectores identificados como ES1, ES2 y ES4 tienen 3 terminales, de las cuales, la de en medio de cada uno de ellos se hace llegar hacia la correspondiente terminal del microcontrolador PICAXE, las 2 terminales restantes de cada conector (ES1, ES2 y ES4), una va hacia el bloque destinado para conectar las entradas de datos, y la segunda se dirige hacia el bloque de terminales de salida de datos. Pues bien, para seleccionar si la terminal del microcontrolador será configurada como salida o entrada, será a través de un jumper que dependiendo de cómo se conecte unirá la terminal del medio del conector ya sea ES1 ó ES2 ó ES4, con el bloque de terminales de entradas o al bloque de terminales de salida, y de esta forma quedará configurada la circuitería del microcontrolador PICAXE para que esté listo a recibir el programa con el cual trabajará el microcontrolador. El conector identificado como PROG/SAL0 posee 3 terminales, de las cuales la del medio se hace llegar a la terminal 7 del microcontrolador PICAXE, esta terminal cumple con la doble función tanto de programar al microcontrolador, como de fungir como terminal de salida de datos si así se requiere, esta selección se lleva a cabo mediante la Figura 37 conexión de un jumper hacia la ubicación que se requiera. Cuando se va a programar un microcontrolador PICAXE–08, es necesario que el jumper esté ubicado hacia la posición “Prog” en el conector PROG/SAL0, porque de otra manera la programación será imposible, ya que no se tendrá comunicación entre la PC y el microcontrolador. Cuando el jumper se encuentra ubicado hacia la posición “Sal0” en el mismo conector PROG/SAL0, se tendrá configurada la terminal del microcontrolador como salida. La disposición de componentes sobre la placa se muestra en la figura 38. Por lo descrito líneas atrás se deduce que el procedimiento para ubicar el jumper del conector PROG/SAL0 será de acuerdo a lo siguiente: 1º paso.- Ubicar el jumper hacia la posición “Prog” en el conector PROG/SAL0 para programar al microcontrolador PICAXE–08. 2º paso.- Cambiar el jumper hacia la posición Sal0 en el conector PROG/SAL0 si se va a utilizar esa terminal del microcontrolador PICAXE–08 como salida. En el conector identificado como “Entradas” se tiene la posibilidad de hacerle llegar al microcontrolador PICAXE–08, el estado lógico de 4 diferentes entradas digitales, Figura 38 las cuales pueden ser insertadas mediante circuitos externos Todo SobrE mICroCoNTroLAdorES PICAXE 15 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC o bien utilizar cualquiera de los 2 circuitos con push-boton que se tienen en el área de experimentos, estos circuitos se muestran en la figura 39 y lo único que se tiene que hacer es conectar el borne correspondiente ya sea E1 ó E2 a cualquiera de las terminales de entrada que son Ent1 ó Ent2 ó Ent3 ó Ent4 del conector “Entradas”. En el conector identificado como “Salidas” se encuentra el reflejo de las 4 salidas digitales que posee el microcontrolador PICAXE–08, las cuales pueden hacerse llegar a circuitos externos en donde se refleje la actividad del microcontrolador, o pueden ser utilizadas los 2 circuitos con leds que se encuentran en el área de experimentos, estos circuitos se muestran en la figura 40. Para utilizar estos circuitos lo que tiene que hacerse es conectar el borne correspondiente, ya sea S1 o S2, a cualquiera de las terminales de salida que son Sal0 ó Sal1 ó Sal2 ó Sal3 del conector “Salidas”. El espacio identificado como PROGRA se encuentra ocupado por un conector de audio estéreo tipo mini Jack, el cual puede tener formas diferentes. El conector de audio estéreo tan sólo tiene 3 terminales, mismas que serán utilizadas para comunicar al microcontrolador con una PC a través del puerto serie, en la Figura 39 figura 41, como ya lo vimos en las figuras 8 y 9, se muestra el diagrama de cómo se deben identificar las terminales tanto en la tarjeta de entrenamiento como en el conector DB9 que se conecta al puerto serie de una PC. Las terminales del conector de audio realizarán las siguientes actividades: La línea identificada con el número 1 sirve para verificar que el microcontrolador PICAXE se encuentra conectado al puerto serie de la PC. La línea identificada con el número 2 sirve para programar al microcontrolador PICAXE. La línea identificada con el número 3 es la referencia GND o también conocida como tierra eléctrica. Por último, la tarjeta entrenadora tiene incorporado un regulador de voltaje identificado como IC2 que posee la matrícula LM7805, y cuya misión es la de mantener un voltaje de 5 VCD para energizar al microcontrolador PICAXE y toda su circuiteFigura 40 Figura 41 16 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC ría, por lo tanto podemos energizar nuestra tarjeta de entrenamiento con una pila de 9 VCD. La lista de componentes se muestra a continuación. Listadecomponentesparaarmarla tarjetacontroladora. IC1......Base de 8 terminales IC2 .........................LM7805 D1, D................Leds Verdes D3 .........................Led Rojo S1, S2Interruptores Push boton R1, R3, R4 ...10kΩ 1/4 Watt R2.................22kΩ 1/4 Watt R5, R6, R7 ..390Ω 1/4 Watt Varios: Conector mini jack de audio, conector mini plug de audio, alambres de conexión, broche para pila de 9 VCD y circuito impreso. AprendiendoaProgramarlaTarjetaEntrenadora08 En esta oportunidad emplearemos la tarjeta entrenadora para implementar en ella la función lógica “Y” (AND). El motivo de programar al PICAXE con esta función lógica, es un pretexto para que se tenga en cuenta que si podemos utilizar las funciones lógicas, entonces podemos darle cualquier aplicación a nuestra tarjeta, esto es, en otras palabras podemos desarrollar, por ejemplo, lo que se le conoce con el nombre de unidad central de proceso de un PLC. Para cada una de las funciones lógicas necesitamos la utilización de 2 entradas, por lo que en total requeriríamos de 4, pero recordemos que el microcontrolador PICAXE – 08 es tan sólo de 8 terminales, por lo tanto se tiene la limitante de que la mayoría de las entradas y salidas están compartidas, en consecuencia tan sólo utilizaremos 2 entradas para implementar las 2 funciones lógicas. En el diagrama de la figura 42, se observa la manera en que están asignadas tanto las terminales de entrada como las de salida, por otra parte también tomemos en cuenta que la tarjeta entrenadora posee 2 push boton para generar los estados lógicos con los cuales trabajará el PICAXE, y también cuenta con 2 leds para mostrar el estado de las salidas. El ejercicio que desarrollaremos será el siguiente. Los Figura42-Diagramaesquemáticodelatarjetaentrenadora. Todo SobrE mICroCoNTroLAdorES PICAXE 17 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC push boton denominados S1 y S2 generan las combinaciones con las cuales se encenderá el led D1 para la función lógica “Y” de acuerdo a la tabla lógica siguiente: S1 S2 Función“y” 0 0 0 0 1 0 1 0 0 1 1 1 Ahora hacemos referencia al Figura43-Identificacióndecomponentesycolocacióndejumper. diagrama de identificación de los componentes de la figura 43, para observar que las terminales que están asignadas a la entrada son las denominadas como E3 y E4. Estas entradas se configuran empleando el jumper ES4 hacia la posición E4, mientras que la entrada E3 no tiene que configurarse ya que está directamente conectado al borne de entradas. En cuanto a las salidas, emplearemos la que está identificada como S1. La salida S0 se configuran empleando el jumper PROG/SAL0 en la posición de Sal0, esto es porque la terminal 7 del microcontrolador PICAXE – 08 se comparte tanto con la salida 0 como con una terminal de proFigura44 gramación del PICAXE. La salida S1 requiere que el jumper ES1 se coloque en la posición Sal1. La forma en cómo Figura45 se deben de colocar los jumpers también se ilustra en la figura 43, que es una imagen de la tarjeta entrenadora. Una vez que hemos configurado la parte electrónica de la tarjeta entrenadora, pasamos a elaborar el programa para controlar la tarjeta. Como lo hemos mencionado antes, es necesario abrir el ícono cuyo nombre es “PICAXE Programming Editor”, el cual obviamente tuvieron que instalar con antelación, pero si ustedes aún no poseen el programa lo pueden descargar de nuestra página de internet: www.webelectronica.com.ar. Después de la ventana de bienvenida nos aparecerá la ventana que se muestra en la figura 44, que es en donde Figura46 se configuran las opciones y por lo tanto el tipo de microcontrolador que emplearemos, en esta oportunidad estaremos utilizando un microcontrolador PICAXE – 08, por lo que seleccionamos esa opción. Si la ventana de opciones no aparece al abrir el programa nosotros podemos abrirla desde el menú Ver y después en el comando Opciones. Hasta este momento no hemos realizado programa alFigura47 guno con el Basic, que es una forma de programar a los 18 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC PICAXE, porque en el desarrollo de esta serie vamos a comenzar aprendiendo a programar a los microcontroladores del sistema PICAXE. Por esta situación, nuevamente recurriremos a programar al microcontrolador a través de diagramas de flujo, por lo que oprimimos el botón de acceso rápido para abrir el ambiente de trabajo en diagramas de flujo, tal como se muestra en la figura 45. Dentro del entorno gráfico para generar el diagrama de flujo seleccionaremos, del menú de comandos, el correspondiente con el que pregunta por el estado de las entradas, tal como se ilustra en la figura 46. Posteriormente, tal como se muestra en la figura 47, se pueden seleccionar los bloques que preguntan por el estado de las entradas. Todo depende de nuestro diagrama, serán los bloques que dentro del rombo tienen la palabra “pin”. Por defecto siempre pregunta por el pin 1, por lo que debemos editar los bloques que sean necesarios para preguntar por la terminal que corresponde a la entrada E3 y E4, para ello nos basamos tal como muestra en la figura 48 en seleccionar el bloque que nos interese y después seleccionar la entrada correspondiente. Una vez que el primer bloque tenga asignada la entrada E3 y los dos inferiores la entrada E4, ahora procedemos a seleccionar el menú de los bloques que manipulan las salidas, por lo tanto oprimimos sobre el cuadro que tiene una flecha en forma de U para regresar al menú principal. Estando en el menú Figura48 principal, seleccionamos el que hace referencia al control de las salidas, de acuerdo a como se aprecia en la figura 49. Dependiendo de cuál sea la función lógica que implementemos será la activación de las salidas que usaremos, ya sea un “0” lógico o un “1” lógico, por lo tanto seleccionaremos de entre el cuadro con la palabra low o high respectivamente, tal como se aprecia en la figura 50. Como en el caso de las entradas, cuando elegimos una salida, por defecto se coloca la salida 0, por lo tanto tenemos que evaluar qué salida es la que emplearemos para colocar la que Figura49 nos interesa, y tal como se ilustra en la figura 51, seleccionamos la salida 1 porque la función lógica que implementaremos es la denominada “Y” (AND), como ya habíamos designado que sería a través del led D1 de la tarjeta entrenadora donde se visualizaría su respuesta, es el motivo de la selección ya que el led D1 está conectado a la salida 1 del microcontrolador. Ya que tenemos todos los bloques correspondientes a la imFigura50 plementación de la función lógica, ahora pasaremos a conectarlos para que se obtenga el resultado de la tabla de verdad de la función lógica “Y”. Tenemos que regresar una vez más al menú principal para Figura51 realizar la unión de los diferentes bloques, en función de la lógica de operación que hemos desarrollado. Para esta acción elegimos la herramienta de conexión tantas veces como bloques se tengan que unir, tal como se muestra en la figura 52. Cuando se realiza la actividad de unir los diferentes bloques, se ilumina en color rojo un círculo que se hace presente en el punto de conexión del bloque cuando acercamos el pun- Todo SobrE mICroCoNTroLAdorES PICAXE 19 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC tero del ratón, y ahí hacemos click con el botón izquierdo para fijar la línea de conexión, y la arrastramos hasta el siguiente punto de conexión del bloque con el que uniremos el anterior, y así continuamos hasta unir todos los bloques que tengamos, tal como se aprecia en la figura 53. Como paso siguiente, para verificar que realmente funciona nuestro programa lo siguiente es simularlo, por lo que seleccionamos la herramienta de simulación tal como nos lo indica la figura 53, y cuando la oprimimos, aparecerán dos ventanas, en una observaremos las variables, y en la otra que es la que nos interesa en este momento, se observará cómo se comportan las salidas en función de las entradas. En la figura 54 se muestra que cuando ésta activa la función de simulación, las líneas que unen los distintos bloques se iluminan en color rojo indicando el camino por donde se cumplen las condiciones lógicas, facilitando de esta manera la observación de cómo se va generando la respuesta que finalmente será visualizada a través de una salida. Y para comprobar que en la salida se tiene como resultante la función lógica “Y”, se tienen que realizar las distintas combinaciones de “0” lógico y “1” lógico en las terminales de entrada, a través de los interruptores que se visualizan en la ventana inferior de la figura 54. Una vez que hemos superado la etapa de la simulación, nuestro siguiente paso es la programación del PICAXE a través de la tarjeta entrenadora, por lo que conectamos el cable al puerto serie de la PC y el otro extremo al conector minijack de la tarjeta Figura52 entrenadora (en entregas anteriores se explicó cómo se debe armar el cable de programación), colocar también el jumper del conector PROG/SAL0 en la posición de Prog, para que sea descargado el código al PICAXE. El paso siguiente es detener la simulación e ir al menú de herramientas organigrama y seleccionar el mando convertir organigrama a Basic, como resultado el diagrama de flujo será convertido a Basic, el resumen de estas acciones se observa en las figuras 55 y 56. Figura53 De la figura 56 se observa que para descargar el programa en el microcontrolador PICAXE a través de la tarjeta entrenadora, se oprime el botón que se refiere a la herramienta de programaFigura54 ción, y como consecuencia se despliega una ventana que nos va indicando el avance de la programación, tal como se ilustra en la figura 57. Una vez programado el PICAXE, lo que sigue es probar el programa sobre la tarjeta entrenadora, por lo que presionaremos los push boton de acuerdo a la tabla de verdad correspondiente, por Figura56 Figura55 20 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr lo que si el led no enciende con respecto a la respuesta de la tabla de verdad de la función lógica “Y” algo anda mal y tenemos que pasar a revisar desde el circuito de la tarjeta entrenadora, hasta revisar nuevamente el programa y la fase de grabación en el microcontrolador. uN PIC Figura57 ListaDeComPonentesParareaLizareLejerCiCio. Tarjeta entrenadora del PICAXE – 08 y su cable de programación. juegodeLucesTipo“AutoFantástico” (EmpleandolaTarjetaEntrenadora) Vamos a implementar, a través de una tarjeta entrenadora, un juego de luces que funcione de la misma manera que lo hacían las luces del auto fantástico. Está claro que para el microcontrolador PICAXE – 08 que posee la tarjeta entrenadora, sólo se tiene posibilidad de contar con 4 salidas a las cuales les podemos colocar leds para visualizar el efecto de las luces. Cabe señalar que si usted desea bajar los archivos para ejecutar el programa, puede obtenerlos gratuitamente de nuestra web en www.webelectronica.com.ar, digitando la clave “kit”. En la figura 58 se muestra el diagrama esquemático de la tarjeta entrenadora, de la cual emplearemos únicamente el borne de salidas, por lo que en los bornes identificados como ES1, ES2 y ES4 se colocará el jumper correspondiente, de tal forma que se seleccionen las salidas. Nota:La tarjeta entrenadora, su implementación, armado y programación se publicó en el tomo Nº 7 de la colección “Club Saber Electrónica”. Ud. puede bajar el artículo completo de la web con la clave dada más arriba. Siguiendo con nuestro montaje, el borne identificado como PROG/SAL0 Figura 58 una vez que se descargue Todo SobrE mICroCoNTroLAdorES PICAXE 21 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC el programa sobre el PICAXE, debe colocarse el jumper en la posición correspondiente a la salida 0 (Sal0). Una vez predispuesta la tarjeta entrenadora tal como se muestra en la figura 59, pasamos a desarrollar el programa. Recordemos que lo primero que tenemos que hacer es abrir el programa “PICAXE Programming Editor” tal como se ilustra en la figura 60. Una vez dentro del ambiente de programación del PICAXE, seleccionamos la opción de trabajar con diagramas de flujo, por lo menos hasta que adquiramos la experiencia necesaria para desarrollar nuestros programas directamente bajo BASIC. Se ha explicado, minuciosamente, lo que significan los íconos que aparecen cuando trabajamos con diagramas de flujo, por lo que ahora avanzaremos un poco más rápido en la construcción de nuestro programa. Ya dentro del ambiente de programación lo primero que tenemos que hacer es inicializar las salidas que utilizaremos, que por disposición del PICAXE – 08 se tienen dispuestas las salidas 0, 1, 2 y 4. Para no afectar el desempeño de nuestra aplicación, la inicializaFigura62 - Diagrama a bloques completo. Figura60 Figura61 Figura 59 22 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC ción de las salidas las realizamos por medio del comando “low” tal como se ilustra en la figura 61, una para cada una de las salidas, si no colocáramos estos comandos simplemente las salidas no se activarán. Posteriormente colocamos líneas de conexión para unir los comandos de activación en estado bajo de las 4 salidas seleccionadas. Ahora se colocan los comandos para generar el efecto de luces del auto increíble, para lo cual nos basamos en un algoritmo muy simple y que a continuación explicamos: Encendemos el led colocado en la salida 0 y mantenemos este estado durante 1 segundo para que sea perfectamente visible, posteriormente encendemos el led colocado en la salida 1 e inmediatamente apagamos el led de la salida 0, una vez realizado esto fijamos esta condición durante 1 segundo. Y en general, vamos encendiendo el led siguiente y al mismo tiempo apagando el anterior y manteniendo el estado durante algún tiempo, y así sucesivamente hasta llegar al último led. Posteriormente hacemos que se invierta el encendido y apagado de los leds, causando con esto, el efecto luminoso de las luces del auto increíble. De la figura 62 se puede observar el diagrama de flujo que se emplea para controlar el juego de luces, y a través de los bloques “low” apagamos las salidas (las colocamos en “0” lógico), y con los bloques “high” encendemos las salidas (las colocamos en “1” lógico). Pues bien, hasta aquí hemos manejado bloques que con anterioridad habíamos utilizado y que no causan problemas al momento de seguir la ejecución del programa, pero ahora aparecen 2 nuevos bloques que están identificados como “wait” y como “pause”, los cuales describiremos a continuación. El bloque wait se emplea para generar una base de tiempo, durante la cual el microcontrolador PICAXE estará ocupado sin realizar ninguna otra actividad, tan sólo se dedica a contabilizar el tiempo que va transcurriendo hasta que llegue al conteo máximo que le hemos fijado. Esta actividad es muy útil, sobre todo cuando se requiere el empleo de un temporizador, o de un delay. La característica que tiene el bloque wait es que el conteo lo realiza de una forma ya establecida y está en segundos, los cuales pueden tener valor desde 1 hasta 255 segundos. En este caso estamos empleando el bloque wait para generar una temporización, para que los datos que son enviados a las salidas del PICAXE se mantengan durante 1 segundo. Si omitimos la colocación del bloque wait, provocaríamos que con la simple operación del microcontrolador, que es muy rápida, tan sólo observemos un destello en los leds pero no veríamos cuál se enciende y cuál se apaga con detalle. El número que tiene por delante el comando wait, es el número de segundos que dura la temporización. El segundo bloque que observamos en el diagrama de flujo de la figura 62, y que no conocíamos, está identificado como “pause”. El bloque “pause” trabaja de la misma Figura63-Simulación. Todo SobrE mICroCoNTroLAdorES PICAXE 23 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC manera que lo hace el bloque wait, y substantivamente se emplean para lo mismo, pero la principal diferencia radica en los tiempos destinados a la temporización de cada uno de los bloques, ya para el bloque wait la temporización se encuentra en segundos, mientras que para el bloque pause la temporización se contabiliza en milisegundos. Por lo tanto, como se muestra en la figura 62 si colocamos el bloque “wait 1” equivale a un tiempo de 1 segundo, y si empleamos el bloque “pause 1000” equivale a un tiempo de 1000 milisegundos o sea también 1 segundo. Después de que hemos colocado tanto los bloques como las uniones entre éstos, procedemos a simular nuestro diagrama de flujo como se ilustra en la figura 63. Como paso siguiente a la simulación, procedemos a convertir nuestro diagrama de flujo en código BASIC, por lo que recurrimos al menú Organigrama y dentro de éste al comando “Convertir Organigrama en BASIC”, por lo que vamos a generar un código como el ilustrado en la figura 64. Por último, tenemos que programar al microcontrolador PICAXE, por lo que estando en el ambiente de código BASIC nos dirigimos al menú PICAXE y después al comando “Ejecutar” y en ese mismo instante se abre una ventana que nos indica el progreso de la programación del PICAXE, y una vez que éste termina de programarse nos muestra una ventana pequeña en donde nos comunica que se programó perfectamente, y en caso contrario también nos reporta las posibles causantes del fallo. Como lo hemos mencionado en anteriores entregas, es necesario abrir el ícono cuyo nombre es “PICAXE Programming Editor”, el cual obviamente tuvieron que instalar con antelación, pero si ustedes aún no poseen el programa lo pueden descargar de nuestra página de internet: www.webelectronica.com.ar. A lo largo de esta obra iremos desarrollando ejemplos de programación, en los cuales aplicaremos los bloques de los diagramas de flujo vistos hasta ahora, y la meta es llegar a realizar programas con mayor grado de complejidad, para lo cual se tiene contemplado mostrar proyectos con aplicaciones reales. Lista de Materiales Figura65-Ventanaquemuestraelavance delaprogramación. TarjetaentrenadoradelPICAXE–08(eldiagramaydescripciónde éstasevióanteriormente),sucabledeprogramación, 4Leds 4Resistoresde390Ω Figura64-CódigoenBASIC. 24 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC AlarmaparaPuertasyVentanas EmpleandolaTarjetaEntrenadoraPICAXE 08 Para continuar con la utilización de nuestra tarjeta entrenadora tal como un módulo de uso general, nuevamente hacemos referencia a ella y por lo tanto volvemos a colocar su diagrama esquemático mismo que se ilustra en la figura 66. De la tarjeta entrenadora sabemos que se cuenta con un total de 4 Entradas/Salidas, las cuales las tenemos que distribuir adecuadamente entre el sensor, el habilitador de la alarma, la salida a un buzzer (zumbador) y a un contacto que nos representará una señal remota. De acuerdo a lo anterior necesitamos de, por lo menos, 2 entradas y 2 salidas, pero recuerden que en el PICAXE–08 algunas terminales son compartidas y cumplen con una doble función, dicho en otras palabras tanto se pueden configurar como terminales de salida o como de entrada de datos, pero una vez configuradas así trabajará el PICAXE todo el tiempo. En la figura 67 se ilustra la propuesta de cómo se asignarán las terminales de entrada y salida de datos, en las cuales se sugiere que para proteger a las puertas y ventanas de un hogar se utilicen sensores magnéticos llamados reed switch, a los cuales cuando se les acerca un imán su contacto se cierra provocando la generación de los estados lógicos que vemos en la tabla 1. La disposición de los sensores magnéticos tal como se ilustra en el diagrama esquemático de la figura 68, están conectados de tal forma que se cumplan las condiciones de la tabla 1, y estos estados lógicos se hacen llegar TAbLA1CoMPorTAMIENTodELSENSorMAGNéTICo a la terminal de entrada del PIPresenciadelimán ContactodelreedSwitch Estadológico CAXE (Ent3) destinada a deSi Cerrado 1 tectar si una puerta o ventana No Abierto 0 fue abierta sin autorización, por lo que tenemos que seleccioFigura66 nar qué puerta o ventana de nuestra casa tendremos que proteger, colocando el sensor magnético en el marco de la puerta o ventana mientras que el imán lo fijaremos sobre la puerta o ventana. De acuerdo a lo que se observa de la figura 68, las terminales destinadas a las entradas de datos serán las denominadas Ent3 y Ent4, mientras que las terminales designadas para las salidas serán las marcadas como Sal0 y Sal1. Todo SobrE mICroCoNTroLAdorES PICAXE 25 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC Figura67 Una vez que se han destinado las entradas y salidas que serán empleadas, ahora procederemos a explicar el diseño del programa con el cual se gobernará el microcontrolador PICAXE, para lo cual partiremos del hecho de que ya tenemos instalado el programa llamado “PICAXE Programming Editor”, y si aún no lo tienen pueden descargarlo de nuestra página www.webelectronica.com.ar con la clave “picaxe”, o directamente de la página www.picaxe.co.uk En la figura 68 observamos la ventana de bienvenida al “PICAXE Programming Editor”. Consideramos que aún no tenemos la experiencia necesaria para comenzar a programar un PICAXE por medio del lenguaje BASIC, por lo que una vez más seleccionamos la opción de trabajar con diagramas de flujo, por lo menos hasta que contemos con la experiencia necesaria para desarrollar nuestros programas directamente bajo ambiente BASIC. Debido a que ya hemos explicado paso a paso, cómo trabajar con diagramas de flujo, ya no expondremos lo que significan los íconos que aparecen cuando trabajamos con estos diagramas, por lo que sólo nos avocaremos a desarrollar el programa con el cual operará nuestro programa. Para comenzar con el programa, primero serán definidas las terminales de entrada a través de las cuales se estará habilitando la alarma Ent4 (pin4) y lectura del sensor Ent3 (pin3). De acuerdo a la manera de cómo preFigura68 tendemos que sea la operación de nuestra alarma, ésta comenzará a funcionar a partir de que la habilitemos por medio del pin4, esto es, que en esta terminal esté presente un “1” lógico, y mientras esta condición no esté presente, la alarma nunca indicará si una puerta o ventana fue abierta sin autorización, por lo que podemos considerar de que la alar- 26 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC ma está desactivada para que contemos con la posibilidad de Figura69 abrir cualquier puerta o ventana. Después de que la alarma fue activada, el paso siguiente es el revisar que ninguna puerta o ventana sea abierta sin autorización, por lo que a través del pin3 se debe de leer un “1” lógico para que se cumpla dicha condición. La figura 69 muestra la activación de la alarma y lectura del sensor. De acuerdo con la figura 69 los primeros bloques que deben colocarse corresponden con los que realizan la revisión de los estados lógicos que guardan tanto el switch que activa ó deshabilita la alarma, como con el que corresponde con la lectura del estado en que se encuentra el sensor magnético. El primer bloque tiene la tarea de preguntar si la alarma ya fue activada, por lo que se comparará el estado lógico de la terminal de entrada 4 con un “1” lógico, si la alarma aún no ha sido activada no tiene caso seguir con el desarrollo del programa, por lo que constantemente se estará revisando el estado lógico de la terminal de entrada 4 hasta que la alarma sea activada, esto es, sea colocado en “1” lógico el estado de la terminal 4. Si la alarma ya fue activada el paso siguiente será leer el estado lógico del sensor magnético, por lo que siempre estaremos comparando el estado lógico de la terminal de entrada 3 con el estado lógico “0”. Recordemos que el estado lógico “0” en el sensor magnético significa que alguna puerta o ventana fue abierta y si esto sucedió sin autorización, por medio del comando “high” estaremos enviando a través de la terminal de salida 1, una señal a la bobina de un relevador para que sea generado una señal de alarma remota. En la figura 70 se ilustran los bloques correspondientes al establecimiento de una señal audible para avisar del evento de apertura de una puerta o ventana sin autorización. En el desarrollo de esta parte del diagrama de bloques encontraremos dos nuevos, que a continuación se describen: “let”.- Este bloque es empleado para asignar un valor en cualquiera de las variables con que cuenta el microcontrolador PICAXE, además de permitir la realización de operaciones entre las variables y valores constantes. Figura70 Figura71 Todo SobrE mICroCoNTroLAdorES PICAXE 27 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC “sound”.- Este bloque contiene los parámetros necesarios Figura73 para generar una nota musical a través de una terminal de salida del microcontrolador, por lo que la sintaxis es sound terminal de salida (nota, duración). Pues bien, una vez que ya hemos revisado el potencial de los bloques que a continuación utilizaremos procedemos a explicar la operación de esta segunda parte del diagrama de bloques. De la figura 70 se observa que primero se asigna un 0 a la variable b0, posteriormente se incrementa en una unidad la variable b0 por medio de la utilización de bloques con el comando “let”. El valor de esta variable tendrá la misión de fungir como la nota musical que será interpretada por medio del bloque identificado como “sound”. El bloque sound tiene la propiedad de generar una nota musical con tal solo indicárselo por medio de los parámetros que se encuentran dentro del paréntesis, de acuerdo con nuestro ejemplo la variable b0 nos generará la nota que será expresada hacia el exterior del PICAXE a través de la terminal 0, los valores que puede aceptar la variable b0 van desde 0 (silencio), hasta 127 notas ascendentes, y de 128 a 255 notas ascendentes de ruido. Para nuestro ejercicio emplearemos las notas que van de 0 a 127 para dar vida a la alarma sonora, y para obtener el efecto de una señal audible ruidosa, tendremos que ir incrementando la variable b0 partiendo de 0 y hasta 127, por lo que utilizaremos un bloque comparador y cuando la variable b0 llegue a 127, nuevamente se iniciará la variable con el valor de 0, y nuevamente comenzará el conteo ascendente de la variable. Esta actividad mostrará el efecto de notas musicales ascendentes. El dato correspondiente a la duración de la nota dentro del paréntesis del bloque sound, se puede expresar con valores que van desde 0 a 255, pero debemos de tomar en cuenta que este valor tiene que ser multiplicado por una constante de aproximadamente 1 mseg. La variable b0 se incrementará desde 0 a 127 cuando se abra una puerta o ventana, y este lazo continuará hasta que una persona autorizada y con una llave pueda restablecer la alarma, por lo que existirá un bloque en donde se esté revisando la condición lógica de la señal de entrada en el pin4, y cuando lea el estado lógico “0” significa que ya fue desactivada la alarma, por lo que se tiene que revisar la condición del sensor magnético, ya que si Figura 72 se deja la puerta o ventana abierta, y se vuelve a restablecer la alarma ésta se volverá a disparar generando nuevamente la señal audible y enviando la señal de alarma remota. En la figura 72 vemos el diagrama de bloques completo. Como paso siguiente deberemos simular la operación del diagrama de bloques para estar completamente seguros de que el programa va a funcionar correctamente, después de la simulación procedemos a convertir nuestro diagrama de flujo en código BASIC por lo que recurrimos al menú Organigrama y dentro de este al comando “Convertir Organigrama en BASIC”, por lo que vamos a generar un código como el ilustrado en la figura 72. Por último, para programar al microcontrolador PICAXE, se tiene que estar dentro del ambiente de código BASIC, y de ahí nos dirigimos al menú PICAXE y después al comando “Ejecutar”, de 28 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC esta acción se provoca que se abra una ventana que nos va indicando el progreso de la programación del PICAXE, y una vez que éste termine de programarse nos muestra una ventana pequeña en donde nos comunica que se programó perfectamente, y en caso contrario también nos reporta las posibles causantes del fallo. La tarjeta entrenadora cuya imagen se observa en la figura 73, es el cerebro de las actividades de nuestra alarma, por lo que en este caso se le tienen que agregar los componentes ilustrados en la figura 68, pero claro está que por el tamaño en cuestión del número de terminales que posee un PICAXE-08, a nuestra alarma le está destinado el proteger sólo una puerta o ventana, pero si queremos una alarma con mayor número de sensores tendremos que utilizar un PICAXE con mayor cantidad de terminales, y agregar en el programa la lectura del estado que tengan dichos sensores. Continuaremos desarrollando ejemplos prácticos de programación, ya que nuestra meta es llegar a realizar diseños de aplicaciones no importando el nivel de complejidad. ListaDemateriaLes Tarjeta entrenadora del PICAXE – 08 El cable de programación 3 Resistores de 390Ω 1/8Watt 1 Transistor 2N2222 1 Diodo 1N4001 1 Relevador para 5 VCD 1 Reed switch 1 Botón con seguro 1 Zumbador (buzzer) TarjetaEntrenadoraPICAXE18 A lo largo de estas líneas iremos describiendo todo lo que corresponde a una nueva tarjeta entrenadora, que en esta oportunidad alojará al microcontrolador PICAXE–18, por lo que como primer paso recordaremos cuál es el diagrama del circuito básico de conexión de este PICAXE, para de ahí llegar al diagrama esquemático de la nueva tarjeta entrenadora. En la figura 74, se muestra el circuito básico del cual se tiene que tomar en cuenta el número total de entradas y salidas que podemos manipular para aprovecharlas Figura74CircuitobásicodeunPICAXE-18. al máximo. Todo SobrE mICroCoNTroLAdorES PICAXE 29 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC Para el PICAXE–18 se tiene la oportunidad de disponer de 8 terminales de salida y 5 terminales de entrada, de estas últimas y dependiendo del tipo de microcontrolador PICAXE (PICAXE–18 ó 18A ó 18X) se pueden colocar hasta tres entradas como de entradas analógicas. La tarjeta entrenadora que se propone en esta oportunidad tiene la posibilidad de explotar al máximo todas las propiedades de un PICAXE–18, en la figura 75 se muestra el circuito esquemático de la tarjeta entrenadora completa. A continuación describiremos cada bloque de esta tarjeta enFigura75-DiagramaesquemáticodelatarjetaentrenadoraPICAXE–18. trenadora para que se le pueda sacar el máximo provecho. Como primer paso será identificada la ubicación de donde se encuentra el microcontrolador PICAXE–18, que justamente debe encontrarse sobre la base identificada como IC1 respetando en todo momento la distribución de las terminales. Sobre el conector identificado como salidas, se encuentran concentradas las 8 de que dispone el microcontrolador PICAXE, las cuales se encuentran identificadas desde S0 hasta S7. Este conjunto de salidas pueden emplearse de manera indistinta para controlar algún elemento externo que bien puede ser un actuador (elemento de potencia), todo depende de su naturaleza para en función de ella conectar en la salida un optoacoplador para encender o apagar un motor de CA por ejemplo, lo mismo para encender una lámpara incandescente o un simple led. Sobre el conector denominado entradas, se tiene el reflejo precisamente de las terminales de entrada al microcontrolador PICAXE. Las terminales de entrada se encuentran identificadas como E0, E1, E2, E6 y E7, de estas últimas dependiendo del tipo de PICAXE (PICAXE–18 ó 18A ó 18X), las terminales E0, E1 y E2, pueden comportarse como terminales de entrada analógica, esto es que tienen convertidor analógico – digital. En las terminales de entrada de datos, se tienen que conectar aquellos circuitos externos que generen algún estado lógico, que reflejen fielmente el estado de la actividad que están leyendo los sensores bajo algún proceso. Estos datos de entrada, de manera general pueden clasificarse como discretos o analógicos, entendiéndose como discretos todas aquellas señales que trabajan mediante la lógica binaria, “0” lógico y “1” lógico, mientras que los datos analógicos, son aquellos como la temperatura que está variando con el tiempo y que puede adquirir un número infinito de valores dentro de un intervalo bien establecido. Para esta tarjeta controladora no se necesita configurar alguna forma especial de trabajo sobre su circuitería, por lo que sus aplicaciones son inmediatas ya que posee terminales dedicadas tanto para ingresarle como para extraerle datos, siendo el microcontrolador PICAXE el elemento indispensable que realiza todas las acciones de control. Una vez identificadas las terminales de en- 30 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC trada y salida de datos de la tarjeta entrenadora, como paso siguiente se tienen que identificar los módulos de apoyo para construir, implementar y/o simular alguna aplicación. El primer módulo de apoyo que describiremos es el relacionado con la actividad de representar alguna acción del microcontrolador, esto es, el poder señalar por medio de un indicador luminoso alguna respuesta. Para ello se cuenta con 2 circuitos basados en leds, mismos que se encuentran en el área de expeFigura78-Conector miniJackdeaudio. rimentos de la propia tarjeta entrenadora, estos circuitos se muestran en la figura 77. Para hacer uso de estos circuitos, lo que tiene que hacerse es conectar mediante un pequeño cable al borne correspondiente ya sea de S1 o S2, con cualquiera de las terminales de salida del microcontrolador que pueden son S0 ó S1 ó S2 ó S3 ó S4 ó S5 ó S6 ó S7 del conector “Salidas”. Y de esta forma si la salida registra un “1” lógico se encenderá el led al cual fue conectado, y por lo contrario si la salida reporta un “0” lógico el led se apagará. El segundo módulo de apoyo es el que genera estados discretos para poderlos hacer llegar al microcontrolador, estos módulos pueden simular la activación o desactivación de determinados sensores o botones que se requieren en algún proceso. Para este requerimiento sobre la tarjeta entrenadora, se cuenta con 2 circuitos basados en push-boton que se encuentran sobre el área de experimentos, estos circuitos se muestran en la figura 76 y lo único que se tiene que hacer es conectar el borne correspondiente ya sea E1 ó E2 a cualquiera de las terminales de entrada que pueden ser E0 ó E1 ó E2 ó E6 ó E7 del conector “Entradas”. Esto último da posibilidad a que durante la fase de pruebas del programa del microcontrolador se pueda evaluar si la secuencia con que se tienen que activar los sensores es la correcta o no, para poder estar seguros de que nuestro programa operará completamente sobre nuestra aplicación. El tercer módulo de apoyo es el que genera señales analógicas para que puedan emplearse con aquel PICAXE que internamente posee un convertidor analógiFigura76-CircuitoImpreso co – digital, este módulo puede realizar el trabajo de sidelatarjetaentrenadora. mulación por ejemplo de un sensor de temperatura, o de un sensor de presión, o de humedad, etc. Para esta parte, la tarjeta entrenadora cuenta con un resistor variable identificado como POT1, por medio del cual se puede cambiar el valor de voltaje que se hace llegar a la terminal correspondiente de entrada analógica del microcontrolador que dependiendo del tipo de PICAXE, éstas pueden ser E0 ó E1 ó E2 del conector “Entradas”. Ahora bien si lo que se quiere utilizar en la tarjeta programadora es un sensor real, por ejemplo un LDR (resistencia variable con la luz), ó una galga extensiométrica (resistencia variable con la deformaFigura77-Disposicióndeloscompoción), etc. En el módulo de señales analógicas a través nentessobrelatarjetaentrenadora. del conector identificado como “SENSOR” se puede Todo SobrE mICroCoNTroLAdorES PICAXE 31 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC conectar un determinado sensor, que en combinación con el resistor R8 se genera el voltaje cuyo valor responderá de acuerdo a la variable física que lea el sensor. Cabe aclarar que el tipo de sensor que se tiene que utilizar en esta parte de la tarjeta entrenadora, debe presentar un cambio en su valor de resistencia para que en función de esto, se modifique el valor de voltaje que es al final de cuentas lo que lee el PICAXE sobre todo en las entradas analógicas. Las terminales donde se refleja el estado del módulo que genera las señales analógicas se identifican como AN1 y AN2. El espacio identificado como PROGRA se encuentra ocupado por un conector de audio estéreo tipo mini Jack, el cual puede tener cualquiera forma tal como se ilustra en la figura 78. El conector de audio estéreo tan sólo tiene 3 terminales, mismas que serán utilizadas para comunicar al microcontrolador con una PC a través del puerto serie, en la figura 79 se muestra el diagrama de cómo se deben identificar las terminales, tanto en la tarjeta entrenadora como en el conector DB9 que se conecta al puerto serie de una PC. Las terminales del conector de audio y DB9 realizarán las siguientes actividades: • La línea identificada con el número 1 en el conector de audio sirve para verificar que el microcontrolador PICAXE se encuentra conectado al puerto serie de la PC. • La línea identificada con el número 2 en el conector de audio sirve para programar al microFigura79-Identificacióndeterminalesenlos controlador PICAXE. conectoresminijackyDB9. • La línea identificada con el número 3 en el conector de audio es la referencia GND ó también conocida como tierra eléctrica. En la figura 80 se muestra la imagen de un cable de programación, o a cambio puede emplearse un adaptador figura 81 que realiza la misma función y con éste puede emplearse cualquier cable serie de que se disponga. Por último, sobre la tarjeta entrenadora se tiene incorporado un regulador de voltaje identificado como IC2 que posee la matrícula LM7805, y cuyo cometido es la de proporcionar un voltaje constante de 5 VCD para alimenFigura80-Cabledeprogramación. tar al microcontrolador PICAXE y los módulos auxiliares que tiene incorporados la tarjeta programadora. Por medio de la utilización del regulador de voltaje, es posible que podamos emplear para energizar a nuestra tarjeta de entrenamiento una pila de 9 VCD. Como ya se ha venido haciendo, en la siguiente entrega aportaremos más proyectos que se pueden realizar con un PICAXE–18, procurado Figura81-Adaptadorparaprogramación. en todo momento que éstos sean de utilidad pa- 32 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC ra todos ustedes, por lo que los invitamos a que continúen revisando esta serie, porque les aseguramos que encontrarán cosas interesantes para desarrollar sus propias ideas y proyectos, hasta la próxima. ListaDeComPonentesParaLatarjeta ControLaDoraPiCaXe–18 IC1 Base de 18 terminales IC2 LM7805 D1, D2 Leds Verdes D3 Led Rojo S1, S2, RESET Interruptores Push boton R1, R4, R5: 10kΩ 1/8Watt R2: 22kΩ 1/8Watt R3: 1kΩ 1/8Watt R6, R7,R9: 39kΩ 1/8Watt R8: 100kΩ 1/8Watt Pot. 1: Preset 100 Sensor: Bloque de terminales Varios: Conector mini jack de audio, conector mini plug de audio, alambres de conexión, broche para pila de 9 VCD y circuito impreso. Aprendiendo a Utilizar el AdC en la Tarjeta Entrenadora del Picaxe-18 Desde el PICAXE–08 se tiene la posibilidad de utilizar el convertidor analógico a digital (ADC), la forma de utilizarlo bajo el sistema PICAXE es lo mismo para cualquiera de las versiones de microcontroladores, ya sea PICAXE–08, PICAXE–18 ó PICAXE–28. El empleo de un ADC es muy útil e inclusive necesario sobre todo cuando tenemos que utilizar un sensor que nos reporta una variable, cuyos valores cambian dentro de un rango establecido con el transcurso del tiempo. A estas variables se les conoce con el nombre de analógicas, ya que tienen un comportamiento como el ilustrado en la figura 82. Dependiendo de la variable física que se tenga que medir para, con su información, controlar determinado proceso, es el sensor que emplearemos, ya que existen sensores para medir la temperatura, humedad, intensidad luminosa, presión ejercida a una superficie, aceleración, deformación de materiales. Estas variables físicas son las más comunes de medir ya que existen sensores comerciales muy económicos para estas variables. El aspecto común de todos los sensores, no importando a qué variable física responFigura 82 - Diferentes tipos de señales analógicas Todo SobrE mICroCoNTroLAdorES PICAXE 33 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC den, es que convierten la variable física a una señal eléctrica cuyo valor correspondiente de forma directa a la variable. Para el caso particular de la tarjeta entrenadora del PICAXE–18, se requiere de sensores que cuenten, preferentemente, con una variación de resistencia al cambiar el valor de la variable física, ya que sobre la tarjeta entrenadora se tiene implementado un circuito resistivo, que en combinación con el sensor se genera un divisor de voltaje, el cual se encuentra conectado a un potencial de 5VCD, y las variaciones de éste, de acuerdo a lo que mida el sensor que es el que se hace llegar al Figura 83 - Diagrama esquemático de la tarjeta entrenadora PICAXE–18. ADC del PICAXE. En la figura 83 se ilustra el diagrama esquemático de la tarjeta entrenadora PICAXE–18 de la cual nos interesan, en esta ocasión, las terminales identificadas como AN1 y AN2. Si analizamos con detalle la terminal que corresponde al borne AN1, es allí donde se encuentra un conector con tornillos que sirven para sujetar al sensor que utilicemos recordando que debe de generar una variación resistiva, a los cambios que presente la variable física. El sensor que utilicemos estará conectándose en serie con un resistor identificado como R8 y cuyo valor es de 100kΩ, este circuito serie tiene en uno de sus extremos el valor positivo de 5VCD y el otro GND, por lo tanto al cambiar el valor de la variable física se tendrá una repercusión sobre el sensor ya que éste cambiará su valor resistivo, al modificarse el valor de resistencia del sensor se tendrá una mayor o menor circulación de corriente, recordando que todo depende de la ley de Ohm, que dice: “El valor de la corriente es inversamente proporcional al valor de la resistencia, y directamente proporcional al valor del voltaje” (la fórmula matemática es: I = V/R). Si cambia el valor de la corriente en el circuito serie y nuevamente aplicamos la ley de Ohm, entonces se tendrán variaciones de voltaje, ya que la información del valor de voltaje la estaremos obteniendo de entre la conexión del sensor con R8. El borne identificado como AN2, es más sencillo de utilizar ya que ahí se tiene un preset identificado como POT1, del cual una de sus 2 terminales de los extremos se hace llegar al potencial de 5 VCD y el otro a GND, y es a través de su terminal del medio de donde se obtiene el valor de voltaje que se dirigirá posteriormente al ADC del PICAXE. Observando con detalle este circuito simple, nos daremos cuenta de que se trata de 2 resistores conectados en serie, y que al modificar el valor del preset, le estaremos agregando resistencia a uno de estos resistores, y quitándole al otro. El propósito de utilizar este circuito, es únicamente para cuestiones didácticas ya que estaremos simulando la operación de un sensor aún sin tenerlo, pero estaremos en absolutas posibilidades de comprobar nuestro programa ya colocado en el PICAXE. 34 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA Figura 84 - Conexiones sobre la tarjeta entrenadora PICAXE-18. dE P rogrAmAr uN PIC Figura 85 - Imagen de un LDR. La información contenida en los bornes AN1 y AN2, que es el reflejo de un sensor (para el caso de AN1) y la variación de un potenciómetro (para el caso de AN2) se tiene que conectar a la entrada analógica del PICAXE, para ello dependiendo del tipo de microcontrolador PICAXE (PICAXE–18 ó 18A ó 18X) se puede disponer de hasta tres entradas del tipo analógicas. Los bornes de las entradas analógicas al PICAXE están identificados como E0, E1 y E2, por lo que para hacer llegar la información de los bornes AN1 ó AN2 a ya sea E0 ó E1 ó E2, será mediante pequeños cablecillos de conexión, tal como se muestra en la figura 84. Para ilustrar de mejor manera la utilización del ADC del PICAXE vamos a recurrir al empleo de un ejemplo práctico, este ejemplo consistirá en encender o apagar una lámpara de VCA del mismo tipo que utilizamos para iluminar nuestra casa, pues bien, el circuito al que estamos haciendo referencia es al de un control automático de luces. Este control automático detectará a través del LDR cuando se oculte nuestro astro rey (Sol) y se comiencen a obscurecer las calles, y viceversa, cuando empiece a amanecer de igual manera la luminosidad producida será detectada a través del LDR. La entrada que será utilizada con el valor analógico de la intensidad luminosa está en el borne de entradas de la tarjeta entrenadora, y se trata de la entrada E0. El LDR, prácticamente es una resistencia variable que está constituida por un material fotosensible, por lo tanto la intensidad luminosa provocará que disminuya su valor de resistencia, mientras que la oscuridad o ausencia de luz ocasionará que tenga su máxima resistencia, y dependiendo del tipo de LDR pude tener valores de resistencia que son de 2 MΩ, ó 10 MΩ en la oscuridad. Para controlar el apagado o encendido de la lámpara de VCA se requiere de un circuito que maneje la potencia, o dicho con otras palabras se necesita que la cantidad de corriente que consuma la lámpara no la suministre directamente el PICAXE, por lo que se emplea una interface implementada a base de un transistor identificado como Q1, además de utilizar también un relevador que se encuentra identificado como RL1, todo esto se ubica en el diagrama de la figura 84. La salida que se utilizará se encuentra en el borne de salidas de la tarjeta entrenadora, y se trata de la salida S0. Todo SobrE mICroCoNTroLAdorES PICAXE 35 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC En la salida S0 se tendrá un “0” lógico si la intensidad luminosa detectada es suficiente como para que apague la lámpara, y por otra parte, si la intensidad luminosa es muy baja o de plano se tiene oscuridad total, en la salida S0 se tendrá un “1” lógico provocando que se encienda la lámpara correspondiente. Esta información se hace llegar al transistor Q1, que a su vez dependiendo de la información que tenga en su base, energizará o no la bobina del relevador RL1, siendo los contactos de este relevador quienes manejen el VCA y serán ellos quienes enciendan o apaguen finalmente la lámpara. Una vez explicada la parte que corresponde a la electrónica de la parte correspondiente de la tarjeta entrenadora, así como los dispositivos y circuitos que se le agregarán para su funcionamiento, ahora procederemos a explicar cómo se elabora el programa con el cual controlaremos el encendido o apagado de una lámpara de VCA, así que prosigamos adelante. Lo primero que tenemos que hacer es abrir nuestro programa llamado “PICAXE Programming Editor” y que previamente tuvimos que instalar, y si aún no se tiene lo pueden descargar de nuestra página de internet www.webelectronica.com.ar con la clave “picaxe”, o en su defecto también lo pueden adquirir en la página www.picaxe.uk.co. Una vez dentro del programa editor de los PICAXE, se abrirá una ventana en donde se muestran las distintas opciones para utilizar los PICAXE, en esta ocasión tenemos que elegir alguno de los PICAXE–18, todo depende de cuál de ellos sea con el que contemos. Comenzaremos programando con diagramas de flujo para aprender a utilizar los distintos comandos, y posteriormente los convertiremos a código en Basic. Así es que tenemos que seleccionar el comando en donde se abre la plantilla de trabajo con diagramas de flujo. Observe la figura 87. Ya en el ambiente de programación con diagramas de flujo, lo primero que tenemos que seleccionar en la barra de comandos es el que está identificado con la palabra “other” (fig. 88) ya que ahí es en donde se encuentra la herramienta para utilizar el comando de lectura del convertidor ADC del PICAXE. El comando del ADC está identificado como “readadc” y lo único que tenemos que hacer es seleccionarlo para poderlo colocar en el área de trabajo, y con el comando de selección que está identificado con una flecha, le indicaremos en qué entrada estará ubicada la entrada para valores analógicos. Normalmente, cuando seleccionamos el comando “readadc”, por defecto se selecciona la entrada E0, pero recordemos que podemos seleccionar cualquiera de las entradas E0 ó E1 ó E2 ó las tres al mismo tiempo, ya sólo tenemos que conectarles el correspondiente Figura 86 - Icono del programa circuito con el sensor analóFigura 87 - Ventana de Opciones. “PICAXE Programming Editor” gico. Recuerden también que dependiendo del tipo de PICAXE–18 (PICAXE – 18 ó 18A ó 18X) serán las entradas analógicas que emplearemos. (Figura 89). Para colocar el comando Figura 88 - Barra de comandos con el menú “Other”. 36 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC “readadc” lo podemos hacer directamente uniendo el extremo superior del bloque del comando “readadc” (Fig. 90) con el del bloque “start”, esta acción la llevamos a cabo para optimizar espacio en el diagrama de flujo, y ahorrarnos la utilización de la herramienta “wire”. El comando “readadc” tiene la tarea de leer el valor de la variable analógica que en esta etapa se encuentra en su correspondiente valor de voltaje, y tal como se encuentra expresado en la figura 90, el 0 que se encuentra después de la palabra readadc, indica que terminal de entrada es la que se está utilizando con el ADC, y después se encuentra la variable b0 que es en donde se aloja el valor analógico que está leyendo el PICAXE. El paso siguiente es verificar qué valor tiene la variable b0 (Fig. 91), para que cuando se compare este valor se sepa si existe luminosidad u oscuridad en el medio ambiente. En este caso Figura 89 - Comando tenemos que seleccionar el menú “if” para ubicar los comandos “readadc”. de verificación de valores, posteriormente seleccionaremos el comando que está identificado como “var”, ya que es con éste con el que compararemos los valores de las variables con las que cuenta el microcontrolador PICAXE. Para configurar el comando “var”, tenemos que seleccionar sobre qué variable es en donde se está guardando el dato que será digitalizado, y que en esta ocasión se trata de la variable b0, ahora seleccionaremos el operando “mayor que” para indicarle al PICAXE que para todos los valores analógicos mayores que determinado valor nos debe de reportar una salida verdadera y entonces el flujo lógico se dirigirá a través de la salida identificada como Y. El valor que fijaremos es el de 125, que prácticamente representa la mitad del rango total que puede ser digitalizado y cuyo valor máximo es de 255. Para nuestro programa Figura 90 - Colocación del comando “readadc”. cuando se tienen valores por debajo de 124 indicará que se tiene suficiente luminosidad, por lo tanto al salir la información por la salida N del bloque “var”, mandará apagar la lámpara. Cuando se tienen valores mayores a 125 indicará que la luminosidad es muy baja, por lo que mandará encender la lámpara. Figura 91 CoA la salida identificada como N se le conectará el bloque mando que com“low”, cuya función será la de apagar la salida S0 que es en para el valor de la variable b0. Figura 93 - Programa completo y ventanas del simulador. Figura 92 Diagrama de flujo completo. Todo SobrE mICroCoNTroLAdorES PICAXE 37 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC donde se encuentra conectado el circuito externo que controla la lámpara, mientras que a través de la salida identificada como Y se encuentra el bloque “high” que será la encargada de activar la salida S0 y de esta manera encender la lámpara. Figura 96 En la figura 93 se observa la simulación del ADC, y para Cable de programación. ello se tiene la ventana donde se muestran las entradas y las salidas, y en la parte derecha se muestra el área en donde se puede manipular la entrada correspondiente al ADC, al mover la barra correspondiente de la entrada analógica observaremos como en la ventana correspondientes a las variables se irá modificando la variable b0, que es en donde guardaremos el dato originado en el ADC. Cuando hemos visto que nuestro diagrama de flujo realiza las funciones lógicas que esperamos, entonces estamos en posibilidad de convertir el código a Basic (Fig. 94), para posteFigura 97 - Adaptador para riormente descargarlo a nuestro PICAXE por medio de la tarprogramación. jeta programadora. En la figura 95 y 96 se muestra la manera de cómo podemos armar nuestro cable de programación o en su defecto, utilizar un cable serie común y un adaptador como el que se muestra en la figura 16. Por último, sobre la tarjeta entrenadora se tiene incorporado un regulador de voltaje identificado como IC2 que posee la matrícula LM7805, y cuyo cometido es la de proporcionar un voltaje constante de 5 VCD para alimentar al microcontrolador PICAXE y los módulos auxiliares que tiene incorporados la tarjeta programadora. Por medio de la utilización del regulador de voltaje, es posible que podamos emplear para energizar a nuestra tarjeta de entrenamiento una pila de 9 VCD. Esperamos que este ejemplo pueda ser útil, y estén atentos a los siguientes ejemplos que están planeados para su aparición en esta serie, hasta la próxima. Figura 94 - Programa en código Basic. LISTA DE COMPONENTES PARA ARMAR LA TARJETA CONTROLADORA PICAXE–18. Tarjeta entrenadora PICAXE–18. D1 -Diodo 1N4001 Rext1 -1 kΩ 1/8 Watt RL1 -Relevador 5 VCD Q1 - BC548 LDR Figura 95 - Identificación de terminales en los conectores mini jack y DB9. 38 Varios: Cable de programación o Cable serie y adaptador, cables de conexión, batería de 9 VCD. Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC ControldeTemperaturaconlaTarjetaEntrenadoradelPicaxe-18 La temperatura es uno de los parámetros que más se controla, ya que desde una simple casa habitación hasta algún proceso industrial de una empresa cuentan con este tipo de dispositivos, los cuales pueden ser muy simples o inclusive llegan a ser elementos muy complejos y avanzados. En la figura 98 vemos el diagrama esquemático de la tarjeta entrenadora PICAXE-18, con el sensor LM35 integrado a ella. Comercialmente existen medidores de temperatura que su función es sóla esa, mostrar el valor de temperatura, y por otra parte también están presentes los controles de algún proceso que actúan en función del valor de la temperatura. Estos últimos controles basan su forma de operar en un convertidor analógico - digital, si es que el control es electrónico y digitalizado, y más que mostrar el valor de temperatura su utilidad principal radica en el hecho de realizar tareas como la de controlar de manera autónoma la temperatura de una caldera, de una habitación, de un invernadero, etc. En la figura 99 podemos observar las conexiones sobre la tarjeta entrenadora PICAXE-18. La temperatura es una de las variables físicas más fáciles y económicas de controlar, porque Figura 98 Todo SobrE mICroCoNTroLAdorES PICAXE 39 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC en casi cualquier tienda de productos electrónicos encontraremos, por ejemplo, un simple circuito integrado identificado como LM35, que no es otra cosa que un sensor electrónico de temperatura. En esta oportunidad vamos a implementar un algoritmo para diseñar un control automático de temperatura basándonos en nuestro microcontrolador PICAXE, en el cual fijaremos un valor que servirá de referencia para saber en qué momento se deberá activar ó desactivar un equipo de aire acondicionado, un ventilador ó un calefactor, etc. Aquí lo más importante es que debemos seleccionar un sensor que nos entregue un valor de voltaje que tenga una correspondencia con el valor de temperatura que está midiendo, que en este caso puede ser un LM35, el además ya se encuentra calibrado en grados centígrados (°C). Otro tipo de sensor que se puede emplear para leer la temperatura, sería un termistor que a diferencia del LM35, éste basa su operación en cambios de valores de resistencia, de acuerdo a la variación de temperatura. Sea para un sensor que entrega voltaje o para un sensor que cambia su valor resistivo, la tarjeta entrenadora del PICAXE - 18 contempla la utilización de ambos, y para ello se cuenta con un espacio reservado a cada uno de los sensores. Si se trata del sensor LM35 el cual entrega voltaje, se tendrá que conectar en el espacio que se encuentra sobre la tarjeta entrenadora y que se identifica como Pot1, para ello se tendrá que retirar el preset si es que ya había sido colocado, para en su lugar respetando la ubicación de las terminales del voltaje de alimentación (Vcc y GND) colocar el sensor LM35, y la terminal que entrega el nivel de voltaje de acuerdo con la temperatura presente, refleja su valor en la terminal AN2, misma que se tiene que conectar por medio de un pequeño cablecillo, a cualquiera de las entradas E0 ó E1 ó E2 que tiene el microcontrolador PICAXE. Por otra parte, si se emplea un termistor sólo tendrá que colocarse en el conector identificado como “sensor” y en el cual se tiene contemplado que se utilice un bloque conector con tornillo. Aquí ya está preparado el circuito que complementará al termistor (divisor de voltaje) para que de esta manera, las variaciones de temperatura se reflejen en valores de voltaje que se reflejarán en la terminal AN1, y de igual manera por medio de un cablecillo se puede conectar esta información a cualquiera de las tres entradas que poseen convertidor analógico a digital en el microcontrolador PICAXE. En esta ocasión y para este proyecto, utilizaremos el sensor LM35 para medir la temperatura, y con esta variable física estaremos en posibilidad de controlar la temperatura de un recinto cerrado, como lo puede ser una habitación ó el interior de un vehículo. En la figura 98 se ilustra el diagrama del circuito que será adecuado para complementar la operación de la tarjeta entrenadora del PICAXE - 18. Como circuitería complementaria a la tarjeta entrenadora, se observa la coFigura 99 40 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC nexión del sensor de temperatura que en esta ocasión se trata del circuito integrado LM35, por otra parte también se observa el circuito externo que activa el ventilador, el cual se encuentra implementado a través de un amplificador operacional, un transistor y un relevador principalmente. En la figura 100 se ve el diagrama de flujo del programa del PICAXE. El sensor de temperatura LM35 proporciona un valor de voltaje que está de acuerdo con la magnitud de temperatura que se encuentre en el recinto donde esté instalado, de acuerdo con el fabricante su rango de operación va de 0VCD a 1.5 VCD, que equivale a 0°C y 150 °C respectivamente, y a cada cambio de 1 °C el valor de voltaje cambia en 10 mV, por lo tanto es muy fácil saber qué valor de temperatura está midiendo al saber el valor de voltaje que entrega el sensor, por ejemplo: cuando se tenga un valor de 35 °C se tendrá un valor de 350mV. La forma de emplear el sensor LM35 y el circuito exterior se ilustra en la figura 99, en ella se aprecia que se puede utilizar un ventilador que bien puede poseer un motor tanto de CA como de CD, esto es posible ya que estamos empleando un relevador como elemento de interface entre la etapa de control y la de potencia. La bobina del relevador está siendo controlada por un amplificador operacional, que es el dispositivo que servirá de protección entre la salida del microcontrolador PICAXE y la bobina del relevador. El amplificador operacional, entre otras cosas, tiene la propiedad de no demandar corriente de la terminal de salida del PICAXE, y por ello no se provoca que se sobrecargue eléctricamente hablando, la configuración en la que se encuentra el amplificador operacional es la llamada seguidor de voltaje, y en ella el voltaje de entrada es exactamente igual al que está entregando, por lo tanto como el PICAXE le entrega 5 VCD al seguidor de voltaje cuando su salida esté activada, la salida del amplificador operacional también será de 5 VCD pero casi sin demandarle corriente al PICAXE. Posteriormente la salida del seguidor de voltaje se hace llegar a un transistor 2N2222 (de propósito general), que es el que se encarga de manejar toda la magnitud de corriente que demandará la bobina del relevador cuando éste necesite ser activado. El transistor le ayuda al amplificador operacional a que no se caliente cuando circule una corriente muy alta. Es recomendable que la fuente que energice la bobina del relevador sea independiente de la que energiza a la tarjeta entrenadora del PICAXE - 18, ya que cuando el relevador se activa, éste demanda una corriente muy grande, y si empleamos el mismo regulador de voltaje que posee la tarjeta entrenadora, éste podría sobrecalentarse demasiado, hasta tal punto que puede llegar a bloquearse y toda la circuitería comenzará a trabajar de una forma muy deficiente, y podría entre otras cosas comenzar a encenderse y apagarse continuamente, provocando que el ventilador se encienda y apague a cada rato. El valor de voltaje correspondiente con la magnitud de la temperatura tendrá su reflejo en el borne de la terFigura 100 minal AN2, y de ahí por medio de un cablecillo haremos llegar esta información a la terminal de entrada E0 que configuraremos como entrada con convertidor analógico - digital del microcontrolador PICAXE. Y para controlar el encendido o apagado del ventilador utilizaremos la terminal S0 de la tarjeta entrenadora, y que también corresponde a una terminal de salida del PICAXE. En la figura 101 se ve la simulación del programa. Para comenzar a programar al microcontrolador PICAXE, primero describiremos qué es lo que pretendemos en cuanto a la forma de operación de esta aplicación, y se trata de lo siguiente: Todo SobrE mICroCoNTroLAdorES PICAXE 41 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC El sensor de temperatura se encontrará leyendo de maneFigura 101 ra continua la magnitud de la temperatura, mismo que se hará llegar a un canal de conversión analógico - digital del microcontrolador PICAXE, este último de acuerdo con el programa (es lo que vamos a realizar a continuación) activará una de sus salidas para controlar la bobina de un relevador. Para controlar el apagado o encendido de la bobina del relevador, se requiere de lo siguiente: por medio de un “0” lógico se apagará la salida S0, por lo tanto la bobina del relevador se desenergizará, mientras que un “1” lógico en la misma salida S0 provocará que la bobina del relevador se energice. Una vez que ya sabemos de qué manera tiene que operar el microcontrolador PICAXE, procedemos a explicar la realización del programa. En desarrollos anteriores hemos comenzado esta parte de la aplicación con las siguientes palabras, “lo primero que tenemos que hacer es abrir nuestro programa llamado “PICAXE Programming Editor”. Por lo tanto, nuevamente hacemos la indicación de que pueden descargar el software de nuestra página de internet si es que aún no lo tienen, la página es www.webelectronica.com.ar y empleen la clave “picaxe”, en su defecto también lo pueden adquirir en la página www.picaxe.uk.co. Recuerden que al ingresar en el programa lo primero que se abrirá será una ventana, de la cual en la pestaña opciones seleccionarán el PICAXE que será utilizado para el proyecto, se puede emplear cualquier microcontrolador PICAXE ya que la estructura del programa es válido para cualquiera de ellos, pero recuerden que tenemos microcontroladores de 8, 18, 28 y 40 terminales, por lo tanto las terminales de salida y de entrada cambian de posición y cantidad de acuerdo al PICAXE que se vaya a utilizar. Cuando empleamos un convertidor analógico - digital (ADC) lo primero que tenemos que hacer es calcular su resolución y para ellos nos basamos en la fórmula Nº1. Resolución = Valor del rango --------------------2N - 1 En este caso el valor del rango es el que tiene la entrada del ADC del PICAXE que es de 5 VCD, la variable N representa la cantidad de bits que posee el ADC que en este caso es de 8, por lo tanto la expresión anterior queda como sigue: 5 5 resolución = --------- = ----------- = 256 - 1 28 - 1 = 0.0196 V = 19.6 mV 42 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC Con este dato ya sabemos que con cada cambio de Figura 102 0.0196V que exista en el ADC, se tendrá el incremento de un bit en un conteo a base de 8 bits. Por otra parte y recordando que el sensor LM35 trabaja en el rango de 0 °C a 150 °C cuyos valores equivalen a 0 VCD y 1.5 VCD respectivamente, por razones obvias no será empleado todo el rango de trabajo del ADC del PICAXE, ya que la temperatura ambiente, por ejemplo en un lugar extremo es de hasta 55 °C, y ya estamos hablando de un desierto, para este desarrollo el valor de temperatura que nos interesa es el de 25 °C, ya que por debajo de este valor podemos considerar que la temperatura es agradable, pero por encima de este valor consideraremos que hace demasiado calor por lo que tenemos que encender el ventilador (este nivel de temperatura se puede ajustar a las preferencias de las personas o los lugares). Para la temperatura de 25 °C se tiene un valor de voltaje equivalente a 250mV por lo tanto tenemos que saber qué número binario será el resultante una vez que es ingresado al ADC del PICAXE, para ello emplearemos el valor de la resolución y el del valor analógico (Va) que tendremos que digitalizar por lo tanto Va = 250mV, y para calcular la combinación binaria tenemos la siguiente expresión matemática: Comb.binaria = Valor Analógico (Va) -------------------------Resolución Por lo tanto: 250mV Comb.binaria = ----------- = 12.75 ≈ 13 19,6mV El valor de 13 ahora lo tenemos que convertir a su correspondiente valor binario de 8 bits, quedando como sigue: 00001101. Este último valor binario es el que tomaremos como base para realizar la comparación de los diferentes valores de voltaje que tienen una correspondencia directa con el valor de temperatura, y entonces para cualquier valor por debajo de 00001101 (13) desactivará al ventilador, Figura 103 Todo SobrE mICroCoNTroLAdorES PICAXE 43 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC mientras cualquier valor por arriba de 00001101 tendrá que encender al ventilador, por lo tanto de la figura 100 observe que después de tomar un dato, digitalizarlo y almacenarlo de manera temporal en la variable b0, se realiza una comparación del valor guardado en b0 con el valor de referencia que es 13, siendo el operador empleado en esta comparación el de un › (mayor que), para saber en qué momento el valor de la temperatura sobrepasa la magnitud de 25 °C, tal como se encuentra expresado en el diagrama de flujo de la figura 100. El programa es muy simple ya que tan sólo se trata de leer un dato analógico y guardarlo en una localidad de memoria RAM, el comando para realizar la lectura del dato analógico es el que está identificado como “readadc” y se encuentra en el bloque identificado como “other” en la página principal del programa “Programming Editor”, para configurar este comando se le tiene que asignar cuál de las entradas que posee el microcontrolador PICAXE se estará empleando el ADC, además de indicarle en cuál variable (localidad de memoria RAM) se alojará el dato digitalizado. Posteriormente, para comparar el dato que se obtiene después de la digitalización se toma de la localidad de memoria este valor y se compara con el valor 13 (00001101) que ya fue explicado anteriormente. El comando para realizar la comparación es un rombo y se encuentran en la página principal dentro de l bloque “if”, y de aquí si el valor de la variable es mayor que el dato 13, entonces se interpretará como que la temperatura se encuentra por arriba de 25 °C, y por lo tanto encenderemos la salida S0 del PICAXE para que se observe esta acción mediante la activación del ventilador. En la figura 101 se muestra la simulación del ADC, observándose en ella las ventanas donde se muestra el estado de las entradas, las salidas y las variables temporales. En la figura 102 publicamos el programa en código Basic. Una vez que el diagrama de flujo ya se encuentra operando completamente, el paso siguiente será el de convertir el código a basic, y posteriormente descargarlo al PICAXE instalado en tarjeta programadora. Aunque ya lo hemos mostrado anteriormente, en la figura 103 nuevamente mostramos la manera de cómo podemos armar el cable de programación con la identificación de terminales en los conectores mini jack y DB9. Aún nos falta desarrollar una gran cantidad de ejercicios, razón por la cual los invitamos a que sigan esta serie de ejemplos de utilización y tips de programación. LISTAdECoMPoNENTESPArAArMArLA TArjETA CoNTroLAdorAPICAXE-18 Tarjeta entrenadora PICAXE-18. D1 - Diodo 1N4001 Rext1 - 5.6kΩ 1/8W Rext2 - 390Ω 1/8W RL1 Relevador Q1 - 2N2222 Sensor LM35 Varios: Cable de programación, ó Cable serie y adaptador, cables de conexión, pila de 9 VCD. 44 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC ProgramaparadesplegarNúmerosbCd conlaTarjetaEntrenadoradelPicaxe-18 En muchas ocasiones y para la mayoría de las aplicaciones que desarrollamos sobre un microcontrolador, tenemos que mostrar algún resultado sobre un display, que bien puede ser de segmentos o de LCD, por lo que es necesario saber de qué manera se desplegará la información sobre las salidas que se tienen reservadas en un microcontrolador PICAXE. Si nos ponemos a contabilizar todo el conjunto de información que tiene que salir por el puerto correspondiente de algún microcontrolador para manipular un display, necesitaríamos de una gran cantidad de líneas que se reserven para ese uso exclusivo. De hecho no alcanzarían todas las líneas que tuviera disponible el microcontrolador, razón por la cual tenemos que emplear una técnica que nos ayude a solventar esta problemática. En este ejemplo haremos uso de displays de 7 segmentos, para así aprender a enviarles la información a éstos. La técnica que emplearemos es la de multiplexación de la información, por lo que procederemos a explicar en primera instancia el circuito que se empleará con los displays de 7 segmentos, el cual incluye un total de 3 displays cátodo común. El circuito de los displays recibe el nombre de “Display de 3 dígitos” cuya publicación complementaria se realizó en la revista Saber Electrónica Nº 220 Edición Argentina. El principio de operación es muy básico: se le hacen llegar 4 bits que son los que generan el código BCD, además de 3 bits que son los que indican qué número es el que se estará desplegando, esto es, se controla el encendido del display correspondiente con las unidades, decenas o centenas. Si se requiere mostrar el valor “578” entonces se requiere enviarle al circuito del “Display de 3 dígitos” la combinación “1000” (8) y después el bit que enciende el display de la unidades, después se tiene que enviar el “0111” (7) posteriormente el bit que enciende el display de las decenas y por último el “0101” y como paso siguiente se tiene que enviar luego el bit que enciende el display de las centenas. Y este proceso se tendrá que repetir muchas veces, dando la impresión de que siempre están encendidos los displays. Lo que se pretende con esta nota, es adquirir el conocimiento de cómo se tiene que generar la información en un microcontrolador PICAXE, para que posteriormente, ésta sea enviada a las ter- Figura 104 Todo SobrE mICroCoNTroLAdorES PICAXE 45 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC minales de su puerto de salida. Por lo tanto, y de acuerdo a la descripción líneas anteriores que se hizo de la manera en cómo funciona el circuito auxiliar denominado “Display de 3 dígitos”, se tiene lo siguiente: De alguna manera ya debemos contar con datos, mismos que tuvieron que ser adquiridos previamente por algún proceso por el microcontrolador PICAXE (por ejemplo la lectura a través del convertidor ADC descrito anteriormente en esta serie), una vez procesados estos datos y de acuerdo con nuestra aplicación puede ser muy importante desplegar un dato numérico, porque a lo mejor estamos diseñando un voltímetro digital, por ejemplo. En la figura 104 vemos la tarjeta entrenadora PICAXE-18 y tarjeta del Display de 3 dígitos, se muestra la manera de conectar el circuito auxiliar “Display de 3 dígitos” a la tarjeta entrenadora, por lo que ahí se observan las líneas de conexión entre las terminales de salida del puerto de la tarjeta entrenadora que van hacia las terminales de entrada del circuito auxiliar, cabe aclarar que ésta es tan sólo una sugerencia de cómo hacerlo, ya que cada uno puede realizar las conexiones de la mejor manera posible y así optimizar los recursos de la tarjeta entrenadora. Sobre la misma figura 104 no se hace mención de la conexión de la energía al display de 3 dígitos, pero ésta se puede tomar de las terminales disponibles sobre la tarjeta entrenadora que tienen la identificación de +5VCD, y hacer llegar este voltaje al borne identificado como +Bat. Una vez descrita la disposición de la circuitería, procedemos a explicar el desarrollo del programa del microcontrolador PICAXE. Para esta explicación como ya se había establecido en líneas anteriores, la información que será desplegada de alguna manera ya fue adquirida o procesada por el microcontrolador, por lo que la única tarea que se tiene presente es la de mostrarla a través del display. Supongamos que se requiere desplegar la información “246” a través del display, por lo tanto, en primera instancia se tiene que leer el dato de una localidad de memoria temporal que ahí fue alojado para su posterior utilización. El dato a ser desplegado lo debemos seccionar en tres partes, para su mejor manejo, por ello se tiene que el número cuenta con las siguientes partes, unidades, decenas y centenas, por ser 3 las cifras que componen al número total. En esta ocasión y como sugerencia, el dato de las unidades se encontrará ubicado en la localidad de memoria temporal representada por el registro del microcontrolador PICAXE b0, el dato de las decenas se encontrará en el registro b1 y las centenas en el registro b2. En el programa que se va a describir observe la figura 105, los primeros bloques muestran la manera de cómo se guarda un dato en los registros antes mencionados (b0, b1 y b2), este fragmento del programa puede omitirse o reemplazarse totalmente dependiendo de la aplicación, y nuevamente recordamos que esta parte del programa es para uso específico de esta aplicación. En la figura 105 vemos los bloques de asignación de valores a los registros b0, b1 y b2. El comando “let” permite la asignación de valores a variables, esta asignación se puede dar de una forma directa como está expresado en esta aplicación, o también se puede efectuar la asignación del resultado de una operación aritmética (+, -, *, /) ó por el resultado de una operación lógica (and, or, negación, etc.), en este ejercicio se está empleando el comando de asignación de manera directa sobre los registros para alojar los valores que corresponden a las unidades, decenas y centenas en b0, b1 y b2 respectivamente. Antes de continuar con la explicación del desarrollo del programa, regresemos por un instante al circuito de la figura 104 para saber de qué manera están organizados los datos que salen por el puerto de salida del microcontrolador PICAXE, ya que así será más sencillo seguir el desarrollo del programa. En la figura 104 se muestra la forma de conectar el display a la tarjeta entrenadora y del circuito se observa lo siguiente: las terminales de salida S0, S1, S2 y S3 representan los 4 bits que 46 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC generan las diferentes combinaciones BCD (Binary Code Decimal o en español Código Binario Decimal) de acuerdo con la tabla 2. De ésta, que contiene los números BCD y su equivalente decimal, podemos obtener el peso específico de cada uno de los bits que generan el valor numérico BCD, siendo S0 el bit menos significativo (bms), mientras que S3 representa el bit más significativo (BMS). Esta información BCD se hace llegar a los 3 displays al mismo tiempo, razón por la cual se tiene que indicar cuál de estos displays estará activo de acuerdo con la cifra que se quiere desplegar, ya que de otra maTAbLA2 nera los 3 se encenderán con la misma información. La solución NúmerobCd Número a lo anteriormente descrito se encuentra en el circuito de la figu(S3,S2,S1,S0) decimal ra 104, en donde se observa que las terminales S4, S5 y S6 co0000 0 rresponden al control de las cifras de las unidades, decenas y centenas respectivamente de acuerdo con la información que se en0001 1 cuentra en la tabla 3. 0010 2 Una vez que hemos visualizado la manera en cómo se en0011 3 cuentra ordenada la información del puerto de salida del micro0100 4 controlador PICAXE, ahora procederemos a explicar la manera 0101 5 de cómo se envían los datos al circuito del display de 3 dígitos. 0110 6 Se mencionó en líneas anteriores que en esta aplicación sola0111 7 mente se desplegará la información que se encuentre contenida en los registros b0, b1 y b2 que para un programa de un proceso 1000 8 completo de alguna manera estos registros tendrán que ser mani1001 9 pulados, por lo tanto consideramos que esa actividad ya se Tabla3-Activaciónydesactivacióndelosdisplays. realizó y los datos ya se en- (S6,S5,S4) displayCentenas displaydecenas displayUnidades cuentran en los registros an- 000 Apagado Apagado Apagado Apagado Apagado Encendido tes mencionados. Como si- 001 Apagado Encendido Apagado guiente paso procedemos a la 010 Encendido Apagado Apagado acción de enviar cada una de 100 las cifras del número completo a los displays y que en Figura 108 esta ocasión se trata del valor “246”, por lo que comenzamos con el armado de la información que será enviada al puerto de salida del microcontrolador PICAXE. La primera cifra que sufrirá la manipulación es la correspondiente a la de las unidades, razón por la cual en pri- Figura 105 mera instancia emplearemos un nuevo registro, el “b3”, ahí alojaremos un dato de manera directa a través del comando de asignación “let” tal como se ilustra en la figuFigura 106 Figura 107 ra 106, el valor que se está Todo SobrE mICroCoNTroLAdorES PICAXE 47 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC guardando en el registro b3 es el 16(10) que equivale a la combinación binaria 0010000(2), que es precisamente la que controla el encendido del display de la unidades, posteriormente para enviar la información completa al puerto de salida del PICAXE, se hace uso nuevamente del comando de asignación “let” pero en esta ocasión el resultado de esta asignación la enfocaremos directamente a las terminales de salida por lo que se selecciona después del comando “let”, el destino “pins”, ahora tenemos que unir el dato que se encuentra en el registro b0 (unidad cuyo valor es 6) con el que se encuentra en el registro b3 (control del encendido del display de la unidad), por lo que empleamos el operador lógico conocido como OR, cuyo símbolo es “|”, el resultado de la operación lógica se da de la manera como se ilustra en la tabla 4. En la figura 106 se muestra el bloque que genera la operación lógica OR y cómo el resultado es enviado a las terminales de salida del microcontrolador PICAXE, y de esta forma aunque el valor numérico 6 está llegando al mismo tiempo a los 3 displays, sólo se encenderá el que tiene la cifra significativa de las unidades, mientras que los otros 2 displays (decenas y centenas) permanecerán apagados. En la figura 106 vemos los bloques de asignación de valores al registro b3 y terminales de salida del PICAXE. En la figura 107 vemos los bloques de asignación a los registros b0, b1, b2 y b3 además de las terminales de salida del PICAXE. Estos son los bloques que se han implementado hasta este momento, y que controlan el encendido del display de las unidades. Como paso siguiente al envío de la información para encender el display de las unidades, ahora se tiene que proseguir con el dato correspondiente a la siguiente cifra significativa que es la decena, recordando que el valor numérico que se quiere desplegar es el “246”, por tanto continúa el turno del valor 4. Para ello, a través del registro temporal b3, almacenaremos la información correspondiente al encendido del display de las decenas, sobre este registro alojaremos nuevamente un dato de manera directa utilizando el comando de asignación “let” tal como se ilustra en la figura 108, el valor que se estará guardando en el registro b3 es el 32(10) que equivale a la combinación binaria 00100000(2), que es precisamente la que controla el encendido del display de las decenas. En la figura 108 vemos el bloque de control de los displays de las unidades, y decenas. De nueva cuenta se tiene que complementar la información Tabla4-resultadodelaoperaciónlógicaorentrelosregistrosb0yb3. S7 S6 S5 S4 S3 S2 S1 S0 que será enviada al puerto de b0 0 0 0 0 0 1 1 0 salida del microcontrolador b3 0 0 0 1 0 0 0 0 PICAXE, para lo cual hacepins 0 0 0 1 0 1 1 0 mos uso una vez más del comando de asignación “let” diTabla5-resultadodelaoperaciónlógicaorentrelosregistrosb1yb3. rigiendo el resultado directaS7 S6 S5 S4 S3 S2 S1 S0 mente a las terminales de salib1 0 0 0 0 0 1 0 0 da del PICAXE, por lo que en b3 0 0 1 0 0 0 0 0 el comando “let” marcamos el pins 0 0 1 0 0 1 0 0 destino a donde dirigiremos la información que es a las termiTabla6-resultadodelaoperaciónlógicaorentrelosregistrosb2yb3. nales denominadas “pins”, S7 S6 S5 S4 S3 S2 S1 S0 posteriormente para unir el dab2 0 0 0 0 0 0 1 0 to que se encuentra en el regisb3 0 1 0 0 0 0 0 0 pins 0 1 0 0 0 0 1 0 tro b1 (decenas cuyo valor es 4) con el que se encuentra en 48 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC el registro b3 (control del encendido del display de las decenas), por lo que nuevamente empleamos el operador lógico conocido como OR (O en español), cuyo símbolo ya lo habíamos expresado y que es “|”, el resultado de la operación lógica se da de la manera como se ilustra en la tabla 5. Figura 110 En la figura 108 se muestran los bloques correspondientes al control de los displays de las unidades y las decenas, lo que nos da la posibilidad de mostrar el dato “46” faltando tan sólo el control del display de las centenas que a continuación explicamos. Por último, corresponde controlar la tercera cifra significativa que es la centena, por lo que el valor numérico que falta por desplegar es el “2”, para ello en el registro temporal b3 almacenaremos la información correspondiente al encendido del display de las centenas, que de manera directa utilizando el comando de asignación “let” guardamos el valor 64(10). En el registro b3 es el que equivale a la combinación binaria 01000000(2), que es, precisamente, la que controla el encendido del display de las centenas. Como ya se ha explicado detalladamente la forma de cómo se arma el dato que será enviado al puerto de salida del PICAXE, procederemos a controlar el display de las centenas de una manera más simplificada que las anteriores cifras significativas. Por medio del comando “let” uniremos el dato que se encuentra en el registro b2 (centenas cuyo valor es 2), con el que se encuentra en el registro b3 (control del encendido del display de las centenas), empleando el operador lógico OR, el resultado de la operación lógica se ilustra en la tabla 6. En la figura 109 se muestran los bloques completos al control de los 3 displays que corresponden al de las unidades, decenas y centenas, por lo que ahora sí contamos con el poder de mostrar cualquier número completo de 3 cifras. Con las notas anteriores ya estamos en posibilidad de diseñar una aplicación en la que esté involucrado un teclado y un display para desplegar los datos que se van generando. También ya hemos revisado cómo trabaja el convertidor analógico a digital (ADC), sólo nos falta procesar la información para mostrarla en los displays, para que de esta manera diseñemos por ejemplo un Figura 109 - Diagrama de flujo completo. voltímetro digital, proyecto que en breve publicaremos. Todo SobrE mICroCoNTroLAdorES PICAXE 49 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC Figura 111 - Identificación de terminales en los conectores mini jack y DB9. Recuerden que necesitamos del programa llamado “PICAXE Programming Editor”, por lo que nuevamente hacemos la invitación de que lo descarguen de nuestra página de internet que es www.webelectronica.com.ar y empleen la clave “picaxe”, en su defecto también lo pueden adquirir en la página www.picaxe.uk.co. Una vez que ya se tiene el programa en basic, descargamos el programa al microcontrolador PICAXE que se encuentra instalado en tarjeta programadora. Aunque ya lo hemos publicado en reiteradas ocasiones, nuevamente mostramos la manera de cómo podemos armar el cable de programación o en su defecto utilizar un cable serie común y un adaptador como el que se muestra en la figura 111. Sobre esta tarjeta entrenadora para un PICAXE - 18 se tiene posibilidad de desarrollar un sin número de proyectos, los cuales iremos abordando poco a poco. LISTAdECoMPoNENTESPArAUTILIzAr LATArjETA CoNTroLAdorAPICAXE-18. Tarjeta entrenadora PICAXE-18. Módulo Display de 3 dígitos Varios: Cable de programación, ó cable serie y adaptador, cables de conexión, pila de 9 VCD. PLCde5entradasy8salidas:ConstruyaunPLCcompletoutilizando unmicrocontroladorPiCaXe-18conexcelentesprestaciones Los lectores de Saber Electrónica conocen las grandes “ventajas” de los microcontroladores PICAXE, entre las que se destacan la fácil programación y el hecho de que no precisan “quitar” el chip para cambiar su programación. Atentos a estas características, diseñamos un Controlador Lógico Programable (PLC) de 5 entradas y 8 salidas utilizando un PICAXE-18, que cuenta con optoacopladores para “aislar” las entradas y buffers separadores hechos con amplificadores operacionales para las salidas. Este equipo no posee un utilitario propio de programación, lo que lo hace útil para cualquier aplicación, tanto en la industria como en el taller y el hogar. De hecho, la programación del PLC se efectúa con el Editor de Programación de PICAXE, software gratuito que puede bajar desde nuestra web. 50 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC elPLCPropuesto Uno de los objetivos de la utilización de los microcontroladores se basa en el control de procesos industriales, pasando por todas las líneas de producción que tengamos en mente (aun las que ni siquiera nos imaginamos). Para ello se requiere de un circuito base, el cual podamos aplicar de forma general para casi todos los procesos que se requieren automatizar, y que obviamente tenga un microcontrolador como eje principal de su operación (figura 111). Para contar con lo anteriormente mencionado, debemos hacer hincapié en que tenemos ya los conocimientos básicos como para unir toda la serie de tópicos que hemos abordado hasta el momento en esta serie de microcontroladores PICAXE, por lo tanto estamos en la antesala de la construcción de un proyecto que tiene una utilidad muy importante en el ambiente industrial, y cuya denominación es la de “Control Lógico Programable”. La figura 112 muestra el diagrama esquemático del PLC con PICAXE-18 que describiremos a continuación. El PLC (por sus siglas en inglés) lo podemos construir nosotros mismos a partir de las ventajas que nos ofrecen los microcontroladores del sistema PICAXE, y por lo tanto contamos con la prestación adicional de que podemos construir nuestro PLC del tamaño que querramos o más bien del tamaño de las necesidades que se requieren cubrir en el proceso industrial. De acuerdo a esto último, nuestro PLC lo podemos crear tan pequeño que, inclusive podemos emplear el microcontrolador PICAXE-08. Lo diseñaremos tomando las bondades que nos ofrece el microcontrolador PICAXE-18A del cual utilizaremos todos los recursos que nos brinda, y que para empezar cuenta con 5 entradas y 8 salidas. El diseño es tan compacto que permite montarlo en una placa de 10 cm x 15 cm (vea la figura 113). Nuestro PLC tiene todas las prestaciones que nos entrega un dispositivo electrónico comercial, y para programarlo emplearemos el propio sistema de programación de los microcontroladores PICAXE. Alguien, al leer el párrafo anterior, se podrá sentir defraudado, porque podrían argumentar que no tenemos un PLC completo ya que faltaría el lenguaje de programación en escalera, y en efecto así es lo que faltaría por el momento, pero sí podemos llamar PLC a nuestro proyecto, ya que un PLC requiere de 3 partes esenciales para admitir esa acepción. Las partes de un PLC son: etapa de entrada o ingreso de datos, etapa de activación de actuadores o elementos de potencia (etapa de salida), y el controlador que gestiona la información de la entrada, la procesa y reporta un resultado a la salida. El controlador al que hacemos referencia normalmente es un microcontrolador. Nuestro PLC contará con las 3 partes que de rigor debe tener un PLC, y el lenguaje en escalera será substituido por el programa de los PICAXE, que durante el desarrollo de este material mostraremos bloques de instrucciones que se utilizan comúnmente en el programa de un PLC. Comencemos con la descripción del circuito que le dará vida a nuestro PLC, y para ello vamos a dividir el circuito eléctrico en 3 partes, las cuales son: Todo SobrE mICroCoNTroLAdorES PICAXE 51 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN Figura 112 52 Todo SobrE mICroCoNTroLAdorES PICAXE PIC PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC Figura 113 etapadeentrada.- Este fragmento del circuito total, es tan imprescindible como las 2 siguientes. En este caso se trata de la parte que se encarga de adquirir la información del entorno que rodea al PLC y enviarla a las terminales de entrada de datos del microcontrolador PICAXE, para realizar esta tarea se requiere de sensores para que éstos adquieran la información. En general, los PLC cuentan con la posibilidad de manejar 2 tipos de sensores, ya sean analógicos o discretos. De acuerdo con lo anterior podemos realizarnos la siguiente pregunta: ¿Cómo sé qué sensor seleccionar? La respuesta nos la proporciona el propio proceso que vamos a intervenir con nuestro PLC, y lo que tenemos que saber para tomar la mejor decisión sobre qué sensores seleccionar, es tomar alguno de los siguientes criterios: 1.- ¿Se requiere conocer si está presente o no, algún producto o material? 2.- ¿Se requiere saber la magnitud de alguna variable física? De las preguntas anteriores tenemos que la 1 corresponde a sensores discretos, mientras que la pregunta 2 se relaciona con los sensores analógicos. El esquema del módulo de entrada discreto del PLC PICAXE-18 incluye optoacopladores 4N25 (figura 114). Figura 114 Todo SobrE mICroCoNTroLAdorES PICAXE 53 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC Para una mejor comprensión explicaremos lo expresado líneas atrás mediante un ejemplo; supongamos que se tiene que controlar la magnitud de la temperatura en el interior de algún recinto, por Figura 115 lo tanto tenemos que seleccionar los tipos de sensores para implementar el control de la temperatura y que ésta sea estable dentro del recinto. De un análisis rápido y muy básico llegamos a la conclusión de que por lo menos, se requieren 2 tipos de sensores los cuales se emplearán para realizar una de las siguientes acciones: • • Leer el valor de la magnitud de la temperatura que está presente. Detectar si la puerta del recinto se encuentra cerrada. La primera descripción corresponde a un sensor del tipo analógico, mientras que la segunda descripción hace referencia a un sensor del tipo discreto. La diferencia principal entre los 2 tipos de sensores radica en el hecho de que el sensor analógico entrega un valor infinito de valores, los cuales dependen de la intensidad de la magnitud física que se está midiendo (luz, temperatura, humedad, etc.), mientras que el sensor discreto tan sólo nos reporta 2 valores, que son un “1 lógico” ó “0 lógico”. El circuito correspondiente a la etapa de entrada de un PLC tiene que ser adecuada al sensor que se va a emplear, y tomando en cuenta que el microcontrolador que se utilizará es un PICAXE 18A, que nos permite una disposición de 5 terminales que en su totalidad pueden ser para entradas discretas, el diagrama de la figura 114 corresponde a la parte del diagrama que representa la etapa de entrada implementada para sensores discretos. La entrada discreta tan sólo debe tener la capacidad de reportar si el sensor detecta la presencia o no de algún objeto o fenómeno físico, por ello se requiere que el sensor informe de su estado por medio de un contacto, el cual se hace conectando en los extremos del borne de entrada de que se trate. El contacto está conectado en serie con un resistor, y ambos se encuentran energizados por una fuente de alimentación, y cuando el contacto se cierra (esto si el sensor se activa) se genera un “1 lógico”, mientras que si el contacto se abre (si el sensor no se activa) se da origen a un “0 lógico”. Estos estados lógicos se dirigen a la terminal del ánodo de un led infrarrojo de un dispositivo opto acoplador (4N25), el cual a su vez, en la terminal del emisor refleja el estado en que se encuentra el opto acoplador, mismo que corresponde al estado que guarda el contacto. Por último, la información del optoacoplador se hace llegar a la terminal de entrada correspondiente del microcontrolador PICAXE. Este circuito se repite 5 veces, una para cada entrada discreta que posee el PICAXE. etapadesalida.- Este bloque del circuito total sirve para enviar una señal para que el actuador o elemento de potencia que tiene conectado se energice o se apague, por lo tanto este circuito hace de etapa de aislamiento entre las terminales de salida del microcontrolador PICAXE y los elementos de salida. EL circuito principal que protege al microcontrolador PICAXE es un amplificador operacional, que se encuentra bajo la configuración de seguidor de voltaje, por lo tanto si en la salida del 54 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC PICAXE se tiene un “0 lógico”, el seguidor de voltaje entregará 0 Volts, mientras que si el PICAXE entrega un “1 lógico” el seguidor de voltaje entregará 5 volt, porque con esa magnitud de voltaje es con la que trabaja el microcontrolador. En el diagrama de la figura 115 se muestra el circuito completo de la etapa de salida. Para completar la etapa de salida, se utiliza un transistor para activar la bobina de un relevador, que por medio de sus contactos se energiza o no, un elemento de potencia. Cabe aclarar que los contactos del relevador deben tener la capacidad de manejar tanto C.A. como C.D. y una corriente máxima de 10 ampere en 120V de corriente alterna 7 ampere en 220V ó 10A en 24V de corriente continua. etapadecontrol.- Esta parte del PLC, de manera indirecta, la describimos cuando hacemos referencia a un microcontrolador PICAXE, porque el PICAXE de forma exclusiva es la pieza que integra a la etapa de control, porque la información que se adquiere de los sensores se tiene que dirigir a las terminales de entrada del PICAXE, para que éste en función del programa que tenga gravado en su memoria, reporte un resultado y lo envíe a los circuitos pertenecientes a la etapa de salida y así poder manipular a un elemento actuador. El microcontrolador PICAXE de nuestro PLC contará con todas las ventajas que nos ofrece el software de programación, el cual describimos a continuación. Para cualquier PLC, el software que normalmente se emplea para programarlo es el llamado “lenguaje en escalera” o diagrama de contactos, en el cual las instrucciones se implementan mediante símbolos, tal como se observa en la figura 116. Ya hemos descrito, que en particular para el PLC que estamos diseñando, por el momento no se contará con un lenguaje en escalera, pero vamos a solventar esta desventaja con la realización del armado de bloques con instrucciones propias de los microcontroladores PICAXE, para que de esta manera podamos contar con una equivalencia en cuanto a la serie de símbolos que nos puede proporcionar un PLC. Existe una serie de símbolos del lenguaje en escalera que tienen un reflejo hacia la actividad exterior del PLC, y de esta manera se tienen contactos normalmente abiertos (N.A.) y normalmente cerrados (N.C), los cuales leen la información de las terminales de entrada de datos y envían la información al PLC. También existen los símbolos que por medio de los cuales se le indica al PLC que tiene que enviar un mando de control para activar o desactivar algún actuador o elemento de potencia. Entonces, para programar un PLC lo único que tenemos que hacer es emplear los símbolos adecuados para tener un sistema de control automático. Por otra parte, los símbolos que se emplean en el lenguaje en escalera, son la base para programar las funciones lógicas que integran al programa que controla algún proceso industrial, por lo tanto, por medio de un ejemplo vamos a observar de qué manera se puede implementar una función lógica AND (Y), ó una función lógica OR (O) y una negación. Figura 116 Todo SobrE mICroCoNTroLAdorES PICAXE 55 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC Funciónlógica anD(Y).- Esta función en lenguaje escalera equivale a Tabla 7 interconectar una serie de contactos que pueden ser N.A. ó N.C. en serie, lo que asemeja en un diagrama eléctrico, a un circuito serie en donde se encuentran interruptores y al final de éstos una lámpara, y para que ésta encienda en necesario que todos estén cerrados. Para implementar esta misma función mediante el código en un microcontrolador PICAXE lo haremos en dos partes, en primer término se requiere leer el estado que están reportando los sensores (en este caso discretos), para ello como ejemplo obsérvese el fragmento de lenguaje escalera expresado en la figura 116. Esta disposición de símbolos da origen a una rama, en la cual se observa el efecto de 3 contactos que al estar conectados en serie, se tiene una equivalencia de una función lógica AND, estos contactos muestran su efecto a partir de 3 entradas, pues bien, en nuestro microcontrolador PICAXE también se tiene que leer el estado de 3 entradas para tener la equivalencia, y para ello necesitamos saber en qué terminales de entrada de datos se encuentran conectados los sensores, continuando con el ejemplo supóngase que las entradas para conectar esos sensores fueron la E0, E1 y E2 (en un PICAXE las terminales de entrada son 5 y son E0, E1, E2, E6 y E7), por lo tanto para que la función lógica AND implementada en la figura 132, tenga el mismo efecto en el microcontrolador PICAXE, se tiene que leer sólo el efecto de las terminales involucradas con la función lógica, por lo que tenemos que anular lo que suceda con las terminales restantes, para ello vamos a colocar una máscara a manera de filtro, para que sólo pueda obtenerse el estado lógico de los sensores en las terminales de entrada que nos interesan. La máscara o filtro, que le vamos a colocar al PICAXE, estará implementada de acuerdo a como se muestra en la tabla 7. Por medio de la aplicación de la máscara descrita anteriormente, vamos a inFigura 117 dicarle al PICAXE que lea sus terminales de entrada y ese dato lo almacene en un registro temporal o variable que puede ser como en este ejemplo, el identificado como “b0”, y para eliFigura 118 minar el efecto de las terminales E6 y E7 lo que tenemos que hacer es, de alguna manera, que estos bits adquieran un valor de 0 lógico, no importando el estado que tengan sus sensores respectivos, mientras que sobre las terminales E0, E1 y E2 se debe mantener el valor del estado lógico que respectivamente guarden los sensores correspondientes. Esto se puede escribir por medio de un “diagrama de flujo” con el que haremos el programa de nuestro PLC en el Editor de Programas. Para describir entonces, cómo se hace una función AND, vea el esquema de la figura 117. Se observa que el valor de la variable b0 se opera por medio de una función AND (&) con el valor decimal de 7, mismo que equivale a la aplicación de la máscara, y de esta manera cualquier valor lógico que tengan las terminales E6 y E7 será igual con “0” lógico. El dato 56 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC que tengan las terminales E0, E1 y E2 se mantendrá. La instrucción “Let b0 = pins & 7” indica que le asigné a la variable b0 el valor que corresponde a la lectura de los pines E0, E1 y E2. Por ejemplo, si E2=0, E1=0 y E0=1, entonces b0=1. Otro ejemplo: si E2=1, E1=0 y E0=1, entonces b=5. Posterior a la aplicación de la máscara, se tiene que analizar el estado de las 3 terminales que están involucradas con la función lógica AND de la rama del lenguaje en escalera de la figura 116, para ello el valor que debe estar alojado dentro de la variable b0 debe ser igual a 7 decimal, si el estado de los 3 sensores es 1 lógico, y la variable b0 reFigura 119 portará cualquier otro valor si alguno de los sensores o todos están en 0 lógico, tal como se ilustra en la figura 117. El efecto de esta función lógica AND, equivalente a la rama de la figura 116, lo estamos reflejando sobre la salida S0, misma que se encenderá cuando los 3 sensores reporten un 1 lógico sobre las terminales de entrada del PICAXE. Si se quiere cambiar de terminales de entrada o involucrar más (sólo tenemos 5) entradas, basta con adecuar la máscara que filtra a las terminales que nada tienen que ver con la función AND de una rama de lenguaje en escalera, por otra parte si se tienen más ramas, el fragmento de código que implementamos para el PICAXE tiene que repetirse tantas veces como ramas necesitemos. Para que se entienda, según lo expresado en la tabla 7, los valores de E6 y E7 son siempre igual a cero, luego, para obtener una función equivalente a una AND de 3 entradas (E0, E1 y E2), sólo habrá una salida válida cuando estas tres entradas estén en “1” y si esto se cumple, la sumatoria en binario equivale al número decimal 7, por lo tanto, y tal como se muestra en el bloque de la figura 117, asignamos a una variable b0 la suma de los pines de entrada y si se cumple que: E0=1,E1=1,E2=1,E3=0,E4=0 Entonces la sumatoria será igual a “7” y para completar la función AND deberemos preguntar si la variable b0 = 7, tal que cuando se cumpla esa condición entonces la salida “0” vaya a estado alto. El diagrama de flujo que representa a la función lógica AND se completa entonces con el diagrama de flujo de la figura 118. Funciónlógicaor(o).- Esta función en lenguaje escalera obliga a interconectar interruptores en paralelo, lo que equivale en un diagrama eléctrico a tener alternativas para que al final de éstos pueda encenderse una lámpara, y para ello es suficiente con tan solo tener un interruptor cerrado. Para implementar la función OR mediante el código en un microcontrolador PICAXE, en primera instancia se requiere leer el estado que están reportando los sensores (en este caso discretos), para ello a manera de ejemplo se muestra un fragmento del lenguaje escalera ilustrado en la figura 119. Por la disposición de los símbolos se está dando origen a una bifurcación en una rama, en la cual se observa el Todo SobrE mICroCoNTroLAdorES PICAXE 57 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC efecto de 3 contactos que al estar conectados en paralelo, se tiene la equivalencia con la función lógica OR, estos contactos muestran como operan a partir de 3 entradas, por lo tanto, el microcontrolador PICAXE debe leer el estado de las 3 entradas involucradas, y para ello necesitamos saber qué terminales fueron las elegidas para conectar los sensores. Prosiguiendo con el ejemplo ilustrado en el lenguaje escalera para la función lógica OR, supóngase que las entradas para conectar esos sensores fueron la E0, E2 y E6 (recuerde que en un PICAXE las terminales de entrada son 5 y son E0, E1, E2, E6 y E7), por lo tanto para que la función lógica OR implementada en la figura 119, tenga la misma operación en el microcontrolador PICAXE, se tiene que leer sólo el estado lógico de las terminales involucradas con la implementación de la operación lógica OR, por lo que tenemos que nulificar el estado que se genere para las otras terminales que no Tabla 8 están contempladas, para ello vamos a utilizar una máscara a manera de filtro para que sólo pueda obtenerse el estado lógico de los sensores en las terminales de entrada que nos interesan. Tabla 9 La máscara o filtro que 'BASICconvertedfromflowchart: le vamos a colocar al 'E:\PICAXE\PROGRAMASDEARTICULOS\ARTICULO-12\FUNCIONAND.CAD PICAXE, estará imple'Convertedon16/10/2005at22:28:46 main: mentada de acuerdo a label_6: letb0=pins&7 como se muestra en la ifb0=7thenlabel_1F low0 tabla 8. gotolabel_6 Por medio de la aplicalabel_1F: high0 gotolabel_6 ción de la máscara descrita, vamos a indicarle Tabla 10 al PICAXE que lea sus terminales de entrada y 'BASICconvertedfromflowchart: 'E:\PICAXE\PROGRAMASDEARTICULOS\ARTICULO-12\FUNCIONOR.CAD ese dato lo almacene en 'Convertedon16/10/2005at22:28:19 un registro temporal o main: label_6: letb0=pins&69 variable que en este ifb0>0thenlabel_1F ejemplo se trata de low1 gotolabel_6 “b0”, y para descartar el label_1F: high1 efecto de las terminales gotolabel_6 E1 y E7 lo que tenemos Figura 120 58 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC Figura 121 Todo SobrE mICroCoNTroLAdorES PICAXE 59 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC que hacer es que de alguna manera, estos bits adquieran un valor de 0 lógico, no importando el estado que tengan sus sensores respectivos, mientras que las terminales E0, E2 y E6 deben mantener el valor del estado lógico que respectivamente, guarden los sensores que tengan conectados. En dicha figura se observa que el valor de la variable b0, se opera por medio de una función AND (&) con el valor decimal de 69, mismo que equivale a la aplicación de la máscara (vea la tabla 8 nuevamente), y de esta manera sólo se tendrán en cuenta para fijar el dato de la variable b0 el dato que tengan las entradas E0, E2 y E6. La instrucción (let b0 = pins & 69) indica que se le asigne a b0 el valor correspondiente a la suma en decimal (con el peso de cada bit) de las entradas E0, E2 y E6. Por ejemplo, si E6=1 (que tiene un peso igual a 64 expresado en decimal, E2=0 (no tiene peso por ser “0”) y E0=1 (tiene un peso igual a 1, expresado en decimal) entonces b0=65 (64+1). Posterior a la aplicación de la máscara, se tiene que analizar el estado de las 3 terminales que están involucradas con la función lógica OR del lenguaje en escalera de la figura 119, para ello el valor que debe estar alojado dentro de la variable b0 se debe comparar con el valor decimal de 0, específicamente se hace la pregunta si b0 es mayor que 0. Si el estado de los 3 sensores es igual a 0 lógico, significa que ninguno de ellos se ha activado, por otra parte si en la variable b0 se reportara cualquier valor que sea mayor que 0, quiere decir que alguno de los sensores o todos inclusive están en 1 lógico. Por lo tanto, el paso siguiente del diagrama de flujo será “preguntar” si b0>0, ya que cualquier valor mayor que “)” indicará que al menos un sensor en los pines E0, E2, E6 esté activado. El efecto de la función lógica OR, programado en el diagrama de flujo de la figura 120 equivalente al lenguaje escalera de la figura 119, lo estamos reflejando sobre la salida S1. La lámpara conectada en esta salida se encenderá cuando por lo menos uno de los 3 sensores reporten un 1 lógico sobre las terminales de entrada del PICAXE. Si se quiere cambiar de terminales de entrada o involucrar más (sólo tenemos 5 entradas), basta con adecuar la máscara que filtra a las terminales que nada tienen que ver con la función OR que se quiere implementar, por otra parte si se necesitan más funciones lógicas OR, no tenemos más que repetir el fragmento del código que hicimos para el PICAXE, por lo que éste tiene que repetirse tantas veces como funciones necesitemos. Recuerden que con el programa llamado “PICAXE Programming Editor”, podemos implementar perfectamente las mismas funciones que se realizan en un lenguaje escalera, claro que no es tan fácil de hacer pero se puede. Por otra parte ya hemos abordado los conceptos mínimos que se requieren Figura 122 para que nuestro PLC haga todas las funciones básicas de uno comercial, pero se debe tener presente que se necesitan dominar ciertas técnicas de programación para los PLC, por lo que nuevamente les hacemos una atenta invitación a que visiten nuestra página de internet www.webelectronica.com.ar y en la sección de password empleen la clave “progplc”, para que puedan descargar mucha información sobre la programación de PLC. Si quieren obtener más información de los microcontroladores PICAXE los invitamos a que descarguen de la página de Internet, toda la información que necesiten de microcontroladores PICAXE, pero ahora empleando la clave “picaxe”. El código en basic, derivado del diagra- 60 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC ma de flujo para implementar la función AND, se muestra en la tabla 9. El código en basic derivado del diagrama de flujo para implementar la función OR se muestra en la tabla 10. Por último, en la figura 121 se muestra el diagrama completo para la placa de circuito impreso, incluyendo la máscara de componentes (el lado de las pistas de impreso se ha reproducido en la figura 113). Recuerde que este PLC se programa con el Editor de Programas. ProgramaciónCombinacionaldelPLC-PICAXE18 Al igual que los PLC comerciales, el PLCPICAXE18 tiene la capacidad de recibir las diferentes técnicas de programación, esto es, programación combinacional y programación secuencial (estas técnicas de programación se explican en la serie de PLC que se está desarrollando en Saber Electrónica). En esta oportunidad explicaremos la técnica de programación combinacional a ser empleada en nuestro PLC. Este, es capaz de controlar cualquier proceso industrial, basta con programarlo con la aplicación específica que nos interesa. En esta oportunidad controlaremos un proceso en donde se manipulará un motor de CD, el cual tendrá que cambiar su polaridad para que éste gire en un sentido y en el otro, para cuestiones ilustrativas en este ejemplo, el mecanismo que emplearemos representa una herramienta que se emplea en algún proceso industrial, pero por obvias razones el mecanismo empleando es un juguete, el cual esperaFigura 123 - Conexiones del PLC - PICAXE 18 mos cumpla con el objetivo de mostrar que la programación de nuestro PLC- PICAXE-18 Tabla 11 - Denominación de las terminales de entrada es muy sencilla. Terminal Etiqueta Identificación Para proceder a proE0 SenAb Sensorquedetectalaposicióninferiordelmecanismo. gramar el PLC, primeE1 SenArr Sensorquedetectalaposiciónsuperiordelmecanismo. E2 Inicio BotóndeIniciodelproceso. ro tenemos que conocer E6 Bn P a r o Botóndeparo. el orden de las operaciones que van a conTabla 12 - Denominación de las terminales de salida. trolar nuestro mecanisTer mi nal Etiqueta Identificación mo, para ello describiS0 Lámpara1 Lámparaqueindicaqueelprocesoestáenmarcha. remos el algoritmo de S1 Arriba Relevadorquecontrolaelgirodelmotorhaciaarriba. operación. S2 Lámpara Lámparaqueindicaqueelprocesoestádetenido. El mecanismo que S6 Abajo Relevadorquecontrolaelgirodelmotorhaciaabajo. se ilustra en la foto de Todo SobrE mICroCoNTroLAdorES PICAXE 61 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC la figura 122, puede servir como un modelo a escala de alguna de las muchas máquinas reales que se encuentran en la industria y que hacen las tareas de perforar, cortar, marcar (suajar), imprimir, etc. Laformadeoperardenuestromecanismoserálasiguiente: • Como punto inicial, nuestro mecanismo se encontrará en estado de reposo, por lo que su parte móvil se ubica en la parte inferior, mientras este estado será indicado mediante una lámpara. • Posteriormente, si se oprime el botón de inicio se apagará la lámpara de reposo y se encenderá la de operación, además el mecanismo comenzará a desplazar hacia arriba su parte móvil. • Una vez que la parte móvil alcance su posición máxima superior, inmediatamente invertirá su sentido de desplazamiento y ahora la parte móvil efectuará un movimiento de descenso. • Cuando la parte móvil alcance su posición máxima inferior, nuevamente invertirá su sentido de desplazamiento y ahora la parte móvil efectuará un movimiento de ascenso. Así continuará bajando y subiendo hasta que se oprima el botón de paro, lo cual provocará que la parte móvil descienda y se detenga, induciendo que la lámpara de operación se apague y la de reposo se encienda. Nuestro PLC-PICAXE18 tendrá bajo su control la operación de lámparas, sensores, botones y un motor que en este ejemplo es de 12 VCD, tal como se indica en el diagrama de la figura 123. Las entradas que serán empleadas son las identificadas como E0, E1, E2 y E6, las cuales tienen conectadas los siguientes sensores y botones. Ver tabla 11. El tipo de sensores que se tienen que emplear para este PLC deben reflejar su estado lógico mediante el cierre o apertura de un contacto, el cual justamente es el que se conecta en los bornes de entrada. En este programa de ejemplo se están empleando las salidas identificadas como S0, S1, S2 y S3 las cuales controlan las lámparas que poseen los botones de inicio y paro, estas lámparas son de 117 VCA. Además estas salidas también controlan el sentido de giro de un motor de 12 VCD, por medio de relevadores que se alimentan en su bobina igualmente con 12 VCD, en la tabla 12 se muestra la identificación de las terminales y la denominación de las etiquetas relacionadas. En la figura 123 se aprecia que para controlar el giro del motor se tienen que activar o desactivar 2 relevadores, los cuales nunca deben activarse al mismo tiempo, porque se puede colocar en cortocircuito a la fuente que alimenta al motor, por lo que en el programa de control se deben tener en cuenta las condiciones para que cuando se requiera energizar el motor para que suba el mecanismo, se tiene que desactivar el relevador que provoca el movimiento hacia abajo del mecanismo. Como se explicó al comienzo de este ejemplo, se está empleando un “juguete” que represente la forma de actuar de un mecanismo real, por lo tanto el motor que tiene es de 12 VCD, pero en una situación real el motor puede ser con un VCA e inclusive del tipo trifásico, lo cual no debe representar ningún problema, ya que a través de los mismos relevadores que estamos proponiendo en esta nota, se pueden controlar las fases de los motores y por lo tanto se manipulará el sentido de giro del motor. Con respecto a la programación del PLC-PICAXE18, se recomienda que se sigan exactamente los mismos paFigura 124 - Escalón 1 del lenguaje en escalera. sos que se realizan para pro- 62 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC gramar un PLC, esto es, diseñar el programa mediante el empleo del llamado “lenguaje en escalera”, y una vez que tengamos el lenguaje en escalera podremos interpretarlo para su posterior conversión al código del microcontrolador PICAXE. Por el momento, el PLC-PICAXE18 no cuenta con la programación en lenguaje escalera, por lo que a continuación les mostraremos de qué manera se interpretan los símbolos para que se controle el mecanismo de este ejemplo. El diseño del programa en lenguaje en escalera se encuentra de manera completa en la serie de PLC que se está desarrollando en Saber Electrónica, y a la cual pueden tener acceso en la página www.webelectronica.com.ar y en la sección de password ingresen la clave “progplc”. Aquí sólo vamos a describir de qué manera se interpreta el lenguaje en escalera para programar el microcontrolador PICAXE de nuestro PLC. A continuación mostraremos las partes del lenguaje en escalera y su debida conversión al código del microcontrolador PICAXE. En la figura 124 se muestra el primer escalón del lenguaje en escalera, cabe aclarar que este programa lo hemos presentado en la serie de PLC a que hicimos referencia en el párrafo anterior. Este fragmento tiene la misión de identificar cuando el botón de inicio sea oprimido por alguna persona operadora, y ese accionamiento se tiene almacenar en un registro de memoria temporal del PLC, por lo que estará presente la condición del accionamiento todo el tiempo mientras no se oprima el botón de paro. En este escalón de lenguaje en escalera observemos que son dos funciones lógicas las que se realizan, en primea instancia la función O (OR) en los contactos identificados como E2 y M0, y el resultado de esta función lógica se combina con el contacto identificado como /M1 para formar la función lógica Y (AND), y si las funciones lógicas resultan ser verdaderas se procederá a la activación de la salida M0. Esta salida M0, no tiene un reflejo hacia fuera del PLC, por lo que se considera como un salida interna ó como un registro, por lo que debemos establecer en el PICAXE la cantidad de los registros que serán empleados para este tipo de salidas internas. El PICAXE-18 posee 14 registros de memoria RAM identificados como b0, b1, ……, b13, y todos éstos con un total de 8 bits cada uno, por lo que para guardar el estado de cada una de las salidas internas que se vayan a emplear basta con manipular un bit por cada una de estas salidas. Para ello podemos emplear un total de 2 registros de memoria RAM del PICAXE, los cuales serán b12 y b13, que nos darán capacidad para guardar hasta 16 registros internos del PLC, en caso de requerir más, tan sólo tenemos que tomar otro registro de memoria RAM del PICAXE, a continuación se muestra la distribución de los bits de los registros de memoria RAM empleados. Para que el escalón 1 del lenguaje en escalera de la figura 124 tenga una equivalencia con el PICAXE, en primera instancia se leerá el estado de la terminal de entrada E2, que es en donde se tiene conectado el botón de inicio, y en el PICAXE esta acción está identificada por medio del rombo que internamente tiene la pregunta “pin2 = 1” (observe la figura 126), en este caso se está implementando la función lógica OR. Por lo tanto, si la respuesta es “sí” (Y) ya no tiene caso evaluar el estado de la salida interna M0, pero si la respuesta es “no” (N) se tiene que verificar el estado de la salida interna M0 por lo que se toma el registro b12 del PICAXE, para de ahí verificar el estado del bit B0 Figura 125 - Diagrama de flujo que representa al Escalón 1. ya que éste tiene almacenada la información del estado de la sa- Todo SobrE mICroCoNTroLAdorES PICAXE 63 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC lida interna M0, la técniB0 ca que empleamos en este caso para leer únicaM0 mente el estado de M0 y M8 descartar todos los demás bits, es el empleo de una máscara que no importando la información que tengan los demás bits los limpiamos (colocamos en cero) y únicamente dejamos al bit correspondiente con M0, para ello hacemos uso del comando “let b0 = b12 & 1”. Esta operación tiene una naturaleza lógica y la empleamos para generar la máscara que nos permite limpiar todos los bits menos el de M0, el operador & realiza la función AND (de la máscara) bit por bit con respecto del registro b12 y el valor 1 quedando lo siguiente. Supongamos que en b12 se tenga la siguiente información 17, el número 17 tiene que ser convertido a binario de 8 bits, por lo que queda 00010001, lo cual quiere decir que las salidas internas M0 y M4 están activadas. El valor 1 al convertirlo a binario de 8 bits queda 00000001, y al emplear el operador & con el registro b12 se obtiene el siguiente resultado: Tabla 13 - Ubicación de las salidas internas del PLC. B7 B6 B5 B4 B3 B2 B1 b12 M7 M6 M5 M4 M3 M2 M1 b13 M15 M14 M13 M12 M11 M10 M9 Valordecimal Valorbinario b12 17 00010001 & & 1 00000001 .................................................................................... b0 1 00000001 De esta manera, al operar con la función AND, el registro b12 con el valor de 1 hace que se limpien todos los bits menos el que corresponde a M0, y si éste tiene un valor de 1 se conserva el 1, y si tiene almacenado un 0 también se conserva. Para no afectar el estado de los otros bits, el resultado se almacena en un registro de trabajo que es donde se guardarán los valores que con carácter temporal se irán generando, el registro de trabajo será el b0. Como resultado del enmascaramiento se arrojará únicamente un bit y por la posición que tiene éste, como paso siguiente se procede a revisar si se encuentra en 1 “lógico” ó 0 “lógico” mediante la pregunta “b0 = 1” que se encuentra dentro de un rombo, observe la figura 125. Si la respuesta es afirmativa la función lógica OR entre E2 y M0 será verdadera, por lo que ahora se tiene que someter este resultado por medio de la función lógica AND con /M1, observe la figura 124. Pero si la respuesta de la función lógica OR no fue verdadera, entonces ya no tiene caso continuar con el análisis del estado de /M1. Para finalizar con este primer escalón, tenemos que emplear nuevamente un enmascaramiento sobre el registro b12, ya que es ahí donde se encuentra el estado de la salida interna M1, pero ahora ocupa el bit b1, de acuerdo con la tabla 13. En el lenguaje escalera se representa a M1 con el símbolo previo “/” lo cual quiere decir que se encuentra negado (/M1), esto quiere decir que el estado lógico de la salida interna tiene que ser 0 para que sea valida, el proceso del enmascaramiento se ilustra a continuación: Valordecimal Valorbinario 17 00010001 & & 2 00000010 ........................................................................................ b0 0 00000000 b12 64 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC Para continuar con el mismo ejemplo del enmascaramiento anterior, de igual manera supongamos que en b12 se encuentra el valor decimal de 17, el cual mediante la función AND (&) operamos con el valor de 2, porque al convertirlo a binario el lugar que ocupa el bit 1 corresponde con la salida interna Figura 126 - Escalón 2 del lenguaje en escalera. M1. En este caso el resultado que se almacenará en el registro de trabajo b0 será 0 porque limpiamos todos los bits menos el de M1, pero éste en el registro b12, tiene un estado lógico almacenado igual con 0, por lo que el resultado final será 0, una vez que sabemos cómo se encuentra M1 procedemos a evaluar si cumple con /M1, para que podamos implementar la función AND que se muestra en la figura 124 del lenguaje en escalera. Para cumplir con la función AND se realiza la pregunta “b0 = 0” puesto que el resultado de enmascarar al registro b12 para encontrar el estado de M1, se quedó precisamente en b0, si el resultado de la pregunta de una respuesta verdadera, quiere decir que el estado de M1 es cero por lo tanto cumple con todas las condiciones del escalón 1 de la figura 124, por lo que podemos activar la salida interna M0 (colocar en 1 “lógico”), pero si el resultado de la pregunta “b0 = 0” no es verdadero, no se cumplen con las condiciones del lenguaje escalera de la figura 124, por lo que la salida interna M1 tiene que colocarse en 0 “lógico”. La manera de manipular las salidas internas ya sea colocando un 1 ó un 0 “lógico” es empleando la operación “let “ indicando que registro es el que se manipulará, que en este caso es b12 ya que ahí se encuentra la salida interna M0, por lo que tendremos los siguientes resultados. Si es necesario, colocar un 0 “lógico” en M0, se tiene que emplear la operación “let b12 = b12 & 254” observe la figura 125, el resultado de la operación no tiene que alterar todos los bits, ya que sólo el que corresponde a M0 se tiene que colocar en cero, por lo que si empleamos 8 bits, el número 254 se representa como 11111110 y al emplear la operación AND con el registro b12 se tiene lo siguiente: Valordecimal Valorbinario 17 00010001 & & 254 11111110 ........................................................................................... b12 16 00010000 b12 Tabla 14 - Ubicación de las salidas internas del PLC. B7 B6 B5 B4 B3 b11 S7 S6 S5 S4 S3 Figura 127 - Diagrama de flujo que representa al Escalón 2. B2 S2 B1 S1 B0 S0 Figura 128 - Escalón 3 del lenguaje en escalera. Todo SobrE mICroCoNTroLAdorES PICAXE 65 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC Ahora, si por lo contrario se requiere que M0 se coloque en 1 “lógico”, la operación que será empleada es “let b12 = b12 | 1” observe la figura 125, y de igual manera como en el caso anterior, tan sólo debe manipularse el bit que corresponda con M0 que a su vez se encuentra dentro del registro b12 del PICAXE, y entonces el resultado servirá como respaldo para siguientes operaciones donde se encuentre involucrado el registro M0, ya que sólo cambiará su estado lógico cuando se vuelvan a evaluar las condiciones que están involucradas en M1. Valordecimal b12 17 | 1 b12 17 Valorbinario 00010001 | 00000001 00010001 Una vez que fueron tomadas en cuenta todas las condiciones del escalón 1 de la figura 124, ahora se implementarán las condiciones del escalón 2 que se muestra en la figura 126. La tarea que tiene el escalón 2 en el lenguaje en escalera es el de encender la lámpara que indica que se oprimió el botón de inicio, por lo que la lámpara indica que el proceso está en marcha, por lo tanto aquí se aprovecha el resultado del escalón 1, porque en el escalón 2 se utiliza como única condición el estado lógico de la salida interna M0. En la figura 127 se muestran las operaciones que hacen encender la lámpara si es que el estado M0 se encuentra 1, y apaga la lámpara si M0 se encuentra en 0 “lógico”. Al igual que con las salidas inter- Figura 129 - Diagrama de flujo nas se tiene que guardar el estado de que representa al Escalón 3. las salidas, ya que éstas pueden emplearse como condiciones en otros escalones del lenguaje en escalera, por lo que se tiene que definir en qué registro de memoria RAM del PICAXE se tienen que alojar. El PLC - PICAXE18 cuenta con 8 salidas, por lo que es suficiente el empleo de un registro, ya que todos éstos poseen 8 bits y cada uno de ellos reflejará el estado de cada una 66 Todo SobrE mICroCoNTroLAdorES PICAXE Figura 131- Diagrama de flujo que representa al Escalón 4. Figura 130 - Escalón 4 del lenguaje en escalera. PICAXE: L A N uEvA F ormA de las salidas del PLC. El registro de memoria RAM que será empleado para almacenar el estado lógico Figura 132 - Escalón 5 del de las salidas es b11, lenguaje en escalera. a continuación se muestra la distribución de los bits de los registros de memoria RAM empleados. En la figura 128 se muestra el escalón 3 del lenguaje en escalera, siendo su actividad principal la de indicarle al mecanismo que tiene que desplazar su parte móvil hacia arriba. El escalón 3, tiene como una de sus condiciones, a la entrada E0, que lee el estado del sensor que identifica la posición inferior de la parte móvil del mecanismo, que en conjunto con la salida interna M0 generan la función lógica AND, y cuyo resultado se analiza junto con la condición de la salida S1 (ya se indicó en las operaciones del escalón 2 donde se guardan los estados de las salidas), lo que tiene como consecuencia una función lógica OR, que a su vez conforma otra función lógica AND junto con las condiciones de las entradas /E3 y /E1, que son el reflejo tanto del botón de paro así como del sensor que identifica el estado superior de la parte móvil del mecanismo respectivamente. Por lo tanto, el escalón 3 verifica las condiciones de seguridad que tienen que cumplirse para que el motor de CD se energice y la parte móvil comience su desplazamiento hacia arriba, en la figura 129 se muestra el correspondiente fragmento en el ambiente del PICAXE. Ahora toca el turno de revisar el escalón 4, que se ilustra su lenguaje en escalera en la figura 130. El escalón 4 tiene la primera función lógica AND por la combinación tanto de la entrada E1 como de la salida interna M0, posteriormente este resultado se utiliza para que junto con la salida S3 y la salida interna M1 se genere la función lógica OR. El resultado de las condiciones anteriores se combina con la entrada /E0 mediante la función lógica AND y si se cumplen todas las condiciones, la salida S3 será activada. La importancia del escalón 4 radica en la revisión de las condiciones que tienen que cumplirse para que el motor de CD dE P rogrAmAr uN PIC Figura 133 - Diagrama de flujo que representa al Escalón 5. Figura 135 - Diagrama de flujo que representa al Escalón 6. Figura 134 - Escalón 6 del lenguaje en escalera. Todo SobrE mICroCoNTroLAdorES PICAXE 67 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC gire de tal manera, que la parte móvil del mecanismo se desplace ahora hacia abajo. En la figura 131 se ilustra, en el ambiente de programación del PICAXE, la representación del escalón 4. Continuando con el lenguaje en escalera, el escalón 5 que se muestra en la figura 132 tan sólo tiene la misión de encender la lámpara que indica que el proceso se encuentra detenido, y únicamente se emplea como condiFigura 137 - Kit del PLC PICAXE-18. ción que no esté encendida la lámpara que indica la operación del proceso, ya que de lo contrario la lámpara del paro de actividades se encontrará apagada. En la figura 133 se muestra la correspondiente interpretación del lenguaje en escalera por medio del ambiente del microcontrolador PICAXE. Por último se tiene el escalón 6, en donde se observa que al inicio se tiene una función lógica OR integrada por las condiciones que genera la entrada E1 y la salida interna M1, y cuyo resultado tiene que someterse junto con la condición de la entrada /E0 en una función lógica AND. Si Figura 136 - Diagrama de flujo completo. 68 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC Lista de componentes para el ejercicio. PLC - PICAXE18 SenArr mininterruptortipopushbutom SenAb mininterruptortipopushbutom BnParo botontipopushbutomconlámparaintegrada Inicio botontipopushbutomconlámparaintegrada Lámpara1 Lámparadelbotón“Inicio” Lámpara1 Lámparadelbotón“BnParo” Arriba Relevadorconbobinade24VCDyunpardecontactosde15Amp. Abajo Relevadorconbobinade24VCDyunpardecontactosde15Amp. Fuentedealimentaciónde117VCA Fuentedealimentaciónde127VCD las condiciones del escalón 6 se cumplen totalmente entonces la salida interna M1 tenderá a ubicarse en el estado de 1 “lógico”. El escalón 6 tiene una amplia importancia, ya que a través de éste será posible detener el proceso mediante un botón de paro, el cual puede ser empleado ya sea cuando se ha terminado la jornada laboral o cuando ocurra algún incidente que obligue detener el proceso. El paro de las actividades se realiza cuando se acciona el botón que está destinado a detener el proceso de producción. En la figura 135 se muestra al escalón 6, representado mediante un fragmento de diagrama de flujo para el sistema PICAXE. Hemos recorrido ya la posibilidad que existe de poder programar nuestro PLC aún sin contar con el lenguaje en escalera, empleando un microcontrolador PICAXE-18 y su software de programación. Por supuesto que sabemos que no es tan fácil de momento programar nuestro PLC, tal como se hace con el empleo del lenguaje en escalera. Pero de alguna manera suplimos estas carencias con las herramientas mostradas en este ejemplo, que además nos parecieron de lo más adecuado para facilitar la programación del PLC-PICAXE18. El ejemplo mostrado posee diversas funciones lógicas y con cierto grado de complejidad, por lo que el método aquí desarrollado puede servir de base para futuras programaciones de nuestro PLC. Una vez más les recordamos el programa llamado “PICAXE Programming Editor”, es el que se utiliza para poder implementar perfectamente las mismas funciones que se realizan en un lenguaje escalera, con las rutinas que aquí se mostraron para hacer posible la programación. El programa completo, tanto en diagramas de flujo como en código Basic, lo podrán descargar de nuestra página de internet y en la sección de password ingresen la clave “subeybaja” en donde además encontrarán esta misma aplicación pero en lenguaje en escalera. En la figura 137 se muestra el kit del PLC-PICAXE18 que es empleado en este ejercicio. Si quieren obtener mas información de los microcontroladores PICAXE los invitamos a que descarguen de la página de Internet toda la información que necesiten de microcontroladores PICAXE, empleando la clave “picaxe”. Todo SobrE mICroCoNTroLAdorES PICAXE 69 PICAXE: L A N uEvA F ormA dE P rogrAmAr El código en basic, derivado del diagrama de flujo para implementar el lenguaje en escalera es: 'BASIC converted from flowchart: 'E:\PICAXE\PROGRAMAS DE ARTICULOS\ARTICULO-13\SUBE Y BAJA (PICAXE). CAD 'Converted on 15/11/2005 at 20:43:44 main: label_4B: if pin2=1 then label_44 let b0=b12& 1 if b0= 1 then label_44 label_61: let b12=b12& 254 let b11=b11& 254 low 0 label_B9: if pin0=1 then label_84 let b0=b11& 2 if b0= 2 then label_E1 label_FA: let b11=b11& 253 low 1 label_103: if pin1=1 then label_124 let b0=b11& 8 if b0= 8 then label_150 let b0=b12& 2 if b0= 2 then label_150 label_17F:let b11=b11& 247 low 3 label_186: let b0=b11& 1 if b0= 0 then label_1A3 let b11=b11& 251 low 2 label_1BF: if pin6=1 then label_1D6 let b0=b12& 2 if b0= 2 then label_1D6 label_1F5:let b12=b12& 253 label_204: goto label_4B PIC uN if b0= 0 then label_68 goto label_61 label_68: let b12=b12| 1 let b11=b11| 1 high 0 goto label_B9 label_84: let b0=b12& 1 if b0= 1 then label_E1 label_E1: let b0=pins& 66 if b0= 0 then label_F3 goto label_FA label_F3: let b11=b11| 2 high 1 goto label_103 label_124:let b0=b12& 1 if b0= 1 then label_150 label_150:if pin0=0 then label_178 goto label_17F label_178:let b11=b11| 8 high 3 goto label_186 label_1A3: let b11=b11| 4 high 2 goto label_1BF label_1D6: if pin0=0 then label_1FD goto label_1F5 label_1FD: let b12=b12| 2 goto label_204 label_44: let b0=b12& 2 70 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC sistemadealarmaDomiciliariainteligente No caben dudas que con PICAXE, realizar diseños de circuitos electrónicos es más sencillo... A continuación describimos el funcionamiento de una alarma de 3 zonas de entrada y dos zonas de activación, pero lo más importante es que todos los parámetros pueden ser reprogramados a voluntad del técnico y/o del usuario. Una de las zonas es de disparo demorado, para que le dé la oportunidad al usuario de desconectar la alarma cuando está ingresando a la propiedad, las otras dos zonas son de disparo instantáneo, lo que implica que una vez detectada una interrupción, las salidas cambian de estado de inmediato. En cuanto a las salidas, una de ellas es de activación continua, de modo que una vez disparada la alarma, sólo se desactivará esa salida si se desconecta la central y la otra salida es temporizada, es decir, una sirena sonará durante 3 minutos y luego se apagará, quedando el sistema en “alerta” por si se produce una nueva interrupción en alguna de esas zonas, en cuyo caso la salida volverá a activarse. Y eso no es todo... el sistema detectará la posibilidad de fallos en algún sensor de alguna de las tres zonas y si esto ocurre, la deshabilitará para que no haya disparos erráticos del sistema, quedando las otras dos zonas en estado normal para detectar la presencia de intrusos. Proponemos el armado de una central de alarma multipropósito que puede utilizarse junto con otros bloques funcionales para realizar sistemas de seguridad inteligentes, cuyo desempeño dependan del ingenio y la habilidad del técnico. La central basa su funcionamiento en un microcontrolador PICAXE-08. Como somos conscientes de que muchos lectores aún no han realizado proyectos con microcontroladores PICAXE, en primer lugar describiremos el funcionamiento de una alarma multiuso que fue presentada en el tomo 7 de la colección Club Saber Electrónica (figura 138), destinado íntegramente a explicar el funcionamiento y programación de los microcontroladores PICAXE de 8, 18 y 28 terminales, brindando varios ejemplos prácticos. 2zonasinstantáneasprogramables 1zonademoradaprogramable 1salidadeactivacióncontinua 1salidadeactivacióntemporizadaprogramable incluye: tecladomicrocontroladocondisplay Fuenteconcargadorautomáticodebatería sirenadealtodesempeñoconhabilitaciónlógica alarmamultipropósito conPiCaXeparaaprendizaje Hoy en día, casi todos los edificios modernos tienen algún tipo de alarma. Por ejemplo, un sistema contra incendios puede tener una serie de detectores de humo para actuar a tiempo, si se observa el humo de un incendio. Sin embargo, muchos sistemas de alarmas son también sistemas de seguridad, por ejemplo el sistema de alarma de una plataforma de perforación puede monitorear la temperatura y presión del petróleo crudo a Figura 138 Todo SobrE mICroCoNTroLAdorES PICAXE 71 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC Figura 139 medida que es extraído y puede, automáticamente, apagar el sistema si se detecta una falla. Esto favorece a la seguridad, tanto de los trabajadores como del medio ambiente alrededor de la plataforma. Todos estos sistemas están compuestos por dispositivos de entrada y salida. A menudo estos dispositivos están conectados a un microcontrolador, el cual interpreta la información suministrada por los sensores y luego enciende o apaga las salidas en el momento correcto. En el caso de un sistema de alarma contra incendios, las entradas podrían ser los sensores de humo y el teclado numérico del frente del panel de control. Los dispositivos de salida serían la pantalla del panel de control, la sirena externa y luces estroboscópicas. El microcontrolador es el “cerebro” del sistema. El “diagrama de bloques” utiliza un PICAXE-08 (figura 139). La traducción de las palabras que empleamos es: Input = entrada Process = procedimiento Output = salida Smoke = detector de humo Strobe = luz estroboscópica Keypad = teclado numérico Siren = sirena Microcontroller = microcontrolador LCD = pantalla o display LCD El esquema electrónico del sistema de alarma para prácticas y aprendizaje se muestra en la figura 140. El detector de humo y el teclado numérico proveen información al microcontrolador; por lo tanto se les conoce como “entradas”. Figura 140 72 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC Luego, el microcontrolador “decide” cómo reaccionar y puede, en determinados casos, operar algunas de las salidas, por ejemplo encender la sirena y la luz estroboscópica o mostrar un mensaje en la pantalla de cristal líquido (LCD). Diseñar y construir un sistema de alarma puede resultar muy fácil si Ud. sabe perfectamente qué es lo que quiere que haga el circuito. La alarma debe programarse de manera que reaccione a las entradas y a las señales de los sensores. Las especificaciones del diseño son: 1. El diseño utilizará un microcontrolador PICAXE-08 como su cerebro. 2. El diseño incluirá una luz indicadora LED, un zumbador para generar ruidos y una alarma que podría ser una sirena o un motor. 3. El diseño será capaz también, de reaccionar a señales de sensores analógicos tales como sensores de luz. Esta alarma puede servir para cualquier propósito que usted elija. A continuación se mencionan algunos ejemplos: 1) Una alarma contra incendios. Se utiliza un sensor de luz para detectar humo. Al detectar humo se activa una sirena. 2) Una alarma contra robos. Al activar el cable de una trampa se activa una luz estroboscópica. Sin embargo, durante el día la alarma es desactivada por un sensor de luz. 3) La caja fuerte de un banco. Al activar el interruptor de una alarma de “pánico”, un cerrojo solenoide electrónico cierra la caja fuerte del banco. 4) Una alarma para monitorear la recámara de un bebé. Cuando no se detectan movimientos o sonidos se activa un timbre de advertencia. algunosConceptospararecordar Vamos a recordar algunos conceptos fundamentales de los microcontroladores PICAXE. ¿Cómo se escriben los programas? Los programas se dibujan como organigramas o se escriben como listados de comandos BASIC. Programar en BASIC es fácil, ya hemos dado varios ejemplos y continuaremos haciéndolo. ¿Cómo se transfiere el programa al microcontrolador? El microcontrolador PICAXE-08 se programa conectando un cable desde el puerto serie de la computadora a un conector en el circuito impreso (PCB) a un lado del microcontrolador. Este conector (el cual se parece a los conectores de audífonos utilizados en los reproductores portátiles de CD) se encaja a dos patas del microcontrolador y a la conexión de 0V desde la batería. Esto permite que la PC y el microcontrolador “hablen” para permitir la descarga de un nuevo programa en la memoria del microcontrolador. El conector y el circuito de interface se incluyen en todo circuito impreso diseñado para utilizarse con el microcontrolador PICAXE-08. Esto permite reprogramar al microcontrolador PICAXE sin sacar el chip del circuito impreso - ¡Simplemente conecte el cable cada vez que desee descargar un nuevo programa! Todo SobrE mICroCoNTroLAdorES PICAXE 73 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC ¿Cómo era eso de la salida 0 y la programación del micro? En el sistema PICAXE-08 la pata 7 tiene dos funciones, cuando se está “ejecutando” un programa, la pata se denomina salida0 y puede controlar salidas tales como LEDs y motores. En cambio, cuando se está descargando un programa, la misma pata actúa como pin de salida serie de datos, comunicándose con la PC. Por lo tanto, si durante esta operación también tiene conectada a la pata una salida tal como un LED, se percatará que el mismo se encenderá y apagará continuamente mientras se descarga el programa. nota:La mayor parte de las computadoras modernas tienen dos puertos serie, usualmente denominados COM1 y COM2. El software Editor de Programación, utilizado para crear los programas, debe configurarse con el puerto serie correcto – seleccione Ver->opciones->Puertoserie para elegir el puerto serie correcto en su máquina. Si usted está utilizando una nueva PC portátil, puede que ésta sólo tenga un conector del tipo USB. En este caso para poder utilizar el Sistema PICAXE deberá comprar un adaptador USB a serie. PruebadeFuncionamientodeltransistor Ya hemos visto cómo se prueban algunos componentes por medio del sistema PICAXE. Aprovechando que la alarma posee un transistor, veremos cómo se lo puede probar. Un transistor es un componente electrónico que controla el flujo de corriente en un circuito. El transistor actúa como un “interruptor electrónico” de manera que una pequeña corriente de “emisor” pueda controlar a una gran corriente. Esto permite que dispositivos de poca corriente, como el microcontrolador, controlen dispositivos de grandes corrientes (como motores). Los transistores se utilizan en radios, en juguetes electrónicos y en casi todos los dispositivos electrónicos. Los motores pueden generar “ruido eléctrico” cuando están funcionando. Esto ocurre debido a que los imanes y las bobinas eléctricas, que están dentro del motor, generan señales eléctricas a medida que el motor rota. Estas señales (ruido eléctrico) pueden afectar la operación del microcontrolador. Algunos motores, como los motores solares, producen muy poco ruido mientras que otros producen mucho ruido. Para evitar que el ruido eléctrico afecte al circuito del microcontrolador, se debe instalar siempre un condensador de 220nF entre los terminales del motor antes de utilizarlo. Adicionalmente, se debe conectar un diodo (por ejemplo un diodo 1N4001) a un lado del motor. Este se utiliza para prevenir daños al transistor cuando el motor comienza a desacelerarse luego de haber apagado el transistor (por un corto período de tiempo (mientras se desacelera y finalmente se detiene) el motor actúa como un dínamo y genera corriente eléctrica). Al conectar el diodo asegúrese que la “banda” esté conectada en el sentido correcto. Output device = dispositivo de salida Otra buena idea es conectar un condensador electrolítico de 100µF a través del suministro de las baterías, para ayudar a suprimir el ruido eléctrico. Para probar un transistor con el sistema PICAXE, se puede conectar un timbre como dispositivo de salida. La base del transistor recibirá una señal desde la salida 4 (pata 3) del microcontrolador. Después de conectar el timbre lo podemos probar utilizando un simple programa, como el que se muestra a continuación: 74 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC main: high4 wait1 low4 wait1 gotomain Este programa enciende y apaga cada segundo, el timbre conectado al pin de salida 4. Para descargar el programa, siga los pasos que hemos explicado en varias oportunidades a lo largo de este texto, empleando cualquiera de los circuitos (entrenador para PICAXE-08, mascota o la alarma que estamos describiendo y cuyo circuito daremos más adelante). Si el timbre no funciona verifique que: 1) el diodo esté conectado en el sentido correcto 2) se estén utilizando las resistencias correctas 3) el transistor esté conectado en el sentido correcto 4) el cable rojo del timbre esté conectado en el sentido correcto 5) se esté utilizando el número de pin de salida correcto en el programa 6) todas las uniones estén bien soldadas Entre los dispositivos de salida que se pueden conectar mediante un transistor están los timbres, motores, solenoides, sirenas y luces estroboscópicas. Sin embargo, algunos dispositivos puede que requieran transistores de alta potencia. En estos casos se puede utilizar el transistor Darlington BCX38B en vez del transistor estándar BC548B. Según podemos observar en la figura 140, el proyecto de alarma utiliza un microcontrolador PICAXE-08, un LED y un zumbador como dispositivos de retroalimentación, y un dispositivo de salida adicional elegido por el usuario (sirena o luz estroboscópica). Este proyecto también puede reaccionar a señales de sensores digitales y/o analógicos (por ejemplo a fotorresistencias). Del circuito de la alarma debemos hacer las siguientes observaciones: Salida de la pata 7: el pin0 está conectado al LED. Salida de la pata 5: el pin2 está conectado al zumbador. Salida de la pata 3: el pin4 controla a los dispositivos de salida. Entrada de la pata 6: el pin1 está conectado a la fotorresistencia. Entrada de la pata 4: el pin3 está conectado al interruptor de botón de presión. ¡recuerdenoconfundirelnúmerodepatadelchipconelnúmerodepindesalida/entrada! La lista de materiales para la construcción de la alarma es la siguiente: R1 y R2: resistencias de 10kΩ (marrón negro naranja dorado) R3: resistencia de 22kΩ (rojo rojo naranja dorado) R4 : resistencia de 330Ω (naranja naranja marrón dorado) R5 y R6: resistencia de 1kΩ (marrón negro rojo dorado) LED1 : LEDs rojos de 5 mm TR1: transistor BC548B D1: diodo 1N4001 Todo SobrE mICroCoNTroLAdorES PICAXE 75 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC C1: Electrolítico de 100uF IC1: conector de 8 pines para circuito integrado PX: microcontrolador PICAXE-08 CT1: conector de descarga PICAXE de 3.5 mm BT1: conector de batería BT1: caja de baterías de 4.5V (3 x AA) PCB: tablero o placa de circuito impreso La empresa Revolution Education ofrece la placa de circuito impreso, fabricada especialmente con una película resistente a la soldadura, para hacer el proceso de soldadura más sencillo. Esta película es la cubierta verde que cubre las pistas de manera que la soldadura no se pegue a las mismas. Para una construcción correcta, el PCB se debe ensamblar y soldar muy cuidadosamente. En la figura 141 se reproduce el diseño de la placa de circuito impreso. Una vez armado el circuito realice las siguientes verificaciones: Figura 141 Paso1–Verifiquelasunionessoldadas. Verifique que todas las uniones estén conectadas tanto al terminal como al cable, y que el cable esté sujeto firmemente. También verifique que la soldadura no haga accidentalmente puentes entre terminales adyacentes. Esto es mucho más probable en el LED y en el zumbador. En el conector estéreo, los terminales cuadrados a cada lado pueden unirse sin ninguna consecuencia, ya que de todas formas están unidos por una pista en el tablero. Sin embargo, éstos no deben unirse al agujero redondo central. Paso2–Verifiqueloscomponentes. 1) Verifique que el cable negro de la batería esté en el agujero marcado 0V y que el cable rojo esté en el agujero marcado V+. 2) Verifique que el chip PICAXE-08 esté insertado correctamente en el conector, con la muesca (que muestra el pin1) apuntando hacia el conector estéreo. 3) Verifique que el lado plano del LED esté conectado al agujero correcto del PCB. 4) Asegúrese de no haber olvidado unir, mediante un alambre, los agujeros marcados PX en el extremo inferior izquierdo del tablero. 5) Asegúrese de pegar el lado de bronce del zumbador al tablero con cinta adhesiva de doble contacto. 6) Verifique que el conector esté soldado correctamente, incluyendo el ter- 76 Todo SobrE mICroCoNTroLAdorES PICAXE Figura142 PICAXE: L A N uEvA F ormA dE minal cuadrado central, el cual a menudo, es olvidado por equivocación. P rogrAmAr uN PIC Figura143 Paso3–Conectelabatería. Verifique que las 3 pilas AA estén colocadas correctamente dentro de la caja de baterías. Conecte la caja de baterías al cable de baterías y ponga su dedo sobre el microcontrolador PICAXE. Si comienza a calentarse desconecte la batería inmediatamente, ya que debe haber algún problema (lo más seguro es que el chip o los cables de la batería estén conectados en sentido inverso). Paso4–descargueun programaparaprobarelLEd0 Conecte el cable a su computadora y al conector PICAXE en el PCB. Vea que el conector del cable quede completamente dentro del conector del PCB. Asegúrese que el software esté en el modo PICAXE-08 y que haya elegido el puerto serie correcto. Escriba y descargue el siguiente programa (figura 142): Figura 144 main: high0 wait1 low0 wait1 gotomain El LED debe titilar a medida que se descarga el programa. Al terminar la descarga, el LED deberá encenderse y apagarse cada segundo. Si el LED no hace esto verifique que esté conectado correctamente y que las resistencias de 330Ω estén en la posición correcta en el PCB. Si el programa no se descarga verifique que la resistencia de 22kΩ, la de 10kΩ y el conector IC estén soldados correctamente. Utilice un voltímetro para verificar si hay 4.5V entre las patas superiores (1 y 8) del microcontrolador. Verifique que el cable esté firmemente conectado al conector y que dentro del software se haya elegido el puerto serie correcto. Figura 145 Paso5–Pruebelasalida Conecte un dispositivo de salida (por ejemplo un timbre) a los cables de salida y luego escriba y descargue el siguiente programa (figura 143): main: high4 Todo SobrE mICroCoNTroLAdorES PICAXE 77 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN wait1 low4 wait1 gotomain PIC Figura146 El timbre deberá sonar cada segundo. Si no lo hace, verifique que los cables del transistor, del diodo y del timbre estén conectados en la dirección correcta. Paso6–Pruebeelzumbador Escriba y descargue el siguiente programa como muestra la figura 144. main: sound2,(65,100) sound2,(78,100) sound2,(88,100) sound2,(119,100) gotomain El zumbador debe emitir 4 sonidos diferentes. Si no hace esto asegúrese que los alambres estén soldados correctamente, que el lado de bronce esté firmemente pegado al PCB con una cinta adhesiva de doble contacto (no trabajará si está flojo) y que los terminales sobre las letras PX estén debidamente unidos mediante un alambre soldado. Paso7-PruebeelInterruptor Conecte un interruptor a la entrada digital. Escriba y descargue el siguiente programa (observe la figura 145): main: ifinput3isonthenflash gotomain 'hacerunaetiquetallamada“main” 'saltaaflashsilaentradaestáencendida 'sinoregresarainicio high0 wait2 low0 gotomain 'hacerunaetiquetallamada“flash” 'encendersalida0 'esperar2segundos 'apagarsalida0 'regresaralinicio flash: El LED de la salida 0 deberá encenderse cada vez que se presione el interruptor. Si no lo hace, verifique que el interruptor y que las resistencias de 10kΩ estén soldadas correctamente. 78 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC Paso8–Pruebela Fotorresistencia Conecte una fotorresistencia a la entrada analógica. Escriba y descargue el siguiente programa (figura 146): main: readadc1,b1 ifb1>100thendo4 ifb1>50thendo0 low0 low4 gotomain do4: high4 low0 gotomain do0: high0 low4 gotomain Ambos LEDs deberán encenderse en momentos distintos cuando usted cubre y descubre la fotorresistencia con su mano (de manera que incidan sobre la fotorresistencia distintos niveles de luz). Si esto no ocurre, verifique que la fotorresistencia y la resistencia de 1kΩ estén soldadas correctamente. ¡Si ha ejecutado todas estas pruebas correctamente lo felicitamos ya que ha construido y ensamblado correctamente su alarma! ¡Ahora es el momento de desarrollar y probar sus propios programas para operar su sistema de alarma! ideasdeProgramación Ahora que ha ensamblado y probado su alarma, es el momento de desarrollar su propio programa. Este puede hacer que la alarma reaccione de diferentes maneras a los sensores analógicos y digitales. Veremos ahora dos ejemplos de programas. Estos están diseñados para darle un punto de partida para la creación de su programa. Usted puede modificarlos o comenzar a hacer un programa completamente nuevo si así lo prefiere. Programa1 Este programa de uso general contiene un bucle principal el cual enciende y apaga el LED, y también verifica el estado del sensor analógico (fotorresistencia) y de la entrada digital (interruptor). Cuando se presiona el interruptor suena una alarma por dos segundos. Si la fotorresistencia se cubre, el zumbador emitirá un “pip” de advertencia hasta que el nivel de luz vuelva a subir. Todo SobrE mICroCoNTroLAdorES PICAXE 79 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN ` Programa 1 ` ***** bucle principal ***** ` enciende y apaga el LED ` y verifica el estado de los sensores main: ` encender LED y leer el valor de luz high0 readadc1,b1 ` emitir un sonido si el valor analógico es bajo ifb1<80thenbeep ` si el interruptor es presionado ir a alarm ifpin3=1thenalarm ` hacer una pausa pause500 ` apagar LED y verificar nuevamente el estado ` de los sensores low0 readadc1,b1 ` emitir un sonido si el valor analógico es bajo ifb1<80thenbeep ` si el interruptor es presionado ir a alarm ifpin3=1thenalarm ` hacer una pausa pause500 gotomain ` ***** emitir sonido ***** beep: sound2,(120,50,80,50,120,50) pause200 gotomain ` ***** encender alarma ***** alarm: high4 pause2000 low4 gotomain 80 Todo SobrE mICroCoNTroLAdorES PICAXE PIC PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC Programa2 Este programa está diseñado como si fuera un sistema de alarma contra incendios. En el mismo, la alarma se activa una vez que se detecta humo sobre el sensor de luz (cuando el sensor de luz indica un valor de luz menor de lo normal). Una vez que la alarma se ha activado, la misma se mantiene encendida y sólo es posible apagarla desconectando la alimentación del sistema. La entrada digital se utiliza como dispositivo anti-vandalismo. Mientras la caja de la alarma esté cerrada, el interruptor se mantendrá encendido (ésta es la condición normal). Si se abre la caja, el interruptor se abrirá y activará la alarma del zumbador hasta que la caja vuelva a cerrarse. ` Programa 2 ` ***** bucle principal ***** ` verificar estado de los sensores main: ` LED apagado low0 ` leer valor de luz readadc1,b1 ` activar la alarma si el valor analógico es bajo ifb1<80thenalarm ` si el interruptor se apaga ir a tamper ifpin3=0thentamper gotomain ` ***** activar alarma anti-vandalismo hasta ` que el interruptor vuelva a cerrarse***** tamper: high0 sound2,(120,100) ifpin3=1thenmain gototamper ` ***** alarma encendida eternamente ***** alarm: high4 gotoalarm Todo SobrE mICroCoNTroLAdorES PICAXE 81 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC Estos son simplemente dos de los muchos ejemplos que pueden utilizarse para la programación de su alarma. Nota: Aclaramos que lo dado hasta aquí fue explicado en el tomo de Colección Nº 7 del Club Saber Electrónica con mayores detalles y que si a Ud. le interesa el tema, puede bajarlo de nuestra web con la clave “alarma”. También le comentamos que hay en existencia un kit (AXE102) con todos los componentes de esta alarma multiuso, que en Argentina tiene un costo de $44. Si ha leído atentamente estas páginas, habrá podido comprobar que trabajar con PICAXE es muy fácil y conveniente. Un PICAXE es un PIC normal al que se le ha grabado un programita interno (firmware) para que se lo pueda programar utilizando una aplicación gratuita llamada Editor de Programas (que puede bajar de nuestra web) por medio de diagramas de flujo o en BASIC y lo que es mejor aún: “no hace falta quitar el integrado del circuito para su programación”, es decir, no precisa un cargador adicional. Centraldealarmainteligente Describimos el funcionamiento de una alarma de 3 zonas de entrada y dos zonas de activación microcontrolada en la que las variables (tiempos de demora y activación, zonas instantáneas o demoradas, salidas continuas o temporizadas, etc.) pueden ser reprogramados a voluntad del técnico y/o del usuario. Una de las zonas es de disparo demorado para que le dé la oportunidad al usuaFigura147 82 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC rio de desconectar la alarFigura148 ma cuando está ingresando a la propiedad, las otras dos zonas son de disparo instantáneo, lo que implica que una vez detectada una interrupción, las salidas cambian de estado de inmediato. En cuanto a las PICAXE salidas, una de ellas es de activación continua de modo que una vez disparada la alarma, sólo se desactivará esa salida si se desconecta la central y la otra salida es temporizada, es decir, una sirena sonará durante 3 minutos y luego se apagará, quedando el sistema en “alerta” por si se produce una nueva interrupción en alguna de esas zonas, en cuyo caso la salida volverá a activarse. El sistema podrá detectar posibles fallas en algún sensor de alguna de las tres zonas y si esto ocurre, la deshabilitará (a la zona) para que no haya disparos erráticos del sistema, quedando las otras dos zonas en estado normal para detectar la presencia de intrusos. En la figura 147 podemos apreciar el diagrama en bloques del sistema de alarma inteligente. Note que se compone de una central de alarma microcontrolada, una fuente de alimentación, un teclado de activación, sensores de actividad (magnéticos, de movimiento, interruptores, ultrasonido, de humo, etc.) y sistemas de alerta (sirena, discador telefónico, etc.). El “corazón” de este sistema es la central que posee un microcontrolador PICAXE-08. A los fines prácticos, en la figura 148 se reproduce el circuito básico de funcionamiento de este circuito integrado. Para este integrado se recomienda una tensión de alimentación de 5V y dos resistores para establecer la tensión necesarias en los datos a ser ingresados al PICAXE. Posee 5 patas de entrada/salida de datos denominados PIN 0 a PIN 4. El PIN 0 (pata 7) solamente puede ser salida de datos, el PIN 3 (pata 4) sólo puede ser entrada y el resto pueden ser seteados como entrada o salida de datos. Para programar el PICAXE se conecta un plug estéreo pequeño en el conector denominado PROG y por medio de un cable se conecta al puerto serial de la computadora (vea en la figura 149 el armado del cable). El programa, ya sea en diagrama de flujo o en BASIC puede construirse en el utilitario “Editor de Programas” que puede bajar sin cargo de nuestra web con la clave PICAXE. Figura149 Todo SobrE mICroCoNTroLAdorES PICAXE 83 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC El circuito de la central es muy sencillo, en la tabla 15 encontrará la coPata Nº PIN Nº Función rrespondencia entre las patas del PICAXE y las 3 E/S4 Entrada1(demorada) entradas y salidas de la 4 E3 Entrada2(instantánea) placa. En los diagramas 5 E/S2 Entrada3(instantánea) que explicaremos, si se 6 E/S1 Salida2(temporizada) detecta un cambio de es7 S0 Salida1(continua) tado en la entrada demorada, el operador tiene 10 segundos para desactivar la alarma antes de que se accione el sistema sonoro. No importa que se vuelva a reestablecer el circuito luego de haberse detectado una interrupción, ya que igualmente se activarán luego de 10 segundos de detectada la primera interrupción. Cuando se aplica alimentación a la central, hay un período de rearme de 10 segundos durante los cuales las entradas están inhibidas para dar tiempo al usuario de abandonar la propiedad protegida luego de haber puesto la alarma. Durante estos 10 segundos no serán reconocidas ningún cambio de estados en los sensores de las tres zonas. Pasados estos 10 segundos, si se detecta una interrupción en las entradas instantáneas, de inmediato se accionarán las salidas. En cuanto a las salidas, proponemos dos posibilidades. La salida 1 es de activación continua, lo que significa que una vez disparada la alarma, esta salida sólo se deshabilitará si se apaga la central (si se la desconecta) mientras que la salida 2 es temporizada y esto se debe a que muchas veces el usuario pretende que exista un sistema sonoro que suene durante un tiempo y luego se apague, de modo de dar la alerta a un sereno o a la policía pero que no altere la “paz” a los vecinos durante mucho tiempo. Esta salida puede estar activa en tiempos de algunos segundos hasta varios minutos y hasta horas. En la figura 150 damos el circuito eléctrico de la central de alarma y en la figura 151 se reproduce una sugerencia para la placa de circuito impreso. Note que las entradas se han dispuesto de forma tal, que hace falta un corto entre ambos cables para que la zona se active. De esta manera, cualquier corte o interrupción hará disparar al sistema. Por cada zona puede conectar más de un sensor siempre que los mismos estén en serie Tabla 15: Definición de entradas y salidas del PICAXE Figura150 84 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA y que los mismos representen un corto (un cable) en estado de reposo. En cuanto a las salidas, note que se han colocado transistores BC548, los que se saturarán cada vez que una salida se active. En esta condición se podrán alimentar dispositivos con un consumo de hasta 150mA. Para el disparo de sirenas o cualquier otro dispositivo, recomendamos la colocación de relés en las salidas, los cuales se conectan directamente (tenga presente que puede colocar cualquiera de 6V de alimentación con corriente de activación inferior a 150mA, cualquier relé de los usados en circuitos impresos sirve). dE P rogrAmAr uN PIC Figura151 ProgramacióndelaCentral Usted puede generar el programa que quiera, teniendo en cuenta las indicaciones que hemos dado a través de la tabla 1. Nosotros preparamos dos versiones, pero nada impide que Ud. realice un programa a su medida. La primera versión funciona como hemos explicado hasta recién sin ninguna restricción, por lo tanto “no es inteligente”. Se trata de un sistema común, con 2 zonas de disparo instantáneo, una zona de disparo demorado, una salida continua y otra temporizada. En la figura 152 se puede ver el diagrama de flujo construido en el Editor de Programas y en la figura 153 el correspondiente programa en BASIC. El archivo para poder abrirlo en el Editor de Programas se llama “sencilla.cad” y lo Figura152 Todo SobrE mICroCoNTroLAdorES PICAXE 85 PICAXE: L A N uEvA F ormA dE P rogrAmAr PIC uN Figura153 puede bajar de nuestra web: www.webelectronica.com.ar, haciendo click en el ícono password e ingresando la clave “alarma”. En dicho sitio también encontrará un link para bajar el Editor de Programación y un tutorial para aprender a usar el programa. Para programar la central, primero debe armar la placa, revisar que está todo correcto, colocar el cable entre la placa y la computadora, abrir el editor de programas, abrir el archivo sencilla.cad, convertir el programa a su correspondiente BASIC y luego descargarlo sobre la placa. Eso es todo... ahora tendrá una central lista para montar su sistema. Figura154 86 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC Para este programa, hemos programado los siguiente datos: Tiempo de rearme: 10 segundos Tiempo de demora de zona: 10 segundos Tiempo de salida temporizada: 4.6 segundos. En la figura 152 indicamos cuáles son los tiempos que debe cambiar en cada caso, antes de convertir el programa a BASIC. Tenga en cuenta que el valor de la salida temporizada se dá con la instrucción sleep, lo que significa que cada unidad programada corresponde a 2,3 segundos. Si Ud. quiere que esa salida esté activa durante 3 minutos, precisará demorar 180 segundos, o sea, colocamos 80 en el casillero de sleep. elProgramainteligente Muchas veces, por desperfectos de un sensor, o porque la suciedad interrumpe un haz en un sensor externo, o por cualquier otro motivo, se dispara una alarma, sin que ello signifique que hay intrusos... simplemente es un desperfecto. La posibilidad de contar con tres zonas de entrada permite que, aunque desconectemos una de ellas, exista protección por medio de las dos zonas restantes. En la figura 154 mostramos el diagrama de flujo construido en el Editor de Programas para un programa que “va contando” la cantidad de veces que se dispara el sistema desde una zona sin que se haya desconectado la central, de esta manera, si un sensor se daña, la alarma actuará normalmente, pero al efectuar tres veces el ciclo de disparo desde la misma zona, el sistema “entenderá” que hay una falla, deshabilitará la zona, pero la central continuará operando normalmente, protegida por los sensores de las otras dos zonas. Es por este motivo que el instalador deberá colocar sensores en lugares estratégicos, conectados a diferentes zonas, de manera que si un ladrón reconoce esta forma de operar el sistema, corta un cable externo dándose a la fuga “hasta ver” qué sucede y si nadie acude al aviso vuelve, será detectado por otro sensor (conectado a otra zona) y la alarma volverá a dar una señal de aviso. De esta manera, si el dueño de casa sale de vacaciones y la alarma se dispara por una falla, los vecinos no deberán soportar el sonido del sistema de aviso durante horas... sólo 3 veces el tiempo programado para la salida temporizada. En la figura 154 se reproduce este programa en diagrama de flujo y en la tabla 16 se lista el programa en BASIC. El archivo para poder abrir esta versión que llamamos “inteligente” (porque en base a datos previos realiza diferentes cosas) en el Editor de Programa se llama “media.cad” y lo puede bajar de nuestra web: www.webelectronica.com.ar, haciendo click en el ícono password e ingresando la clave “alarma”. En dicho sitio también encontrará un link para bajar el Editor de Programación y un tutorial para aprender a usar el programa. También hay otras versiones para cargar al PICAXE-08 de modo que realice otras funciones e incluso, una opción que llamamos “complicada.cad” que verifica lo que está sucediendo en cada zona a cada instante y actúa en consecuencia. Este programa es demasiado grande y no entra en un PICAXE-08, por lo cual habría que utilizar un PICAXE18-A, en cuyo caso habría que adaptar el circuito impreso. Cabe aclarar que hemos descripto la central de alarma, para completar el sistema hacen falta los sensores (magnéticos, de movimiento, ultrasónicos, barreras infrarrojas, etc.), la fuente con su batería, el teclado y el sistema de aviso. En otras ediciones hemos dado circuitos de algunos de estos dispositivos y en esta nota describiremos otros. Todo SobrE mICroCoNTroLAdorES PICAXE 87 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN Tabla 16: Programa para el sistema Inteligente 'BASIC converted from flowchart: 'C:\DOCUMENTS AND SETTINGS\HORACIO\ESCRITORIO\ALARMA\MEDIA.CAD 'Converted on 7/23/2005 at 18:08:53 main: low0 low1 letb0=0 letb1=0 letb2=0 wait10 label_D: label_1B: ; fija el tiempo de rearme ifpin2=1thenlabel_76 ifpin3=1thenlabel_7D ifpin4=1thenlabel_3C gotolabel_1B label_3C: wait10 label_43: high0 high1 sleep3 label_76: gotolabel_1B letb0=b0+1 gotolabel_43 label_7D: letb1=b1+1 gotolabel_43 label_A9: ifpin3=1thenlabel_B4 ifpin4=1thenlabel_BC gotolabel_A9 label_B4: letb1=b1+1 gotolabel_43 label_BC: wait10 ; fija el tiempo de demora ; de la “Entrada 1” gotolabel_43 label_C7: ifpin2=1thenlabel_E6 ifpin4=1thenlabel_DE gotolabel_C7 label_DE: wait10 ; fija el tiempo de demora ; de la “Entrada 1” ; fija el tiempo de la salida ; temporizada en múltiplos ; de 2,3 segundos low1 ifb0=3thenlabel_A9 ifb1=3thenlabel_C7 PIC ; fija el tiempo de demora ; de la “Entrada 1” gotolabel_43 label_E6: letb0=b0+1 gotolabel_43 FuenteparasistemadealarmaconControlautomáticodeBaterías Un sistema de alarma se tiene que poder alimentar a través de una fuente de alimentación conectada a la red eléctrica o desde una batería, para que el conjunto siga operando por más que exista un corte de energía. Para el sistema de alarma inteligente que estamos describiendo, es preciso contar con una tensión de 5V (de 4,5V a 6V) para la central y 12V para los dispositivos externos. Figura155 88 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC En la figura155 se puede apreciar el circuito correspondiente a la fuente propuesta. Este diagrama precisa un transformador con primario de acuerdo a la red local y secundario de 15V + 15V x 3A, de modo que sea posible alimentar elementos externos relativamente potentes. El circuito es muy sencillo y emplea un regulador de tensión de tres terminales para alimentar a la central de alarma. Note que se tiene un conector que debe ser conectado al cargador automático de baterías y otro conector a donde deFigura156 ben colocarse los bornes de la batería. Debido a la acción de los diodos D5 y D6, como la tensión de la fuente es superior a la de la batería (aproximadamente 15V), mientras haya energía eléctrica la batería estará en estado de espera y ésta proveerá la alimentación cuando se “corte” la corriente. El circuito es muy sencillo y no admite consideraciones especiales. La tensión de 12V puede proveer una corriente de hasta 2A, mientras que la tensión de 5V puede proveer una corriente máxima de 1A. El diseño para la placa de circuito impreso sugerida se muestra en la figura 156. El cargador incluye un doblador de tensión, basado en el conocido circuito integrado 555. Este circuito genera una señal oscilante de forma de onda cuadrada que hace que la salida en la pata 3 pase alternativamente, entre los estados de masa y 12V. Figura157 Todo SobrE mICroCoNTroLAdorES PICAXE 89 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC En el circuito de la figura 157, cuando la pata 3 del 555 está a nivel lógico bajo (conectada a masa), C3 se carga a través de D2 y de D3 hasta que la tensión en sus bornes sea de una magnitud próxima a 12V. Si la pata 3 está a nivel lógico alto (conectada a la tensión de alimentación), la tensión en el punto de unión de C3/D3 pasará a un valor dos veces más grande, puesto que el polo negativo de C3 está ya a 12V y la tensión en los bornes de este capacitor cargado es también de 12V. Note que el diodo D3 está polarizado en forma inversa y se bloquea, mientras estará en estado de conducción, en estas condiciones, C4 debería cargarse con una tensión superior a 12V y llegar en teoría a los 24V. En la práctica, la carga apenas sobrepasa algunos volt la tensión de fuente, que es más de 12V, lo que resulta suficiente para nuestros propósitos. A la salida del doblador de tensión nos encontramos con un regulador hecho a partir de un transistor NPN con un zener como referencia. Podría colocar un BC548 en lugar del TIP31, dado que la corriente de carga será pequeña, sin embargo, por seguridad, aconsejamos el empleo del transistor de potencia. Se debe ajustar la tensión de salida por medio de VR1 para que sea levemente superior a los 14V, aunque si viera que en carga no hay corriente, deberá aumentar este valor. Lo ideal sería que con una batería descargada y conectando un amperímetro en serie, la corriente de carga sea del orden de los 10mA a 20mA. Cabe aclarar que la corriente que deberá entregar la fuente es superior a este valor (llega a unos 25mA), a consecuencia de que el integrado consume corriente. Cabe aclarar que las baterías empleadas en sistemas de seguridad poseen una capacidad del orden de los 8 ampere/hora, lo cual supone que si la cargamos a razón de 10mA/hora tardaría unos 40 días en cargarse totalmente (si estuviera descargada por completo). Sin embargo, esto no ocurre dado que el acumulador se encuentra en condiciones de carga las 24 horas del día. Para baterías de capacidad igual a 500mA/hora, el tiempo de carga sería de aproximadamente igual a un día. sirenaparaalarmaconHabilitaciónLógica El interesante circuito de sirena que presentamos se caracteriza por la elevada potencia que puede entregar un parlante por el uso de un transistor de efecto de campo de potencia (Power FET). Además de esto, esta sirena tiene ajustes de tono, modulación e intermitencia independientes, lo que posibilita al usuario ajustar el circuito para un mejor sonido. Finalmente, esta sirena es habilitada directamente por una salida lógica CMOS sin la necesidad de relé, y en la condición de espera su consumo es extremadamente bajo. Eso la vuelve ideal para circuitos de alarma alimentados por batería o bien para uso automotor. La sencillez del proyecto permite también su montaje en una caja de dimensiones reducidas. Las características son las siguientes: • Tensión de alimentación: 6Vc.c. a 12Vc.c. • Corriente de reposo: inferior a 1mA. • Corriente en accionamiento pleno: 2A a 4A. • Potencia de audio: 10 a 20W. 90 Todo SobrE mICroCoNTroLAdorES PICAXE PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC En términos de oscilador de bajo consumo y excelente desempeño, pocos circuitos integrados pueden ganarle al 4093. En verdad, sus cuatro puertas NAND independientes pueden resultar en hasta 4 osciladores diferentes, y con la posibilidad de comando externo. En la figura 158 tenemos el diagrama completo de la sirena. En este circuito usamos dos puertas como osciladores y otras dos más como buffers mezcladores y amplificadores. De esta forma, la primera puerta (CI1a) es el oscilador de modulación, que determina la cadencia de los toques o sus variaciones. En este circuiFigura159 to, VR1 determina la frecuencia juntamente con C1, mientras que VR2 determina la profundidad de la modulación. En verdad, podemos hasta modificar el efecto, "suavizando" la modulación con la conexión de un capacitor de 1µF a 22µF entre la juntura de VR2 y R5 y el negativo (0V) de la alimentación. El oscilador de audio está formado por CI1b y tiene su frecuencia determinada por C2 y ajustada en VR3. Obtenemos en la salida de este oscilador un tono de audio modulado que es llevado a las otras dos puertas, que funcionan como un buffer (aislador) y amplificador digital. Las señales entregadas a este buffer pueden ser controladas externamente por el pin 5 del CI1b. Si este pin estuviera en el nivel bajo, lo que ocurre sin señal de habilitación (H), ya que R4 lo mantiene a tierra, el oscilador CI1b no funciona. Si este pin fuera al nivel alto, a partir de una salida CMOS por ejemplo, Figura158 Todo SobrE mICroCoNTroLAdorES PICAXE 91 PICAXE: L A N uEvA F ormA dE P rogrAmAr uN PIC LISTA DE MATERIALES Central de Alarma R1:22k R2:10k R3,R4,R5: 1k R6,R7,R8yR9:330Ω IC1:PICAXE-08 D1yD2:diodosled Q1yQ2:BC548B D3yD4:1N4148 Conectorminijackstereo Conectoresparalasentradasy salidas. Fuentede4a6V. Fuente para Alarma ICReg1:7805 D1,D2,D4,D5yD6:diodos 1N5402 D3:diodoZener15Vx1W C1:470pF C2:100µF R1:470Ω R2: 1k Q1:TIP31C Transformadorconprimario segúnredlocalysecundariode 12+12Vpor3A. Teclado Microcontrolado Q1:TIP31C Q2:BC547 Cristaldecuarzode10MHz 1PIC16F876 2capacitoresde22pF 4resistoresde1k 5resistoresde10k 1resistorde470Ω 1resistorde680Ω 1presetde10k 1móduloLCD16X2 1tecladoHEXde4filasy4 columnas 1diodo1N4007 1relé Sirena para Alarma IC1:4093B Q1:IRF640 R1:10k R2,R3,R4,R5,R6yR7:1k VR1,VR2: 1MΩ VR3:100kΩ C1yC2:1µFx25V C3:100µFx25V Bateríade12V Varios: cables,estaño,etc. el oscilador entra en acción, siendo modulado por CI1a. Las señales amplificadas digitalmente son llevadas a un transistor de efecto de campo de potencia del tipo IRF640 o equivalente. En realidad puede emplearse cualquier FET de más de 1A de fuente, es por ello que en la placa de circuito impreso identificamos dónde debe conectarse cada pata del transistor. Le recomiendo que consulte en la casa de electrónica de su localidad qué transistor FET de potencia tiene, pídale que le indique la disposición de los terminales y conéctelo a la placa de circuito impreso (figura 159) por medio de cables y dótelo de un disipador de calor. La principal característica de este tipo de transistor es presentar una resistencia extremadamente baja entre el drenaje (d) y la fuente (s) cuando está saturado. Esto significa un excelente rendimiento en la excitación de parlantes y otras cargas en circuitos de baja tensión. De hecho, estos transistores pueden conducir corrientes muy elevadas (del orden de varios amperes) sin problemas, lo que significa una potencia de decenas de watt en un parlante común. La disposición de los componentes en una placa de circuito impreso se muestra en la figura 159. El transistor de efecto de campo de potencia necesita un buen disipador de calor, y el parlante debe tener una potencia superior a 10W para soportar la intensidad de la señal generada. Para obtener mayor rendimiento se debe usar una pequeña caja acústica. Para probar la sirena conecte la unidad a una batería o fuente de por lo menos 3A. Por un instante, conecte el punto H al positivo de la alimentación. Esto habilitará el circuito y permitirá el ajuste en los tres trimpots. Para una versión con un poco menos de rendimiento, en caso de dificultad de obtención del FET de potencia, se puede usar un Darlington NPN de por lo menos 4A, como por ejemplo el TIP 120 o TIP 121. En este caso, el transistor de potencia también debe ser dotado de un buen disipador de calor. De esta manera, damos por finalizado este tema, esperamos que cada circuito le resulte útil y que pueda montar un sistema de alarma a su medida. ************ 92 Todo SobrE mICroCoNTroLAdorES PICAXE 3ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1 4ª forros.qxd:Maquetación 1 15/01/14 12:45 Página 1
Documentos relacionados
plataforma robot subacuática propulsada por aletas pectorales
POLÍMERO: es un compuesto químico, cuyas moléculas están formadas por la unión de otras moléculas más pequeñas llamadas monómeros, las cuales se enlazan entre sí como si fueran los eslabones de un...
Leia mais