Vous êtes sur la page 1sur 84

Portada club 79M

9/5/11

12:58 PM

Pgina 1

2 de forros.qxd

9/5/11

12:53 PM

Pgina 2Fo1

sumario club 79 picaxe

9/6/11

10:02 AM

Pgina 1

Microcontroladores

Programacin Fcil de

Programacin Fcil de Microcontroladores PICAXE

CAPTULO 1: QU SON Y CMO SE USAN LOS PICAXE . . . .3

PICAXE

SUMARIO

Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Ventajas del Sistema PICAXE . . . . . . . . . . . . . . . . .6 Comenzando a Trabajar con PICAXE . . . . . . . . . .8 El Editor de Programas . . . . . . . . . . . . . . . . . . . . .9 Los Distintos Tipos de PICAXE . . . . . . . . . . . . . . . .12 Kits PICAXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 Tarjeta Entrenadora PICAXE-08 . . . . . . . . . . . . . .14 Tarjeta Entrenadora PICAXE-18 . . . . . . . . . . . . . .16 PLC PICAXE-18 (ICA-017) . . . . . . . . . . . . . . . . . . .16 Control de Display de LCD para PICAXE-18 . . . .16

CAPTULO 2 TRABAJANDO CON MICROCONTROLADORES PICAXE . . . . . . . . . . . . . . . . . . . . . . . . .19

Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . .19 El Sistema PICAXE . . . . . . . . . . . . . . . . . . . . . . .20 Comenzando las Prcticas . . . . . . . . . . . . . . . . .22 Usando COMENTARIOS . . . . . . . . . . . . . . . . . . . .22 Uso de SYMBOL . . . . . . . . . . . . . . . . . . . . . . . . . .23 Uso de Constantes . . . . . . . . . . . . . . . . . . . . . . .23 Designacin de Variables . . . . . . . . . . . . . . . . . .24 Los Comandos de Programacin BASIC en PICAXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25 GOTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25 GOSUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26 FOR ... NEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . .27 HIGH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 LOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 INPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 OUTPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 END . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 IFTHEN IFANDTHEN IFORTHEN . . . . . . .31 PAUSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 WAIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 RETURN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 INFRAIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 READADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 READADC10 . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36

EEPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 I2CSLAVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39 READI2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41 READ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42 WRITE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43 WRITEI2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43 READOWSN . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44 DEBUG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45 SERTXD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45 PULSIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46 PULSOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46 SERIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47 SEROUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48 SETINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48 BRANCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50 BUTTON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51 COUNT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51 SERVO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52 SOUND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53 READTEMP - READTEMP12 . . . . . . . . . . . . . . . . . .54 PWMOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55 SETFREQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55 SLEEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56

Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . .59 Qu es una batera? . . . . . . . . . . . . . . . . . . . . .59 Uso y Prueba de LEDs . . . . . . . . . . . . . . . . . . . . .61 Uso y Prueba de Timbres y Zumbadores . . . . . .63 Prueba y Uso de Sensores Digitales . . . . . . . . . .65 Prueba y Uso de Fotorresistencias . . . . . . . . . . . .67 Utilizando el Comando Symbol . . . . . . . . . . . . .70 Practicando con el PICAXE-18 . . . . . . . . . . . . . .72 Utilizando Bucles ForNext . . . . . . . . . . . . . . . . .73 Controlando la Velocidad de un Motor . . . . . . .74 Uso de Timbres y Zumbadores Electrnicos en el Sistema PICAXE . . . . . . . . . . . . . . . . . . . . .75 Uso de Entradas con Sensores Digitales . . . . . . .77 Uso de Entradas con Sensores Analgicos . . . . .78 Cmo se Leen las Entradas Analgicas . . . . . . .78

CAPTULO 3 APRENDIENDO

PROGRAMAR PICAXE . . . . . .59

Club Saber Electrnica N 79

sumario club 79 picaxe

9/6/11

10:02 AM

Pgina 2

Qu Son y Cmo se Usan los PICAXE

Director Ing. Horacio D. Vallejo

Editorial

Produccin Jos Mara Nieves (Grupo Quark SRL) Seleccin y Coordinacin: Ing. Horacio Daniel Vallejo EDITORIAL QUARK S.R.L. Propietaria de los derechos en castellano de la publicacin mensual SABER ELECTRNICA - San Ricardo 2072 (1273) Capital Federal - Buenos Aires - Argentina - T.E. 4301-8804 Administracin y Negocios Teresa C. Jara (Grupo Quark SRL) Patricia Rivero Rivero (SISA SA de CV) Margarita Rivero Rivero (SISA SA de CV) Staff Liliana Teresa Vallejo Mariela Vallejo Diego Vallejo Fabian Nieves Luis Alberto Castro Regalado (SISA SA de CV) Jos Luis Paredes Flores (SISA SA de CV) Sistemas: Paula Mariana Vidal Red y Computadoras: Ral Romero Video y Animaciones: Fernando Fernndez Legales: Fernando Flores Contadura: Fernando Ducach Tcnica y Desarrollo de Prototipos: Alfredo Armando Flores Atencin al Cliente Alejandro Vallejo ateclien@webelectronica.com.ar Internet: www.webelectronica.com.mx Publicidad: Rafael Morales rafamorales@webelectronica.com.mx Club SE: Grupo Quark SRL luisleguizamon@webelectronica.com.ar Editorial Quark SRL San Ricardo 2072 (1273) - Capital Federal www.webelectronica.com.ar 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 entraan responsabilidad de nuestra parte. Est prohibida la reproduccin total o parcial del material contenido en esta revista, as como la industrializacin y/o comercializacin de los aparatos o ideas que aparecen en los mencionados textos, bajo pena de sanciones legales, salvo mediante autorizacin por escrito de la Editorial. Octubre 2011. Impresin: Talleres Babieca - Mxico

Del Editor al Lector

Si esta es la primera vez que lee sobre este tema, le comentamos que PICAXE es un sistema de microcontroladores que naci como un proyecto educativo y que, rpidamente, se convirti en referente para aprender a disear sistemas microcontrolados mediante programaciones fciles de comprender. Bsicamente son microcontroladores PIC a los que la empresa Education Revolution les programa un firmware para que puedan ser programados en el circuito en que se los va a utilizar (no es preciso un programador) utilizando una aplicacin llamada Programing Editor que permite hacer programas en diagramas de flujo y en lenguaje Basic. En los tomos de coleccin N 7, 16 y 29 de esta obra, Club Saber Electrnica, nos dedicamos a explicar qu es PICAXE, cmo se los programa mediante el uso de diagramas de flujo y dimos varios circuitos prcticos. El objetivo de este tomo es introducirlo al lenguaje BASIC de modo que aprenda a programar utilizando un lenguaje sencillo que posee muy pocas instrucciones, con el que podr darle ms poder a los PICAXE dado que podr ahorrar lneas de comando, haciendo ms efectiva a la memoria EEPROM de estos micros. Para la elaboracin del captulo 2 nos basamos en escritos del Ingeniero Martn Alejandro Torres Fortelli de ElectroEscuela Virtual quien propone ejemplos bsicos para que Ud. aprenda mientras realiza sus propias prcticas de simulacin en el Programing Editor. A su vez, le brindamos la oportunidad de descargar 2 discos compactos completos, uno con un Curso Programado de PICAXE con Test de Evaluacin y Diploma extendido por importantes Instituciones y otro con un Curso en video sobre Programacin de Microcontroladores PICAXE. Esperamos que disfrute de este material. Hasta el mes prximo!

SOBRE LOS CDS Y SU DESCARGA


Ud, podr descargar de nuestra web 2 CDs: Curso Programado de Microcontroladores PICAXE y Ambiente de Programacin de Microcontroladores PICAXE (en video). El primero incluye un curso con asesoramiento a travs de Internet y Diploma de aprobacin. Para realizar la descarga deber ingresar a nuestra web: www.webelectronica.com.mx, tendr que hacer clic en el cono password e ingresar la clave picaxe79. Tenga este texto cerca suyo ya que se le har una pregunta aleatoria sobre el contenido para que pueda iniciar la descarga.

Club Saber Electrnica N 79

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 3

CAPTULO 1
Los microcontroladores PICAXE, mas que ser considerados como una serie de circuitos integrados fciles de programar, constituyen la integracin de todo un sistema en el cual estn involucrados, a parte de los dispositivos electrnicos (los propios microcontroladores PICAXE), el software para programarlos (entorno de programacin Programming Editor y aplicacin Logicator). La ventaja que se tiene al utilizar los microcontroladores del sistema PICAXE es que, aun sin tener conocimientos, se puede aprender de una manera muy fcil, ya que utiliza un lenguaje BASIC muy sencillo, adems de contar tambin con la posibilidad de programarlos con diagramas de flujo. En este captulo explicaremos qu son los PICAXE, cmo podemos realizar fcilmente diseos de sistemas que los contengan, qu tipos de PICAXE podemos encontrar y cmo se usa el entorno de programacin

QU SON Y CMO SE USAN LOS

PICAXE

INTRODUCCIN Un PIC es un microcontrolador que precisa un entorno de desarrollo (el MPLAB) para editar programas, simularlos, convertir el programa en un archivo hexadecimal y realizar la simulacin que verifique que est todo bien. Luego, se precisa un cargador para descargar el programa en la memoria del PIC, y por ltimo se debe quitar el PIC del cargador y colocarlo en el circuito donde va a funcionar. Un PICAXE no precisa nada de todo eso... es un PIC al que se le ha grabado un programa interno (firmware) para que pueda ser cargado en la misma placa donde va a funcionar por medio de un software gratuito y en el que los programas pueden escribirse en BASIC o en diagrama de flujo. Desde que el primer microprocesador vio la luz del mundo (el 4004), y cuya nica y principal operacin era una suma de 1 bit, se comenz con una carrera tecnolgica que lejos de ver el fin, da a da va logrando cosas inimaginables, tal es el caso de los microcontroladores que vendran a ser el ejemplo resumido y en miniatura, de una computadora personal (PC). Un microcontrolador del sistema PICAXE puede ser de 8, 18, 28 o 40 terminales o ms (figura 1), inter-

Club Saber Electrnica N 79

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 4

namente dentro de su encapsulado, posee como equipamiento mnimo un microprocesador, memoria RAM, y distintas versiones de memoria ROM. Los microcontroladores ms avanzados, aparte de lo mencionado anteriormente, tambin llegan a poseer temporizadores ADC, DAC, Comunicacin en paralelo, USAR, etc. Un microcontrolador, desde el punto de vista de operacin, puede considerarse como si fuera una PC, ya FIGURA 1 - UN PICAXE ES UN PIC DE que cuenta con el conjunto bsico de implementos MICROCHIP AL QUE SE LE AGREG UN FIRMWARE que necesita para realizar sus funciones, esto es, PARA FACILITAR SU PROGRAMACIN. microprocesador, disco duro, memoria RAM, etc. Clsicamente, cuando programamos un microcontrolador, de forma implcita 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 configuracin de sus puertos, ya sea como de entrada o de salida, configurar sus dems herramientas como pueden ser los temporizadores, los ACD, etc. Han aparecido en el mercado, sistemas de desarrollo que permiten la programacin del microcontrolador de una manera relativamente fcil, en la cual se puede emular el proceso que nos inteFIGURA 2 - LA EMPRESA EDUCATION resa desarrollar. R EVOLUTION FACILITA HERRAMIENTAS PARA Para la mayora de estos sistemas de desarrollo, una APRENDER A TRABAJAR CON LOS MICROCONTROvez que se tiene terminada la aplicacin, el paso LADORES PICAXE. siguiente es armar el prototipo e insertar el microcontrolador debidamente programado. En la figura 2 se puede observar un kit de desarrollo para trabajar con microcontroladores, en este caso con el sistema PICAXE. Tenga en cuenta que no es preciso que compre programa alguno para empezar a trabajar, dado que lo puede bajar gratis de Internet, adems, Ud. puede armar el cable de conexin a la PC y la placa de circuito impreso del dispositivo que desee. Hace apenas un tiempo, se ha lanzado al mercado el sistema de desarrollo para programar microcontroladores PIC llamado PICAXE, que de por s, quien ha utilizado estos microcontroladores, puede constatar lo sencillo que resulta su programacin, el sistema de desarrollo PICAXE hace las cosas todava ms sencillas para el programador. El sistema de desarrollo PICAXE hace las cosas todava ms sencillas para el programador, ya que cuenta con dos opciones de disear una aplicacin: una por medio de diagramas de flujo y otra por medio de BASIC, y aunque esto no es ninguna novedad, (ya que estas herramientas existan con anterioridad), lo ventajoso del PICAXE radica en el hecho de que se trata de un microcontrolador PIC que, en un segmento de memoria ROM interna le ha sido grabado desde su fabricacin, 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 prcticas sobre las cuales podemos emular las aplicaciones que hemos diseado, pero gracias al firm-

Qu Son y Cmo se Usan los PICAXE

Club Saber Electrnica N 79

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 5

ware que poseen los microcontroladores PICAXE se puede armar la aplicacin completa incluyendo al microcontrolador, y sobre la aplicacin programarlo sin necesidad del sistema de desarrollo, ni del circuito programador de microcontroladores (vea la figura 3). De hecho, el sistema PICAXE hace ms accesible la programacin de microcontroladores a todas aquellas personas que tan slo cumplan con el nico e indispensable requisito que es el de querer aprender. Vea en la figura 4 una pantalla de la aplicacin que nos permitir realizar el programa que vamos a carFIGURA 3 - UNA DE LAS VENTAJAS DEL PICAXE gar adentro del PIC. ES QUE LA PLACA EN QUE SE USA PUEDE TENER Aqu no vamos a mencionar las ventajas y desventaUN CONECTOR PARA PODER PROGRAMARLO SIN jas del sistema PICAXE con respecto a otros, lo nico SACARLO DE SU ZCALO. que podemos agregar es que se trata de otra manera de programar microcontroladores PIC, empleando diagramas de flujo y/o lenguaje BASIC (figura 5), con los cuales, ya sea de manera consciente o totalmente implcita, recurrimos a ellos para elaborar un programa. Debemos aclarar que para programar en diagrama de flujo, la empresa Education Revolution desarroll la aplicacin Logicator que tambin sirve para trabajar con PICs y de la cual hablaremos ms adeFIGURA 4 - LA APLICACIN PROGRAMING EDITOR PERMITE CONSTRUIR PROGRAMAS PARA PICAXE EN DIAGRAMAS DE FLUJO. HOY, LA EMPRESA lante. La empresa menciona EDUCATION REVOLUTION OFRECE EL PROGRAMA LOGICATOR QUE TAMque en el futuro ya no actualiBIN SIRVE PARA TRABAJAR CON LOS PIC DE MICROCHIP. PUEDE DESzar el editor por diagrama de CARGAR GRATUITAMENTE UN MANUAL COMPLETO SOBRE EL MANEJO DE LOGICATOR CON LA CLAVE: PICAXELOGIC. flujos del Programing Editor por lo cual el usuario deber aprender a manejar el Logicator. Aqu el problema es que slo ser gratuita una versin limitada y para adquirir la versin full deber comprar la licencia. A lo largo de estas pginas, iremos aprendiendo paso a paso la forma de cmo programar los microcontroladores bajo el sistema PICAXE. Para ello, como primer paso, emplearemos una tarjeta de desarrollo de la cual proporcionaremos su circuitera para que ustedes la puedan armar, posteriormente despus de realizar algunas prcticas, avanzaremos sobre aplicaciones en donde se tenga al microcontrolador como elemento principal y al cual programaremos en sitio.

Programacin Fcil de Microcontroladores PICAXE

Club Saber Electrnica N 79

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 6

VENTAJAS

DEL

SISTEMA PICAXE

Qu Son y Cmo se Usan los PICAXE

Como dijimos, el PICAXE es un sistema de microcontroladores PIC muy fcil de programar ya que utiliza un lenguaje BASIC muy sencillo, adems de contar tambin con la posibilidad de programarlos con diagramas de flujo. Aprovecha todas las caractersticas de los microcontroladores de bajo costo que incorporan memoria FLASH. Est disponible en tres versiones que son el de 8 terminales (PICAXE-08), 18 terminales (PICAXEFIGURA 5 - EL PROGRAMING EDITOR PERMITE 18) y 28 terminales (PICAXE-28). En estos microPROGRAMAR EN BASIC O CONVERTIR EL DIAGRAMA DE FLUJO EN BASIC. controladores ya se tienen definidas las terminales que tienen la funcin de entrada y salida de datos, adems de las terminales que sirven para programar al PICAXE en sitio, o en otras palabras sobre la misma aplicacin. En las figuras 6, 7 y 8 se muestran los circuitos esquemticos de la disposicin de cada uno de los microcontroladores PICAXE. En la figura 6 se muestra el circuito esquemtico para un PICAXE de 8 terminales, de las cuales las que estn 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 travs 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 9. Por otra parte, de la misma figura 6 se observa que la terminal identificada como Serial Sal, cumple con una doble funcin, y dependiendo de dnde 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 funcin de una terminal de salida de datos. Del circuito esquemtico de la figura 7 se observa la forma en que estn dispuestas 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 identifiFIGURA 6 - CIRCUITO BSICO DE ENTRENAMIENTO PARA EL PICAXE-08. cadas de la Sal 0 a

Club Saber Electrnica N 79

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 7

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 8 se muestra la forma de conectar a un PICAXE de 28 terminales, en donde aparte de las patas FIGURA 7 - CIRCUITO BSICO DE ENTRENAMIENTO PARA EL PICAXE-18. de entrada que se encuentran definidas como En 0 a En 7, tambin se cuenta con las terminales de salida identificadas como Sal 0 a Sal 7, adems de 4 terminales para entrada de datos analgicos, y por ltimo las terminales de programacin del microcontrolador. Ya se ha mencionado que el sistema PICAXE no requiere de programador o borrador, FIGURA 8 - CIRCUITO BSICO DE ENTRENAMIENTO PARA EL PICAXE-28. ya que utiliza nicamente tres alambres conectados al puerto serie de una computadora, tal como se describe en la siguiente figura 9. 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 conexin hacia el PIC tomando en cuenta las termiFIGURA 9 - LOS PICAXE SE COMUNICAN CON LA PC A TRAVS DEL PUERTO COM, UTILIZANDO PROTOCOLO RS232. nales, tal como se aprecia en la figura 10.

Programacin Fcil de Microcontroladores PICAXE

Club Saber Electrnica N 79

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 8

Como se puede observar en la figura 10, se puede emplear (es recomendable) un plug de los utilizados para conectar los audfonos a la salida de audio de un walkman o 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 11. Ahora bien, la mayora de las computadoras pequeas, tipo nanobook, no poseen puerto RS232 y hasta las notebook FIGURA 10 - DIAGRAMA DE ARMADO DEL CABLE QUE SE UTILIZA PARA actuales tampoco lo incluyen. En PROGRAMAR LOS PICAXE. ese caso, se debe utilizar un conector que comercializa la empresa Education Revolution, o colocar un conversor USB a RS232 como el que publicamos en saber Electrnica N 178 o el circuito de Saber Electrnica N 223. En la figura 12 podemos observar el circuito elctrico con su placa de circuito impreso de dicho conversor. Si desea ms detalles del armado puede recurrir a dicha revista. Tambin puede comprar un conversor USB a RS FIGURA11 - VISTA DEL CABLE DE PROGRAMA232 como el de la figura 13; en ese caso debe CIN TERMINADO. asegurarse que el dispositivo genere un puerto COM real, es decir, que no sea un dispositivo HID, ya que en ese caso no le va a servir. COMENZANDO A TRABAJAR CON PICAXE PICAXE es un sistema que emplea un micro fcil de programar que utiliza un lenguaje BASIC muy simple, el cual la mayora de los estudiantes pueden aprender rpidamente. Los microcontroladores (con memoria FLASH) pueden ser programados una y otra vez sin la necesidad de un costoso programador PIC. El sistema no necesita de ningn programador, borrador o complejo sistema electrnico. El programa puede escribirse en BASIC o por medio de un diagrama de flujo y se carga mediante una conexin de tres cables conectada al puerto serie de la computadora. El sistema PICAXE consiste en tres componentes principales: 1) El software editor de programacin. 2) El cable de conexin al puerto serial de la PC. 3) El chip PICAXE.

Qu Son y Cmo se Usan los PICAXE

Club Saber Electrnica N 79

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 9

Programacin Fcil de Microcontroladores PICAXE

FIGURA 12 - PARA PODER UTILIZAR UN SISTEMA PICAXE CON UNA COMPUTADORA A TRAVS DEL PUERTO USB SE DEBE
EMPLEAR UN CONVERSOR DE PUERTO COMO EL MOSTRADO EN LA FIGURA Y CUYA CONSTRUCCIN SE EXPLIC EN SABER

ELECTRNICA N 221.

Ya retornaremos con este tema, cuando sepamos ms acerca de las caractersticas principales de estos chips. Veamos ahora en qu consiste el software gratuito. EL EDITOR
DE

PROGRAMAS

FIGURA 13 - UN ADAPTADOR USB A RS232 COMERCIAL.

Lo diferente del sistema de microcontroladores PICAXE, con respecto a la programacin tradicional de los microcontroladores PIC, radica en la progra-

Club Saber Electrnica N 79

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 10

macin basada en un lenguaje BASIC y diagramas de flujo. Esto hace que los microcontroladores del sistema PICAXE sean muy fciles de programar, en un ambiente amigable. Para programar los microcontroladores PICAXE debemos, en primera instancia, instalar el software que contiene el ambiente de programacin, por lo que describiremos la forma de hacerlo. Si bien a lo largo de este texto vamos a explicar paso por paso cmo se emplea el Programming Editor (Editor de Programas), es necesario que ya lo tenga en su computadora. El software lo puede bajar de nuestra pgina de Internet que usted ya conoce www.webelectronica.com.mx, debe hacer clic en el cono password e ingresar la clave PICAXEPRO. Recuerde que para bajar cualquier informacin debe ser socio del club SE, lo cual es gratuito y puede inscribirse por Internet en slo un par de minutos (siga las instrucciones que dimos para bajar el programa y encontrar cmo hacerse socio, si an no lo es). Una vez que se tenga el software, se contar con una carpeta con el nombre de progedit, a la cual debemos acceder (observe la figura 14). Luego debemos ingresar a la carpeta progedit y tenemos que ubicar el programa identificado como Programming Editor, al cual debemos hacerle un doble clic con el ratn de la pc para que ste se ejecute y se pueda instalar el programa de los PICAXE, tal como se muestra en la figura 15. Una vez que ejecutamos el programa de instalacin Programming Editor aparecer la ventana que se muestra en la figura 16, sobre la cual debemos de oprimir con el ratn el cuadro identificado como next para que contine la insta-

Qu Son y Cmo se Usan los PICAXE

FIGURA 14 - CARPETA PROGEDIT.

FIGURA 15 - SOFTWARE DE INSTALACIN PROGRAMMING EDITOR.

FIGURA 16 - VENTANA DE BIENVENIDA PARA LA INSTALACIN DEL SOFTWARE DE LOS PICAXE.

10

Club Saber Electrnica N 79

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 11

Programacin Fcil de Microcontroladores PICAXE

FIGURA 17 - ACUERDO DE LICENCIA.

FIGURA 18 - INFORMACIN DEL USUARIO.

FIGURA 19 - DESTINO DEL SOFTWARE.

lacin. Posteriormente ser desplegada la ventana donde se muestra la licencia que debemos aceptar, porque de otra manera no podremos continuar con la instalacin del software, por lo que nuevamente oprimiremos el cuadro identificado como next, esta accin se indica en la figura 17. Como paso siguiente, pregunta por el nombre del usuario que normalmente utilizar el software, aqu podemos instalar la aplicacin para que pueda ser utilizada por todas las personas que utilicen la computadora, y despus de seleccionar esta accin tenemos que oprimir el cuadro identificado como next, tal como se muestra en la figura 18. Posteriormente debemos decir en dnde se guardar el software de programacin, 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 19. Una vez seleccionada la opcin correspondiente procederemos a hacer clic sobre el cuadro identificado como next. Por ltimo, aparecer una ventana de confirmacin para estar seguros de que los datos que introdujimos se encuentran correctos, si es as debemos oprimir el cuadro identificado como next para que contine la instalacin, tal como se aprecia en la figura 20. Cuando se est instalando el software se indica grficamente, tal como se ilustra en la figura 21, aqu debemos esperar hasta que se terminen de instalar, tanto el software de programacin como todas las utileras que sern empleadas por los PICAXE. En la figura 22 se muestra la ventana que nos indica que ya se ha concluido con la instalacin, por lo que debemos oprimir el cuadro identificado

Club Saber Electrnica N 79

11

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 12

como finish. Una vez instalado el software de programacin de los PICAXE, en el escritorio de nuestra PC encontraremos un cono de acceso directo identificado como PICAXE Programming Editor, al cual, para comenzar a programar los microcontroladores, debemos hacer un doble clic con el mouse para que se ejecute el programa, tal como se muestra en la figura 23. En la figura 24a se observa un ejemplo del ambiente grfico en lenguaje BASIC y en la figura 24b en diagrama de flujo. En varias ocasiones editamos artculos mostrando cmo se emplea el editor por diagrama de flujo del Programing Editor pero, tal como hemos dicho, para los prximos PICAXE deber emplear el Logicator, razn por la cual, ms adelante explicaremos cmo se usa. LOS DISTINTOS TIPOS DE PICAXE El sistema PICAXE aprovecha todas las caractersticas de los microcontroladores de bajo costo que incorporan memoria FLASH. El sistema PICAXE est disponible en seis distintas versiones que son: De De De De De De 8 terminales (PICAXE-08), 14 terminales (PICAXE-14), 18 terminales (PICAXE-18), 20 terminales (PICAXE-20), 28 terminales (PICAXE-28) y 40 terminales (PICAXE-40).

Qu Son y Cmo se Usan los PICAXE

FIGURA 20 - VENTANA DE CONFIRMACIN DE DATOS.

FIGURA 21 - VENTANA DE INSTALACIN DEL SOFTWARE.

Estos microcontroladores ya tienen definidas las terminales que tienen la funcin de entrada y/o salida de datos, adems de las terminales que sirven para programar al PICAXE en sitio, o en otras palabras sobre la misma aplicacin.

FIGURA 22 - CUANDO LA INSTALACIN HAYA CONCLUIDO EL PROGRAMA NOS INDICAR QUE ESTAMOS LISTOS PARA COMENZAR A UTILIZARLO.

12

Club Saber Electrnica N 79

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 13

Programacin Fcil de Microcontroladores PICAXE

FIGURA 23 - ICONO DE ACCESO RPIDO.

FIGURA 24A - LENGUAJE BASIC PARA PROGRAMAR LOS PICAXE.

Hace aproximadamente 6 aos que comenzamos a escribir publicaciones sobre el sistema PICAXE aqu en Saber Electrnica, y a la fecha algunos de los microcontroladores PICAXE que al inicio les presentamos en diversos proyectos, ya se encuentran descontinuados o sustituidos por otros de reciente comer-

FIGURA 24B - DIAGRAMA DE


FLUJO PARA PROGRAMAR LOS

PICAXE.

Club Saber Electrnica N 79

13

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 14

cializacin, por lo tanto, es importante tomar en cuenta con que matriculas disponemos para poder desarrollar nuestros proyectos. Incluso anteriormente los microcontroladores PICAXE, tenan grabadas las matriculas de los microcontroladores PIC (ya que la empresa Microchip es quien los fabrica), pero tambin en la actualidad algunos PICAXE ya traen grabada la matricula que les corresponde, dentro del sistema PICAXE, aun cuando los continua fabricando Microchip. En la tabla 1 se muestra la serie de microcontroladores PICAXE disponibles, as como la matrcula que tienen grabada. Por otra parte, en la tabla 2 se muestran las matrculas de los microcontroladores PICAXE, que sustituyen a los primeros que salieron al mercado, para que de esta manera, se pueda saber cules son los PICAXE de reciente aparicin, y por obvias razones, con los que contamos para seguir trabajando. Para continuar conociendo a los microcontroladores PICAXE, en la tabla 3 se muestran las principales diferencias entre las distintas versiones que podemos encontrar y para ello los clasificaremos en PICAXE estndar y PICAXE Avanzado. KITS PICAXE A lo largo de los ltimos aos, en Saber Electrnica, publicamos varios circuitos con PICAXE, muchos de los cuales se ofrecen en forma de kits o que Ud. puede montar fcilmente, ya que todos los componentes son comunes. A continuacin mostramos algunos de los proyectos publicados:

Qu Son y Cmo se Usan los PICAXE

TABLA 1 - DISTINTOS TIPOS DE PICAXE.

TARJETA ENTRENADORA PICAXE-08 (ICA-011) Se trata de la primera tarjeta de entrenamiento universal para programar microcontroladores PICAXE de 8 terminales denominados PICAXE - 08, figura 25.

TABLA 2 - LAS MATRCULAS DE LOS PICAXE.

14

Club Saber Electrnica N 79

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 15

Programacin Fcil de Microcontroladores PICAXE

TABLA 3 - DIFERENCIAS ENTRE LOS PICAXE.

FIGURA 25 - TARJETA PICAXE-08.

Sobre la tarjeta de circuito impreso se dispone de un total de 4 E/S (4 entradas y 4 salidas), pero estas terminales son configurables por medio de un jumper selector, ya que las terminales 3, 5, 6 y 7 del microcontrolador PICAXE cumplen con una doble funcin. La tarjeta entrenadora para PICAXE - 08 tiene la posibilidad de explotar al mximo las propiedades del cualquier PICAXE-08, y por lo tanto se pueden desarrollar proyectos en donde tan solo se tienen que conectar las seales de los sensores y los actuadores sobre las terminales que tiene destinadas la tarjeta entrenadora.

Club Saber Electrnica N 79

15

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 16

TARJETA ENTRENADORA PICAXE-18 (ICA-016) Es la segunda tarjeta de entrenamiento universal que Saber Electrnica propone para programar microcontroladores PICAXE de 18 terminales denominados PICAXE 18, figura 26. Sobre la tarjeta se dispone de un total de 5 entradas y 8 salidas, de las entradas se pueden disponer hasta 3 para utilizar el convertidor ADC del microcontrolador PICAXE (depende si es 18, 18A,18X, 18M o 18M2). Sobre la misma tarjeta se tiene un rea de experimentacin la cual consta de 2 circuitos para generar estados lgicos mediante push butom para manipular las terminales de entada del microcontrolador PICAXE. Adems cuenta tambin con dos circuitos con leds para verificar el estado de las salidas, y por ltimo tambin posee dos espacios para colocarle distintos tipo de sensores,

Qu Son y Cmo se Usan los PICAXE

FIGURA 26 - TARJETA PICAXE-18.

PLC PICAXE-18 (ICA-017) El PLC que se muestra en la figura 27 trabaja a partir de las caractersticas y ventajas que nos otorga el microcontrolador PICAXE - 18, por lo tanto este PLC contara con 5 entradas y 8 salidas, ambas de naturaleza digital. Este PLC cuenta con sus respectivos mdulos de entrada y salida, uno para cada uno resFIGURA 27 - PLC PICAXE-18. pectivamente, por lo que tanto las entradas como salidas de datos del microcontrolador PICAXE - 18 estn protegidas. Este PLC posee todo lo necesario para emplearlo en cualquier aplicacin industrial, ya que cuenta en sus terminales con bornes de conexin con tornillos, este PLC requiere 12 VCD para su alimentacin. CONTROL DE DISPLAY DE LCD PARA PICAXE-18 (ICA-018) El control de display que se observa en la figura 28 emplea un microcontrolador PICAXE- 18 (cualquier versin de PICAXE - 18), empleando todas las caractersticas y ventajas que nos otorgan estos microcontroladores. Para controlar al display de LCD se emplean las 8 salidas del PICAXE, mientras que se dispone de las 5 terminales de entrada, para hacerle llegar la informacin que se requiere imprimir en el display, por lo tanto este circuito tiene una funcin a manera de monitor, desplegando todos los caracteres que acepta el display. Este circuito es muy verstil, en cuanto al diseo de instrumentos de medicin, ya que dispone de todas sus terminales de entrada, y en 3 de ellas se cuenta con convertidores analgico - digital. Los mencionados son slo algunos de los proyectos que hemos publicado en Saber Electrnica como montajes destacados y que puede conseguir en forma de kits, por razones de espacio no podemos mencionarlos a todos ellos. Sugerimos visitar nuestra web para ms informacin.

16

Club Saber Electrnica N 79

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 17

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 18

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 19

CAPTULO 2
PICAXE es un sistema de microcontroladores fcil de programar ya sea usando diagramas de flujo o empleando lenguaje BASIC, el cual la mayora de las personas puede aprender rpidamente, dado su nivel de interaccionar con su lenguaje. En los tomos 7, 16 y 29 de la coleccin Club Saber Electrnica hablamos sobre PICAXE y dimos varios proyectos comentados utilizando en Programing Editor pero hasta ahora no hemos programado en BASIC, tema que abordaremos a continuacin. En forma sinttica, el lenguaje que se implementa, es un sencillo dilogo muy intuitivo, que da rdenes muy precisas empleando un juego de comandos limitados.

TRABAJANDO CON MICROCONTROLADORES

PICAXE

INTRODUCCIN El microcontrolador PIC, es un circuito integrado que contiene memoria, unidades procesadoras y circuitos de entrada/salida, en una sola unidad. Digamos que es muy similar a un ordenador o computadora PC, pero en formato pequeo. El microcontrolador PICAXE, es un sencillo microcontrolador PIC, que tiene por caracterstica, tener alojado dentro de su memoria, un pequeo firmware que permite ser programado bajo lenguajes ms sencillos que el Assembly. Como ya sabrn, los microcontroladores son comprados en blanco y luego son programados con un programa especfico de control. Una vez programado, este microcontrolador es introducido en algn producto para cumplir el rol de trabajo de controlador. Es sabido, que estos diminutos circuitos integrados, tienen una inteligencia limitada por nosotros mismos a la hora de ejecutar una accin; pues, segn se lo programe, se delega solo la responsabilidad de la orden impartida. Por ejemplo, si nosotros programamos a este microcontrolador para que ejecute la tarea de monitorear y administrar el funcionamiento de un motor a explosin como lo que podemos ver en un automvil, ste slo har lo que le dijimos por intermedio de las instrucciones de programacin, y no esperen que este haga otra cosa que no le hallamos enseado en su rutina de control. Hoy en da, se suele aplicar microcontroladores en los desarrollos electrnicos, por que estos pueden reemplazar a un gran nmero de partes separadas, o incluso a un circuito electrnico completo. Algunas de las ventajas obtenidas con el uso de microcontroladores en el diseo de productos son:

Club Saber Electrnica N 79

19

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 20

o Aumento en la confiabilidad debido al menor nmero de partes. o Reduccin en los niveles de existencia ya que un microcontrolador reemplaza varias partes. o Simplificacin del ensamblaje del producto y productos finales ms pequeos. o Gran flexibilidad y adaptabilidad del producto ya que las funciones del producto estn programadas en el microcontrolador y no incorporadas en el hardware electrnico. o Rapidez en modificaciones y desarrollo del producto mediante cambios en el programa del microcontrolador, y no en el hardware electrnico. En la Industria, los microcontroladores son usualmente programados utilizando programacin en lenguaje C. Sin embargo, debido a la complejidad de este lenguaje, es muy difcil el aprendizaje de dichos lenguajes de programacin en personas adultas que nunca tuvieron formacin alguna, inclusive, tambin podramos incluir a los estudiantes muy jvenes de bachillerato, que por lo general, su ansiedad los lleva a buscar formas practicas y rpidas de insercin a los microcontroladores. No voy hacer mucho nfasis sobre si deben o no tratar de aprender una manera de programacin o no, solo les voy a mencionar, que es preferible estudiar lenguajes de programacin que contengan un nivel de lenguaje de programacin mas alto que el que podemos encontrar con estos microcontroladores. EL SISTEMA PICAXE El sistema PICAXE es un sistema de microcontrolador fcil de programar que utiliza un lenguaje BASIC muy simple, el cual la mayora de las personas pueden aprender rpidamente dado su nivel de interaccionar con su lenguaje. Ya hemos dado las caractersticas sobresalientes de este sistema en captulos anteriores de esta obra pero no est dems resumir los rasgos sobresalientes del sistema PICAXE. En forma sinttica, el lenguaje que se implementa, es un sencillo dilogo muy intuitivo, que da rdenes muy precisas como ejemplo, podra darles este ejemplo citado en la figura 1. En la rutina de dicha figura, lo nico que hice, fue programar el microcontrolador con un dilogo sencillo, en ingls, pero muy deducible para aquellos que estn flojos con este idioma. Prcticamente, lo nico que le orden al microcontrolador, es que monitoree la entrada numero cero (input cero), y en caso de tener algn estado definido (un alto o un bajo, o sea, un 1 o un 0 lgico), ste acte dando como resultado una accin determinada. Internamente, estas lneas de programacin, funcionan de la siguiente manera dentro del microcontrolador: Siempre, la rutina se lee y se ejecuta FIGURA 1 - RUTINA EN BASIC PARA PROGRAMAR UN PICAXE desde la primer lnea para abajo, salvo

Trabajando con PICAXE

20

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 21

que halla un salto en el camino, figura 2. En este caso en particular, arranca el ciclo en la etiqueta main, pasa por la primera FIGURA 3 - UNA INSTRUCCIN PUEDE INDICAR QUE, instruccin que SI SE CUMPLE ALGUNA CONDICIN, EL PROGRAMA indica que visuaSALTE A OTRA INSTRUCCIN O SUBRUTINA. lice y compare el estado de la entrada cero con el valor pre establecido y en caso de ser positivo el resultado tiene que saltar e ir al sub programa encendido, figura 3. FIGURA 2 - EL PROGRAMA CONEn el caso de que la comparacin de cero, el microcontrolador SISTE EN UN JUEGO DE INSTRUCsigue lneas abajo leyendo las instrucciones. Como pueden observar, CIONES QUE SE ESCRIBE EN EL PROGRAMING EDITOR. la siguiente instruccin es similar, compara el estado de la seal en la entrada cero, y si la comparacin es positiva, salta al subprograma apagado. En caso de ser nula la comparacin, el programa sigue leyendo las siguientes lneas hasta llegar al fin del programa o bien, hasta llegar a una bifurcacin. En nuestro caso, llega hasta la instruccin goto, lo cual, hace repetir el programa una y otra vez sin tener fin. Se observa entonces que este sistema implementa un dilogo de instruccin muy fcil de aprender, de manera que en tan slo unos pasos Ud. podr aprender rpidamente a realizar sus propios proyectos microcontrolados. Este sistema explota las caractersticas nicas de la nueva generacin de microcontroladores de bajo costo FLASH. Estos microcontroladores pueden ser programados una y otra vez sin la necesidad de un costoso programador. El poder del sistema PICAXE radica en su sencillez. No necesita de ningn programador, borrador o complejo sistema electrnico. El microcontrolador es programado mediante una conexin de tres cables conectada al puerto serie de una PC (con un simple programa en BASIC o un diagrama de flujo). El circuito operacional PICAXE utiliza nicamente tres componentes y puede ser ensamblado fcilmente en una placa experimental para componentes electrnicos, en una placa corriente o en una placa PCB. EL sistema PICAXE est disponible en varias versiones (8 pines, 18 pines, 28 pines, 40 pines). El controlador PICAXE-28 provee 22 pines de entrada/salida (8 salidas digitales, 8 entradas digitales y 4 entradas analgicas). El sistema PICAXE-18 provee 8 salidas y 5 entradas. Las caractersticas principales del sistema PICAXE son las siguientes: o Bajo costo, circuito de fcil construccin. o Hasta 8 entradas, 8 salidas y 4 canales analgicos en la versin intermedia. o Rpida operacin de descarga mediante el cable serial. o Software Editor de Programacin gratuito y de fcil uso. o Lenguaje BASIC simple y fcil de aprender. o Editor de diagramas de flujo incluido. o Puede ser programado tambin mediante el software Crocodile Technology o Programming Editor. o Extenso nmero de manuales gratuitos y foro de apoyo en lnea.

Programacin Fcil de Microcontroladores PICAXE

Club Saber Electrnica N 79

21

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 22

o Circuito experimental, manejo y tutoriales incluidos en la pgina del fabricante (gratuitos). o Paquete de control remoto infrarrojo disponible. o Paquete de servo controlador disponible. Estas son slo algunas de las funciones y utilidades disponibles. COMENZANDO
LAS

Trabajando con PICAXE

PRCTICAS

Esta obra est diseada para que el lector pueda realizar sus prcticas tanto con la placa entrenadora y sus mdulos correspondientes, como as tambin poder realizar simulaciones en el laboratorio virtual Proteus, con sus libreras y diagramas de circuitos del laboratorio para que puedan saber cmo se va a comportar el circuito casi como si lo efecturamos con nuestra placa entrenadora fsica. Si bien este laboratorio virtual es una gran herramienta virtual; debemos remarcar que posee algunos errores menores que pueden complicarnos algunos diseos y o simulaciones. Los errores encontrados hasta el momento son: o No tolera mas de 16gosub o No reconoce #REM-#ENDREM o No reconoce #setfreq o No reconoce #Picaxe08/18 o Genera algn que otro error cuando al terminar nuestro cdigo de programacin, no se implementa un espacio despus de la ltima lnea de programacin. La figura 4 muestra imgenes de un laboratorio de prcticas microcontroladas (varias placas de circuito impreso) para trabajar y aprender con PICAXE. USANDO COMENTARIOS Usar comentarios en un programa, aunque sea perfectamente obvio para todos ustedes, puede ser una herramienta extra que el da de maana, le puede ayudar a comprender por qu implement una accin en su rutina, adems, hay que tener en cuenta que si lo compartimos, alguien ms puede leerlo y puede no tener idea de lo que Ud. ha querido hacer. Cabe aclarar que los comentarios usan espacio en el archivo fuente (.bas) pero no lo hacen en la memoria del PICAXE, ya que stos no son subidos junto a la rutina de programacin. Implementar un bloque de comentarios en el comienzo del programa y antes de cada seccin del cdigo, puede describir cul es la funcin de la rutina que tenemos, o bien, podemos describir con ms detalles cada lnea de nuestro programa. Para reconocer los comentarios, podemos dirigirnos a nuestra seccin configuracin del software, y en la pestaa editor seleccionamos preferencias de colores en la sintaxis. Con esta ultima accin, podremos diferenciar en nuestras rutinas los comandos, los comentarios con un color distinto. Los comentarios en el programa comienzan con un apstrofe () o punto y coma (;) y contina hasta el final de la lnea. Es decir, en una lnea, todo lo que est despus del apstrofe () o punto

22

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 23

Programacin Fcil de Microcontroladores PICAXE

y coma (;) es simplemente un comentario y no es tenido en cuenta en la ejecucin del programa por parte del PICAXE. Tambin es muy comn que las personas de habla inglesa y con viejas maas del antiguo basic, implementen la palabra clave REM. Esta palabra tambin puede ser usada para comentarios, pero yo personalmente no la aconsejo, ya que un error en la escritura, por ejemplo REN, nos dara errores en la compilacin y o simulacin. En la figura 4 tenemos un ejemplo; configuramos el software (programa) como mencionamos anteriormente y mostramos las diferentes formas de hacer comentarios. USO
DE

SYMBOL

Los smbolos en nuestras rutinas, son palabras clave que identifican constantes, variables y direcciones en el programa. La asignacin del smbolo se realiza poniendo el comando symbol + nombre del smbolo y seguido de ste implementamos el signo igual (=). Posterior a estas lneas, agregamos la variable o constante. Los smbolos pueden ser cualquier palabra que no sea la relativa a un comando. Los smbolos pueden contener caracteres numricos (por ejempolo: ucontrol1, salida2, etc.) pero el primer carcter no puede ser uno numrico, es decir, no podra ser 1salida, por dar un ejemplo. El uso de smbolos no aumentan la longitud del programa. O sea, esta funcin no tiene peso alguno en lo que refiere al programa. Por lo general se implementa este comando para renombrar las entradas y salidas del microcontrolador lo que ayuda a recordar cul es la funcin de cada terminal I/O a la hora de leer y o modificar un programa. Las direcciones del programa configuradas con el comando symbol, siempre tienen que ir sobre la primer instruccin o, mejor dicho, al inicio del programa. En la figura 5 tenemos un ejemplo de programa en el que se han realizado asignaciones de smbolos.
FIGURA 4 - TODA ESCRITURA EN UNA LNEA QUE EST DESTARIO Y NO FORMA PARTE DEL PROGRAMA. PUS DE UN APSTROFE O UN PUNTO Y COMA ES UN COMEN-

Uso de Constantes Las llamadas constantes, pueden ser creadas de manera similar a las variables. Puede que sea ms conveniente usar un nombre para la constante en lugar de implementar un nmero como constante. Si el valor u operando de la constante necesita ser cambiada, nicamente se modifica en algn lugar del programa donde se define la constante en lugar de modificar cada parte del programa en la que interviene. Dentro de las constantes, no pueden guardarse datos variables. Las constantes declaradas pue-

Club Saber Electrnica N 79

23

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 24

den ser de cuatro tipos: decimal, hexadecimal, binario y ASCII.

Trabajando con PICAXE

o Los nmeros decimales se escriben directamente sin ningn prefijo. o Los nmeros hexadecimales se preceden del smbolo peso ($). o Los nmeros binarios de preceden del smbolo tanto por ciento (%). o Los valores ASCII se colocan entre comillas (). DESIGNACIN
DE

VARIABLES

Veamos los tipos de variable segn el sistema, ya que stas varan en su aplicacin segn cada modelo de programacin : PICAXE es usado al programar mdulos PICAXE. El BASIC y Extended son usados al programar mdulos Stamp. El ensamblador es el utilizado con cdigo de ensamblador. Veamos entonces que tipos de variables se pueden emplear en funcin del sistema de programacin que utilizamos:

FIGURA 5 - EL COMANDO SYMBOL DEFINE EL NOMBRE Y LA ACCIN DE CONSTANTES O VARIABLES.

Las Variables en PICAXE: El sistema PICAXE da soporte a las siguientes variables: Words: W0, W1, W2, W3, W4, W5, W6. Bytes: DIRS, PINS (solo PICAXE-08), INFRA, KEYVALUE B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13. Bits: PIN0, PIN1, PIN2, PIN3, PIN4, PIN5, PIN6, PIN7 (conjuntamente igual PINS) BIT0, BIT1, BIT2, BIT3, BIT4, BIT4, BIT5, BIT6, BIT7 (conjuntamente igual B0) BIT8, BIT9, BIT10, BIT11, BIT12, BIT13, BIT14, BIT15 (conjuntamente igual B1).

24

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 25

In/Out: INPUT0, INPUT1, etc. puede usarse en lugar de PIN0, PIN1, etc. OUTPUT0, OUTPUT1, etc. puede usarse en lugar de 0, 1, 2, etc. Las variables en BASIC El modo BASIC da soporte a las siguientes variables: Words: PORT W0, W1, W2, W3, W4, W5, W6. Bytes: DIRS, PINS B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13 Bits: DIR0, DIR1, DIR2, DIR3, DIR4, DIR5, DIR6, DIR7, BIT0, BIT1, BIT2, BIT3, BIT4, BIT4, BIT5, BIT6, BIT7, BIT8, BIT9, BIT10, BIT11, BIT12, BIT13, BIT14, BIT15 Nota: B12 y B13 (W6) es usado dentro de las rdenes GOSUB como una pila. Por consiguiente no debera utilizarse como un registro de propsito general. Las Variables en el Modo Extendido (EXTENDED) El modo extendido da soporte a todas las variables de BASIC. Adems: INPUT0, INPUT1, etc. puede usarse en lugar de pin0, pin1, etc. OUTPUT0, OUTPUT1, etc. puede usarse en lugar de 0, 1, 2 etc. Nota: B12 y B13 (W6) es usado dentro de las rdenes GOSUB como una pila. Por consiguiente no debera utilizarse como un registro de propsito general. Las Variables en el Modo Ensamblador El modo ensamblador soporta los mismos modelos de variables que el modo extendido.

Programacin Fcil de Microcontroladores PICAXE

LOS COMANDOS

DE

PROGRAMACIN BASIC

EN

PICAXE

La tabla 1 representa un breve resumen de los diferentes comandos disponibles para los microcontroladores PICAXE. Veremos a continuacin la estructura y el significado de algunos de los comandos bsicos que se emplean para programar un PICAXE y cmo se los emplea. GOTO Este comando tiene como funcin la ejecucin del programa que continua en la declaracin de la etiqueta. Dicho en otras palabras, este comando tiene como funcin dar una direccin donde saltara el programa y seguir la lectura de las instrucciones para continuar ejecutando el programa. En la figura 6 tenemos un ejemplo prctico.

FIGURA 6 - GOTO SE USA PARA INDICAR A DNDE SIGUE EL PROGRAMA.

Club Saber Electrnica N 79

25

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 26

Trabajando con PICAXE

TABLA 1 - RESUMEN DE COMANDOS USADOS EN PICAXE.

GOSUB Este comando tiene como funcin saltar a la subrutina indicada en la etiqueta, guardando su direccin de regreso en la memoria pila (stack). A diferencia del GOTO, cuando se llega a un RETURN, la ejecucin sigue con la declaracin siguiente al ltimo GOSUB ejecutado. Se puede usar un nmero ilimitado de subrutinas en un programa y pueden estar anidadas. En otras palabras, las subrutinas pueden llamar a otras subrutinas. Cada anidamiento no debe ser mayor de cuatro niveles. Como ejemplo, cuando nosotros ejecutamos GOSUB, salta el programa a una etiqueta, y cuando llega al comando RETURN, vuelve a la siguiente lnea de donde parti con el comando GOSUB. La figura 7 muestra un ejemplo de uso de este comando.

26

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 27

FOR ... NEXT

Programacin Fcil de Microcontroladores PICAXE

El bucle FOR NEXT permite a los programas ejecutar un nmero de declaraciones tantas veces como se lo defina, usando una variable como contador. Este comando es ideal para acortar lneas de programas repetitivas. Para tener una idea de su potencial, sea el siguiente programa que permite el parpadeo de un Led conectado en una salida del PICAXE cinco veces: symbol led1= 7 ejemplo1: high led1 pause 1000 low led1 pause 1000 high led1 pause 1000 low led1 pause 1000 high led1 pause 1000 low led1 pause 1000 high led1 pause 1000 low led1 pause 1000 high led1 pause 1000 low led1 pause 1000 end

FIGURA 7 - GOSUB ES SIMILAR A GOTO PERO GUARDA LA DIRECCIN DONDE ESTABA EN EL STACK.

En esta rutina, high led1 es una instruccin que pone un 1 (prende) en la salida donde estar conectado el led. La instruccin low led1 pone un 0 (apaga) en la salida donde estar conectado el led. pause 1000 es una instruccin que permite que el micro no haga nada durante mil milisegundos (1 segundo), es decir, es una instruccin de espera. Como puede observar, tuvimos que prender 5 veces el led, apagarlo otras 5 veces y en cada operacin decirle que espere un segundo. Ahora, veamos este otro modo de realizar la misma accin: bucle: for b0 =1 to 5 high 1 pause 1000 low 1 pause 1000 next b0 end

Club Saber Electrnica N 79

27

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 28

En este punto le aconsejo que realice una prctica en su PC. Ejecute el software Programming Editor y copie las lneas de programacin dadas en la figura 8 (configure el programa para usarlo con el PICAXE18X), revise las sintaxis y luego haga la simulacin mediante el comando RUN del men del Programming Editor. Al iniciarse el programa, cuando la lectura ingresa en el contador (for b0 = 1 to 20), se precarga el valor 1 en un espacio de memoria determinado (en este caso b0) y comienza un conteo que finalizar cuando llegue a 20. En el caso de la rutina que ejemplifiqu, luego de pasar por la instruccin de FIGURA 8 - FOR... NEXT SE EMPLEA PARA HACER BUCLES DE comenzar con el contador, sigue leyendo FORMA DE REPETIR UN ALGORITMO TANTAS VECES COMO SE REQUIERA EN UN PROGRAMA. el resto de las lneas y ejecutando toda accin que conlleven en ellas (high1pause-low1-pause) hasta llegar a la lnea donde dice next b0. En esta lnea, lo que hace, es decirle al contador que adicione un entero (que le sume uno) en la memoria que alojamos el conteo (b0)y luego salta automticamente a la lnea donde comienza el contador (for b0 =1 to 20) iniciando nuevamente toda la accin descrita anteriormente hasta llegar a almacenar en la memoria el valor 20 (por que esa fue la instruccin que le dimos cuando le dijimos que cuente de1 a 20 en la lnea de instruccin for b0 = 1 to 20). Note que cuando llega a 20, en vez de retornar a la lnea del contador, sigue leyendo la siguiente lnea. En este caso, la siguiente lnea nos dice con el comando FIGURA 9 - EJEMPLO DE USO DEL COMANDO FOR... NEXT. PAUSE y GOTO que debe hacer un retardo y volver al programa u etiqueta bucle. Despus de esto, como el contador tena registrado el valor 20, no tendra que seguir contando... pero no es as, ya que al volver a reiniciarse el programa, el contador vuelve a cero tambin. Para el caso en que nosotros quisiramos que al llegar a determinado conteo, el programa termine, lo que podramos hacer, es implementar la rutina mostrada en la figura 9.

Trabajando con PICAXE

28

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 29

Programacin Fcil de Microcontroladores PICAXE


HIGH A medida que vayamos avanzando en nuestros proyectos, iremos notando que la gran mayora de nuestros desarrollos microcontrolados requieren de un control de estados de las entradas y salidas. Hay dos comandos que definen el estado lgico de una salida: HIGH y LOW. El comando HIGH pone a nivel alto (1 lgico) un pin determinado del microcontrolador. Se usa este comando para activar una salida.

FIGURA 10 - LAS INSTRUCCIONES HIGH Y LOW SE EMPLEAN


PARA ESTABLECER LAS CONDICIONES DE LAS SALIDAS DIGITALES.

LOW Es el comando contrario a HIGH y se usa para poner una salida en estado bajo (0 lgico) o desactivar dicha salida. Veamos cmo funcionan los comandos high y low en el ejemplo mostrado en la figura 10: Simplemente se pone un 1 lgico en el PIN 1 del microcontrolador, se detiene el programa durante 5 segundos, luego se pone un 0 lgico en el PIN 1, nuevamente se tiene una espera de 5 segundos y el programa vuelve al inicio. Es decir, se trata de un programa que activa y desactiva la pata del micro correspondiente al PIN1 en perodos de 5 segundos en cada estado. INPUT Este comando refiere a un puerto de entrada especfico. En cierta manera, convierte una patita de un puerto (PIN) en una entrada. O, mejor dicho, con esta instruccin se est diciendo que el PIN en cuestin ser una entrada. Aclaremos que para definir nuestra entrada, se puede implementar el comando INPUT, o bien, podemos adoptar el nmero de puerto (0 a 7 para el caso de los micros 18x) y definirlo con un sencillo IN antes del nmero de puerto de entrada (in7 / input7). Al usar el comando IMPUT en nuestro programa automticamente estamos mencionando que vamos a trabajar con seales digitales entrantes en un puerto definido. OUTPUT Este comando refiere a un puerto de salida especfico. En cierta manera, convierte una patita de un puerto (PIN) en una salida. O, mejor dicho, con esta instruccin se est diciendo que el PIN en cuestin ser una salida. Como mencionamos anteriormente al

Club Saber Electrnica N 79

29

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 30

describir el comando input, no es que podemos configurar nuestros puertos como entradas y salidas; a lo que me refiero, es que definimos en una lnea qu accin queremos que adopte esa salida. Para definir nuestra salida, se puede implementar el comando OUTPUT, o bien, podemos adoptar el nmero de puerto (0 a 7 para el caso de los micros 18x) y definir la accin o estado de este puerto (high 7 -low 7 / high output7 -low output7). Es hora de realizar una nueva prctica: ejecute el Programming Editor en su PC y copie las instrucciones del programa de la figura 11, nos preparamos para ver cmo funcionan las instrucciones IMPUT y OUTPUT.

Trabajando con PICAXE

FIGURA 11 - LA CONFIGURACIN DE LOS PUERTOS, COMO ENTRADAS O SALIDAS, SE PUEDE HACER CON LOS COMANDOS IMPUT Y OUTPUT.

Nota: en este ejemplo, cit ambas maneras en las que podemos definir o nombrar un puerto de entrada o salida. Cuando simule esta rutina, ver que el software las reconoce a ambas como lo mismo y no genera ningn conflicto. END Este comando tiene como objeto detener la ejecucin del proceso y el microcontrolador no sigue ejecutando el programa hasta que lo reiniciemos o bien, hasta que no le demos la instruccin manual de volver a comenzar con su ciclo.

30

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 31

Programacin Fcil de Microcontroladores PICAXE

Cuando el microcontrolador es detenido por el comando END entra en modo de bajo consumo. Otra de las caracterstica de este comando es que cuando se ejecuta esta instruccin todos los datos presentes en los pines de entrada y salida se congelan y permanecen en el estado en que se encuentran. Para ver mejor cmo funciona este comando, realice una nueva prctica; para ello, ejecute en su PC nuevamente el Programming Editor y copie el programa mostrado en la figura 12, realice la simulacin y verifique la estructura del comando. IFTHEN IFANDTHEN IFORTHEN Estos comandos son en s, parte de una estructura de comparacin con salto a una direccin determinada (siempre a una etiqueta), en el caso en que se cumpla la funcin asignada. Las funciones que se pueden asignar a estas comparaciones son:

FIGURA 12 - LA INSTRUCCIN END SE EMPLEA PARA DETENER EL


PROGRAMA Y QUE EL MICRO QUEDE EN LA CONDICIN DE BAJO CONSUMO.

= >= > < <= <> & or

(igual que) (mayor o igual que) (mayor que) (menor que) (menor o igual que) (no es igual que) (funcin lgica AND) (funcin lgica OR)

Estas son slo algunas de las comparaciones a las que pueden responder estos comandos. El principio bsico de estos tres comandos son la de establecer una pregunta (IF...) sobre el estado de un puerto determinado; compara, lee el estado, evala en trminos de VERDADERO o FALSO y en el caso de ser cierto, se ejecuta la operacin a la que refiere el THEN (entonces...). Si lo considera falso, no se ejecuta la operacin posterior al THEN y prosigue con la lectura de la siguiente lnea. Veamos algunos ejemplos: ifthen if input1 =1 then action3

Club Saber Electrnica N 79

31

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 32

Esta sentencia indica que si la entrada 1 es igual a 1, entonces el programa sigue ejecutndose en la etiqueta action3. Si la entrada 1 es igual a cero se sigue ejecutando el programa normalmente. ifandthen if input1 =1 and input0= 1 then action2 Aqu se dice que si la entrada 1 es igual a 1 y la entrada 0 es igual a 1, entonces el programa sigue ejecutndose en la etiqueta action2. Si la entrada 1 y/o la entrada 0 es igual a cero se sigue ejecutando el programa normalmente. iforthen if input1 =1 or input 0 = 1 then action3 Aqu se dice que si la entrada 1 es igual a 1 o la entrada 0 es igual a 1, entonces el programa sigue ejecutndose en la etiqueta action3. Si la entrada 1 o la entrada 0 es igual a cero se sigue ejecutando el programa normalmente. iforthen gosub if input1 =1 then gosub action3 if input2 =0 then actionx En este caso estamos diciendo que si la entrada 1 es igual a 1, entonces el programa sigue ejecutndose en la etiqueta action3 y cuando termine, que vuelva y prosiga en la siguiente lnea. En la figura 13 tenemos un ejemplo que Ud. puede utilizar para realizar una prctica en el Programming Editor. Es importante destacar que la mejor forma de aprender es practicando, es por ello que sugerimos que realice cada ejercicio en la medida que se lo vamos sugiriendo. Ahora bien, con los comandos explicados Ud. ya posee

Trabajando con PICAXE

FIGURA 13 - EJEMPLO DE USO DEL COMANDO IF... THEN

FIGURA 14 - OTRO EJEMPLO DE USO DEL COMANDO IF... THEN.

32

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 33

conocimientos suficientes como para que pueda experimentar con un sistema til. En la figura 14 tiene el programa que le permitir simular el programa de un sencillo automtico para detectar el nivel de un tanque de agua, de modo que se ponga en marcha cuando el agua haya descendido por debajo de cierto nivel y que la bomba se apague cuando el agua alcance el nivel superior establecido como referencia. Note la inclusin de algunos comandos que an no hemos analizado, que ello no lo detenga en su prctica. Trabaje de la misma manera que hemos explicado hasta ahora sobre el Programming Editor para simular el funcionamiento de esta rutina notar que Readadc 2,b2, por ejemplo, es una instruccin que lee el estado de una entrada y que se trata de una entrada analogical qu otras cosas nota? Nuevamente: La prctica es tanto ms importante que la teora, por lo tanto, manos a la obra. PAUSE Este comando, es implementado para generar retardos en los saltos entre lneas y ejecucin del cdigo del programa. Ya lo hemos visto en algunos ejemplos anteriores, pero ahora lo presentamos formalmente. En la siguiente rutina se est indicando que se ponga en 1 el PIN 1, luego que se mantenga asi durante 5 segundos (5.000 milisegundos), posteriormente se indica que se ponga un 0 en el PIN 1 durante otros 5 segundos y que vuelva a comenzar el programa: inicio: high 1 pause 5000 low 1 pause 5000 goto inicio Como especificacin del tiempo de retardo est dada en milisegundos, en una estructura de 16 bits, los retardos pueden ser de hasta 65635 milisegundos (66 segundos). WAIT Este comando, al igual que el anterior, es implementado para generar retardos en los saltos entre lneas y ejecucin del cdigo del programa. La nica diferencia es que PAUSE establece unidades expresadas en milisegundos y WAIT en segundos. Tcnicamente decir WAIT 1 o decir PAUSE 1000 es lo mismo. Por lo dicho, el programa que vimos en la explicacin del comando PAUSE se puede expresar de la siguiente manera: inicio: high 1 wait 5 low 1 wait 5 goto inicio

Programacin Fcil de Microcontroladores PICAXE

Club Saber Electrnica N 79

33

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 34

Aqu tambin podemos establecer un tiempo mximo de 65 segundos, por lo cual necesitaremos arreglos como el uso de for next para poder tener tiempos mayores. RETURN

Trabajando con PICAXE

Este es un muy buen comando que si lo sabemos implementar, podemos hacer programas ms rpidos e interesantes. En si, este comando tiene como funcin volver desde una subrutina, retomando la ejecucin en la declaracin que sigue al FIGURA 15 - RETORNO DE UNA SUBRUTINA POR MEDIO DEL COMANDO RETURN. GOSUB que llam a la subrutina. En la figura 15 tenemos un ejemplo sencillo que podremos simular de la forma acostumbrada. INFRAIN Este comando se usa en sistemas de comunicacin por infrarrojos. Se implementa para esperar en el receptor una seal infrarrojo procedente del transmisor IR. Este comando, adems de poder implementarlos en nuestros propios proyectos, podemos usarlo para crear nuestros propios controles remotos IR o bien repetidores IR para toda la gama de equipos de la marca SONY, ya que implementa el mismo protocolo que esta compaa utiliza en sus productos. El comando en si, interacta en el programa esperando la seal infrarroja y, una vez recibida esta seal, el valor de ella se almacena en la variable predefinida infra (es

FIGURA 16 - CONEXIN DE UN RECEPTOR INFRARROJO EN UN PICAXE.

34

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 35

Programacin Fcil de Microcontroladores PICAXE

similar a b0,b1,etc., pero de uso exclusivo para este comando). En la figura 16 tenemos el esquema de conexin de un receptor IR sobre un PICAXE-08 y en la figura 17 hemos escrito una rutina que Ud. puede utilizar para practicar sobre el manejo de esta instruccin. No hace falta tener el control remoto (el transmisor), ya que podemos ejecutar el Programming Editor en nuestra computadora, escribir el programa de la figura 17 y simularlo; podemos cambiar los valores desde la tabla de variables de la derecha y ver cmo cambia la simulacin. READADC Un sensor analgico es capaz de medir y proveer informacin codificada en forma de tensiones variables. Si colocamos la seal de este tipo de sensores a la entrada del puerto analgico del microcontrolador, puede ser representada por valores de 0 a 255, por ejemplo, en el caso de una foto resistencia, podramos decir que 0 es oscuro y 255 luz intensa. Este comando, lo podemos implementar para convertir una seal analgica entrante en el puerto ADC del microcontrolador, en una informacin digital con una resolucin de 8 bits. El dato obtenido de esta lectura convertida (A/D) se almacena en una variable (b0, b1, b2, bx, etc.),

ENTRADA QUE POSEEN SENSORES INFRARROJOS Y

FIGURA 17 - INFRAIN ES UN COMANDO APLICABLE A LNEAS DE LEE EL ESTADO DE DICHO SENSOR.

FIGURA 18 - EJEMPLO DE USO DEL COMANDO READADC.

luego ese dato puede ser empleado para cualquier propsito. NOTA: cuando implementamos este comando, es muy importante tener en cuenta que si almacenamos el dato en una variable tipo b1, se guarda con una resolucin de 8 bits mientras que si la almacenamos en una variable tipo w1, el dato es guardado con una resolucin de 10 bits. En la figura 18 tiene un ejemplo que recomendamos que simule de la forma acostumbrada.

Club Saber Electrnica N 79

35

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 36

READADC10

Trabajando con PICAXE

Este comando, es similar a READADC y lo podemos implementar para convertir una seal analgica entrante en el puerto ADC del microcontrolador. La diferencia de este comando con el anteriormente mencionado, es que este puede leer y almacenar el dato con una resolucin de 10 bits. El dato obtenido de esta lectura convertida (A/D), es FIGURA 19 - CON READDC10 SE PUEDEN LEER Y ALMACENAR DATOS ANALGICOS CON UNA RESOLUCIN DE 10 BITS. almacenada en una variable (w1, w2, wx, etc.) que luego puede ser empleada para cualquier propsito. Un dato interesante, es que podemos implementar tambin el comando READADC para almacenar datos con resoluciones de 10 bits. Si con el comando READAC implementamos una variable word (w1, w2, wx, etc.), el dato se guarda en 10bits. En la figura 19 tenemos un ejemplo que podemos simular de la forma acostumbrada en el Programming Editor. PWM Este comando solo puede ser implementado en los microcontroladores PICAXE 08 y 08M (en otros PICAXE no funciona) y su funcin es enviar un tren de pulsos modulados en un ancho definido por el pin de salida seleccionado. Cada ciclo del PWM (Pulse Width Modulation -Modulacin del ancho del pulso), puede tener una resolucin dada a nuestro gusto y necesidad, es decir, podemos ampliar tanto el duty, como el cycle, reduciendo o ampliando as el ancho del pulso. Entendemos como duty, al momento en que tenemos un estado alto por un tiempo determinado la seal del PWM y cycle, al momento en que se repite el duty. El duty para cada ciclo puede variar en valores comprendidos entre 0 (0%) y 255 (100%). El cycle del PWM puede estar definido entre 0 y 255 repeticiones; pero hay que tener en cuenta que el cycle depende de la frecuencia del oscilador. Con esto ltimo quiero explicarles que por ejemplo con un oscilador de 4MHz, cada cycle ser de aproximadamente 5 ms de largo. Con un oscilador de 20MHz la duracin del ciclo ser de 1 ms aproximadamente. Definir el valor del oscilador mediante la implementacin de un comando especial que veremos mas adelante, no tiene efecto sobre el comando PWM. El PICAXE 08 emplea sus puertos como entrada y salida, segn lo configuremos nosotros pero cuando empleamos el comando PWM, el puerto se convierte en salida justo antes de la generacin del pulso y vuelve a ser entrada, cuando cesa. La salida de PWM tiene mucho ruido, y no tiene forma de onda cua-

36

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 37

Programacin Fcil de Microcontroladores PICAXE

FIGURA 20 - ENVO DE UN TREN DE PULSOS POR EL PIN 4 DE UN PICAXE-08M CON EL COMANDO PWM.

drada. Es necesario usar algn tipo de filtro para convertirla en algo til. Se puede usar un circuito RC como un simple convertidor A/D. En la figura 20 tenemos un ejemplo aplicable en un PICAXE 08 08M.

EEPROM El comando EEPROM, nos guarda datos en la memoria no voltil de nuestro microcontrolador. Dado que la EEPROM es una memoria no voltil, los datos permanecern intactos an sin alimentacin. Si se omite el valor opcional de la posicin de memoria, la primera declaracin se guarda en la direccin 0 de la EEPROM y las subsiguientes en las siguientes direcciones del mismo. Si se indica un valor de posicin, ste indica la direccin de comienzo para guardar los datos. La estructura de la instruccin es la siguiente: EEPROM {posicin},(dato) Posicin (location) es una constante numrica de 0 a 255 que especfica donde se debe empezar a almacenar los datos en la EEPROM. Como mencionamos anteriormente, si no existe una posicin indicada, el almacenamiento contina a partir del ltimo dato introducido. Si inicialmente no se especific ninguna posicin, el almacenamiento comienza en la posicin 0. Dato (data) puede ser una constante alfanumricas de hasta 256 caracteres. Cada carcter del valor numrico o palabras son almacenados en las posiciones de la EEPROM que van desde la posicin 0 hasta la 255. Este comando y esta diversidad en la estructura fsica del microcontrolador, solo la podemos encontrar en los microcontroladores PICAXE-18A, 28, 28A y 28X. Los datos que son guardaFIGURA 21 - EEPROM PERMITE ESCRIBIR DATOS EN POSICIONES DE MEMOdos en la EEPROM solo una RIA INTERNA DEL MICRO. vez y esto ocurre cuando el microcontrolador es programado, no cada vez que se ejecuta el programa. Para el caso de tener que armar una rutina donde necesitamos guardar en tiempo real determinados datos en la EEPROM FIGURA 22 - PARA ESCRIBIR LA PALABRA MARTIN SE REQUIEREN 6 POSICIONES DE MEMORIA. se puede usar la instruccin

Club Saber Electrnica N 79

37

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 38

Trabajando con PICAXE

FIGURA 23 - EL CDIGO ASCII Y SU EQUIVALENTE EN NMEROS BINARIOS.

38

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 39

Programacin Fcil de Microcontroladores PICAXE

FIGURA 24 - RUTINA QUE EMPLEA EL COMANDO EEPROM PARA ESCRIBIR LA FRASE MARTIN TORRES Y QUE LUEGO SE PUEDE ENVIAR A UN DISPLAY.

o comando WRITE para colocar los valores en la EEPROM en el momento de la ejecucin. La figura 21 muestra un ejemplo de uso de esta instruccin. Note que la segunda lnea est indicando que guarde la palabra Martn a partir de la direccin de memoria 0. Ahora bien cuando guardamos una palabra en la direccin 0, no significa que la integridad de la palabra o frase se guarde en esa posicin solamente. El primer carcter o letra se guarda en la direccin cero y el resto de las letras o caracteres se almacenan en las direcciones siguientes en el correspondiente binario segn el cdigo ASCII, tal como muestra la figura 22. Cabe aclarar que para la conversin de caracteres a su correspondiente binario, segn el cdigo ASCII, se puede emplear una tabla como la mostrada en la figura 23. SI nosotros queremos guardar otro mensaje, tenemos que tratar de que no ocupemos un espacio ya usado por otra palabra. Un mtodo sencillo es ir anotando en una tabla como la mostrada en la figura 22 las letras y las distintas direcciones de la EEPROM donde estn guardadas, ya que luego, para poder tener esas palabras, ejecutaremos comandos tales como fornext, los cuales apuntar a dichas posiciones de memoria. En la figura 24 tenemos un ejemplo de una rutina que se puede utilizar para visualizar frases en un display de cuarzo lquido. La instruccin: EEPROM 6,(Martin Torres) Indica que a partir de la posicin 6 se guarde la frase Martin Torres (las comillas no cuentan), lo que equivale al uso de 13 posiciones de memoria (Martin ocupa 6 posiciones, Torres ocupa 6 posiciones y el espacio intermedio ocupa la restante), es decir, se usa desde la posicin 6 hasta la posicin 18 (expresado en binario). I2CSLAVE I2C es un bus de comunicaciones en serie. Su nombre viene de Inter-Integrated Circuit (Circuitos InterIntegrados). La versin 1.0 data del ao 1992 y la versin 2.1 del ao 2000, su diseador es Philips. La velocidad es de 100kbits por segundo en el modo estndar, aunque tambin permite velocidades de 3.4Mbit/s. Es un bus muy usado en la industria, principalmente para comunicar microntroladores y sus peri-

Club Saber Electrnica N 79

39

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 40

fricos en sistemas integrados (Embedded Systems) y generalizando ms para comunicar circuitos integrados entre si que normalmente residen en un mismo circuito impreso. Algunos PICAXE contienen bloques internos que permiten la comunicacin I2C. La principal caracterstica de I2C es que utiliza dos lneas para transmitir la informacin: una para los datos y por otra la seal de reloj. Tambin es necesaria una tercera lnea, que es la referencia (masa). Como suelen comunicarse circuitos en una misma placa que comparten una misma masa esta tercera lnea no suele ser necesaria. Las lneas se llaman: SDA: datos SCL: reloj GND: tierra El comando I2CSLAVE se utiliza para configurar los pines del PICAXE y definir el tipo de I2C que se emplear como hardware funcional (sensores - conversores A/D-mdulos conversores o digitalizadores con memoria propia) o bien, alguna memoria EEPROM adicional. Si se utiliza nicamente un dispositivo I2C, entonces generalmente solo se necesita una orden I2CSLAVE dentro del programa. El orden en que escribimos este comando en un programa es el siguiente: i2cslave esclavo, velocidad, direccin Esclavo es un registro que corresponde a la direccin del esclavo I2C. Velocidad marca la velocidad de transmisin. Direccin establece el I2CBYTE o I2SWORD, indicando la direccin donde comenzar a guardar la informacin. Despus de que se utilice el comando I2CSLAVE, se pueden utilizar los comandos readi2c y writei2c para acceder al dispositivo I2C. Se pueden utilizar para leer y grabar datos de una EEPROM mediante comunicacin serie, usando una interfase I2C de 2 hilos. Esto permite guardar datos en una memoria externa no voltil, para que sean mantenidos an sin conexin de FIGURA 25 - CAPACIDAD Y DIRECCIN ESCLAVO DE ALGUNOS DISPOSITIVOS DE alimentacin. Tambin se ALMACENAMIENTO DE MEMORIA.

Trabajando con PICAXE

40

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 41

utilizan para poder comunicarse con otros dispositivos con interfase I2C, como sensores de temperatura y convertidores A/D. Direccin esclavo: La direccin del esclavo cambia para dispositivos diferentes (vea la tabla de la figura 25). Para las EEPROM del tipo 24LCxx la direccin es %1010xxxx. Velocidad: La velocidad del bus I2C se selecciona a travs de los comandos I2CFAST para velocidad de 400kHz y I2CSLOW para 100kHz. Direccin control: Los 7 bits superiores del byte de control contienen el cdigo de control junto con la seleccin del chip e informacin adicional de direccin, dependiendo de cada dispositivo. El bit inferior es una bandera interna que indica si es un comando de lectura o escritura y no se debe usar. Por ejemplo, cuando comunicamos al PICAXE con una memoria 24LC01B, el cdigo de control es %1010 y no se usa la seleccin de chip, por lo que el byte de control ser: %10100000 o $A0, tal como se puede observar en la tabla de la figura 25. NOTA: El tamao de direccin enviado (byte o Word) viene determinado por el tamao de la variable usada. Si se usa una variable con tamao byte se enva una direccin de 8 bits. Si se enva una variable de tamao Word, se enva una direccin de 16 bits. Asegurarse de utilizar una variable apropiada al dispositivo a comunicar. READI2C Este comando se usa para leer los datos almacenados de un dispositivo I2C, lee la direccin determinada en el dispositivo I2C y lo almacena en una variable establecida. El orden en que escribimos este comando en un programa es el siguiente: readi2c direccin, (variable,) Direccin (Location) especifica la direccin del I2C mediante un byte del tipo Word. Variable(s) establece dnde se almacenan los bytes del dato ledo. Direccin o Location, define la direccin de inicio de la lectura de datos, aunque se logra tambin leer ms de un byte secuencialmente (si el dispositivo I2C da soporte a lecturas secuenciales). Direccin o Location debe ser un byte que defina al 12cslave. Un comando del 12cslave tiene que haberse ejecutado con anterioridad de la ejecucin del readi2c. Si el hardware del I2C no fue configurado de forma correcta o el byte de localizacin no es el adecuado el valor almacenado en la variable ser 255 ($FF) indicndonos un error. Veamos el siguiente ejemplo de cmo usar el time clock DS1307, donde los datos son enviados/recibidos en cdigo BCD coloca la direccin del esclavo del DS1307 12cslave %11010000, i2cslow, i2cbyte lectura de la hora y fecha y presenta en el depurador: Inicio: readi2c 0, (b0,b1,b2,b3,b4,b5,b6,b7) debug b1 pause 2000 goto inicio

Programacin Fcil de Microcontroladores PICAXE

Club Saber Electrnica N 79

41

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 42

Tengan en cuenta, que estos datos almacenados en b0, b1, b2, b3, b4, b5, b6, b7, adems de poderse visualizar en el depurador del software programming editor mediante el comando debug, podemos adicionar o cambiarlo por el comando sertxd para poder visualizarlo en la pantalla de nuestro PC u algn programa que realicemos en VisualB. READ Lee la informacin de la EEPROM incorporada en la direccin (locatino), y guarda el resultado en una variable dada (b1, b2 w0, w1, etc.). La forma en que se escribe este comando en un programa es la siguiente: read direccin, variable Direccin o location es una variable/constante que especifica la direccin mediante un byte. Variable es un dato elemental para establecer dnde se almacena el byte ledo. Al usar los mdulos Stamp, la forma de almacenar los datos es desde la posicin cero hacia arriba mientras que el almacenamiento del programa se construye hacia abajo desde la posicin 255. Al usar el PICAXE-08 y 18 el almacenamiento de datos se construye hacia arriba desde la posicin 0 y el almacenamiento del programa es hacia abajo desde la posicin 127. Con el programa mostrado en la figura 26 podemos adquirir un dato de un sensor en tiempo real y compararlo con un registro para luego ser impreso en un display LCD. Si bien hay lecturas fsicas que no varan en microsegundos, hay procesos que requieren tener una velocidad de lectura bastante importante para poder funcionar.

Trabajando con PICAXE

FIGURA 26 - EJEMPLO DE USO DE LA INSTRUCCIN READ.

En este ejemplo podemos ver cmo transmitir un dato a un mdulo display de la empresa Revolution Educations. Tenga en cuenta que estos display vienen con un microcontrolador que contiene un pequeo firmware de control por lo que el programa no funciona en cualquier display de LCD.

42

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 43

WRITE

Programacin Fcil de Microcontroladores PICAXE

Con este comando podemos grabar valores en la EEPROM incorporada en el microcontrolador (en la EEPROM interna), en una direccin especificada. El orden del registro guardado, es como explicamos anteriormente cuando ejemplificamos el comando EEPROM, comienza en una direccin dada, y el resto de los caracteres son almacenados en los espacios que estn a continuacin. Por lo dicho, hay que tener precaucin si queremos borrar y refrescar un valor dado en determinada posicin, ya que si nos equivocamos en la posicin de inicio del registro u donde termina, podemos borrar pedazos de otros datos. Este comando tiene la siguiente sintaxis: write Direccin, valor Direccin es una variable o constante que especifica el byte de la direccin de memoria. Valor es una variable o constante que indica el valor del dato a escribir en la memoria. Este comando podemos emplearlo para refrescar datos guardados en un registro de memoria. Tengan en cuenta que la duracin de la grabacin es de 10 ms aproximadamente, y esto nos genera un lag en el watchdog. En la figura 27 tenemos una rutina donde se usa FIGURA 27 - WRITE PERMITE ESCRIBIR DATOS EN MEMORIA INTERNA. esta instruccin. WRITEI2C Graba valores en un dispositivo externo con EEPROM, en una direccin especificada. La sintaxis de este comando es la siguiente: writei2c Direccin, (variable,) Direccin es una variable/constante que especifica el byte de la direccin de memoria. Variable contiene el dato byte(s) que deber ser grabado. Esta orden se usa para escribir datos para el dispositivo I2C. El dato direccin define la direccin del inicio de los datos de escritura, cabe la posibilidad de escribir ms de un byte secuencialmente (si el dispositivo del I2C soporta escritura secuencial tener cuidado al usar EEPROM que a menudo disponen de limitaciones de escritura). Se debe tener en cuenta que la mayora de las EEPROM requieren unos 10ms para efectuar la escritura del dato, con lo cual se deber tener en cuenta este retraso cuando se programe la ejecucin del comando i2cwrite. Si no se tiene en cuenta este tiempo de retardo en la grabacin, los datos pueden corromperse.

Club Saber Electrnica N 79

43

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 44

Antes de usar este comando se debe haber utilizado previamente el comando i2cslave. Si el hardware del I2C no esta correctamente configurado, o se han equivocado los datos del comando i2cslave, no se generar ningn error. Por ello debe asegurarse que los datos han sido correctamente grabados por la orden readi2c. Un ejemplo que muestra la forma de programar la escritura sobre una memoria externa se muestra en la figura 28.

Trabajando con PICAXE

FIGURA 28 - RUTINA DE PROGRAMACIN DE UNA MEMORIA EXTERNA CON EL COMANDO WRITEI2C.

READOWSN Este comando nos permite tener una lectura serie con cualquier dispositivo tipo Dallas de un hilo, que est conectado a un PIN de entrada especfico del PICAXE. La secuencia de escritura del comando es la siguiente: readowsn pin Pin es el PIN o terminal de entrada del PICAXE que tiene conectado el sensor tipo Dallas de un terminal (vea la figura 29). Si se usa un dispositivo del estilo iButton, cuyo nmero de serie est grabado en el chip que contiene la envoltura del iButton, al ejecutar el comando readowsn se realizar la lectura del nmero de serie y guardar el cdigo indicador de la familia en b6, el nmero de serie en b7a b12 y la suma de verificacin en b13. Nunca deber utilizar los registros b6 a b13 para otros propsitos durante la ejecucin del comando readowsn.

FIGURA 29 - CONEXIN DE UN IBUTTON EN UN PICAXE.

44

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 45

DEBUG

Programacin Fcil de Microcontroladores PICAXE

Permite visualizar la informacin contenida en la variable Var en la ventana del depurador durante la ejecucin. Esta instruccin, en el programa, se debe escribir de la siguiente manera: debug Var Var es el nombre de la variable cuyo contenido se quiere visualizar, por ejemplo: debug b1 Es la instruccin que permitir visualizar el contenido de la variable b1. SERTXD Enva uno o ms conjunto de datos al pin de programacin, en formato standard asncrono, usando 8 bit de datos, sin paridad y un BIT de stop (8N1) a 4800 baudios. Este comando nos puede servir para escribir mensajes en nuestro terminal de programacin, sin la necesidad de usar una interfase o convertidor de cdigo como el integrado MAX232. En la figura 30 podemos ver la estructura de un programa que vuelca los datos directamente sobre una pantalla de LCD serie.

FIGURA 30 - CON EL COMANDO SERTXD SE PUEDEN VOLCAR DATOS EN UN DISPLAY DE LCD SERIAL.

Como puede observar, el orden en que escribimos este comando en un programa es: sertxd ({#}data, {#}data ) ({#}data, {#}data ) son variables/constantes opcionales (0-255). Contienen el byte/s que se enviar por el pin de salida. Si la variable es precedida por el signo #, SERTXD convierte un valor decimal en ASCII y guarda el resultado en esa variable.

Club Saber Electrnica N 79

45

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 46

Se pueden enviar cadenas de texto, precedidas por comillas y encerradas dentro de parntesis (En el ejemplo de la figura 30 enviamos Hola Martin). PULSIN Este comando tiene como funcin observar el ancho de un pulso en un PIN de entrada o salida determinado. Si la opcin estado tiene el valor cero, se mide el ancho de un pulso bajo. Si la opcin estado tiene el valor uno, se mide el ancho de un pulso alto. El ancho o duracin medido del pulso as sea con lgica negativo o positiva, se guarda en la variable que queramos establecer (b1, b2, etc.). Si el flanco del pulso nunca aparece, si el ancho del pulso es demasiado grande para ser medido, el valor de esta variable ser igual a cero. Si se usa una variable de 8 bits, solo se usan los bits menos significativos de la medicin de 16 bits. La estructura o sintaxis de la instruccin es la siguiente: pulsin pin, estado, variable Pin es una variable o constante (0-7) que especifica el pin de entrada o salida que se usar. Estado es una variable o constante con los valores 0 1. Estos valores, configuran el tipo de pulso a medir en unidades de 10s (para un cristal de 4MHz). Variable define un registro especfico para almacenar el dato obtenido. La resolucin del comando PULSIN depende de la frecuencia de los osciladores, ya sea internos (RC) u externos. Si se usa un oscilador de 4MHz, el ancho de pulso se obtiene en incrementos de 10s. Si se usa un oscilador de 20MHz, el ancho de pulso tendr una resolucin de 2s. La resolucin siempre cambia con la velocidad del oscilador en uso. Por ejemplo, si en un programa escribimos: pulsin 3,1,b1 Esta instruccin guarda la longitud del pulso introducido en el pin 3 en la variable b1. PULSOUT Genera un pulso en un pin determinado, con un tiempo o perodo especfico. El pulso se genera activando dos veces el PIN, por lo que la polaridad del pulso depende del estado inicial del PIN. Orden en que escribimos este comando en un programa: pulsout pin, tiempo (periodo) Pin especifica la salida que se implementar (0-7) con este comando. Tiempo o Perodo es una variable (o constante) que especifica el tiempo o perodo que tendr el pulso de salida en unidades de 10s para una frecuencia de 4MHz. La resolucin de PULSOUT, al igual que PULSIN, depende de la frecuencia del oscilador. Si se usa un oscilador de 4MHz, el perodo del pulso generado estar en incrementos de 10s. Si se usa un oscilador de

Trabajando con PICAXE

46

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 47

20MHz, estos perodos tendrn una duracin de 2s. Por ejemplo, si en un programa escribimos la sentencia: Pulsout 4,150 Estamos indicando que por el PIN 4 enviaremos un pulso de duracin 150 lo que implica que si usamos un oscilador de 4MHz, como la unidad de duracin es de 10s, significa que por el PIN 4 estaremos enviando un pulso de 1500s (1,5ms). Tenga en cuenta que a mayor velocidad del oscilador, ms trfico de datos podemos mover. Tanto PULSIN como PULSOUT son comandos ideales para comunicacin entre microcontroladores, ya sea por intermedio de infrarrojos o radiofrecuencia. Tambin nos dan la solucin ideal para poder ampliar nuestras entradas digitales a un mximo ilimitado, y que podemos establecer en nuestra rutina que determinado pulso signifique un dato determinado, y que otra cierta cantidad de pulsos represente otro dato determinado. SERIN Este comando se usa para recibir uno o ms conjuntos de datos en un PIN de entrada determinado, en formato standard asncrono, usando 8bit de datos, sin paridad y un bit de stop (8N1). Veamos el orden en que escribimos este comando en un programa: serin pin, baudmode, {#} variable, {#} variable Pin establece el PIN de entrada del PICAXE usado para recibir los datos. Baudmode especifica el modo en el que se transferirn el o los datos, de acuerdo con los siguientes valores: T2400 T1200 T600 T300/T4800 N2400 N1200 N600 N300/N4800 dato dato dato dato dato dato dato dato original original original original invertido invertido invertido invertido

Programacin Fcil de Microcontroladores PICAXE

Variable/s establece que el comando SERIN comience a guardar datos en la variable asociada (w0, w1, b1, b2, etc.). Si el nombre de variable est sola o sea, si hay un slo punto establecido para almacenar los datos entrantes, el valor del carcter ASCII recibido es guardado en esa variable. Si la variable es precedida por el signo #, el comando SERIN convierte un valor decimal en ASCII y guarda el resultado en esa variable. Por ejemplo, si en un programa escribo las sentencias: Serin 6,T2400,b1

Club Saber Electrnica N 79

47

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 48

Estoy diciendo que los datos que vaya a recibir por el PIN6 sern con una velocidad de 2400 baudios, y se almacenarn sin ser invertidos y tal como estn, sin ser convertidos, ya que se supone que estn en ASCII. SEROUT Enva uno o ms conjuntos de datos a un pin de salida, en formato standard asncrono, usando 8 bit de datos, sin paridad y un bit stop (8N1). La sintaxis con la que se escribe este comando en un programa es la siguiente: serout pin, baudmode,({#}data, {#}data ) Pin establece el PIN de salida del PICAXE . Baudmode es una variable o constante que especifica el modo en el que se transferir el o los datos de acuerdo con los valores dados en la tabla de la figura 31.

Trabajando con PICAXE

FIGURA 31 - TABLA DE TRANSFERENCIA DE DATOS PARA EL COMANDO SEROUT.

Variable/s: Este dato, establece la variable o variables que contienen los datos a enviar. Si la variable es precedida por el signo #, el comando SEROUT convierte un valor decimal en ASCII y guarda el resultado en esa variable. Se puede enviar cadenas de texto, precedidas por comillas y encerradas en parntesis, por ejemplo: (Hola). La figura 32 muestra un ejemplo de uso de este comando en una rutina. SETINT Este comando genera una interrupcin en funcin de ciertas condiciones de entrada.

FIGURA 32 - EJEMPLO DE USO DE LA INSTRUCCIN SEROUT.

48

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 49

La interrupcin es el mtodo ms rpido de atender a una peticin de paro del microcontrolador en funcin de condiciones determinadas. Es el nico tipo de interrupcin disponible en el sistema PICAXE y nos puede ser til para rutinas que requieren un watchdog mas rpido y no se tiene un oscilador externo. La forma en que se escribe una lnea de programa con esta instruccin es la siguiente: setint input, mask Input es una variable o constante que establece las condiciones de entrada y nos dice qu entrada es la que va actuar en el efecto de interrupcin. Mask es una variable/constante (75-225) que especifica la mscara. La mscara es la funcin que se tiene que cumplir para ejecutar la interrupcin. El PIN de interrupcin se comprueba entre la ejecucin de cada lnea de cdigo del programa e, inclusive, durante cualquier orden de pausa. Si la condicin particular de entrada de interrupcin se cumple (es cierta), se ejecuta un gosub para la subrutina de interrupcin inmediatamente. Cuando termina la ejecucin de la subrutina de interrupcin, el programa contina en la lnea siguiente desde donde se produjo la llamada a la interrupcin del programa principal. La condicin de entrada de interrupcin es cualquier patrn de 0 y 1 en el terminal de entrada de interrupcin, enmascarado por el byte mask (mscara). Por consiguiente, cualquier bit enmascarado por un 0 en la mascara ser ignorado. Veamos el siguiente ejemplo: Para interrumpir con entrada input1 a nivel alto Setint %00000010, % 00000010 Para interrumpir con entrada input1 a nivel bajo Setint %00000000, % 00000010 Para interrumpir con entrada input0 a nivel alto, input1 a nivel alto e input2 a nivel bajo Setint %00000011, % 00000111 Se admite slo un patrn de entrada en cualquier momento. Para desactivar la interrupcin se debe ejecutar una orden SETINT con el valor 0 como byte de mscara. NOTAS: 1) Cada programa que usa la orden SETINT debe tener la correspondiente subrutina de interrupcin (termina con el correspondiente retorno al programa principal con RETURN) al final del programa principal. 2) Cuando ocurre una interrupcin, ser atendida inmediatamente quedando inhabilitada cualquier interrupcin del programa principal. Si se desease ejecutar nuevamente una interrupcin deber programarse dentro de la subrutina de interrupcin en ejecucin. Queda claro que despus de ser atendida una interrupcin y ejecutar la subrutina asociada quedan habilitadas las peticiones de interrupcin del programa principal. 3) Si la condicin de interrupcin no es atendida dentro de la subrutina, una segunda llamada de interrupcin puede ocurrir inmediatamente. 4) Despus de ser ejecutado el cdigo de la subrutina de interrupcin, la ejecucin del programa conti-

Programacin Fcil de Microcontroladores PICAXE

Club Saber Electrnica N 79

49

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 50

na en la siguiente lnea del programa principal. Si la interrupcin se produce durante la ejecucin de un comando PAUSE, despus de la ejecucin de la subrutina de interrupcin y retorno al programa principal, ignorar el tiempo que restaba de la ejecucin del comando PAUSE y continuar en la lnea siguiente. En el ejemplo de la figura 33, la salida 1 (PIN 1) conectada a un LED que estar apagado y se pondr a nivel alto durante 2 segundos cuando se active la interrupcin (PIN 7 a nivel alto), reactivando de nuevo la interrupcin.

Trabajando con PICAXE

FIGURA 33 - RUTINA DE MANEJO DE INTERRUPCIONES CON EL COMANDO SETINT.

BRANCH Causa que el programa salte a una posicin diferente, basada en una variable indexada. La etiqueta que especifica la direccin, debe estar en la misma etiqueta de la subrutina que contiene la instruccin BRANCH (al igual que FORNEXT). La sintaxis de este comando es la siguiente: branch offset,(direccin0, direccin1.direccin N) Offset es una variable/constante que especifica qu direccin usar (0, 1n). direcciones son etiquetas que especifican a donde ir (a donde debe saltar). La figura 34 muestra una rutina que incluye este comando.

FIGURA 34 - INSTRUCCIN DE SALTO EN UNA RUTINA (USO DE LA INSTRUCCIN BRANCH).

50

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 51

BUTTON

Programacin Fcil de Microcontroladores PICAXE

EL comando BUTTON lee el PIN de entrada establecido y opcionalmente ejecuta un procedimiento interno de anti-rebote y autoproteccin. El orden en que escribimos este comando en un programa: button Pin, Down, Delay, Rate, Bvar, Action, Etiqueta Pin indica cul es la entrada elegida para implementar este comando. Down es para setear el estado del PIN de entrada cuando se oprime el pulsador colocado en la entrada seleccionada (0..1). Delay otorga un contador de ciclos antes de que comience la auto-repeticin (0..255). Si es 0, no se efecta anti-rebote ni auto-repeticin. Si es 255 se eliminan rebotes, pero no auto-repeticin. Rate indica el valor de auto-repeticin (0..255). Bvar es la variable con tamao de byte que se usa internamente para conteo de demoras y repeticiones. Debe ser inicializada a 0 antes de ser usada y no ser usada en cualquier lugar del programa, ya que perderamos los datos almacenados del conteo. Action indica el estado del pulsador al ser actuado puede ser 1 o 0 (podemos invertir el estado de las entradas segn nuestras necesidades). Etiqueta Indica el origen de la ejecucin del comando. La ejecucin comienza en esta etiqueta si es cierto Action. La figura 35 muestra un ejemplo de uso del comando BUTTON.

FIGURA 35 - EJEMPLO DE USO DEL COMANDO BUTTON.

Este comando, me brind la solucin en varias oportunidades en las cuales la fuente de alimentacin me fallaba por ser muy sencilla y tener, a su vez, una muy alta distorsin armnica en la lnea de alimentacin. Si bien uno puede suponer en teora que con una resistencia de 10k en la entrada o implementando optoacopladores podemos suprimir o acondicionar las seales entrantes, en este caso el problema se origina en la propia fuente y, por mas que hagamos intentos, vamos a tener problemas de lectura. COUNT Cuenta el nmero de pulsos en un PIN, durante un perodo (Period) y guarda el resultado en Var (variable). El orden en que escribimos este comando en un programa es el siguiente: count Pin, Period, Var Pin debe ser una constante (0..7) una variable que contenga un nmero de 0 a 15 (B0, por ejemplo) un numero de PIN.

Club Saber Electrnica N 79

51

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 52

Period es un valor numrico (0..65535) y expresa unidades de milisegundos. Variable es del tipo Word y recibe el valor del conteo (0..65535). Checa el estado de PIN mediante un bucle y cuenta las transiciones de bajo a alto. Con un oscilador de 4MHz checa el estado del pin cada 20s. Con un oscilador de 20MHz chequea el estado cada 4s. De esto se deduce que la mayor frecuencia de pulsos que puede ser contada es de 25kHz con un oscilador de 4MHz y de 125kHz con un oscilador de 20MHz si la frecuencia tiene un ciclo til del 50% (los tiempos altos son iguales a los bajos). Vea en la figura 36 un ejemplo de uso de esta instruccin. Este comando, me fue muy til para la elaboracin de un codificador que deba implementar en un TACOMETRO digital de altas RPM que regulaba un acelerador electrnico.
FIGURA 36 - EJEMPLO DE USO DEL COMANDO COUNT.

Trabajando con PICAXE

SERVO Enva un pulso por el PIN de salida establecido para el control de un dispositivo de radio control tipo servo. Aclaremos que no necesariamente tiene que ser para un radio control. En mi caso, lo implemente almbricamente. La sintaxis de programacin es la siguiente: servo pin,pulse Pin es el terminal de salida del PICAXE (0-7). Pulse es una variable/constante (75-225) que especifica la posicin del servo. Este comando pone el PIN de salida a nivel alto durante un tiempo (x0.01 ms) cada 20 ms indicado por el valor de pulse. Generalmente el servo de RC requiere un pulso (0.75 a 2.25ms de duracin) cada 20ms; por consiguiente el comando servo 1,75 mover el servo a la posicin de 0 grados, con el comando servo 1,225 se posicionar en el extremo opuesto 180. Con el comando servo 1,150 colocar el servo en la posicin central. El comando SERVO no se puede usar al mismo tiempo que PWMOUT dado que comparten un contador comn. No se debe usar un valor de pulso menor de 75 o mayor de 255 dado que puede causar que el servo funcione incorrectamente. Debido a las tolerancias en la fabricacin de los servos, todos los valores son aproximados y requieren un ajuste fino por experimentacin. En la figura 37 tenemos una rutina de ejemplo. FIGURA 37 - EJEMPLO DE USO DEL COMANDO SERVO.

52

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 53

SOUND

Programacin Fcil de Microcontroladores PICAXE

Genera un tono y/o ruido blanco en el PIN especificado. PIN se configura automticamente como salida. El orden en que escribimos este comando en un programaes el siguiente: sound pin,(nota,duracin,nota,duracin) Pin es una variable/constante (0-7) que especifica el PIN I/O a utilizar. Nota(s) es una variable o constante (0-255) que especifica la frecuencia del sonido emitido. * si el valor de la Nota es 0, el resultado es: silencio. * si el valor de la Nota es entre (1-127), el resultado son tonos. * si el valor de la Nota es entre (128-255), el resultado es ruido blanco. Duracin es una variable/constante (0-255) que determina la duracin de la nota, en incrementos de 12 ms. Los tonos y el ruido blanco estn en una escala ascendente (por ejemplo: 1 y 128 son las frecuencias menores, 129 y 266 las mayores). Para tener en cuenta, la Nota 1 es aproximadamente de 78,74 Hz y la nota 127 es aproximadamente de 10.000Hz. El comando SOUND entrega como salida ondas cuadradas con nivel TTL. Gracias a las caractersticas del PIC (con el que se obtiene el PICAXE), se puede manejar un parlante a travs de un condensador. El valor del condensador debe ser determinado en funcin de las frecuencias a usar y la carga del parlante. Para el caso de implementar parlantes piezoelctricos o buzzer, estos pueden ser conectados directamente. En la figura 38 tenemos un ejemplo de uso de este comando.

FIGURA 38 - EN PICAXE, CON EL COMANDO SOUND, SE PUEDEN GENERAR SONIDOS Y ENVIARLOS A UN PARLANTE O BOCINA CONECTADO A UN PIN.

NOTA: En caso de implementar el MODULO Sound IN-OUT, debe verificar que est realizando las conexiones en el terminal de salida del mdulo. El principal obstculo cuando se toca msica en un microcontrolador PIC es el limitado espacio de memoria . Todos los chips PICAXE tienen un comando SOUND para hacer ruidos, sin embargo, el nmero de notas y velocidad de reproduccin o tempo, es muy limitado ya que el dato del comando SOUND consume toda la memoria de programa disponible. . oPara resolver esto, el PICAXE-08M tiene el comando nuevo TUNE para reproducir msica . El comando

Club Saber Electrnica N 79

53

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 54

TUNE incorpora un algoritmo de compresin de datos de la nota para ahorrar espacio de memoria, tambin viene pre programado con 4 melodas : Happy Birthday, Jingle Bells, Noche de Paz y Rodolfo el Reno de la nariz roja. Adems puede ser programado con los tonos de timbre de los telfonos celulares que se prefiera. oLos tonos de los celulares se pueden bajar de internet en formato Ring Tone Text Transfer (RTTTF), como los que se usan en la mayora de los telfonos Nokia . oUn microcontrolador simple no puede reproducir melodas complicadas polifnicas, pero se oyen bien las melodas monofnicas (un tono a la vez). READTEMP - READTEMP12 Este comando, lee la temperatura de un sensor digital de temperatura DS18B20 conectado en una entrada analgica y almacena su lectura en una variable dada. La sintaxis del parmetro de programacin es la siguiente: readtemp pin,variable readtemp12 pin,wordvariable Pin designa la pata del puerto de entrada analgica del PICAXE donde estar conectado el sensor. Variable designa la posicin donde se almacena el byte ledo. READTEMP: la resolucin de la lectura es de enteros de grado y el sensor funciona desde -55C hasta +125C. El bit 7 indicar si los valores de temperatura son positivos (0) o negativos (1). READTEMP12: Para programadores avanzados. La temperatura viene expresada con una resolucin de 0,125C y necesita 12 bits para su representacin digital. El usuario debe interpretar los datos a travs de clculo matemtico. Para saber ms sobre el uso de esta instruccin debe consultar la hoja de datos del DS18B20 (www.dalsemi.com). La rutina de ejemplo mostrada en la figura 39 solo es vlida si tenemos el mdulo LCD de Revolutions Actions. Para saber cmo funciona, puede realizar la prctica de simulacin en el Programming Editor, tal como venimos explicando en esta obra.

Trabajando con PICAXE

FIGURA 39 - RUTINA QUE LEE LA TEMPERATURA DE UN SENSOR CONECTADO EN UN PIN DE ENTRADA DEL PICAXE.

54

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 55

Ejecute el Programming Editor en su PC, copie la rutina de la figura 39 y desde la pestaa opcin, vaya a simulacin y seleccione la opcin visualizar y simular comandos de LCD. De esta manera podr ver cmo funciona el programa. Pueden emplear otros comandos para visualizar esta lectura en nuestra PC; como por ejemplo, el comando Debug. PWMOUT Este comando, genera una salida PWM continua usando el mdulo interno del microcontrolador y solo puede ser empleado cuando el microcontrolador tenga una salida especfica para esta funcin. Este comando, es diferente al comando PWM que vimos anteriormente, ya que PWMOUT funciona hasta que otra orden de PWMOUT sea indicada. Este comando resulta eficiente para el control de velocidades de un motor, en proyectos de sistemas X10 y en comunicaciones. Sencillamente, para detener la orden PWMOUT, tan solo debemos enviar otra orden con un valor en period = 0. La sintaxis de esta instruccin es la siguiente: pwmout pin,period,duty cycles Pin define la pata de salida en la que se generarn los pulsos (siempre es 3 en el PICAXE-18X, 2 en el PICAXE-08M y 1 2 en los PICAXE 28X/40X). Period es una variable/constante (0-255) que especifica el perodo del pulso. Duty es una variable/constante (0-1023) que especifica el ciclo de trabajo de la seal PWM. A los fines de referencia, las frmulas de clculo para saber cul es la frecuencia de los pulsos producidos y el ciclo de actividad son las siguientes: pwm period = (period + 1) x 4 x velocidad del oscilador pwm duty cycle = (duty) x velocidad del resonador (speed) La velocidad de oscilador ser de: 1/4.000.000. SETFREQ Establece la frecuencia interna del reloj para el microprocesador PICAXE-18X para 4MHz (por defecto) o para 8MHz. La forma en que se escribe la instruccin es: setfreq freq freqt puede ser m4 o m8 Por ejemplo: setfreq m4 setfreq m8 'frecuencia interna a 4MHz 'frecuencia interna a 8MHz

Programacin Fcil de Microcontroladores PICAXE

Club Saber Electrnica N 79

55

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 56

El cambio de frecuencia no ocurre hasta que el interruptor de arranque se active de nuevo, y el valor es almacenado en memoria interna siendo, ahora, el cambio permanente. SLEEP Coloca al microcontrolador en modo de bajo consumo (duerme) por un perodo de tiempo indicado en seconds segundos. Los retardos pueden ser de hasta 65535 segundos (aproximadamente 18 horas). La sintaxis de programacin es la siguiente: sleep seconds seconds es una variable/constante que especifica la duracin del sleep (0-65535) La instruccin SLEEP usa el WatchDog Timer, por lo que es independiente de la frecuencia del oscilador utilizado. La resolucin es de aproximadamente 2,3 segundos y la exactitud es de aproximadamente un 99,9%, aunque puede variar de acuerdo al dispositivo y la temperatura. El consumo se reduce en una relacin 1/100. Los dados hasta aqu son la mayora de los comandos que acepta PICAXE, no son todos, existen otros especficos que sern explicados cuando se empleen en aplicaciones especiales.

Trabajando con PICAXE

56

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 57

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 58

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 59

CAPTULO 3
Hemos visto en qu consiste el sistema PICAXE y ya sabemos cules son los comandos para poder programarlo en BASIC, adems, en el N 16 de esta coleccin Club Saber Electrnica, explicamos cmo se programa un PICAXE por medio de diagramas de flujo utilizando el Programing Editor. Resta ahora comenzar a programar en BASIC utilizando lo aprendido en el captulo 2 de esta obra, tema del que nos ocuparemos a continuacin.

APRENDIENDO A PROGRAMAR

PICAXE

INTRODUCCIN Para que un microcontrolador desarrolle una tarea mediante la ejecucin del programa que tiene grabado en su memoria, es preciso que el mismo est alimentado y posea componentes externos que permitan su funcionamiento. Normalmente se emplean resistencias, diodos emisores de luz, capacitores, buzzers piezoelctricos (zumbadores), interruptores, etc. El objetivo de este texto es que Ud. utilice al microcontrolador PICAXE como un elemento multipropsito y le saque el mayor jugo posible. Antes de explicar cmo se puede realizar la prueba de los componentes que trabajan con el microcontrolador, daremos algunas consideraciones generales sobre las fuentes de energa que usaremos para alimentar a nuestro circuito. Qu es una batera? Una batera es una fuente de energa elctrica (es una fuente de potencia porttil). Las bateras estn constituidas por elementos qumicos que almacenan energa. Al conectarlas a un circuito, esta energa qumica se convierte en energa elctrica que puede luego alimentar al circuito.

Club Saber Electrnica N 79

59

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 60

Qu tamao de batera se utilizan en electrnica? Las bateras vienen en todo clase de tipos y tamaos. La mayora de las bateras consisten en un grupo de pilas, en donde cada pila provee cerca de 1.5V (figura 1). Por lo tanto 4 pilas crean una batera de 6V y 3 pilas una de 4.5V. Como regla general, mientras ms grande es la batera, ms tiempo durar (ya que contiene ms qumicos y por lo tanto ser capaz de convertir ms energa). Una batera de mayor voltaje no dura ms que una batera de menor voltaje. Por lo tanto, una batera de 6V formada por 4 pilas AA dura mucho ms que una batera PP3 de 9V (batera de 9V comn), ya que por ser fsicamente ms grande contiene una mayor cantidad total de energa qumica. Por lo tanto, aquellos equipos que requieren mucha potencia para operar (por ejemplo un FIGURA 1 reproductor porttil de CDs, el cual tiene un motor y un lser para leer los CDs) siempre utilizarn pilas AA y no bateras PP3. Los microcontroladores PICAXE generalmente requieren entre 3 a 6V para operar, y por lo tanto es mejor utilizar una batera formada por tres a cuatro pilas AA. Nunca utilice una batera PP3 de 9V ya que la alimentacin de 9V puede daar el microcontrolador. Qu tipo de batera debo utilizar? Los distintos tipos de bateras contienen diferentes qumicos. Las bateras de carbn-zinc son las ms baratas, y son adecuadas para utilizarse en muchos circuitos de microcontroladores. Las bateras alcalinas son ms costosas, pero tienen una vida mucho ms larga y se las debe emplear cuando se necesita alimentar dispositivos que requieren mucha corriente tales como motores. Las bateras de litio son mucho ms costosas pero tienen una larga vida, y por lo tanto se utilizan comnmente en circuitos de computadoras, videocaseteras, etc. Otro tipo de bateras son las bateras recargables, las cuales pueden recargarse cuando se agotan. Estas estn hechas, usualmente, de nquel y cadmio (Ni-cad) de hidrxido de metal cadmio (NiMH). Atencin: Nunca haga corto-circuito en los terminales de una pila o una batera. Las bateras alcalinas y las recargables pueden suministrar corrientes muy grandes, y pueden calentarse tanto que pueden llegar a explotar o derretir la carcasa. Siempre asegrese de conectar la batera en el sentido correcto (rojo positivo (V+) y negro negativo -0V tierra-). Si las bateras se conectan al revs, el microcontrolador corre peligro de calentarse y daarse. Los paquetes de bateras se conectan a menudo, al circuito integrado mediante cables con conectores adecuados. Asegrese siempre que los cables rojo y negro estn conectados en la direccin correcta. Tambin es de mucha utilidad pasar los cables de la batera a travs de los agujeros del tablero antes de soldarlos en su lugar (esto proveer una unin mucho ms fuerte, la cual ser mucho menos propensa a soltarse). Nunca use una batera PP3 de 9V para alimentar directamente a un microcontrolador, ya que el mismo slo trabaja con voltajes entre 3 y 6V.

Aprendiendo a Programar PICAXE

60

Club Saber Electrnica N 79

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 61

Algunos soportes de bateras pequeas requieren la soldadura de cables a contactos metlicos en la caja. En este caso debe ser muy cuidadoso de no sobrecalentar los contactos metlicos. Si los contactos se calientan mucho, derretirn el plstico que los rodea y por lo tanto se caern. Una buena manera de prevenir esto es pedirle a un amigo que sostenga los contactos metlicos con una pinza pequea. Las pinzas actuarn como un disipador de calor y ayudarn a evitar que el plstico se derrita. USO
Y

Programacin Fcil de Microcontroladores PICAXE

PRUEBA

DE

LEDS

Un Diodo Emisor de Luz (LED) es un componente electrnico que emite luz cuando la corriente pasa a travs de l. Un LED es un tipo de diodo especial. Un diodo es un componente que slo permite el flujo de corriente en una direccin. Al utilizar un diodo, el mismo debe estar conectado en la direccin correcta. La pata positiva (nodo) de un LED es ms larga que la pata negativa (mostrada por una barra en el smbolo). La pata negativa tambin posee un extremo plano en la cubierta plstica del LED. En la figura 2 se puede observar el aspecto y el smbolo de un led. Para qu se utilizan los LEDs? Los LEDs se utilizan principalmente como luces indicadoras. Los LEDs rojos y verdes se utilizan, FIGURA 2 FIGURA 3 comnmente, en artefactos electrnicos tales como televisores para mostrar si el televisor est encendido o si est en el modo stand-by (en espera). Los LEDs estn disponibles en una variedad de colores diferentes, incluyendo rojo, amarillo, verde y azul. Existen tambin LEDs ultra-brillantes, los cuales se utilizan en luces de seguridad tales como las luces intermitentes utilizadas en bicicletas. Los LEDs infrarrojos producen una luz infrarroja que no es visible al ojo humano, pero que puede utilizarse en dispositivos tales como mandos a distancia de equipo de video. Cmo se usan los LEDs? Los LEDs slo necesitan una pequea cantidad de corriente para operar; esto los hace mucho ms eficientes que las lamparitas elctricas (esto significa, por ejemplo, que si se tuviera una alimentacin por bateras un LED alumbrara por mucho ms tiempo que una bombilla elctrica). Si se pasa demasiada corriente por un LED el mismo se puede daar; es por esto que los LEDs normalmente se utilizan junto con una resistencia en serie para protegerlos de corrientes excesivas. El valor de la resistencia requerida depende del voltaje de la batera utilizada. Para una batera de 4.5V se puede utilizar una resistencia de 330 o 330R que es lo mismo (fig. 3), y para una batera de 3V lo apropiado es una resistencia de 120. Cmo se conecta un LED a un microcontrolador? Debido a que el LED slo requiere una pequea cantidad de corriente para operar, el mismo se puede conectar directamente entre un pin de salida del microcontrolador y 0V (sin olvidar incluir la resistencia en serie para proteccin).

Club Saber Electrnica N 79

61

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 62

Cmo se prueba el LED con el microcontrolador? Despus de conectar el LED al PICAXE, el mismo puede probarse utilizando un simple programa tal como el siguiente: Main: High 0 Wait 1 Low 0 Wait 1 Goto main Este programa debe encender y apagar el LED (conectado al pin de salida 0) una vez por segundo. Para realizar esta primera prctica, ejecute el utilitario Editor de Programa segn lo descrito en este mismo captulo; luego, escriba el programa anterior, conecte la placa entrenadora con el PICAXE colocado, asegrese que el jumper correspondiente est en el lado de programacin, conecte uno de los leds de la placa en la salida 0, descargue el programa (asegrese que el entrenador est bien conectado por medio del cable al puerto serial de la PC), luego corra el jumper a la posicin salida y vea si obtiene el funcionamiento deseado. Si el LED no funciona verifique: 1. que el LED est conectado en la salida 0 (por medio de un simple cablecito). 2. que se est utilizando la resistencia correcta en la placa entrenadora y que el LED est en el sentido correcto. 3. que se est utilizando el nmero de pin correcto dentro del programa. 4. que todos los componentes estn bien soldados. Para la prueba, se puede emplear tambin el circuito de una mascota virtual (figura 4) dado que ser uno de los proyectos que presentaremos ms adelante. El programa de la tabla 1 enciende y apaga 15 veces al LED conectado al pin de salida 0 utilizando una tcnica de programacin BASIC llamada bucle for...next (esta tcnica no puede utilizarse con organigramas). ______________________________________________________________ Tabla 1: Programa para encender y apagar un led 15 veces Main: For b1 = 1 to 15 ;inicio de un bucle High 0 ;se pone en alto la salida 0 Pause 500 ;se hace una pausa de 1/2 seg. Low 0 ;se pone en estado bajo la salida 0 Pause 500 ;se hace una pausa de 1/2 seg. Next b1 ;se contina con el bucle hasta que termine End ; fin del programa ________________________________________________________________

Aprendiendo a Programar PICAXE

El nmero de veces que el cdigo debe repetirse se almacena en la memoria del chip PICAXE utilizando una variable llamada b1 (el PICAXE tiene 14 variables nombradas de b0 a b13). Una variable es un

62

Club Saber Electrnica N 79

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 63

Programacin Fcil de Microcontroladores PICAXE


FIGURA 4

registro de almacenamiento de nmeros dentro del microcontrolador, que el mismo puede utilizar para almacenar nmeros a medida que el programa se ejecuta. Le aconsejamos que lea o repase todo lo anterior nuevamente, que baje de Internet el programa para trabajar con PICAXE y practique con el ejercicio que acabamos de dar y con los que seguimos.

USO

PRUEBA

DE TIMBRES Y

ZUMBADORES

Qu es un zumbador electrnico? Un zumbador electrnico es un miniparlante (minibocina) de bajo costo que se utiliza para hacer sonidos. El sonido generado por el zumbador puede cambiarse alterando las seales electrnicas suministradas por el microcontrolador. Para qu se utilizan los zumbadores? Los zumbadores se utilizan en una gran variedad de diferentes productos para dar retroalimentacin al usuario. Un buen ejemplo de esto es una mquina expendedora, la cual emite un sonido cada vez que se presiona un botn para escoger un refresco o algo para comer. Este sonido da retroalimentacin al usuario para indicarle que se recibi la seal del botn presionado. Otros tipos de zumbadores se utilizan a menudo en tarjetas musicales de cumpleaos, para tocar una meloda cuando se abre la tarjeta. Cul es la diferencia entre un zumbador y un timbre ? El timbre (o sirena) contiene un pequeo circuito electrnico, el cual genera la seal electrnica necesaria para emitir un sonido. Por lo tanto, cuando el timbre se conecta a una batera siempre emitir el mismo sonido. El zumbador no tiene este circuito y por ende necesita una seal externa. Esta seal puede suministrarla un pin de salida del microcontrolador. El zumbador tambin requiere menos corriente para operar y por lo tanto durar ms en circuitos alimentados por bateras. Cmo se usan los zumbadores? La conexin de los zumbadores a un PICAXE es muy sencilla. Simplemente conecte el cable rojo al pin de salida del microcontrolador y el cable negro a 0V (tierra), figura 5. Tome en cuenta que los zumbadores ms econmicos no tienen cubierta plstica exterior. En estos casos es necesario montar el zumbador sobre una seccin del circui-

FIGURA 5

Club Saber Electrnica N 79

63

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 64

to impreso (con cinta adhesiva de doble contacto) para crear un sonido que se pueda escuchar. El circuito impreso acta como una caja de sonido (baffle) y amplifica el sonido emitido por el zumbador. Asegrese de pegar la cinta adhesiva al lado correcto del zumbador (el lado de bronce que no tiene los cables!). En algunas ocasiones puede que desee emitir sonidos ms fuertes. En este caso lo adecuado es utilizar un parlante (bocina) en vez de un zumbador. Al utilizar parlantes es necesario conectar un condensador (por ejemplo un capacitor electroltico de 10F) al circuito del microcontrolador para evitar causarle daos al chip. Recuerde que, al igual que el zumbador, los parlantes slo operan correctamente si estn montados en una caja de sonido. Despus de conectar el zumbador, el mismo puede probarse utilizando un simple programa tal como el siguiente: Main: Sound 2, (65,100) Sound 2, (78,100) Sound 2, (88, 100) Sound 2, (119, 100) Go to main

Aprendiendo a Programar PICAXE

Este programa har que el zumbador (conectado al pin de salida 2) haga 4 sonidos diferentes (valores 65, 78, 88, 119), siguiendo el diagrama de flujo de la figura 6. Vea qu sencillo es programar main (del ingls principal), es una etiqueta que dice que est por empezar el programa. sound 2 es una instruccin que dice que el PICAXE genere un sonido y lo emita por la salida 2, cuya frecuencia depender del primer nmero que est entre parntesis en la instruccin y su valor puede ser cualquiera entre 0 y 127. De la misma mamera que antes, podemos probar este programa, utilizando el entrenador propuesto en este captulo y conectando el zumbador en la salida 2. Ejecute el utilitario Editor de Programa; luego, escriba el programa anterior, conecte la placa entrenadora con el PICAXE colocado, asegrese que el jumper correspondiente est en el lado de programacin, conecte el zumbador en la salida 2, descargue el prograFIGURA 6 ma (asegrese que el entrenador est bien conectado por medio del cable al puerto serial de la PC), luego corra el jumper a la posicin salida y vea si obtiene el funcionamiento deseado. Si el zumbador no funciona verifique: 1. Que el valor del sonido (primer nmero en el parntesis) est entre 0 y 127. 2. Que se est utilizando el nmero de pin correcto dentro del programa. 3. Que todas las conexiones estn bien soldadas.

64

Club Saber Electrnica N 79

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 65

Para probar este elemento tambin puede utilizar el circuito de la mascota virtual. En sntesis, al utilizar el comando sound, el primer nmero indica el nmero de pin (en los proyectos el pin 2 es utilizado frecuentemente). El siguiente nmero es el tono, seguido por la duracin. Mientras ms alto es el tono, mayor ser la altura tonal del sonido (tome en cuenta que algunos zumbadores no pueden emitir tonos muy altos y; por lo tanto, valores mayores de 127 puede que no se escuchen). Al utilizar sonidos mltiples puede incluirlos todos en la misma lnea. Por ejemplo: Sound 2, (65,100, 78, 100, 88, 100, 119, 100) El programa BASIC mostrado en la tabla 2 utiliza un bucle for...next para emitir 120 sonidos diferentes, utilizando la variable b1 para almacenar el valor (tono) del comando sound. El nmero almacenado en la variable b1 aumenta 1 en cada bucle (1-2-3-etc.); por lo tanto, al utilizar la variable b1 en la posicin del tono, la nota se cambia en cada bucle. El programa de la tabla 3 realiza la misma tarea, pero en orden inverso (contando el tono en cuenta regresiva). _____________________________________________________________________ Tabla 2 For b1 = 1 to 120 step-1 ,iniciar un bucle for next Sound 2, (b1, 50) ,emita un sonido con el tono b1 Next b1 , siguiente b1 End ,fin del programa _____________________________________________________________________ Tabla 3 For b1 = 120 to 1 step-1 ,iniciar un bucle for next Sound 2, (b1, 50) ,emita un sonido con el tono b1 Next b1 ,siguiente b1 End ,fin del programa _____________________________________________________________________ Le aconsejamos que baje de Internet el programa para trabajar con PICAXE y realice sus propios ejemplos. Si no tiene los programas para trabajar con los microcontroladores PICAXE, puede bajarlos sin cargo de nuestra web: www.webelectronica.com.mx, haciendo clic en el cono password e ingresando la clave: picaxe212. PRUEBA
Y

Programacin Fcil de Microcontroladores PICAXE

Main:

Main:

USO

DE

SENSORES DIGITALES

Qu son los interruptores digitales? Un sensor digital es simplemente un componente del tipo interruptor, el cual slo puede estar en dos posiciones: encendido apagado. Si dibujramos una grfica de las seales de encendido-apagado

Club Saber Electrnica N 79

65

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 66

del interruptor a medida que se oprime, el mismo se vera como se muestra en la figura 7. Los interruptores son componentes electrnicos que detectan movimientos. Existe una gran variedad de interruptores diferentes, por ejemplo:

Aprendiendo a Programar PICAXE


FIGURA 7

1) interruptores de botn de presin que detectan cuando el botn ha sido oprimido 2) micro-interruptores con palanquitas largas que detectan pequeos movimientos 3) interruptores de nivel que detectan sacudidas 4) interruptores de lengeta (reed switches) que detectan el movimiento de un imn Para qu se utilizan los Interruptores? Los interruptores de botn de presin se utilizan comnmente en dispositivos tales como teclados. Los micro-interruptores se utilizan en alarmas contra robos, para detectar si se ha quitado la cubierta de la caja de la alarma. Los interruptores de lengeta (reed switches) se utilizan para detectar la apertura de puertas y ventanas, y los interruptores de nivel se utilizan a menudo para detectar movimiento en dispositivos tales como juguetes, secadores y alarmas. Los smbolos para un interruptor deslizante y para un interruptor de presin, se muestran en la figura 8. FIGURA 8 Los interruptores se instalan en los circuitos junto a una resistencia como se muestra en el diagrama de la figura 9. El valor de la resistencia no es importante, pero a menudo se utiliza una resistencia de 10k. Cuando el interruptor est abierto, la resistencia de 10k conecta el pin de entrada del microcontrolador a 0V, lo cual da una seal de apagado (nivel lgico 0) al pin de entrada del microcontrolador. Cuando el interruptor se activa, el pin de entrada se conecta al terminal positivo de la batera (V+). Esto da una seal de encendido (nivel lgico 1) al microcontrolador. El interruptor puede probarse utilizando un simple programa tal como el FIGURA 9 mostrado en la tabla 4. Este programa encender o apagar una salida dependiendo de si el interruptor es presionado o no. En este programa las tres primeras lneas constituyen un bucle continuo. Mientras la entrada est apagada, el programa seguir reinicindoTABLA 4

66

Club Saber Electrnica N 79

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 67

se una y otra vez. Si la entrada est encendida, el programa salta a la etiqueta llamada flash. El programa luego enciende por 2 segundos la salida 0 antes de regresar al bucle principal. Note cuidadosamente la ortografa de la lnea: if...then input3 (entrada 3) es una sola palabra (sin espacios en blanco). Es permitido utilizar tanto pin3 como input3, ambas significan lo mismo. Note tambin que despus del comando then, nicamente est la etiqueta en este punto no se permite ninguna otra palabra aparte de la etiqueta. Para realizar la prueba del interruptor con este programa, deber conectar el interruptor en la entrada 3 del entrenador y en la salida deberemos conectar un led. Luego, una vez descargado el programa siguiendo el procedimiento que explicamos para otros ejemplos, cada vez que presione el pulsador y lo mantenga presionado, se encender el led conectado en la salida 0 durante 2 segundos. Recuerde que para programar el jumper de la pata 7 debe estar del lado de programacin y luego del lado de salida 0 para que el circuito trabaje segn lo programado. PRUEBA
Y

Programacin Fcil de Microcontroladores PICAXE

USO

DE

FOTORRESISTENCIAS

Qu es una fotorresistencia? Una fotorresistencia es un tipo especial de resistencia, la cual reacciona a cambios en el nivel de luz. La resistencia de la fotorresistencia cambia a medida que vara la cantidad de luz que incide sobre la ventana del dispositivo. Esto permite a los circuitos electrnicos medir cambios en el nivel de luz. Vea en el captulo siguiente a la explicacin del funcionamiento de los PICAXE-18 la curva de respuesta y otros datos relevantes sobre las fotorresistencias. Para qu se utilizan las fotorresistencias? Las fotorresistencias se utilizan en las lmparas automticas de las rutas para encenderlas durante la noche y apagarlas durante el da. Tambin se utilizan en muchas alarmas y juguetes para medir niveles de luz. La fotorresistencia es un sensor del tipo analgico. Un sensor analgico mide una seal continua tal como luz, temperatura o posicin (en vez de una seal digital de encendido/apagado como es el caso de un interruptor). El sensor analgico provee como seal un voltaje variable. Esta seal de voltaje puede representarse mediante un nmero entre el 0 al 255 (Por ejemplo: muy oscuro = 0, luz brillante = 255). Las fotorresistencias se pueden utilizar de dos maneras. La manera ms simple de utilizar una fotorresistencia es como un simple interruptor de encendido/apagado (digital) cuando el nivel de luz sube por arriba de cierto valor (llamado el valor de umbral), la fotorresistencia enviar una seal de encendido; cuando el nivel de luz est debajo de cierto nivel, la fotorresistencia enviar una seal de apagado. En este caso, la fotorresistencia se coloca en una configuracin de divisor de voltaje con una resistencia estndar. El valor de la resistencia estndar define el valor de umbral. Para fotorresistencias miniatura el valor adecuado es 1k, para fotorresistencias ms grandes del tipo ORP12 una resistencia de 10k es ms adecuada. Si se desea la resistencia fija puede reemplazarse por una resistencia variable de manera que el valor de umbral se pueda ajustar para diferentes valores del nivel de luz (figura 10). FIGURA 10 Una manera ms verstil de utilizar la fotorresistencia es midiendo un cierto nme-

Club Saber Electrnica N 79

67

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 68

ro de valores de luz diferentes, de manera que las decisiones se puedan tomar para niveles de luz cambiantes en vez de un solo nivel de umbral fijo. Un valor cambiante se conoce como un valor analgico. Para medir valores analgicos el microcontrolador debe tener un convertidor analgico/ digital y adems el software utilizado debe ser capaz de soportar el uso de este convertidor. La mayora de los microcontroladores slo tienen convertidores a-d en algunos de sus pines de entrada; por lo tanto, el pin de entrada se debe seleccionar cuidadosamente. En el microcontrolador de 8 patas slo uno de los pines puede utilizarse. El circuito electrnico que utiliza el convertidor a-d es un circuito divisor de voltaje idntico al mostrado en la figura 10. Las mediciones analgicas se realizan dentro del microcontrolador mismo. Para realizar una prueba, conecte la fotorresistencia, la misma se puede probar como un interruptor digital utilizando un simple programa tal como se ve en el diagrama de la figura 11 (que tambin muestra el diagrama de flujo que d origen al programa).
FIGURA 11

Aprendiendo a Programar PICAXE

Este programa encender y apagar la salida 0 de acuerdo al nivel de luz. Para probar la fotorresistencia, conctela al entrenador de la figura 12 y siga los procedimientos que hemos utilizado para la prueba de otros componentes. La misma se puede probar como un sensor analgico utilizando un simple programa, tal como se ve en la figura 13. El comando readadc se utiliza para leer el valor

FIGURA 12

68

Club Saber Electrnica N 79

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 69

Programacin Fcil de Microcontroladores PICAXE


FIGURA 13

analgico (un nmero entre 0 y 255) dentro de la variable b1. Una vez que este nmero est en la variable b1, el mismo se puede probar para ver si es mayor que 100 mayor que 50. Si es mayor que 100 la salida 4 se enciende, si est entre 50 y 100 se enciende la salida 0, y si es menor de 50 ambas salidas se apagan. De esta manera culminamos este captulo presentacin de los microcontroladores PICAXE. Veamos ahora cmo trabajar con los PICAXE-18. R ecordemos: El microcontrolador PICAXE es un PIC al que se le graba un pequeo programita interno (firmware) para que pueda ser programado directamente sin la necesidad de un cargador y los programas se pueden hacer en BASIC y en otros entornos muy amigables. En sntesis, tiene todas las bondades del PIC, pero son mucho ms fciles de usar. A modo de sntesis, por si Ud. ha comenzado la lectura por esta seccin, digamos que el microcontrolador PIC (microcontrolador programable, figura 14) es a menudo descrito como una computadora en un chip. Es un circuito integrado que contiene memoria, unidades procesadoras y circuitos de entrada/salida, en una sola unidad. FIGURA 14 Estos microcontroladores son comprados en blanco y luego programados con un programa especfico de control. Una vez programado, este microcontrolador es introducido en algn producto para hacerlo ms inteligente y fcil de usar. A manera de ejemplo, un horno de microondas (figura 15) puede utilizar un solo microcontrolador para

Club Saber Electrnica N 79

69

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 70

procesar informacin proveniente del teclado numrico, mostrar informacin para el usuario en la pantalla y controlar los dispositivos de salida (motor de la mesa giratoria, luz, timbre y magnetrn). Un microcontrolador puede, a menudo, reemplazar a un gran nmero de partes separadas, o incluso a un circuito electrnico completo. Algunas de las ventajas obtenidas con el uso de microcontroladores en el diseo de productos son:

Aprendiendo a Programar PICAXE

Aumento en la confiabilidad debido al menor nmero de partes. Reduccin en los niveles de existencia ya que un microcontrolaFIGURA 15 dor reemplaza varias partes. Simplificacin del ensamblaje del producto y productos finales ms pequeos. Gran flexibilidad y adaptabilidad del producto, ya que las funciones del producto estn programadas en el microcontrolador y no incorporadas en el hardware electrnico. Rapidez en modificaciones y desarrollo del producto mediante cambios en el programa del microcontrolador, y no en el hardware electrnico. Algunas de las aplicaciones que utilizan microcontroladores incluyen artefactos domsticos, sistemas de alarma, equipo mdico, subsistemas de automviles y equipo electrnico de instrumentacin. Algunos automviles modernos contienen ms de treinta microcontroladores, utilizados en una amplia variedad de subsistemas desde el control del motor hasta el cierre a control remoto. En la Industria, los microcontroladores son usualmente programados utilizando programacin en lenguaje C. Sin embargo, debido a la complejidad de este lenguaje, es muy difcil, para estudiantes muy jvenes de bachillerato, el uso adecuado de dicho lenguaje. UTILIZANDO
EL

COMANDO SYMBOL

Algunas veces es difcil recordar cules pines estn conectados a cules dispositivos. El comando symbol puede, en estos casos, ser utilizado al inicio del programa para renombrar las entradas y salidas. Note que este programa asume la conexin de un timbre externo al pin de salida 7. Ver tabla 5. _______________________________________________________________________ TABLA 5 symbol dp = 7 symbol buzzer = 1 main: high dp low buzzer wait 1 low dp high buzze 'renombrar salida 7 dp (punto decimal) 'renombrar salida 1 buzzer (timbre) 'hacer una etiqueta llamada main 'LED encendido 'timbre apagado ' esperar un segundo ' LED apagado ' timbre encendido

70

Club Saber Electrnica N 79

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 71

wait 1 'esperar 1 segundo goto main 'regresar al inicio (main) ______________________________________________________________________

Programacin Fcil de Microcontroladores PICAXE

Recuerde que los comentarios [explicaciones posteriores al smbolo de apstrofe ()] facilitan mucho la comprensin de cada lnea del programa. Estos comentarios son ignorados por la computadora al descargar un programa al PICAXE. Todo lo que en una lnea est despus de () es ignorado por el programa. Las etiquetas (main: en el programa de la tabla 5) pueden ser cualquier palabra (con la excepcin de palabras claves como por ejemplo switch) pero DEBEN empezar con una letra. Cuando la etiqueta es definida por primera vez debe llevar al final el smbolo de dos puntos (:). Esto indica a la computadora que la palabra es una nueva etiqueta. Este programa utiliza el comando wait. Los comandos wait y pause se utilizan para crear retardos o tiempos muertos. Sin embargo, el comando wait puede ser utilizado nicamente con segundos enteros mientras que pause se puede utilizar para retardos ms cortos (el mismo se asigna en milsimas de segundo). Al comando wait se le pueden asignar nmeros del 1 al 65, los cuales deben escribirse despus del comando. Al comando pause se le pueden asignar nmeros entre 1 y 65535. Es una buena tcnica de programacin usar tabulaciones (o espacios) al inicio de lneas sin etiquetas de manera que los comandos estn alineados. El trmino espacios en blanco es utilizado por programadores para definir tabulaciones, espacios y lneas en blanco. Dichos espacios en blanco, utilizados correctamente, hacen al programa mucho ms fcil de leer y entender (vea las tabulaciones que hemos hecho en el programa de la tabla5; en la primera columna ponemos etiquetas o definimos variables, en la segunda columna colocamos las instrucciones y en la tercera columna estn los comentarios que facilitan la comprensin del programa). NOTA: Algunas versiones antiguas de lenguaje BASIC utilizan nmeros de lnea en vez de etiquetas para trabajar con los comandos goto. Desafortunadamente, este sistema puede ser muy inconveniente ya que si el programa es modificado posteriormente agregando o eliminando lneas, todos los nmeros de lnea posteriores deben ser modificados. El sistema de etiquetas, utilizado en la mayor parte de las versiones modernas de lenguaje BASIC, supera este problema automticamente. El cerebro del sistema PICAXE es el microcontrolador de 18 pines PIC16F627. Este PIC posee un programa que ha sido grabado para convertirlo en un elemento del sistema PICAXE (se llama PICAXE-18). Aunque los microcontroladores son relativamente baratos (algunos microcontroladores cuestan menos de 2 dlares), los mismos son dispositivos muy complejos que contienen miles de transistores, resistencias y otros componentes electrnicos. El microcontrolador PICAXE almacena sus programas (firmware) en su memoria FLASH no voltil. La ventaja de esta memoria es que no pierde el programa descargado cuando la fuente de alimentacin (bateras) es desconectada del circuito (cuando las bateras son reconectadas el programa se inicia nuevamente). Sin embargo, cuando desee reprogramar el PICAXE, puede descargar un nuevo programa; esta accin borra el viejo programa almacenado en la memoria y almacena el nuevo programa en la memoria de programa. La memoria slo permite el almacenamiento de un programa a la vez. Tome en cuenta que no es posible sacar el programa fuera de la memoria del PICAXE para leerlo; por ende, si desea guardar el cdigo de un programa para utilizarlo posteriormente debe guar-

Club Saber Electrnica N 79

71

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 72

darlo en su computadora antes de descargarlo al PICAXE. Esto es una restriccin que el operador debe tener en cuenta, dado que en un PIC s es posible leer el programa grabado en la memoria. El microcontrolador contiene adems de la memoria ROM (Read Only Memory - Memoria de slo lectura), memoria temporal RAM (Random Access Memory - Memoria de Acceso Aleatorio). La memoria RAM es una memoria temporal utilizada para almacenar informacin mientras el programa es ejecutado. La misma es utilizada normalmente para almacenar respuestas de sumas matemticas que el microcontrolador hace mientras est trabajando. Esta memoria es voltil, lo cual significa que tan pronto las bateras son desconectadas, la informacin almacenada en la misma se pierde. Hay 14 bytes de memoria temporal disponibles y los mismos son denominados desde b0 a b13 dentro de los programas. PRACTICANDO
CON EL

Aprendiendo a Programar PICAXE

PICAXE-18

La figura 16 muestra el circuito bsico PICAXE-18. El resistor de 4k7 (4700), conectado en el pin 4, se usa como resistencia de pull-up para quitar al micro del estado de reset. Si desea colocar un sistema de reset, debe conectar un interruptor o pulsador entre el pin 4 y masa (tierra, gnd) de modo que al ser presionado se produzca el estado de reset del micro. Tome en cuenta que el microcontrolador PICAXE no es un microcontrolador en blanco... es un PIC que tiene un programa interno (firmware) para que pueda ser usado con el utilitario Programming Editor! El microcontrolador PICAXE est preprogramado con un firmware de carga que permite la descarga directa de programas con el cable suministrado de slo tres terminales. Los microcontroladores PIC comunes no tienen este programa y por ende no pueden ser programados mediante el sistema PICAXE. El microcontrolador PICAXE-18A es casi idntico al microcontrolador PICAXE18 estndar, pero es ligeramente ms costoso ya que tiene el doble de capacidad de memoria (aproximadamente 80 lneas de programacin BASIC en vez de 40) y salidas analgicas de alta resolucin (en vez de baja resolucin). El sistema PICAXE utiliza una interfaz al puerto serie FIGURA 16

72

Club Saber Electrnica N 79

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 73

de la computadora muy simple (es un cable de tres hilos). Aunque esta interfaz no utiliza verdaderos voltajes RS232, es de muy bajo costo y ha tenido un desempeo confiable en casi todas las computadoras modernas. Si bien ya mostramos en el captulo 1 cmo se programa el micro PICAXE, en la figura 17 volveFIGURA 17 mos a mostrar cmo se conecta este cable en la placa del entrenador. Es altamente recomendable utilizar esta interfaz, ya que cada vez que quiera programar el chip no debe quitarlo de la placa de circuito impreso, slo debe conectar el cable entre la placa y la computadora, ejecutar el programa Programming Editor y hacer la descarga correspondiente... as de simple! NOTA: Hoy las computadoras porttiles ya no tienen puerto serial y, en ese caso, debe usar un adapatador (vea el captulo 1), por otro lado, a mayor parte de las computadoras de escritorio tienen dos puertos serie, normalmente denominados COM1 y COM2. El software Editor de Programacin (Programming Editor) debe ser configurado con el puerto al cual el microcontrolador est conectado. Para ello, en el men desplegable seleccione Ver -> Opciones -> Puerto Serie, para elegir el puerto serie correspondiente en su computadora. Si ya compr un cable de sistema PICAXE armado y utiliza una computadora que posee el antiguo conectador de puerto serie de 25 pines, utilice un adaptador 9-25 para poder conectar el cable PICAXE de 9 pines. Estos adaptadores pueden ser comprados en cualquier tienda (casa) especializada en computadoras. Pero tambin, Ud. puede armar el cable siguiendo las instrucciones que le daremos oportunamente. UTILIZANDO BUCLES FORNEXT Con frecuencia, es til repetir una parte de un programa varias veces, por ejemplo al encender/apagar sucesivamente un diodo LED (Light Emitting Diode, Diodo emisor de luz). En estos casos un bucle fornext puede ser utilizado. El programa de la tabla 6 enciende y apaga 15 veces el diodo LED conectado al pin de salida 7. El nmero de veces que el cdigo debe ser repetido es almacenado usando la variable b0 (el PICAXE tiene 14 variables de 1 byte para uso general, nombradas de b0 a b13 en la memoria RAM del chip PICAXE). Estas variables pueden ser renombradas usando el comando symbol con el fin de hacerlas ms fcil de recordar. _______________________________________________________________________ TABLA 6 symbol counter = b0 symbol dp = 7 main: 'definir la variable counter como b0 'asignar al pin 7 con el dp

Programacin Fcil de Microcontroladores PICAXE

Club Saber Electrnica N 79

73

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 74

for counter = 1 to 15 'iniciar un bucle for.....next high dp 'encender pin 7 pause 500 'esperar 0,5 segundos next counter 'siguiente counter (b0) end 'fin del programa ______________________________________________________________________

Aprendiendo a Programar PICAXE

Note nuevamente cmo los espacios en blanco han sido utilizados para mostrar claramente todos los comandos contenidos entre los comandos for y next. CONTROLANDO
LA

VELOCIDAD

DE UN

MOTOR

Debido a que el sistema PICAXE opera muy rpidamente, es posible controlar la velocidad de motores, encendindolos y apagndolos muy rpidamente. Este tipo de control se conoce como PWM (Pulse Width Modulation, Modulacin por ancho del impulso). La PWM es una buena tcnica de control ya que permite a los motores operar a bajas velocidades manteniendo un alto torque (fuerza de giro). FIGURA 18 La PWM es utilizada frecuentemente en muchas aplicaciones, por ejemplo, para controlar la velocidad de taladros y destornilladores elctricos. Para que la PWM funcione correctamente, se necesitan motores de alta calidad. Los programas aqu mostrados estn diseados para motores solares y puede que no funcionen correctamente si se utilizan motores de juguete baratos. Para la conexin del motor en nuestro entrenador, vea la figura 18. El programa se muestra en la tabla 7. _____________________________________________________________________________________ TABLA 7 symbol symbol symbol symbol mark1 = b6 space1 = b7 mark2 = b8 space2 = b9 'renombrar variables

let mark1 = 2 let space1 = 10 let mark2 = 20 let space2 = 10

'precargar mark1/space1 con relacin de 2:10 (1:5) 'precargar mark2/space2 con relacin de 20:10 (2:1)

74

Club Saber Electrnica N 79

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 75

for b2 = 1 to 200 'iniciar un bucle for...next high 0 'encender motor pause mark1 'esperar tiempo indicado por mark1 low 0 'apagar motor pause space1 'esperar tiempo indicado por space1 next b2 'siguiente b2 pause 2000 'detener motor por 2 segundos for b2 = 1 to 200 'iniciar un bucle for.....next high 0 'encender motor pause mark2 'esperar tiempo indicado por mark2 low 0 'apagar motor pause space 2 'esperar tiempo indicado por space1 next b2 'siguiente b2 pause 2000 'detener motor por 2 segundos goto main _____________________________________________________________________________________ Intente seguir el programa para ver si puede comprenderlo; si no lo logra.... no se preocupe, recin estamos empezando. USO
DE TIMBRES Y

main:

Programacin Fcil de Microcontroladores PICAXE

ZUMBADORES ELECTRNICOS

EN EL

SISTEMA PICAXE

Los timbres emiten un sonido cuando estn conectados a una fuente de alimentacin. Este sonido, usualmente, est fijo a una frecuencia determinada; as, los timbres pueden emitir un solo tono. Los zumbadores electrnicos usan un tipo de sistema y pueden ser utilizados para emitir sonidos en diferentes tonos al proveerlos con una salida de diferentes frecuencias. El sistema PICAXE puede crear automticamente sonidos de diferentes frecuencias utilizando el comando sound (ver tabla 8). _____________________________________________________________________________________ TABLA 8 main: sound 6, (50,100) 'emitir un sonido en salida 6 con frecuencia 50 y longitud 100 sound 6, (100,100) 'emitir un sonido en salida 6 sound 6, (120,100) 'emitir un sonido en salida 6 pause 1000 'esperar 1 segundo goto main 'saltar al inicio del programa (main) _____________________________________________________________________________________ Para probar este programa se debe instalar un zumbador electrnico en el tablero tutorial (entrenador). Para hacer esto, ubique los conectores del zumbador, marcados con la palabra PIEZO (figuras 19 y 20). Luego suelde el cable rojo al agujero marcado + y el cable negro al agujero marcado -.

Club Saber Electrnica N 79

75

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 76

FIGURA 19 En el programa, el primer nmero indica el nmero de pin (en el tablero tutorial el pin de salida 6 es utilizado). El siguiente nmero es el tono, seguido por la duracin del sonido (longitud). Mientras ms alto sea el nmero de tono, mayor ser la altura tonal del sonido (frecuencia, note que algunos zumbadores no pueden producir tonos muy altos y por lo tanto nmeros de tono mayores de 127 puede que FIGURA 20 no sean escuchados). El siguiente programa que vemos en la tabla 9 utiliza un bucle fornext para producir 120 sonidos diferentes. El nmero almacenado en la variable b0 aumenta 1 unidad en cada bucle (1-2-3, etc.). Por consiguiente, al utilizar la variable b0 para asignar el tono, el mismo puede ser cambiado en cada bucle. _____________________________________________________________ TABLA 9 main: for b0 = 1 to 120 'iniciar un bucle for....next sound 6, (b0,50) 'emitir sonido en salida 6 con frecuencia b0 y longitud 50 Next b0 'siguiente b0 end _____________________________________________________________________________________ En la tabla 10 se ve el programa que realiza la misma funcin pero cambiando el tono en orden descendente, es decir de 120 a 1. _____________________________________________________________________________________ TABLA 10 main: for b0 = 120 to 1 step -1 'iniciar un bucle for.....next (en cuenta regresiva) sound 6, (b0, 50) 'emitir sonido en salida 6 con frec. b0 y longitud 50 next b0 'siguiente b0 end _____________________________________________________________________________________ En la tabla 11 vemos el programa que emite todos los 256 sonidos posibles. _____________________________________________________________________________________ TABLA 11 main: sound 6, (b0, 50) 'emitir sonido en salida 6 let b0 = b0 + 1 'sumar 1 al valor de la variable b0 goto main 'ir a inicio del programa (main) _____________________________________________________________________________________ En este ltimo caso el programa es ejecutado indefinidamente. Sin embargo, es importante comprender cmo el PICAXE ejecuta las operaciones matemticas. El PICAXE slo interpreta nmeros en byte, o sea nmeros enteros del 0 al 255. No puede interpretar fracciones, ni nmeros negativos, ni nmeros mayores de 255.

Aprendiendo a Programar PICAXE

76

Club Saber Electrnica N 79

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 77

As, si se trata de sumar 1 a 255, el PICAXE saltar de nuevo a 0. Por consiguiente, en el programa anterior, el valor de la variable b0 se comportar de la siguiente manera mientras el programa se ejecuta: 252-253-254-255-0-1-2- etc. USO
DE

Programacin Fcil de Microcontroladores PICAXE

ENTRADAS

CON

SENSORES DIGITALES

Un sensor digital es un simple sensor del tipo interruptor que slo puede estar en dos posiciones: encendido apagado. Algunos ejemplos de sensores digitales comunes son: Microinterruptores Interruptores de botn de presin e interruptores oscilantes Interruptores de lengeta La placa entrenadora propuesta para esta prctica tiene dos interruptores de presin conectados a las entradas 6 y 7 (figura 21). Adicionalmente se pueden conectar otros dos interruptores a las entradas 0 y 1. En la tabla 12 vemos el programa que indica al PICAXE cmo reaccionar cuando los interruptores de botn de presin son presionados. En el programa el pin de salida 7 se ilumina cada vez que el interruptor de botn de la entrada 6 es presionado.

FIGURA 21

_____________________________________________________________________________________ TABLA 12 main: 'hacer etiqueta llamada main if input6 is on then flash 'si la entrada 6 (Input 6) est encendida ir 'a flash sino ir a main goto main flash: 'hacer etiqueta llamada flash high 7 'encender salida 7 (output 7) pause 2000 'esperar 2 segundos low 7 'apagar salida7 goto main 'ir a main _____________________________________________________________________________________ En este programa las tres primeras lneas forman un bucle continuo. Si la entrada est apagada el programa se reiniciar una y otra vez. Una vez que el interruptor es presionado, el programa salta a la etiqueta llamada flash. El programa luego activa la salida 7 por dos segundos antes de regresar nuevamente a main. Note cuidadosamente la ortografa en la lnea del comando ifthen entrada6 (input6) es una sola palabra (sin espacios en blanco). Note tambin que nicamente se debe escribir la etiqueta posterior al comando then no se permite ninguna otra palabra aparte de la etiqueta.

Club Saber Electrnica N 79

77

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 78

USO

DE

ENTRADAS

Aprendiendo a Programar PICAXE


CON

SENSORES ANALGICOS

Los sensores analgicos miden seales continuas tales como luz, temperatura o posicin. El sensor analgico provee una seal que consiste en un voltaje variable (figura 22). Este voltaje puede luego ser representado con un nmero del 0 al 255 (Por ejemplo muy oscuro = 0, luz muy brillante = 255). Ejemplos tpicos de sensores analgicos son: Fotorresistencias LDRs (Light Dependent Resistors - Resistencias variables con la luz ). Termistores Resistencias variables (potencimetros) El tablero tutorial (entrenador) posee una fotorresistencia montada en el mismo, la cual est conectada a la entrada 2 (input2). La fotorresistencia es un componente cuya resistencia cambia al variar la intensidad de luz que incide sobre la misma, es decir, su resistencia cambia segn el nivel de luz. Bajo luz brillante su resistencia es baja (tpicamente alrededor de 1k) mientras que en la oscuridad, su resistencia es muy alta (tpicamente alrededor de 1M). En la figura 23 se muestra el smbolo y la curva tpica de resistencia contra intensidad de luz para la fotorresistencia. La fotorresistencia est conectada a la entrada 2 en configuracin de divisor de voltaje. Tal como se muestra en la figura 24.

FIGURA 22 FIGURA 23

FIGURA 24

Cmo se Leen las Entradas Analgicas El valor de una entrada analgica puede ser fcilmente copiado dentro de una variable utilizando el comando readadc. Luego, se puede probar el valor de la variable (0 a 160). El programa de la tabla 13 enciende un diodo LED si el valor es mayor que 120 y otro diodo LED, si el valor es menor de 70. Si el valor est entre 70 y 120, ambos diodos LED permanecen apagados. _____________________________________________________________________________________ TABLA 13 main: readadc 2,b0 if b0 > 120 then stop if b0 < 70 the bot low 1 'hacer etiqueta llamada main 'leer seal de canal 2 en variables b0 'si b0 >120 ir a stop 'si b0 <70 ir a bot 'sino apagar 1

78

Club Saber Electrnica N 79

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 79

low 2 goto main top:

Programacin Fcil de Microcontroladores PICAXE


'y apagar 2 'ir a main 'hacer una etiqueta llamada top 'encender 1 'apagar 2 'ir a main

high 1 low 2 goto main

'hacer una etiqueta llamado bot high 2 'encender 2 low 1 'apagar 1 goto main 'ir a main _____________________________________________________________________________________ Note que el microcontrolador PICAXE-18 tiene tres canales o entradas analgicas nombradas del 0 al 2. En el tablero de nuestro entrenador la fotorresistencia est conectada permanentemente al pin 2, pero los otros dos canales (0 y 1) estn libres para conectar otros sensores. Frecuentemente, al utilizar sensores anlogos es necesario calcular el valor de umbral necesario para el programa (esto es, los valores 70 y 120 en el programa anterior). El comando debug permite ver fcilmente el valor en tiempo real de un sensor, permitiendo calcular el valor umbral experimentalmente. Al ejecutar el programa de la tabla 14 aparecer una ventana de depuracin (debug) en la pantalla de la computadora, indicando el valor de la variable b0. _____________________________________________________________________________________ TABLA 14 main: 'hacer etiqueta llamada main readadc 2,b0 'leer seal de canal 2 en variable b0 debug b0 'transmitir valor a la pantalla del ordenador pause 100 'pausa corta goto main 'ir a main _____________________________________________________________________________________ A medida que el sensor es probado con la variable, la ventana va indicando la lectura actual del sensor. De esta manera damos por terminada la edicin de este texto. Aclaramos que en este captulo hemos hecho referencia al PICAXE-18 porque en el tomo del Club N 29 trabajamos con el PICAXE-08. Si Ud. desea descargar el curso programado con Test de Evaluacin, asistencia por Internet y Diploma avalado por importantes Instituciones, siga las instrucciones que brindamos en la pgina 2..

bot:

Club Saber Electrnica N 79

79

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 80

3 de forros 2.qxd

9/5/11

12:54 PM

Pgina 3Fo1

4 de forros.qxd

9/5/11

12:55 PM

Pgina 4Fo1