84

Prog Picaxe

Embed Size (px)

Citation preview

Page 1: Prog Picaxe

Portada club 79M 9/5/11 12:58 PM Página 1

Page 2: Prog Picaxe

2ª de forros.qxd 9/5/11 12:53 PM Página 2ªFo1

Page 3: Prog Picaxe

CAPÍTULO 1:QUÉ SON Y CÓMO SE USAN LOS PICAXE . . . .3Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3Ventajas del Sistema PICAXE . . . . . . . . . . . . . . . . .6Comenzando a Trabajar con PICAXE . . . . . . . . . .8El Editor de Programas . . . . . . . . . . . . . . . . . . . . .9Los Distintos Tipos de PICAXE . . . . . . . . . . . . . . . .12Kits PICAXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14Tarjeta Entrenadora PICAXE-08 . . . . . . . . . . . . . .14Tarjeta Entrenadora PICAXE-18 . . . . . . . . . . . . . .16PLC PICAXE-18 (ICA-017) . . . . . . . . . . . . . . . . . . .16Control de Display de LCD para PICAXE-18 . . . .16

CAPÍTULO 2TRABAJANDO CON MICROCONTROLADORES

PICAXE . . . . . . . . . . . . . . . . . . . . . . . . .19Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . .19El Sistema PICAXE . . . . . . . . . . . . . . . . . . . . . . .20Comenzando las Prácticas . . . . . . . . . . . . . . . . .22Usando COMENTARIOS . . . . . . . . . . . . . . . . . . . .22Uso de SYMBOL . . . . . . . . . . . . . . . . . . . . . . . . . .23Uso de Constantes . . . . . . . . . . . . . . . . . . . . . . .23Designación de Variables . . . . . . . . . . . . . . . . . .24Los Comandos de Programación BASIC en PICAXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25GOTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25GOSUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26FOR ... NEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . .27HIGH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29LOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29INPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29OUTPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29END . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30IF…THEN IF…AND…THEN IF…OR…THEN . . . . . . .31PAUSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33WAIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33

RETURN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34INFRAIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34READADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35READADC10 . . . . . . . . . . . . . . . . . . . . . . . . . . . .36PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36

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

CAPÍTULO 3APRENDIENDO A PROGRAMAR PICAXE . . . . . .59Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . .59¿Qué es una batería? . . . . . . . . . . . . . . . . . . . . .59Uso y Prueba de LEDs . . . . . . . . . . . . . . . . . . . . .61Uso y Prueba de Timbres y Zumbadores . . . . . .63Prueba y Uso de Sensores Digitales . . . . . . . . . .65Prueba y Uso de Fotorresistencias . . . . . . . . . . . .67Utilizando el Comando Symbol . . . . . . . . . . . . .70Practicando con el PICAXE-18 . . . . . . . . . . . . . .72Utilizando Bucles For…Next . . . . . . . . . . . . . . . . .73Controlando la Velocidad de un Motor . . . . . . .74Uso de Timbres y Zumbadores Electrónicos en el Sistema PICAXE . . . . . . . . . . . . . . . . . . . . .75Uso de Entradas con Sensores Digitales . . . . . . .77Uso de Entradas con Sensores Analógicos . . . . .78Cómo se Leen las Entradas Analógicas . . . . . . .78

Club Saber Electrónica Nº 79

1

Programación Fácil de Microcontroladores PICAXE

SUMARIOProgramación Fácil deMicrocontroladores

PICAXE

sumario club 79 picaxe 9/6/11 10:02 AM Página 1

Page 4: Prog Picaxe

Club Saber Electrónica Nº 79

2

Qué Son y Cómo se Usan los PICAXE

Director Ing. Horacio D. Vallejo

ProducciónJosé María Nieves (Grupo Quark SRL)

Selección y Coordinación:Ing. Horacio Daniel Vallejo

EDITORIAL QUARK S.R.L.

Propietaria de los derechos en castellano de la publicación men-sual SABER ELECTRÓNICA - San Ricardo 2072 (1273) -Capital Federal - Buenos Aires - Argentina - T.E. 4301-8804

Administración y NegociosTeresa C. Jara (Grupo Quark SRL)

Patricia Rivero Rivero (SISA SA de CV)Margarita Rivero Rivero (SISA SA de CV)

StaffLiliana Teresa Vallejo

Mariela VallejoDiego VallejoFabian Nieves

Luis Alberto Castro Regalado (SISA SA de CV)José Luis Paredes Flores (SISA SA de CV)

Sistemas: Paula Mariana VidalRed y Computadoras: Raúl Romero

Video y Animaciones: Fernando FernándezLegales: Fernando Flores

Contaduría: Fernando DucachTécnica y Desarrollo de Prototipos:

Alfredo Armando Flores

Atención al ClienteAlejandro Vallejo

[email protected]

Internet: www.webelectronica.com.mx

Publicidad:Rafael Morales

[email protected]

Club SE:Grupo Quark SRL

[email protected]

Editorial Quark SRLSan Ricardo 2072 (1273) - Capital Federal

www.webelectronica.com.ar

La Editorial no se responsabiliza por el contenido de las no-tas firmadas. Todos los productos o marcas que se mencio-nan son a los efectos de prestar un servicio al lector, y no en-trañan responsabilidad de nuestra parte. Está prohibida lareproducción total o parcial del material contenido en estarevista, así como la industrialización y/o comercializaciónde los aparatos o ideas que aparecen en los mencionados tex-tos, bajo pena de sanciones legales, salvo mediante autoriza-ción por escrito de la Editorial. Octubre 2011.

Impresión: Talleres Babieca - México

Si esta es la primera vez que lee sobre este tema, le comentamos quePICAXE es un sistema de microcontroladores que nació como un pro-yecto educativo y que, rápidamente, se convirtió en referente para apren-der a diseñar sistemas microcontrolados mediante programaciones fáci-les de comprender.

Básicamente son microcontroladores PIC a los que la empresaEducation Revolution les programa un firmware para que puedan serprogramados en el circuito en que se los va a utilizar (no es preciso unprogramador) utilizando una aplicación llamada Programing Editor quepermite hacer programas en diagramas de flujo y en lenguaje Basic.

En los tomos de colección Nº 7, 16 y 29 de esta obra, Club SaberElectrónica, nos dedicamos a explicar qué es PICAXE, cómo se los pro-grama mediante el uso de diagramas de flujo y dimos varios circuitosprácticos.

El objetivo de este tomo es introducirlo al lenguaje BASIC de modoque aprenda a programar utilizando un lenguaje sencillo que posee muypocas instrucciones, con el que podrá darle “más poder” a los PICAXEdado que podrá ahorrar líneas de comando, haciendo más efectiva a lamemoria EEPROM de estos micros.

Para la elaboración del capítulo 2 nos basamos en escritos delIngeniero Martín Alejandro Torres Fortelli de “ElectroEscuela Virtual”quien propone ejemplos básicos para que Ud. aprenda mientras realizasus propias prácticas de simulación en el Programing Editor.

A su vez, le brindamos la oportunidad de descargar 2 discos com-pactos completos, uno con un Curso Programado de PICAXE con Testde Evaluación y Diploma extendido por importantes Instituciones y otrocon un Curso en video sobre Programación de MicrocontroladoresPICAXE.

Esperamos que disfrute de este material. ¡Hasta el mes próximo!

SOBRE LOS CDS Y SU DESCARGA

Ud, podrá descargar de nuestra web 2 CDs: “CursoProgramado de Microcontroladores PICAXE” y “Ambiente deProgramación de Microcontroladores PICAXE” (en video). Elprimero incluye un curso con asesoramiento a través de Internet yDiploma de aprobación. Para realizar la descarga deberá ingresara nuestra web: www.webelectronica.com.mx, tendrá que hacerclic en el ícono password e ingresar la clave “picaxe79”. Tengaeste texto cerca suyo ya que se le hará una pregunta aleatoria sobreel contenido para que pueda iniciar la descarga.

EditorialDel Editor al Lector

sumario club 79 picaxe 9/6/11 10:02 AM Página 2

Page 5: Prog Picaxe

Club Saber Electrónica Nº 79

3

Los microcontroladores PICAXE, mas queser considerados como una serie de cir-cuitos integrados fáciles de programar,constituyen la integración de todo un sis-tema en el cual están involucrados, aparte de los dispositivos electrónicos (lospropios microcontroladores PICAXE), elsoftware para programarlos (entorno deprogramación Programming Editor y apli-cación Logicator).La ventaja que se tiene al utilizar losmicrocontroladores del sistema PICAXE esque, aun sin tener conocimientos, se puede aprender de una manera muy fácil, ya que uti-liza un lenguaje BASIC muy sencillo, además de contar también con la posibilidad de pro-gramarlos con diagramas de flujo.En este capítulo explicaremos qué son los PICAXE, cómo podemos realizar fácilmente diseñosde sistemas que los contengan, qué tipos de PICAXE podemos encontrar y cómo se usa elentorno de programación

INTRODUCCIÓN

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 simulación que verifique queestá todo bien. Luego, se precisa un cargador para “descargar” el programa en la memoria del PIC, ypor ú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 (firm-ware) para que pueda ser “cargado” en la misma placa donde va a funcionar por medio de un soft-ware 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 operaciónera una suma de 1 bit, se comenzó con una carrera tecnológica que lejos de ver el fin, día a día valogrando cosas inimaginables, tal es el caso de los microcontroladores que vendrían a ser el ejemploresumido y en miniatura, de una computadora personal (PC).Un microcontrolador del sistema PICAXE puede ser de 8, 18, 28 o 40 terminales o más (figura 1), inter-

CC APÍTULAPÍTUL OO 11

QUÉ SON Y CÓMO SE USAN LOS

PICAXE

Cap 1 - PICAXE 9/6/11 10:03 AM Página 3

Page 6: Prog Picaxe

namente dentro de su encapsulado, posee comoequipamiento mínimo un microprocesador, memo-ria RAM, y distintas versiones de memoria ROM. Los microcontroladores más avanzados, aparte de lomencionado anteriormente, también llegan aposeer temporizadores ADC, DAC, Comunicación enparalelo, USAR, etc.Un microcontrolador, desde el punto de vista de ope-ración, puede considerarse como si fuera una PC, yaque cuenta con el conjunto básico de implementosque necesita para realizar sus funciones, esto es,microprocesador, disco duro, memoria RAM, etc.Clásicamente, cuando programamos un microcon-trolador, de forma implícita se tiene que desarrollarun programa que trabaja a manera del BIOS de unaPC, ya que lo primero que debemos tomar encuenta es la configuración de sus puertos, ya seacomo de entrada o de salida, configurar sus demásherramientas como pueden ser los temporizadores,los ACD, etc. Han aparecido en el mercado, sistemasde desarrollo que permiten la programación delmicrocontrolador de una manera relativamente fácil,en la cual se puede emular el proceso que nos inte-resa desarrollar. Para la mayoría de estos sistemas de desarrollo, unavez que se tiene terminada la aplicación, el pasosiguiente es armar el prototipo e insertar el microcon-trolador debidamente programado. En la figura 2 sepuede observar un kit de desarrollo para trabajar con microcontroladores, en este caso con el sistemaPICAXE. Tenga en cuenta que no es preciso que compre programa alguno para empezar a trabajar,dado que lo puede bajar gratis de Internet, además, Ud. puede armar el cable de conexión a la PC yla placa de circuito impreso del dispositivo que desee.Hace apenas un tiempo, se ha lanzado al mercado el sistema de desarrollo para programar microcon-troladores PIC llamado PICAXE, que de por sí, quien ha utilizado estos microcontroladores, puede cons-tatar lo sencillo que resulta su programación, el sistema de desarrollo PICAXE hace las cosas todavía mássencillas para el programador.El sistema de desarrollo PICAXE hace las cosas todavía más sencillas para el programador, ya quecuenta con dos opciones de diseñar una aplicación: una por medio de diagramas de flujo y otra pormedio de “BASIC”, y aunque esto no es ninguna novedad, (ya que estas herramientas existían con ante-rioridad), lo ventajoso del PICAXE radica en el hecho de que se trata de un microcontrolador PIC que, enun segmento de memoria ROM interna le ha sido grabado desde su fabricación, un firmware a manerade BIOS que simplifica la forma de programarlo. Al igual que en todos los sistemas de desarrollo, existen ya predefinidas toda una serie de tarjetas deprácticas sobre las cuales podemos emular las aplicaciones que hemos diseñado, pero gracias al firm-

Club Saber Electrónica Nº 79

4

Qué Son y Cómo se Usan los PICAXE

FIGURA 1 - UN PICAXE ES UN PIC DE

MICROCHIP AL QUE SE LE AGREGÓ UN FIRMWARE

PARA FACILITAR SU PROGRAMACIÓN.

FIGURA 2 - LA EMPRESA EDUCATION

REVOLUTION FACILITA HERRAMIENTAS PARA

APRENDER A TRABAJAR CON LOS MICROCONTRO-LADORES PICAXE.

Cap 1 - PICAXE 9/6/11 10:03 AM Página 4

Page 7: Prog Picaxe

ware que poseen los microcontroladores PICAXE “sepuede armar la aplicación completa incluyendo almicrocontrolador”, y sobre la aplicación programarlosin necesidad del sistema de desarrollo, ni del circuitoprogramador de microcontroladores (vea la figura 3).De hecho, el sistema PICAXE hace más accesible laprogramación de microcontroladores a todas aque-llas personas que tan sólo cumplan con el único eindispensable requisito que es el de querer aprender.Vea en la figura 4 una “pantalla” de la aplicación quenos permitirá realizar el programa que vamos a car-gar adentro del PIC.Aquí no vamos a mencionar las ventajas y desventa-jas del sistema PICAXE con respecto a otros, lo único

que podemos agregar es quese trata de otra manera de pro-gramar microcontroladores PIC,empleando diagramas de flujoy/o lenguaje BASIC (figura 5),con los cuales, ya sea demanera consciente o total-mente implícita, recurrimos aellos para elaborar un pro-grama. Debemos aclarar que para pro-gramar en diagrama de flujo, laempresa Education Revolutiondesarrolló la aplicación“Logicator” que también sirvepara trabajar con PICs y de lacual hablaremos más ade-lante. La empresa mencionaque en el futuro ya no actuali-zará el editor por diagrama deflujos del “Programing Editor”por lo cual el usuario deberáaprender a manejar el

Logicator. Aquí el problema es que sólo será gratuita una versión limitada y para adquirir la versión fulldeberá comprar la licencia.A lo largo de estas páginas, iremos aprendiendo paso a paso la forma de cómo programar los micro-controladores bajo el sistema PICAXE. Para ello, como primer paso, emplearemos una tarjeta de des-arrollo de la cual proporcionaremos su circuitería para que ustedes la puedan armar, posteriormente des-pués de realizar algunas prácticas, avanzaremos sobre aplicaciones en donde se tenga al microcontro-lador como elemento principal y al cual programaremos en sitio.

Club Saber Electrónica Nº 79

5

Programación Fácil de Microcontroladores PICAXE

FIGURA 3 - UNA DE LAS VENTAJAS DEL PICAXEES QUE LA PLACA EN QUE SE USA PUEDE TENER

UN CONECTOR PARA PODER PROGRAMARLO SIN

SACARLO DE SU ZÓCALO.

FIGURA 4 - LA APLICACIÓN PROGRAMING EDITOR PERMITE CONSTRUIR

PROGRAMAS PARA PICAXE EN DIAGRAMAS DE FLUJO. HOY, LA EMPRESA

EDUCATION REVOLUTION OFRECE EL PROGRAMA LOGICATOR QUE TAM-BIÉN SIRVE PARA TRABAJAR CON LOS PIC DE MICROCHIP. PUEDE DES-

CARGAR GRATUITAMENTE UN MANUAL COMPLETO SOBRE EL MANEJO DE

LOGICATOR CON LA CLAVE: “PICAXELOGIC”.

Cap 1 - PICAXE 9/6/11 10:03 AM Página 5

Page 8: Prog Picaxe

VENTAJAS DEL SISTEMA PICAXE

Como dijimos, el PICAXE es un sistema de micro-controladores PIC muy fácil de programar yaque utiliza un lenguaje BASIC muy sencillo, ade-más de contar también con la posibilidad deprogramarlos con diagramas de flujo.Aprovecha todas las características de los micro-controladores de bajo costo que incorporanmemoria FLASH.Está disponible en tres versiones que son el de 8terminales (PICAXE-08), 18 terminales (PICAXE-18) y 28 terminales (PICAXE-28). En estos micro-controladores ya se tienen definidas las termi-nales que tienen la función de entrada y salidade datos, además de las terminales que sirvenpara programar al PICAXE en sitio, o en otraspalabras sobre la misma aplicación. En las figuras 6, 7 y 8 se muestran los circuitos esquemáticos dela disposición de cada uno de los microcontroladores PICAXE.En la figura 6 se muestra el circuito esquemático para un PICAXE de 8 terminales, de las cuales las queestán identificadas como Pin1 E/S, Pin2 E/S, Pin3 E/S y Pin4 E/S, son terminales que pueden funcionar comoentradas o salidas de datos del exterior hacia el microcontrolador. Las terminales identificadas como Serial En y Serial Sal, se utilizan para programar al microcontrolador através del puerto serie de una PC, para lo cual las terminales del conector identificado como CON1 sehacen 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 conuna doble función, y dependiendo de dónde se ubique un jumper selector en el conector CON2, sepodrá programar al PIC o esa misma terminal una vez programado el PIC tendrá la función de una ter-minal de salida de datos.Del circuito esquemático de la figura 7 se observa la forma en que están dispuestas las terminales de unPICAXE de 18 termi-nales, de las cualeslas que se encuen-tran identificadascomo En 0, En 1, En2, En 6 y En 7 sondedicadas exclusiva-mente para adquirirdatos del exteriorhacia el microcontro-lador. Las terminales que seencuentran identifi-cadas de la Sal 0 a

Club Saber Electrónica Nº 79

6

Qué Son y Cómo se Usan los PICAXE

FIGURA 5 - EL PROGRAMING EDITOR PERMITE

PROGRAMAR EN BASIC O CONVERTIR EL DIA-GRAMA DE FLUJO EN BASIC.

FIGURA 6 - CIRCUITO BÁSICO DE ENTRENAMIENTO PARA EL PICAXE-08.

Cap 1 - PICAXE 9/6/11 10:03 AM Página 6

Page 9: Prog Picaxe

Sal 7 son exclusiva-mente para enviardatos hacia afueradel microcontrolador,mientras que las ter-minales identificadascomo Serial Sal ySerial En, se utilizanpara programar almicrocontrolador. Enel circuito de la figura8 se muestra la formade conectar a unPICAXE de 28 termi-nales, en dondeaparte de las patasde entrada que seencuentran definidascomo En 0 a En 7,también se cuentacon las terminales desalida identificadascomo Sal 0 a Sal 7,además de 4 termi-nales para entradade datos analógicos,y por último las termi-nales de programa-ción del microcontro-lador.Ya se ha mencionadoque el sistema PICAXEno requiere de pro-gramador o borrador,ya que utiliza única-mente tres alambres

conectados al puerto serie de una computa-dora, tal como se describe en la siguientefigura 9.Una vez que han sido identificadas las termina-les a utilizar en el conector del puerto serie dela PC, ahora lo que sigue es preparar la cone-xión hacia el PIC tomando en cuenta las termi-nales, tal como se aprecia en la figura 10.

Club Saber Electrónica Nº 79

7

Programación Fácil de Microcontroladores PICAXE

FIGURA 7 - CIRCUITO BÁSICO DE ENTRENAMIENTO PARA EL PICAXE-18.

FIGURA 9 - LOS PICAXE SE COMUNICAN CON LA PC A TRAVÉS

DEL PUERTO COM, UTILIZANDO PROTOCOLO RS232.

FIGURA 8 - CIRCUITO BÁSICO DE ENTRENAMIENTO PARA EL PICAXE-28.

Cap 1 - PICAXE 9/6/11 10:03 AM Página 7

Page 10: Prog Picaxe

Como se puede observar en lafigura 10, se puede emplear (esrecomendable) un plug de los uti-lizados para conectar los audífo-nos a la salida de audio de unwalkman o discman, y tener uncable con un conector DB9 en unextremo y un plug de audio en elotro, tal como se ilustra en lafigura 11.Ahora bien, la mayoría de lascomputadoras pequeñas, tiponanobook, no poseen puertoRS232 y hasta las notebookactuales tampoco lo incluyen. Enese caso, se debe utilizar unconector que comercializa laempresa Education Revolution, ocolocar un conversor USB a RS232 como el quepublicamos en saber Electrónica Nº 178 o elcircuito de Saber Electrónica Nº 223. En lafigura 12 podemos observar el circuito eléc-trico con su placa de circuito impreso dedicho conversor. Si desea más detalles delarmado puede recurrir a dicha revista.También puede comprar un conversor USB a RS232 como el de la figura 13; en ese caso debeasegurarse que el dispositivo genere un puertoCOM 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 fácil de programar que utiliza un lenguaje BASIC muy sim-ple, el cual la mayoría de los estudiantes pueden aprender rápidamente. Los microcontroladores (conmemoria FLASH) pueden ser programados una y otra vez sin la necesidad de un costoso programadorPIC. El sistema no necesita de ningún programador, borrador o complejo sistema electrónico. El pro-grama puede escribirse en BASIC o por medio de un diagrama de flujo y se carga mediante una cone-xión de tres cables conectada al puerto serie de la computadora. El sistema PICAXE consiste en trescomponentes principales:

1) El software editor de programación.2) El cable de conexión al puerto serial de la PC.3) El chip PICAXE.

Club Saber Electrónica Nº 79

8

Qué Son y Cómo se Usan los PICAXE

FIGURA 10 - DIAGRAMA DE ARMADO DEL CABLE QUE SE UTILIZA PARA

PROGRAMAR LOS PICAXE.

FIGURA11 - VISTA DEL CABLE DE PROGRAMA-CIÓN TERMINADO.

Cap 1 - PICAXE 9/6/11 10:03 AM Página 8

Page 11: Prog Picaxe

Ya retornaremos con este tema, cuando sepamosmás acerca de las características principales deestos chips. Veamos ahora en qué consiste el soft-ware gratuito.

EL EDITOR DE PROGRAMAS

Lo diferente del sistema de microcontroladoresPICAXE, con respecto a la programación tradicionalde los microcontroladores PIC, radica en la progra-

Club Saber Electrónica Nº 79

9

Programación Fácil de Microcontroladores PICAXE

FIGURA 12 - PARA PODER UTILIZAR UN SISTEMA PICAXE CON UNA COMPUTADORA A TRAVÉS DEL PUERTO USB SE DEBE

EMPLEAR UN CONVERSOR DE PUERTO COMO EL MOSTRADO EN LA FIGURA Y CUYA CONSTRUCCIÓN SE EXPLICÓ EN SABER

ELECTRÓNICA Nº 221.

FIGURA 13 - UN ADAPTADOR USB A RS232COMERCIAL.

Cap 1 - PICAXE 9/6/11 10:03 AM Página 9

Page 12: Prog Picaxe

mación basada en un lenguaje BASIC ydiagramas de flujo. Esto hace que losmicrocontroladores del sistema PICAXEsean muy fáciles de programar, en unambiente amigable.Para programar los microcontroladoresPICAXE debemos, en primera instancia,instalar el software que contiene elambiente de programación, por lo quedescribiremos la forma de hacerlo.Si bien a lo largo de este texto vamos aexplicar paso por paso cómo se empleael “Programming Editor” (Editor deProgramas), es necesario que ya lo tengaen su computadora.El software lo puede bajar de nuestrapágina de Internet que usted ya conocewww.webelectronica.com.mx, debehacer clic en el ícono password e ingresarla clave PICAXEPRO. Recuerde que parabajar cualquier información debe sersocio del club SE, lo cual es gratuito ypuede inscribirse por Internet en sólo unpar de minutos (siga las instrucciones quedimos para bajar el programa y encon-trará cómo hacerse socio, si aún no lo es).Una vez que se tenga el software, se con-tará con una carpeta con el nombre de“progedit”, a la cual debemos acceder(observe la figura 14).Luego debemos ingresar a la carpetaprogedit y tenemos que ubicar el pro-grama identificado como “ProgrammingEditor”, al cual debemos hacerle undoble clic con el ratón de la pc para queéste se ejecute y se pueda instalar el pro-grama de los PICAXE, tal como se mues-tra en la figura 15.Una vez que ejecutamos el programa deinstalación Programming Editor apare-cerá la ventana que se muestra en lafigura 16, sobre la cual debemos de opri-mir con el ratón el cuadro identificadocomo “next” para que continúe la insta-

Club Saber Electrónica Nº 79

10

Qué Son y Cómo se Usan los PICAXE

FIGURA 14 - CARPETA PROGEDIT.

FIGURA 15 - SOFTWARE DE INSTALACIÓN “PROGRAMMING EDITOR”.

FIGURA 16 - VENTANA DE BIENVENIDA PARA LA INSTALACIÓN

DEL SOFTWARE DE LOS PICAXE.

Cap 1 - PICAXE 9/6/11 10:03 AM Página 10

Page 13: Prog Picaxe

lación. Posteriormente será desplegadala ventana donde se muestra la licenciaque debemos aceptar, porque de otramanera no podremos continuar con lainstalación del software, por lo que nue-vamente oprimiremos el cuadro identifi-cado como “next”, esta acción se indicaen la figura 17.Como paso siguiente, pregunta por elnombre del usuario que normalmente uti-lizará el software, aquí podemos instalarla aplicación para que pueda ser utili-zada por todas las personas que utilicenla computadora, y después de seleccio-nar esta acción tenemos que oprimir elcuadro identificado como “next”, talcomo se muestra en la figura 18.Posteriormente debemos decir en dóndese guardará el software de programa-ción, que por lo general, aquí no tene-mos que modificar dato alguno, amenos de que querramos asignar otralocalidad, tal como se ilustra en la figura19. Una vez seleccionada la opcióncorrespondiente procederemos a hacerclic sobre el cuadro identificado como“next”.Por último, aparecerá una ventana deconfirmación para estar seguros de quelos datos que introdujimos se encuentrancorrectos, si es así debemos oprimir elcuadro identificado como “next” paraque continúe la instalación, tal como seaprecia en la figura 20.Cuando se está instalando el software seindica gráficamente, tal como se ilustraen la figura 21, aquí debemos esperarhasta que se terminen de instalar, tanto elsoftware de programación como todaslas utilerías que serán empleadas por losPICAXE. En la figura 22 se muestra la ven-tana que nos indica que ya se ha con-cluido con la instalación, por lo quedebemos oprimir el cuadro identificado

Club Saber Electrónica Nº 79

11

Programación Fácil de Microcontroladores PICAXE

FIGURA 17 - ACUERDO DE LICENCIA.

FIGURA 18 - INFORMACIÓN DEL USUARIO.

FIGURA 19 - DESTINO DEL SOFTWARE.

Cap 1 - PICAXE 9/6/11 10:03 AM Página 11

Page 14: Prog Picaxe

como “finish”. Una vez instalado el soft-ware de programación de los PICAXE, enel escritorio de nuestra PC encontrare-mos un ícono de acceso directo identifi-cado como “PICAXE ProgrammingEditor”, al cual, para comenzar a progra-mar los microcontroladores, debemoshacer un doble clic con el mouse paraque se ejecute el programa, tal como semuestra en la figura 23. En la figura 24ase observa un ejemplo del ambientegráfico en lenguaje BASIC y en la figura24b en diagrama de flujo. En varias oca-siones editamos artículos mostrandocómo se emplea el editor por diagramade flujo del Programing Editor pero, talcomo hemos dicho, para los próximosPICAXE deberá emplear el Logicator,razón por la cual, más adelante explica-remos cómo se usa.

LOS DISTINTOS TIPOS DE PICAXE

El sistema PICAXE aprovecha todas lascaracterísticas de los microcontroladoresde bajo costo que incorporan memoriaFLASH.El sistema PICAXE está disponible en seisdistintas versiones que son:

De 8 terminales (PICAXE-08), De 14 terminales (PICAXE-14), De 18 terminales (PICAXE-18), De 20 terminales (PICAXE-20), De 28 terminales (PICAXE-28) y De 40 terminales (PICAXE-40).

Estos microcontroladores ya tienen defi-nidas las terminales que tienen la funciónde entrada y/o salida de datos, ademásde las terminales que sirven para progra-mar al PICAXE en sitio, o en otras pala-bras sobre la misma aplicación.

Club Saber Electrónica Nº 79

12

Qué Son y Cómo se Usan los PICAXE

FIGURA 20 - VENTANA DE CONFIRMACIÓN DE DATOS.

FIGURA 21 - VENTANA DE INSTALACIÓN DEL SOFTWARE.

FIGURA 22 - CUANDO LA INSTALACIÓN HAYA CONCLUIDO EL PROGRAMA

NOS INDICARÁ QUE ESTAMOS LISTOS PARA COMENZAR A UTILIZARLO.

Cap 1 - PICAXE 9/6/11 10:03 AM Página 12

Page 15: Prog Picaxe

Hace aproximadamente 6 años que comenzamos a escribir publicaciones sobre el sistema PICAXE aquíen Saber Electrónica, y a la fecha algunos de los microcontroladores PICAXE que al inicio les presenta-mos en diversos proyectos, ya se encuentran descontinuados o sustituidos por otros de reciente comer-

Club Saber Electrónica Nº 79

13

Programación Fácil de Microcontroladores PICAXE

FIGURA 23 - ICONO DE ACCESO RÁPIDO.FIGURA 24A - LENGUAJE BASIC PARA PROGRAMAR

LOS PICAXE.

FIGURA 24B - DIAGRAMA DE

FLUJO PARA PROGRAMAR LOS

PICAXE.

Cap 1 - PICAXE 9/6/11 10:03 AM Página 13

Page 16: Prog Picaxe

cialización, por lo tanto, es importante tomaren cuenta con que matriculas disponemospara poder desarrollar nuestros proyectos. Incluso anteriormente los microcontroladoresPICAXE, tenían grabadas las matriculas delos microcontroladores PIC (ya que laempresa Microchip es quien los fabrica),pero también en la actualidad algunosPICAXE ya traen grabada la matricula que lescorresponde, dentro del sistema PICAXE, auncuando los continua fabricando Microchip.En la tabla 1 se muestra la serie de micro-controladores PICAXE disponibles, así comola matrícula que tienen grabada. Por otra parte, en la tabla 2 se muestran lasmatrículas de los microcontroladores PICAXE,que sustituyen a los primeros que salieron almercado, para que de esta manera, sepueda saber cuáles son los PICAXE dereciente aparición, y por obvias razones, conlos que contamos para seguir trabajando.Para continuar conociendo a los microcon-troladores PICAXE, en la tabla 3 se muestranlas principales diferencias entre las distintasversiones que podemos encontrar y para ellolos clasificaremos en PICAXE estándar yPICAXE Avanzado.

KITS PICAXE

A lo largo de los últimos años, en SaberElectrónica, publicamos varios circuitos conPICAXE, muchos de los cuales se ofrecen enforma de kits o que Ud. puede montar fácil-mente, ya que todos los componentes soncomunes. A continuación mostramos algunosde los proyectos publicados:

TARJETA ENTRENADORA PICAXE-08 (ICA-011)Se trata de la primera tarjeta de entrena-miento universal para programar microcon-troladores PICAXE de 8 terminales denomina-dos PICAXE - 08, figura 25.

Club Saber Electrónica Nº 79

14

Qué Son y Cómo se Usan los PICAXE

TABLA 1 - DISTINTOS TIPOS DE PICAXE.

TABLA 2 - LAS MATRÍCULAS DE LOS PICAXE.

Cap 1 - PICAXE 9/6/11 10:03 AM Página 14

Page 17: Prog Picaxe

Sobre la tarjeta de circuito impreso se dispone deun total de 4 E/S (4 entradas y 4 salidas), pero estasterminales son configurables por medio de un jum-per selector, ya que las terminales 3, 5, 6 y 7 delmicrocontrolador PICAXE cumplen con una doblefunción.La tarjeta entrenadora para PICAXE - 08 tiene laposibilidad de explotar al máximo las propiedadesdel cualquier PICAXE-08, y por lo tanto se puedendesarrollar proyectos en donde tan solo se tienenque conectar las señales de los sensores y losactuadores sobre las terminales que tiene destina-das la tarjeta entrenadora.

Club Saber Electrónica Nº 79

15

Programación Fácil de Microcontroladores PICAXE

TABLA 3 - DIFERENCIAS ENTRE LOS PICAXE.

FIGURA 25 - TARJETA PICAXE-08.

Cap 1 - PICAXE 9/6/11 10:03 AM Página 15

Page 18: Prog Picaxe

TARJETA ENTRENADORA PICAXE-18 (ICA-016)Es la segunda tarjeta de entrenamiento universal queSaber Electrónica propone para programar microcontro-ladores PICAXE de 18 terminales denominados PICAXE -18, figura 26. Sobre la tarjeta se dispone de un total de 5 entradas y 8salidas, de las entradas se pueden disponer hasta 3 parautilizar el convertidor ADC del microcontrolador PICAXE(depende si es 18, 18A,18X, 18M o 18M2). Sobre la misma tarjeta se tiene un área de experimenta-ción la cual consta de 2 circuitos para generar estadoslógicos mediante push butom para manipular las termi-nales de entada del microcontrolador PICAXE. Ademáscuenta también con dos circuitos con leds para veri-ficar el estado de las salidas, y por último tambiénposee dos espacios para colocarle distintos tipo desensores,

PLC PICAXE-18 (ICA-017)El PLC que se muestra en la figura 27 trabaja a partirde las características y ventajas que nos otorga elmicrocontrolador PICAXE - 18, por lo tanto este PLCcontara con 5 entradas y 8 salidas, ambas de natu-raleza digital. Este PLC cuenta con sus respectivosmódulos de entrada y salida, uno para cada uno res-pectivamente, por lo que tanto las entradas comosalidas de datos del microcontrolador PICAXE - 18están protegidas.Este PLC posee todo lo necesario para emplearlo en cualquier aplicación industrial, ya que cuenta ensus terminales con bornes de conexión con tornillos, este PLC requiere 12 VCD para su alimentación.

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 (cualquierversión de PICAXE - 18), empleando todas las características y ventajas que nos otorgan estos micro-controladores. Para controlar al display de LCD se emplean las 8 salidas del PICAXE, mientras que se dis-pone de las 5 terminales de entrada, para hacerle llegar la información que se requiere imprimir en eldisplay, por lo tanto este circuito tiene una función a manera de monitor, desplegando todos los carac-teres que acepta el display.Este circuito es muy versátil, en cuanto al diseño de instrumentos de medición, ya que dispone de todassus terminales de entrada, y en 3 de ellas se cuenta con convertidores analógico - digital.

Los mencionados son sólo algunos de los proyectos que hemos publicado en Saber Electrónica como“montajes destacados” y que puede conseguir en forma de kits, por razones de espacio no podemosmencionarlos a todos ellos. Sugerimos visitar nuestra web para más información.

Club Saber Electrónica Nº 79

16

Qué Son y Cómo se Usan los PICAXE

FIGURA 26 - TARJETA PICAXE-18.

FIGURA 27 - PLC PICAXE-18.

Cap 1 - PICAXE 9/6/11 10:03 AM Página 16

Page 19: Prog Picaxe

Cap 1 - PICAXE 9/6/11 10:03 AM Página 17

Page 20: Prog Picaxe

Cap 1 - PICAXE 9/6/11 10:03 AM Página 18

Page 21: Prog Picaxe

Club Saber Electrónica Nº 79

19

“PICAXE” es un sistema de microcontro-ladores fácil de programar ya seausando diagramas de flujo o emple-ando lenguaje BASIC, el cual la mayoríade las personas puede aprender rápi-damente, dado su nivel de interaccio-nar con su lenguaje. En los tomos 7, 16y 29 de la colección Club SaberElectrónica hablamos sobre PICAXE ydimos varios proyectos comentados uti-lizando en Programing Editor pero hastaahora no hemos programado en BASIC,tema que abordaremos a continuación. En forma sintética, el lenguaje que se implementa,es un sencillo diálogo muy intuitivo, que da órdenes muy precisas empleando un juego decomandos limitados.

INTRODUCCIÓN

El microcontrolador PIC, es un circuito integrado que contiene memoria, unidades procesadoras y circui-tos de entrada/salida, en una sola unidad. Digamos que es muy similar a un ordenador o computadoraPC, pero en formato pequeño. El microcontrolador PICAXE, es un sencillo microcontrolador PIC, que tienepor característica, tener alojado dentro de su memoria, un pequeño firmware que permite ser progra-mado bajo lenguajes más sencillos que el Assembly. Como ya sabrán, los microcontroladores son com-prados en “blanco” y luego son programados con un programa específico de control. Una vez progra-mado, este microcontrolador es introducido en algún producto para cumplir el rol de trabajo de contro-lador. Es sabido, que estos diminutos circuitos integrados, tienen una inteligencia limitada por nosotros mis-mos a la hora de ejecutar una acción; pues, según se lo programe, se delega solo la responsabilidad dela orden impartida. Por ejemplo, si nosotros programamos a este microcontrolador para que ejecute latarea de monitorear y administrar el funcionamiento de un motor a explosión como lo que podemos veren un automóvil, éste sólo hará lo que le dijimos por intermedio de las instrucciones de programación, yno esperen que este haga otra cosa que no le hallamos enseñado en su rutina de control. Hoy en día, sesuele aplicar microcontroladores en los desarrollos electrónicos, por que estos pueden reemplazar a ungran número de partes separadas, o incluso a un circuito electrónico completo. Algunas de las ventajasobtenidas con el uso de microcontroladores en el diseño de productos son:

CC APÍTULAPÍTUL OO 22

TRABAJANDO CON MICROCONTROLADORES

PICAXE

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 19

Page 22: Prog Picaxe

o Aumento en la confiabilidad debido al menor número de partes. o Reducción en los niveles de existencia ya que un microcontrolador reemplaza varias partes. o Simplificación del ensamblaje del producto y productos finales más pequeños. o Gran flexibilidad y adaptabilidad del producto ya que las funciones del producto están programadasen el microcontrolador y no incorporadas en el hardware electrónico. o Rapidez en modificaciones y desarrollo del producto mediante cambios en el programa del micro-controlador, y no en el hardware electrónico.

En la Industria, los microcontroladores son usualmente programados utilizando programación en len-guaje C. Sin embargo, debido a la complejidad de este lenguaje, es muy difícil el aprendizaje de dichoslenguajes de programación en personas adultas que nunca tuvieron formación alguna, inclusive, tam-bién podríamos incluir a los estudiantes muy jóvenes de bachillerato, que por lo general, su ansiedad loslleva a buscar formas practicas y rápidas de inserción a los microcontroladores. No voy hacer muchoénfasis sobre si deben o no tratar de aprender una manera de programación o no, solo les voy a men-cionar, que es preferible estudiar lenguajes de programación que contengan un nivel de lenguaje deprogramación mas alto que el que podemos encontrar con estos microcontroladores.

EL SISTEMA PICAXE

El sistema “PICAXE” es un sistema de microcontrolador fácil de programar que utiliza un lenguaje BASICmuy simple, el cual la mayoría de las personas pueden aprender rápidamente dado su nivel de inter-accionar con su lenguaje. Ya hemos dado las características sobresalientes de este sistema en capítu-los anteriores de esta obra pero no está demás resumir los rasgos sobresalientes del sistema PICAXE.En forma sintética, el lenguaje que se implementa, es un sencillo diálogo muy intuitivo, que da órdenesmuy precisas… como ejemplo, podríadarles este ejemplo citado en la figura 1.En la rutina de dicha figura, lo único quehice, fue programar el microcontroladorcon un diálogo sencillo, en inglés, peromuy deducible para aquellos que esténflojos con este idioma.Prácticamente, lo único que le ordené almicrocontrolador, es que monitoree laentrada numero cero (input cero), y encaso de tener algún estado definido (unalto o un bajo, o sea, un 1 o un 0 lógico),éste actúe dando como resultado unaacción determinada. Internamente, estaslíneas de programación, funcionan de lasiguiente manera dentro del microcontro-lador: Siempre, la rutina se lee y se ejecutadesde la primer línea para abajo, salvo

Club Saber Electrónica Nº 79

20

Trabajando con PICAXE

FIGURA 1 - RUTINA EN BASIC PARA PROGRAMAR UN PICAXE

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 20

Page 23: Prog Picaxe

que halla un saltoen el camino,figura 2. En estecaso en particular,arranca el ciclo enla etiqueta “main”,pasa por la primerainstrucción queindica que visua-lice y compare elestado de la

entrada cero con el valor pre establecido y en caso de ser positivo elresultado tiene que saltar e ir al sub programa “encendido”, figura 3.En el caso de que la comparación de “cero”, el microcontroladorsigue líneas abajo leyendo las instrucciones. Como pueden observar,la siguiente instrucción es similar, compara el estado de la señal en laentrada cero, y si la comparación es positiva, salta al subprograma“apagado”. En caso de ser nula la comparación, el programa sigue

leyendo las siguientes líneas hasta llegar al fin del programa o bien, hasta llegar a una bifurcación. Ennuestro caso, llega hasta la instrucción “goto”, lo cual, hace repetir el programa una y otra vez sin tenerfin. Se observa entonces que este sistema implementa un diálogo de instrucción muy fácil de aprender,de manera que en tan sólo unos pasos Ud. podrá aprender rápidamente a realizar sus propios proyectosmicrocontrolados.Este sistema explota las características únicas de la nueva generación de microcontroladores de bajocosto FLASH. Estos microcontroladores pueden ser programados una y otra vez sin la necesidad de uncostoso programador. El poder del sistema PICAXE radica en su sencillez. No necesita de ningún programador, borrador o com-plejo sistema electrónico. El microcontrolador es programado mediante una conexión de tres cablesconectada 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 fácilmenteen una placa experimental para componentes electrónicos, 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 controladorPICAXE-28 provee 22 pines de entrada/salida (8 salidas digitales, 8 entradas digitales y 4 entradas analó-gicas). El sistema PICAXE-18 provee 8 salidas y 5 entradas. Las características principales del sistema PICAXE son las siguientes:

o Bajo costo, circuito de fácil construcción.o Hasta 8 entradas, 8 salidas y 4 canales analógicos en la versión intermedia.o Rápida operación de descarga mediante el cable serial.o Software “Editor de Programación” gratuito y de fácil uso. o Lenguaje BASIC simple y fácil de aprender.o Editor de diagramas de flujo incluido.o Puede ser programado también mediante el software “Crocodile Technology” o “Programming Editor”.o Extenso número de manuales gratuitos y foro de apoyo en línea.

Club Saber Electrónica Nº 79

21

Programación Fácil de Microcontroladores PICAXE

FIGURA 2 - EL PROGRAMA CON-SISTE EN UN JUEGO DE INSTRUC-

CIONES QUE SE ESCRIBE EN EL

PROGRAMING EDITOR.

FIGURA 3 - UNA INSTRUCCIÓN PUEDE INDICAR QUE,SI SE CUMPLE ALGUNA CONDICIÓN, EL PROGRAMA

“SALTE” A OTRA INSTRUCCIÓN O SUBRUTINA.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 21

Page 24: Prog Picaxe

o Circuito experimental, manejo y tutoriales incluidos en la página del fabricante (gratuitos).o Paquete de control remoto infrarrojo disponible. o Paquete de servo controlador disponible.

Estas son sólo algunas de las funciones y utilidades disponibles.

COMENZANDO LAS PRÁCTICAS

Esta obra está diseñada para que el lector pueda realizar sus prácticas tanto con la placa entrenadoray sus módulos correspondientes, como así también poder realizar simulaciones en el laboratorio virtualProteus, con sus librerías y diagramas de circuitos del laboratorio para que puedan saber cómo se va acomportar el circuito casi como si lo efectuáramos con nuestra placa entrenadora física. Si bien estelaboratorio virtual es una gran herramienta virtual; debemos remarcar que posee algunos errores meno-res que pueden complicarnos algunos diseños y o simulaciones. Los errores encontrados hasta el momento son:

o No tolera mas de 16gosub o No reconoce #REM-#ENDREMo No reconoce #setfreq o No reconoce #Picaxe08/18o Genera algún que otro error cuando al terminar nuestro código de programación, no se implementaun espacio después de la última línea de programación.

La figura 4 muestra imágenes de un laboratorio de prácticas microcontroladas (varias placas de circuitoimpreso) para trabajar y aprender con PICAXE.

USANDO COMENTARIOS

Usar comentarios en un programa, aunque sea perfectamente obvio para todos ustedes, puede ser unaherramienta extra que el día de mañana, le puede ayudar a comprender por qué implementó unaacción en su rutina, además, hay que tener en cuenta que si lo compartimos, alguien más puede leerloy 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 lamemoria del PICAXE, ya que éstos no son subidos junto a la rutina de programación.Implementar un bloque de comentarios en el comienzo del programa y antes de cada sección delcódigo, puede describir cuál es la función de la rutina que tenemos, o bien, podemos describir con másdetalles cada línea de nuestro programa.Para reconocer los comentarios, podemos dirigirnos a nuestra sección configuración del software, y enla pestaña “editor” seleccionamos preferencias de colores en la sintaxis.Con esta ultima acción, podremos diferenciar en nuestras rutinas los comandos, los comentarios con uncolor distinto. Los comentarios en el programa comienzan con un apóstrofe (‘) o punto y coma (;) y con-tinúa hasta el final de la línea. Es decir, en una línea, todo lo que está después del apóstrofe (‘) o punto

Club Saber Electrónica Nº 79

22

Trabajando con PICAXE

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 22

Page 25: Prog Picaxe

y coma (;) es simplemente un comentario yno es tenido en cuenta en la ejecución delprograma por parte del PICAXE.También es muy común que las personas dehabla inglesa y con viejas mañas del anti-guo basic, implementen la palabra clave“REM”. Esta palabra también puede serusada para comentarios, pero yo personal-mente no la aconsejo, ya que un error en laescritura, por ejemplo REN, nos daría erroresen la compilación y o simulación.En la figura 4 tenemos un ejemplo; configu-ramos el software (programa) como men-cionamos anteriormente y mostramos lasdiferentes formas de hacer comentarios.

USO DE SYMBOL

Los símbolos en nuestras rutinas, son pala-bras clave que identifican constantes, varia-bles y direcciones en el programa.La asignación del símbolo se realiza

poniendo el comando “symbol + nombre del símbolo” y seguido de éste implementamos el signo igual(=). Posterior a estas líneas, agregamos la variable o constante.Los símbolos pueden ser cualquier palabra que no sea la relativa a un comando.Los símbolos pueden contener caracteres numéricos (por ejempolo: ucontrol1, salida2, etc.) pero el pri-mer carácter no puede ser uno numérico, es decir, no podría ser “1salida”, por dar un ejemplo.El uso de símbolos no aumentan la longitud del programa. O sea, esta función no tiene peso alguno enlo que refiere al programa. Por lo general se implementa este comando para renombrar las entradas ysalidas del microcontrolador lo que ayuda a recordar cuál es la función de cada terminal I/O a la horade leer y o modificar un programa.Las direcciones del programa configuradas con el comando symbol, siempre tienen que ir sobre la pri-mer instrucción o, mejor dicho, al inicio del programa.En la figura 5 tenemos un ejemplo de programa en el que se han realizado asignaciones de símbolos.

Uso de Constantes

Las llamadas constantes, pueden ser creadas de manera similar a las variables. Puede que sea más con-veniente usar un nombre para la constante en lugar de implementar un número como constante. Si elvalor u operando de la “constante” necesita ser cambiada, únicamente se modifica en algún lugar delprograma donde se define la constante en lugar de modificar cada parte del programa en la que inter-viene. Dentro de las constantes, no pueden guardarse datos variables. Las constantes declaradas pue-

Club Saber Electrónica Nº 79

23

Programación Fácil de Microcontroladores PICAXE

FIGURA 4 - TODA ESCRITURA EN UNA LÍNEA QUE ESTÁ DES-PUÉS DE UN APÓSTROFE O UN PUNTO Y COMA ES UN COMEN-

TARIO Y NO FORMA PARTE DEL PROGRAMA.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 23

Page 26: Prog Picaxe

den ser de cuatro tipos: deci-mal, hexadecimal, binario yASCII.

o Los números decimales seescriben directamente sin nin-gún prefijo. o Los números hexadecimalesse preceden del símbolo“peso” ($). o Los números binarios de pre-ceden del símbolo “tanto porciento” (%). o Los valores ASCII se colocanentre comillas (“…”).

DESIGNACIÓN DE VARIABLES

Veamos los tipos de variablesegún el sistema, ya que éstasvarían en su aplicación segúncada modelo de programa-ción :

PICAXE es usado al programarmódulos PICAXE. El BASIC y Extended son usadosal programar módulos Stamp. El ensamblador es el utilizadocon código de ensamblador.

Veamos entonces que tipos devariables se pueden emplearen función del sistema de pro-gramación que utilizamos:

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 (conjuntamenteigual B1).

Club Saber Electrónica Nº 79

24

Trabajando con PICAXE

FIGURA 5 - EL COMANDO SYMBOL DEFINE EL NOMBRE Y LA ACCIÓN DE

CONSTANTES O VARIABLES.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 24

Page 27: Prog Picaxe

In/Out: INPUT0, INPUT1, etc. puede usarse en lugar de PIN0, PIN1, etc. OUTPUT0, OUTPUT1, etc. puedeusarse 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 deberíautilizarse como un registro de propósito general.

Las Variables en el Modo Extendido (EXTENDED)El modo extendido da soporte a todas las variables de BASIC. Además: INPUT0, INPUT1, etc. puede usarseen 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 deberíautilizarse como un registro de propósito general.

Las Variables en el Modo Ensamblador El modo ensamblador soporta los mismos modelos de variables que el modo extendido.

LOS COMANDOS DE PROGRAMACIÓN BASIC EN PICAXE

La tabla 1 representa un breve resumen de los diferentes comandos disponibles para los microcontrola-dores PICAXE. Veremos a continuación la estructura y el significado de algunos de los comandos básicos que se

emplean para programar un PICAXE ycómo se los emplea.

GOTO

Este comando tiene como función laejecución del programa que continuaen la declaración de la etiqueta. Dichoen otras palabras, este comando tienecomo función dar una dirección dondesaltara el programa y seguirá la lecturade las instrucciones para continuar eje-cutando el programa. En la figura 6tenemos un ejemplo práctico.

Club Saber Electrónica Nº 79

25

Programación Fácil de Microcontroladores PICAXE

FIGURA 6 - GOTO SE USA PARA INDICAR A DÓNDE SIGUE EL

PROGRAMA.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 25

Page 28: Prog Picaxe

GOSUB

Este comando tiene como función saltar a la subrutina indicada en la etiqueta, guardando su direcciónde regreso en la memoria pila (stack). A diferencia del GOTO, cuando se llega a un RETURN, la ejecuciónsigue con la declaración siguiente al último GOSUB ejecutado. Se puede usar un número ilimitado desubrutinas en un programa y pueden estar anidadas. En otras palabras, las subrutinas pueden llamar aotras subrutinas. Cada anidamiento no debe ser mayor de cuatro niveles. Como ejemplo, cuando nos-otros ejecutamos GOSUB, salta el programa a una etiqueta, y cuando llega al comando RETURN, vuelvea la siguiente línea de donde partió con el comando GOSUB. La figura 7 muestra un ejemplo de uso deeste comando.

Club Saber Electrónica Nº 79

26

Trabajando con PICAXE

TABLA 1 - RESUMEN DE COMANDOS USADOS EN PICAXE.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 26

Page 29: Prog Picaxe

FOR ... NEXT

El bucle FOR … NEXT permite a los programas ejecutar un número de declaraciones tantas veces comose lo defina, usando una variable como contador. Este comando es ideal para acortar líneas de pro-

gramas repetitivas. Para tener una ideade su potencial, sea el siguiente pro-grama que permite el parpadeo de unLed conectado en una salida del PICAXEcinco 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

En esta rutina, “high led1” es una instruc-ción que pone un “1” (prende) en la salida donde estará conectado el led. La instrucción “low led1” poneun “0” (apaga) en la salida donde estará conectado el led. “pause 1000” es una instrucción que permiteque el micro no haga nada durante mil milisegundos (1 segundo), es decir, es una instrucción de espera.Como puede observar, tuvimos que prender 5 veces el led, apagarlo otras 5 veces y en cada operacióndecirle que espere un segundo. Ahora, veamos este otro modo de realizar la misma acción:

Club Saber Electrónica Nº 79

27

Programación Fácil de Microcontroladores PICAXE

FIGURA 7 - GOSUB ES SIMILAR A GOTO PERO GUARDA LA

DIRECCIÓN DONDE ESTABA EN EL STACK.

bucle: for b0 =1 to 5 high 1 pause 1000

low 1 pause 1000 next b0 end

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 27

Page 30: Prog Picaxe

En este punto le aconsejo que realiceuna práctica en su PC. Ejecute el software“Programming Editor” y copie las líneas deprogramación dadas en la figura 8 (con-figure el programa para usarlo con elPICAXE18X), revise las sintaxis y luegohaga la simulación mediante elcomando RUN del menú del“Programming Editor”.Al iniciarse el programa, cuando la lec-tura ingresa en el contador (for b0 = 1 to20), se precarga el valor 1 en un espaciode memoria determinado (en este casob0) y comienza un conteo que finalizarácuando llegue a 20. En el caso de la rutina que ejemplifiqué,luego de pasar por la instrucción decomenzar con el contador, sigue leyendoel resto de las líneas y ejecutando todaacción que conlleven en ellas (high1-pause-low1-pause) hasta llegar a la líneadonde dice “next b0”. En esta línea, loque hace, es decirle al contador que adi-cione un entero (que le sume uno) en lamemoria que alojamos el conteo (b0)yluego salta automáticamente a la líneadonde comienza el contador (for b0 =1to 20) iniciando nuevamente toda laacción descrita anteriormente hasta lle-gar a almacenar en la memoria el valor20 (por que esa fue la instrucción que ledimos cuando le dijimos que cuente de1a 20 en la línea de instrucción “for b0 = 1to 20”).Note que cuando llega a 20, en vez deretornar a la línea del contador, sigueleyendo la siguiente línea. En este caso, lasiguiente línea nos dice con el comandoPAUSE y GOTO que debe hacer un retardoy volver al programa u etiqueta “bucle”.Después de esto, como el contador tenía registrado el valor 20, no tendría que seguir contando... perono es así, ya que al volver a reiniciarse el programa, el contador vuelve a cero también. Para el caso enque nosotros quisiéramos que al llegar a determinado conteo, el programa termine, lo que podríamoshacer, es implementar la rutina mostrada en la figura 9.

Club Saber Electrónica Nº 79

28

Trabajando con PICAXE

FIGURA 8 - FOR... NEXT SE EMPLEA PARA HACER BUCLES DE

FORMA DE REPETIR UN ALGORITMO TANTAS VECES COMO SE

REQUIERA EN UN PROGRAMA.

FIGURA 9 - EJEMPLO DE USO DEL COMANDO FOR... NEXT.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 28

Page 31: Prog Picaxe

HIGH

A medida que vayamos avanzando ennuestros proyectos, iremos notando que lagran mayoría de nuestros desarrollosmicrocontrolados requieren de un controlde estados de las entradas y salidas. Haydos comandos que definen el estadológico de una salida: HIGH y LOW.El comando HIGH pone a nivel alto (“1”lógico) un pin determinado del microcon-trolador. Se usa este comando para activar unasalida.

LOW

Es el comando contrario a HIGH y se usa para poner una salida en estado bajo (“0” lógico) o desactivardicha salida.Veamos cómo funcionan los comandos high y low en el ejemplo mostrado en la figura 10: Simplementese pone un “1” lógico en el PIN 1 del microcontrolador, se detiene el programa durante 5 segundos, luegose pone un “0” lógico en el PIN 1, nuevamente se tiene una espera de 5 segundos y el programa vuelveal inicio. Es decir, se trata de un programa que activa y desactiva la pata del micro correspondiente alPIN1 en períodos de 5 segundos en cada estado.

INPUT

Este comando refiere a un puerto de entrada específico.En cierta manera, convierte una patita de un puerto (PIN) en una entrada. O, mejor dicho, con esta ins-trucción se está diciendo que el PIN en cuestión será una entrada. Aclaremos que para definir nuestra entrada, se puede implementar el comando INPUT, o bien, podemosadoptar el número de puerto (0 a 7 para el caso de los micros 18x) y definirlo con un sencillo IN antes delnúmero de puerto de entrada (in7 / input7).Al usar el comando IMPUT en nuestro programa automáticamente estamos mencionando que vamos atrabajar con señales digitales entrantes en un puerto definido.

OUTPUT

Este comando refiere a un puerto de salida específico.En cierta manera, convierte una patita de un puerto (PIN) en una salida. O, mejor dicho, con esta ins-trucción se está diciendo que el PIN en cuestión será una salida. Como mencionamos anteriormente al

Club Saber Electrónica Nº 79

29

Programación Fácil de Microcontroladores PICAXE

FIGURA 10 - LAS INSTRUCCIONES HIGH Y LOW SE EMPLEAN

PARA ESTABLECER LAS CONDICIONES DE LAS SALIDAS DIGITALES.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 29

Page 32: Prog Picaxe

describir el comando input, no es que podemos configurar nuestros puertos como entradas y salidas; alo que me refiero, es que definimos en una línea qué acción queremos que adopte esa salida.Para definir nuestra salida, se puede implementar el comando OUTPUT, o bien, podemos adoptar elnúmero de puerto (0 a 7 para el caso de los micros 18x) y definir la acción o estado de este puerto (high7 -low 7 / high output7 -low output7). Es hora de realizar una nueva práctica: ejecute el “ProgrammingEditor” en su PC y copie las instrucciones del programa de la figura 11, nos preparamos para ver cómofuncionan las instrucciones IMPUT y OUTPUT.

Nota: en este ejemplo, cité ambas maneras en las que podemos definir o nombrar un puerto de entradao salida. Cuando simule esta rutina, verá que el software las reconoce a ambas como lo mismo y nogenera ningún conflicto.

END

Este comando tiene como objeto detener la ejecución del proceso y el microcontrolador no sigue eje-cutando el programa hasta que lo reiniciemos o bien, hasta que no le demos la instrucción manual devolver a comenzar con su ciclo.

Club Saber Electrónica Nº 79

30

Trabajando con PICAXE

FIGURA 11 - LA CONFIGURACIÓN DE LOS PUERTOS, COMO ENTRADAS O SALIDAS, SE PUEDE HACER CON LOS COMANDOS

IMPUT Y OUTPUT.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 30

Page 33: Prog Picaxe

Cuando el microcontrolador es detenidopor el comando END entra en modo debajo consumo. Otra de las característicade este comando es que cuando se eje-cuta esta instrucción todos los datos pre-sentes en los pines de entrada y salida secongelan y permanecen en el estado enque se encuentran. Para ver mejor cómofunciona este comando, realice unanueva práctica; para ello, ejecute en suPC nuevamente el “Programming Editor” ycopie el programa mostrado en la figura12, realice la simulación y verifique laestructura del comando.

IF…THEN IF…AND…THEN IF…OR…THEN

Estos comandos son en sí, parte de unaestructura de comparación con salto auna dirección determinada (siempre auna etiqueta), en el caso en que se cum-pla la función asignada. Las funcionesque se pueden asignar a estas compara-ciones son:

= (igual que) >= (mayor o igual que) > (mayor que) < (menor que) <= (menor o igual que) <> (no es igual que) & (función lógica AND) or (función lógica OR)

Estas son sólo algunas de las comparaciones a las que pueden responder estos comandos.El principio básico de estos tres comandos son la de establecer una pregunta (IF...) sobre el estado de unpuerto determinado; compara, lee el estado, evalúa en términos de VERDADERO o FALSO y en el casode ser cierto, se ejecuta la operación a la que refiere el THEN (entonces...). Si lo considera falso, no se ejecuta la operación posterior al THEN y prosigue con la lectura de la siguientelínea. Veamos algunos ejemplos:

if…then if input1 =1 then action3

Club Saber Electrónica Nº 79

31

Programación Fácil de Microcontroladores PICAXE

FIGURA 12 - LA INSTRUCCIÓN END SE EMPLEA PARA DETENER EL

PROGRAMA Y QUE EL MICRO QUEDE EN LA CONDICIÓN DE BAJO

CONSUMO.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 31

Page 34: Prog Picaxe

Esta sentencia indica que si la entrada 1 esigual a 1, entonces el programa sigue ejecu-tándose en la etiqueta “action3”. Si la entrada1 es igual a cero se sigue ejecutando el pro-grama normalmente.

if…and…then if input1 =1 and input0= 1 then action2

Aquí se dice que si la entrada 1 es iguala 1 y la entrada 0 es igual a 1, entoncesel programa sigue ejecutándose en laetiqueta “action2”. Si la entrada 1 y/o laentrada 0 es igual a cero se sigue eje-cutando el programa normalmente.

if…or…then if input1 =1 or input 0 = 1 then action3

Aquí se dice que si la entrada 1 es iguala 1 o la entrada 0 es igual a 1, enton-ces el programa sigue ejecutándose enla etiqueta “action3”. Si la entrada 1 o laentrada 0 es igual a cero se sigue eje-cutando el programa normalmente.

if…or…then gosub if input1 =1 then gosub action3 if input2=0 then actionx

En este caso estamos diciendo que si laentrada 1 es igual a 1, entonces el pro-grama sigue ejecutándose en la eti-queta “action3” y cuando termine, quevuelva y prosiga en la siguiente línea.En la figura 13 tenemos un ejemplo queUd. puede utilizar para realizar unapráctica en el “Programming Editor”.Es importante destacar que la mejorforma de “aprender” es practicando, espor ello que sugerimos que realicecada ejercicio en la medida que se lovamos sugiriendo. Ahora bien, con loscomandos explicados Ud. ya posee

Club Saber Electrónica Nº 79

32

Trabajando con PICAXE

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

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

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 32

Page 35: Prog Picaxe

conocimientos suficientes como para que pueda experimentar con un sistema útil. En la figura 14 tieneel programa que le permitirá simular el programa de un sencillo automático para detectar el nivel de untanque de agua, de modo que se ponga en marcha cuando el agua haya descendido por debajo decierto nivel y que la bomba se apague cuando el agua alcance el nivel superior establecido como refe-rencia.Note la inclusión de algunos comandos que aún no hemos analizado, que ello no lo detenga en su prác-tica. Trabaje de la misma manera que hemos explicado hasta ahora sobre el “Programming Editor” parasimular el funcionamiento de esta rutina… notará que “Readadc 2,b2”, por ejemplo, es una instrucciónque lee el estado de una entrada y que se trata de una entrada analogical… ¿qué otras cosas nota?Nuevamente: “La práctica es tanto más importante que la teoría”, por lo tanto, “manos a la obra”.

PAUSE

Este comando, es implementado para generar retardos en los saltos entre líneas y ejecución del códigodel programa. Ya lo hemos visto en algunos ejemplos anteriores, pero ahora lo presentamos “formal-mente”. En la siguiente rutina se está indicando que se ponga en “1” el PIN 1, luego que se mantengaasi durante 5 segundos (5.000 milisegundos), posteriormente se indica que se ponga un “0” en el PIN 1durante otros 5 segundos y que vuelva a comenzar el programa:

inicio: high 1 pause 5000 low 1 pause 5000 goto inicio

Como especificación 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 líneas yejecución del código del programa. La única diferencia es que PAUSE establece unidades expresadas enmilisegundos y WAIT en segundos. Técnicamente decir WAIT 1 o decir PAUSE 1000 es lo mismo. Por lo dicho,el programa que vimos en la explicación del comando PAUSE se puede expresar de la siguiente manera:

inicio: high 1 wait 5 low 1 wait 5 goto inicio

Club Saber Electrónica Nº 79

33

Programación Fácil de Microcontroladores PICAXE

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 33

Page 36: Prog Picaxe

Aquí también podemosestablecer un tiempomáximo de 65 segundos,por lo cual necesitaremosarreglos como el uso de“for… next” para podertener tiempos mayores.

RETURN

Este es un muy buencomando que si lo sabe-mos implementar, pode-mos hacer programas másrápidos e interesantes. Ensi, este comando tienecomo función volverdesde una subrutina, reto-mando la ejecución en ladeclaración que sigue alGOSUB que llamó a lasubrutina. En la figura 15tenemos un ejemplo sencillo que podremossimular de la forma acostumbrada.

INFRAIN

Este comando se usa en sistemas de comu-nicación por infrarrojos. Se implementa paraesperar en el receptor una señal infrarrojoprocedente del transmisor IR. Estecomando, además de poder implementar-los en nuestros propios proyectos, podemosusarlo para crear nuestros propios controlesremotos IR o bien repetidores IR para toda lagama de equipos de la marca SONY, yaque implementa el mismo protocolo queesta compañía utiliza en sus productos. Elcomando en si, interactúa en el programaesperando la señal infrarroja y, una vez reci-bida esta señal, el valor de ella se alma-cena en la variable predefinida “infra” (es

Club Saber Electrónica Nº 79

34

Trabajando con PICAXE

FIGURA 15 - RETORNO DE UNA SUBRUTINA POR MEDIO DEL COMANDO

RETURN.

FIGURA 16 - CONEXIÓN DE UN RECEPTOR INFRARROJO EN UN

PICAXE.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 34

Page 37: Prog Picaxe

similar a b0,b1,etc., pero de usoexclusivo para este comando). En lafigura 16 tenemos el esquema deconexión de un receptor IR sobre unPICAXE-08 y en la figura 17 hemosescrito una rutina que Ud. puede uti-lizar para practicar sobre el manejode esta instrucción. No hace faltatener el control remoto (el transmisor),ya que podemos ejecutar el“Programming Editor” en nuestracomputadora, escribir el programade la figura 17 y simularlo; podemoscambiar los valores desde la tablade variables de la derecha y vercómo cambia la simulación.

READADC

Un sensor analógico es capaz demedir y proveer información codifi-cada en forma de tensiones varia-bles. Si colocamos la señal de estetipo de sensores a la entrada delpuerto analógico del microcontrola-dor, puede ser representada porvalores de 0 a 255, por ejemplo, enel caso de una foto resistencia,podríamos decir que 0 es oscuro y255 luz intensa. Este comando, lo podemos imple-mentar para convertir una señal ana-lógica entrante en el puerto ADC delmicrocontrolador, en una informa-ción digital con una resolución de 8bits. El dato obtenido de esta lecturaconvertida (A/D) se almacena enuna variable (b0, b1, b2, bx, etc.),

luego ese dato puede ser empleado para cualquier propósito.NOTA: cuando implementamos este comando, es muy importante tener en cuenta que si almacenamosel dato en una variable tipo “b1”, se guarda con una resolución de 8 bits mientras que si la almacena-mos en una variable tipo “w1”, el dato es guardado con una resolución de 10 bits. En la figura 18 tieneun ejemplo que recomendamos que simule de la forma acostumbrada.

Club Saber Electrónica Nº 79

35

Programación Fácil de Microcontroladores PICAXE

FIGURA 17 - INFRAIN ES UN COMANDO APLICABLE A LÍNEAS DE

ENTRADA QUE POSEEN SENSORES INFRARROJOS Y “LEE” EL ESTADO DE

DICHO SENSOR.

FIGURA 18 - EJEMPLO DE USO DEL COMANDO READADC.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 35

Page 38: Prog Picaxe

READADC10

Este comando, es similar aREADADC y lo podemosimplementar para conver-tir una señal analógicaentrante en el puerto ADCdel microcontrolador. Ladiferencia de estecomando con el anterior-mente mencionado, esque este puede leer yalmacenar el dato conuna resolución de 10 bits.El dato obtenido de estalectura convertida (A/D), esalmacenada en unavariable (w1, w2, wx, etc.)que luego puede serempleada para cualquier propósito. Un dato interesante, es que podemos implementar también elcomando READADC para almacenar datos con resoluciones de 10 bits. Si con el comando READACimplementamos una variable word (w1, w2, wx, etc.), el dato se guarda en 10bits. En la figura 19 tene-mos 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 otrosPICAXE no funciona) y su función es enviar un tren de pulsos modulados en un ancho definido por el pinde salida seleccionado. Cada ciclo del PWM (Pulse Width Modulation -Modulación del ancho del pulso),puede tener una resolución 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”, almomento en que tenemos un estado alto por un tiempo determinado la señal del PWM y “cycle”, almomento en que se repite el “duty”.El “duty” para cada ciclo puede variar en valores comprendidos entre 0 (0%) y 255 (100%). El cycle delPWM 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 osci-lador de 4MHz, cada cycle será de aproximadamente 5 ms de largo. Con un oscilador de 20MHz laduración del ciclo será de 1 ms aproximadamente. Definir el valor del oscilador mediante la implementación de un comando especial que veremos masadelante, no tiene efecto sobre el comando PWM. El PICAXE 08 emplea sus puertos como entrada y salida, según lo configuremos nosotros pero cuandoempleamos el comando PWM, el puerto se convierte en salida justo antes de la generación del pulso yvuelve a ser entrada, cuando cesa. La salida de PWM tiene mucho ruido, y no tiene forma de onda cua-

Club Saber Electrónica Nº 79

36

Trabajando con PICAXE

FIGURA 19 - CON READDC10 SE PUEDEN LEER Y ALMACENAR DATOS ANALÓGICOS

CON UNA RESOLUCIÓN DE 10 BITS.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 36

Page 39: Prog Picaxe

drada. Es necesario usaralgún tipo de filtro paraconvertirla en algo útil. Sepuede usar un circuito RCcomo un simple converti-dor A/D. En la figura 20tenemos un ejemplo apli-cable en un PICAXE 08 -08M.

EEPROM

El comando EEPROM, nos guarda datos en la memoria no volátil de nuestro microcontrolador. Dado quela EEPROM es una memoria no volátil, los datos permanecerán intactos aún sin alimentación. Si se omite el valor opcional de la posición de memoria, la primera declaración se guarda en la direc-ción 0 de la EEPROM y las subsiguientes en las siguientes direcciones del mismo. Si se indica un valor deposición, éste indica la dirección de comienzo para guardar los datos. La estructura de la instrucción esla siguiente:

EEPROM posición,(dato)

“Posición (location)” es una constante numérica de 0 a 255 que específica donde se debe empezar aalmacenar los datos en la EEPROM. Como mencionamos anteriormente, si no existe una posición indi-cada, el almacenamiento continúa a partir del último dato introducido. Si inicialmente no se especificóninguna posición, el almacenamiento comienza en la posición 0. “Dato (data)” puede ser una constante alfanuméricas de hasta 256 caracteres. Cada carácter del valornumérico o palabras son almacenados en las posiciones de la EEPROM que van desde la posición “0”hasta la “255”. Este comando y esta diversidad en la estructura física del microcontrolador, solo la pode-

mos encontrar en losm i c r o c o n t r o l a d o r e sPICAXE-18A, 28, 28A y 28X.Los datos que son guarda-dos en la EEPROM solo unavez y esto ocurre cuando elmicrocontrolador es pro-gramado, no cada vezque se ejecuta el pro-grama. Para el caso detener que armar una rutinadonde necesitamos guar-dar en tiempo real determi-nados datos en la EEPROMse puede usar la instrucción

Club Saber Electrónica Nº 79

37

Programación Fácil de Microcontroladores PICAXE

FIGURA 20 - ENVÍO DE UN TREN DE PULSOS POR EL PIN 4 DE UN PICAXE-08MCON EL COMANDO PWM.

FIGURA 21 - EEPROM PERMITE ESCRIBIR DATOS EN POSICIONES DE MEMO-RIA INTERNA DEL MICRO.

FIGURA 22 - PARA ESCRIBIR LA PALABRA “MARTIN” SE REQUIEREN 6 POSI-CIONES DE MEMORIA.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 37

Page 40: Prog Picaxe

Club Saber Electrónica Nº 79

38

Trabajando con PICAXE

FIGURA 23 - EL CÓDIGO ASCII Y SU EQUIVALENTE EN NÚMEROS BINARIOS.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 38

Page 41: Prog Picaxe

o comando WRITE para colocar los valores en la EEPROM en el momento de la ejecución. La figura 21muestra un ejemplo de uso de esta instrucción. Note que la segunda línea está indicando que guardela palabra “Martín” a partir de la dirección de memoria 0. Ahora bien cuando guardamos una palabraen la dirección 0, no significa que la integridad de la palabra o frase se guarde en esa posición sola-mente. El primer carácter o letra se guarda en la dirección cero y el resto de las letras o caracteres se almace-nan en las direcciones siguientes en el correspondiente binario según el código ASCII, tal como muestrala figura 22. Cabe aclarar que para la conversión de caracteres a su correspondiente binario, según elcódigo 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 yausado por otra palabra. Un método sencillo es ir anotando en una tabla como la mostrada en la figura22 las letras y las distintas direcciones de la EEPROM donde están guardadas, ya que luego, para podertener esas palabras, ejecutaremos comandos tales como “for…next”, los cuales apuntará a dichas posi-ciones de memoria.En la figura 24 tenemos un ejemplo de una rutina que se puede utilizar para visualizar frases en un displayde cuarzo líquido. La instrucción:

EEPROM 6,(“Martin Torres”)

Indica que a partir de la posición 6 se guarde la frase “Martin Torres” (las comillas no cuentan), lo que equi-vale al uso de 13 posiciones de memoria (“Martin” ocupa 6 posiciones, “Torres” ocupa 6 posiciones y elespacio intermedio ocupa la restante), es decir, se usa desde la posición 6 hasta la posición 18 (expre-sado en binario).

I2CSLAVE

I2C es un bus de comunicaciones en serie. Su nombre viene de Inter-Integrated Circuit (Circuitos Inter-Integrados). La versión 1.0 data del año 1992 y la versión 2.1 del año 2000, su diseñador es Philips. La velo-cidad es de 100kbits por segundo en el modo estándar, aunque también permite velocidades de3.4Mbit/s. Es un bus muy usado en la industria, principalmente para comunicar microntroladores y sus peri-

Club Saber Electrónica Nº 79

39

Programación Fácil de Microcontroladores PICAXE

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

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 39

Page 42: Prog Picaxe

féricos en sistemas integrados (Embedded Systems) y generalizando más para comunicar circuitos inte-grados entre si que normalmente residen en un mismo circuito impreso. Algunos PICAXE contienen blo-ques internos que permiten la comunicación I2C.La principal característica de I2C es que utiliza dos líneas para transmitir la información: una para los datosy por otra la señal de reloj. También es necesaria una tercera línea, que es la referencia (masa). Comosuelen comunicarse circuitos en una misma placa que comparten una misma masa esta tercera líneano suele ser necesaria.Las líneas se llaman:

SDA: datosSCL: relojGND: tierra

El comando I2CSLAVE se utiliza para configurar los pines del PICAXE y definir el tipo de I2C que se emple-ará como hardware funcional (sensores - conversores A/D-módulos conversores o digitalizadores conmemoria 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, dirección

“Esclavo” es un registro que corresponde a la dirección del esclavo I2C. “Velocidad” marca la velocidad de transmisión. “Dirección” establece elI2CBYTE o I2SWORD, indi-cando la dirección dondecomenzará a guardar lainformación. Después de que se utiliceel comando I2CSLAVE, sepueden utilizar los coman-dos readi2c y writei2cpara acceder al disposi-tivo I2C. Se pueden utilizarpara leer y grabar datosde una EEPROM mediantecomunicación serie,usando una interfase I2Cde 2 hilos. Esto permiteguardar datos en unamemoria externa no volá-til, para que sean mante-nidos aún sin conexión dealimentación. También se

Club Saber Electrónica Nº 79

40

Trabajando con PICAXE

FIGURA 25 - CAPACIDAD Y DIRECCIÓN “ESCLAVO” DE ALGUNOS DISPOSITIVOS DE

ALMACENAMIENTO DE MEMORIA.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 40

Page 43: Prog Picaxe

utilizan para poder comunicarse con otros dispositivos con interfase I2C, como sensores de temperaturay convertidores A/D.

Dirección esclavo: La dirección del esclavo cambia para dispositivos diferentes (vea la tabla de la figura25). Para las EEPROM del tipo 24LCxx la dirección es %1010xxxx. Velocidad: La velocidad del bus I2C se selecciona a través de los comandos I2CFAST para velocidad de400kHz y I2CSLOW para 100kHz.Dirección control: Los 7 bits superiores del byte de control contienen el código de control junto con laselección del chip e información adicional de dirección, dependiendo de cada dispositivo. El bit inferiores 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 código de control es %1010y no se usa la selección de chip, por lo que el byte de control será: %10100000 o $A0, tal como se puedeobservar en la tabla de la figura 25.

NOTA: El tamaño de dirección enviado (byte o Word) viene determinado por el tamaño de la variableusada. Si se usa una variable con tamaño byte se envía una dirección de 8 bits. Si se envía una variablede tamaño Word, se envía una dirección de 16 bits. Asegurarse de utilizar una variable apropiada al dis-positivo a comunicar.

READI2C

Este comando se usa para leer los datos almacenados de un dispositivo I2C, lee la dirección determi-nada en el dispositivo I2C y lo almacena en una variable establecida. El orden en que escribimos estecomando en un programa es el siguiente:

readi2c dirección, (variable,…)

“Dirección (Location)” especifica la dirección del I2C mediante un byte del tipo Word.“Variable(s)” establece dónde se almacenan los bytes del dato leído. Dirección o Location, define la dirección de inicio de la lectura de datos, aunque se logra también leermás de un byte secuencialmente (si el dispositivo I2C da soporte a lecturas secuenciales). Dirección oLocation debe ser un byte que defina al 12cslave. Un comando del 12cslave tiene que haberse ejecu-tado con anterioridad de la ejecución del readi2c. Si el hardware del I2C no fue configurado de formacorrecta o el byte de localización no es el adecuado el valor almacenado en la variable será 255 ($FF)indicándonos un error. Veamos el siguiente ejemplo de cómo usar el time clock DS1307, donde los datosson enviados/recibidos en ‘código BCD coloca la dirección 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

Club Saber Electrónica Nº 79

41

Programación Fácil de Microcontroladores PICAXE

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 41

Page 44: Prog Picaxe

Tengan en cuenta, que estos datos almacenados en b0, b1, b2, b3, b4, b5, b6, b7, además de podersevisualizar en el depurador del software “programming editor” mediante el comando “debug”, podemosadicionar o cambiarlo por el comando “sertxd” para poder visualizarlo en la pantalla de nuestro PC ualgún programa que realicemos en VisualB.

READ

Lee la información de la EEPROM incorporada en la dirección (locatino), y guarda el resultado en unavariable dada (b1, b2… w0, w1, etc.). La forma en que se escribe este comando en un programa es lasiguiente:

read dirección, variable

“Dirección o location” es una variable/constante que especifica la dirección mediante un byte.“Variable” es un dato elemental para establecer dónde se almacena el byte leído. Al usar los módulosStamp, la forma de almacenar los datos es desde la posición cero hacia arriba mientras que el alma-cenamiento del programa se construye hacia abajo desde la posición 255. Al usar el PICAXE-08 y 18 elalmacenamiento de datos se construye hacia arriba desde la posición 0 y el almacenamiento del pro-grama es hacia abajo desde la posición 127. Con el programa mostrado en la figura 26 podemos adquirir un dato de un sensor en tiempo real y com-pararlo con un registro para luego ser impreso en un display LCD. Si bien hay lecturas físicas que no varíanen microsegundos, hay procesos que requieren tener una velocidad de lectura bastante importantepara poder funcionar.

En este ejemplo podemos ver cómo transmitir un dato a un módulo display de la empresa RevolutionEducations. Tenga en cuenta que estos display vienen con un microcontrolador que contiene unpequeño firmware de control por lo que el programa no funciona en cualquier display de LCD.

Club Saber Electrónica Nº 79

42

Trabajando con PICAXE

FIGURA 26 - EJEMPLO DE USO DE LA INSTRUCCIÓN READ.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 42

Page 45: Prog Picaxe

WRITE

Con este comando podemos grabar valores en la EEPROM incorporada en el microcontrolador (en laEEPROM interna), en una dirección especificada.El orden del registro guardado, es como explicamos anteriormente cuando ejemplificamos el comandoEEPROM, comienza en una dirección dada, y el resto de los caracteres son almacenados en los espa-cios que están a continuación. Por lo dicho, hay que tener precaución si queremos borrar y refrescar unvalor dado en determinada posición, ya que si nos equivocamos en la posición de inicio del registro udonde termina, podemos borrar pedazos de otros datos.Este comando tiene la siguiente sintaxis:

write Dirección, valor

“Dirección” es una variable o constante que especifica el byte de la dirección 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 duraciónde la grabación es de 10ms aproximadamente, yesto nos genera un “lag” enel watchdog.En la figura 27 tenemosuna rutina donde se usaesta instrucción.

WRITEI2C

Graba valores en un dispositivo externo con EEPROM, en una dirección especificada. La sintaxis de estecomando es la siguiente:

writei2c Dirección, (variable,…)

“Dirección” es una variable/constante que especifica el byte de la dirección 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 “dirección” define la dirección del inicio de los datos de escritura, cabe la posibilidad de escribirmás de un byte secuencialmente (si el dispositivo del I2C soporta escritura secuencial – tener cuidado alusar EEPROM que a menudo disponen de limitaciones de escritura).Se debe tener en cuenta que la mayoría de las EEPROM requieren unos 10ms para efectuar la escrituradel dato, con lo cual se deberá tener en cuenta este retraso cuando se programe la ejecución delcomando i2cwrite. Si no se tiene en cuenta este tiempo de retardo en la grabación, los datos puedencorromperse.

Club Saber Electrónica Nº 79

43

Programación Fácil de Microcontroladores PICAXE

FIGURA 27 - WRITE PERMITE ESCRIBIR DATOS EN MEMORIA INTERNA.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 43

Page 46: Prog Picaxe

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 comandoi2cslave, no se generará ningún error. Por ello debe asegurarse que los datos han sido correctamentegrabados por la orden readi2c.Un ejemplo que muestra la forma de programar la escritura sobre una memoria externa se muestra enla figura 28.

READOWSN

Este comando nos permite tener una lecturaserie con cualquier dispositivo tipo Dallas deun hilo, que esté conectado a un PIN deentrada específico del PICAXE. La secuencia de escritura del comando es lasiguiente:

readowsn pin

“Pin” es el PIN o terminal de entrada delPICAXE que tiene conectado el sensor tipoDallas de un terminal (vea la figura 29).Si se usa un dispositivo del estilo iButton, cuyonúmero de serie está grabado en el chip quecontiene la envoltura del iButton, al ejecutarel comando readowsn se realizará la lecturadel número de serie y guardará el códigoindicador de la familia en b6, el número deserie en b7a b12 y la suma de verificación enb13. Nunca deberá utilizar los registros b6 ab13 para otros propósitos durante la ejecu-ción del comando readowsn.

Club Saber Electrónica Nº 79

44

Trabajando con PICAXE

FIGURA 28 - RUTINA DE PROGRAMACIÓN DE UNA MEMORIA EXTERNA CON EL COMANDO WRITEI2C.

FIGURA 29 - CONEXIÓN DE UN IBUTTON EN UN

PICAXE.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 44

Page 47: Prog Picaxe

DEBUG

Permite visualizar la información contenida en la variable Var en la ventana del depurador durante la eje-cución. Esta instrucción, 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 instrucción que permitirá visualizar el contenido de la variable b1.

SERTXD

Envía uno o más conjunto de datos al pin de programación, en formato “standard asíncrono”, usando 8bit de datos, sin paridad y un BIT de stop (8N1) a 4800 baudios. Este comando nos puede servir para escri-bir mensajes en nuestro terminal de programación, sin la necesidad de usar una interfase o convertidorde código como el integrado MAX232. En la figura 30 podemos ver la estructura de un programa quevuelca los datos directamente sobre una pantalla de LCD serie.

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 #, SERTXDconvierte un valor decimal en ASCII y guarda el resultado en esa variable.

Club Saber Electrónica Nº 79

45

Programación Fácil de Microcontroladores PICAXE

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

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 45

Page 48: Prog Picaxe

Se pueden enviar cadenas de texto, precedidas por comillas y encerradas dentro de paréntesis (En elejemplo de la figura 30 enviamos “Hola Martin”).

PULSIN

Este comando tiene como función observar el ancho de un pulso en un PIN de entrada o salida deter-minado. Si la opción “estado” tiene el valor cero, se mide el ancho de un pulso bajo. Si la opción “estado”tiene el valor uno, se mide el ancho de un pulso alto. El ancho o duración medido del pulso así sea conlógica 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, elvalor de esta variable será igual a cero. Si se usa una variable de 8 bits, solo se usan los bits menos sig-nificativos de la medición de 16 bits. La estructura o sintaxis de la instrucción 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 amedir en unidades de 10µs (para un cristal de 4MHz). “Variable” define un registro específico para almacenar el dato obtenido. La resolución del comando PULSIN depende de la frecuencia de los osciladores, ya sea internos (RC) uexternos. Si se usa un oscilador de 4MHz, el ancho de pulso se obtiene en incrementos de 10µs. Si se usaun oscilador de 20MHz, el ancho de pulso tendrá una resolución de 2µs. La resolución siempre cambiacon la velocidad del oscilador en uso. Por ejemplo, si en un programa escribimos:

pulsin 3,1,b1

Esta instrucción 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 período específico. El pulso se genera acti-vando 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 Período” es una variable (o constante) que especifica el tiempo o período que tendrá el pulsode salida en unidades de 10µs para una frecuencia de 4MHz. La resolución de PULSOUT, al igual que PULSIN, depende de la frecuencia del oscilador. Si se usa un osci-lador de 4MHz, el período del pulso generado estará en incrementos de 10µs. Si se usa un oscilador de

Club Saber Electrónica Nº 79

46

Trabajando con PICAXE

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 46

Page 49: Prog Picaxe

20MHz, estos períodos tendrán una duración de 2µs. Por ejemplo, si en un programa escribimos la sen-tencia:

Pulsout 4,150

Estamos indicando que por el PIN 4 enviaremos un pulso de duración “150” lo que implica que si usamosun oscilador de 4MHz, como la unidad de duración es de 10µs, significa que por el PIN 4 estaremosenviando un pulso de 1500µs (1,5ms).Tenga en cuenta que a mayor velocidad del oscilador, más tráfico de datos podemos mover.Tanto PULSIN como PULSOUT son comandos ideales para comunicación entre microcontroladores, ya seapor intermedio de infrarrojos o radiofrecuencia. También nos dan la solución ideal para poder ampliarnuestras entradas digitales a un máximo ilimitado, y que podemos establecer en nuestra rutina que deter-minado pulso signifique un dato determinado, y que otra cierta cantidad de pulsos represente otro datodeterminado.

SERIN

Este comando se usa para recibir uno o más conjuntos de datos en un PIN de entrada determinado, enformato “standard asíncrono”, usando 8bit de datos, sin paridad y un bit de stop (8N1). Veamos el ordenen 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 transferirán el o los datos, de acuerdo con los siguientesvalores:

T2400 dato originalT1200 dato originalT600 dato original T300/T4800 dato originalN2400 dato invertidoN1200 dato invertidoN600 dato invertidoN300/N4800 dato invertido

“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 sólo punto establecido para alma-cenar los datos entrantes, el valor del carácter ASCII recibido es guardado en esa variable. Si la variablees precedida por el signo #, el comando SERIN convierte un valor decimal en ASCII y guarda el resultadoen esa variable. Por ejemplo, si en un programa escribo las sentencias:

Serin 6,T2400,b1

Club Saber Electrónica Nº 79

47

Programación Fácil de Microcontroladores PICAXE

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 47

Page 50: Prog Picaxe

Estoy diciendo que los datos que vaya a recibir por el PIN6 serán con una velocidad de 2400 baudios, yse almacenarán sin ser invertidos y tal como están, sin ser convertidos, ya que se supone que están enASCII.

SEROUT

Envía uno o más conjuntos de datos a un pin de salida, en formato “standard asíncrono”, usando 8 bitde datos, sin paridad y un bit stop (8N1). La sintaxis con la que se escribe este comando en un programaes 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 datosde acuerdo con los valores dados en la tabla de la figura 31.

Variable/s: Este dato, establece la variable o variables que contienen los datos a enviar. Si la variable esprecedida por el signo #, el comando SEROUT convierte un valor decimal en ASCII y guarda el resultadoen esa variable. Se puede enviar cadenas de texto, precedidas por comillas y encerradas en parénte-sis, por ejemplo: (“Hola”). La figura 32 muestra un ejemplo de uso de este comando en una rutina.

SETINT

Este comando genera una interrup-ción en función de ciertas condicio-nes de entrada.

Club Saber Electrónica Nº 79

48

Trabajando con PICAXE

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

FIGURA 32 - EJEMPLO DE USO DE LA INSTRUCCIÓN SEROUT.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 48

Page 51: Prog Picaxe

La interrupción es el método más rápido de atender a una petición de paro del microcontrolador en fun-ción de condiciones determinadas. Es el único tipo de interrupción disponible en el sistema PICAXE y nospuede ser útil para rutinas que requieren un watchdog mas rápido y no se tiene un oscilador externo. Laforma en que se escribe una línea de programa con esta instrucción es la siguiente:

setint input, mask

“Input” es una variable o constante que establece las condiciones de entrada y nos dice qué entradaes la que va actuar en el efecto de interrupción.“Mask” es una variable/constante (75-225) que especifica la máscara. La máscara es la función que setiene que cumplir para ejecutar la interrupción.El PIN de interrupción se comprueba entre la ejecución de cada línea de código del programa e, inclu-sive, durante cualquier orden de pausa.Si la condición particular de entrada de interrupción se cumple (es cierta), se ejecuta un “gosub” para lasubrutina de interrupción inmediatamente. Cuando termina la ejecución de la subrutina de interrupción,el programa continúa en la línea siguiente desde donde se produjo la llamada a la interrupción del pro-grama principal.La condición de entrada de interrupción es cualquier patrón de “0” y “1” en el “terminal de entrada deinterrupción”, enmascarado por el byte mask (máscara). Por consiguiente, cualquier bit enmascarado porun “0” en la mascara será ignorado. Veamos el siguiente ejemplo:

Para interrumpir con entrada input1 a nivel altoSetint %00000010, % 00000010

Para interrumpir con entrada input1 a nivel bajoSetint %00000000, % 00000010

Para interrumpir con entrada input0 a nivel alto, input1 a nivel alto e input2 a nivel bajoSetint %00000011, % 00000111

Se admite sólo un patrón de entrada en cualquier momento. Para desactivar la interrupción se debe eje-cutar una orden SETINT con el valor “0” como byte de máscara.

NOTAS:1) Cada programa que usa la orden SETINT debe tener la correspondiente subrutina de interrupción (ter-mina con el correspondiente retorno al programa principal con RETURN) al final del programa principal.2) Cuando ocurre una interrupción, será atendida inmediatamente quedando inhabilitada cualquier inte-rrupción del programa principal. Si se desease ejecutar nuevamente una interrupción deberá progra-marse dentro de la subrutina de interrupción en ejecución. Queda claro que después de ser atendidauna interrupción y ejecutar la subrutina asociada quedan habilitadas las peticiones de interrupción delprograma principal.3) Si la condición de interrupción no es atendida dentro de la subrutina, una segunda llamada de inte-rrupción puede ocurrir inmediatamente.4) Después de ser ejecutado el código de la subrutina de interrupción, la ejecución del programa conti-

Club Saber Electrónica Nº 79

49

Programación Fácil de Microcontroladores PICAXE

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 49

Page 52: Prog Picaxe

núa en la siguiente línea del programa principal. Si la interrupción se produce durante la ejecución deun comando PAUSE, después de la ejecución de la subrutina de interrupción y retorno al programa prin-cipal, ignorará el tiempo que restaba de la ejecución del comando PAUSE y continuará en la líneasiguiente. 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 interrupción (PIN 7 a nivel alto), reactivando de nuevola interrupción.

BRANCH

Causa que el programa salte a una posición diferente, basada en una variable indexada. La etiquetaque especifica la dirección, debe estar en la misma etiqueta de la subrutina que contiene la instrucciónBRANCH (al igual que FOR…NEXT). La sintaxis de este comando es la siguiente:

branch offset,(dirección0, dirección1….dirección N)

“Offset” es una variable/constante que especifica qué dirección usar (0, 1…n).“direcciones” son etiquetas que especifican a donde ir (a donde debe saltar).La figura 34 muestra una rutina que incluye este comando.

Club Saber Electrónica Nº 79

50

Trabajando con PICAXE

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

FIGURA 34 - INSTRUCCIÓN DE SALTO EN UNA RUTINA (USO DE LA INSTRUCCIÓN BRANCH).

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 50

Page 53: Prog Picaxe

BUTTON

EL comando BUTTON lee el PIN de entrada establecido y opcionalmente ejecuta un procedimientointerno de anti-rebote y autoprotección. El orden en que escribimos este comando en un programa:

button Pin, Down, Delay, Rate, Bvar, Action, Etiqueta

“Pin” indica cuál 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 laentrada seleccionada (0..1).“Delay” otorga un contador de ciclos antes de que comience la auto-repetición (0..255). Si es 0, no seefectúa anti-rebote ni auto-repetición. Si es 255 se eliminan rebotes, pero no auto-repetición.“Rate” indica el valor de auto-repetición (0..255).“Bvar” es la variable con tamaño de byte que se usa internamente para conteo de demoras y repeti-ciones. Debe ser inicializada a 0 antes de ser usada y no ser usada en cualquier lugar del programa, yaque perderíamos los datos almacenados del conteo.“Action” indica el estado del pulsador al ser actuado… puede ser 1 o 0 (podemos invertir el estado delas entradas según nuestras necesidades).“Etiqueta” Indica el origen de la ejecución del comando. La ejecución comienza en esta etiqueta si escierto Action.La figura 35 muestra un ejemplo de uso del comando BUTTON.

Este comando, me brindó la solución en varias oportunidades en las cuales la fuente de alimentación mefallaba por ser muy sencilla y tener, a su vez, una muy alta distorsión armónica en la línea de alimentación.Si bien uno puede suponer en teoría que con una resistencia de 10kΩ en la entrada o implementando opto-acopladores podemos suprimir o acondicionar las señales entrantes, en este caso el problema se origina enla propia fuente y, por mas que hagamos intentos, vamos a tener problemas de lectura.

COUNT

Cuenta el número de pulsos en un PIN, durante un período (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 número de 0 a 15 (B0, por ejemplo)ó un numero de PIN.

Club Saber Electrónica Nº 79

51

Programación Fácil de Microcontroladores PICAXE

FIGURA 35 - EJEMPLO DE USO DEL COMANDO BUTTON.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 51

Page 54: Prog Picaxe

“Period” es un valor numérico (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 20µs. Con un oscilador de 20MHz chequea elestado cada 4µs. De esto se deduce que la mayor frecuencia de pulsos que puede ser contada es de25kHz 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 ins-trucción. Este comando, me fue muy útil para la elaboración de un codificador que debía implementaren un TACOMETROdigital de altas RPMque regulaba unacelerador electró-nico.

SERVO

Envía 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 alám-bricamente. La sintaxis de programación 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 posición del servo. Este comando pone elPIN 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 duración) cada 20ms; por consi-guiente el comando servo 1,75 moverá el servo a la posición de 0 grados, con el comando servo 1,225se posicionará en el extremo opuesto 180º. Con el comando servo 1,150 colocará el servo en la posi-ción central. El comando SERVO no se puede usar al mismo tiempo que PWMOUT dado que comparten un contadorcomún. No se debe usarun valor de pulso menor de75 o mayor de 255 dadoque puede causar que elservo funcione incorrecta-mente. Debido a las tole-rancias en la fabricaciónde los servos, todos losvalores son aproximados yrequieren un ajuste fino porexperimentación. En lafigura 37 tenemos unarutina de ejemplo.

Club Saber Electrónica Nº 79

52

Trabajando con PICAXE

FIGURA 36 - EJEMPLO DE USO DEL COMANDO COUNT.

FIGURA 37 - EJEMPLO DE USO DEL COMANDO SERVO.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 52

Page 55: Prog Picaxe

SOUND

Genera un tono y/o ruido blanco en el PIN especificado. PIN se configura automáticamente como salida.El orden en que escribimos este comando en un programaes el siguiente:

sound pin,(nota,duración,nota,duración…)

“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.

“Duración” es una variable/constante (0-255) que determina la duración de la nota, en incrementos de12 ms.Los tonos y el ruido blanco están en una escala ascendente (por ejemplo: 1 y 128 son las frecuenciasmenores, 129 y 266 las mayores). Para tener en cuenta, la “Nota 1” es aproximadamente de 78,74 Hz yla “nota 127” es aproximadamente de 10.000Hz.El comando SOUND entrega como salida ondas cuadradas con nivel TTL. Gracias a las características delPIC (con el que se obtiene el PICAXE), se puede manejar un parlante a través de un condensador. El valordel condensador debe ser determinado en función de las frecuencias a usar y la carga del parlante. Parael caso de implementar parlantes piezoeléctricos o buzzer, estos pueden ser conectados directamente.En la figura 38 tenemos un ejemplo de uso de este comando.

NOTA: En caso de implementar el MODULO Sound IN-OUT, debe verificar que esté realizando las conexio-nes en el terminal de salida del módulo.El principal obstáculo cuando se toca música en un microcontrolador PIC es el limitado espacio dememoria . Todos los chips PICAXE tienen un comando SOUND para hacer ruidos, sin embargo, el númerode notas y velocidad de reproducción o “tempo”, es muy limitado ya que el dato del comando SOUNDconsume toda la memoria de programa disponible. .oPara resolver esto, el PICAXE-08M tiene el comando nuevo TUNE para reproducir música . El comando

Club Saber Electrónica Nº 79

53

Programación Fácil de Microcontroladores PICAXE

FIGURA 38 - EN PICAXE, CON EL COMANDO SOUND, SE PUEDEN GENERAR SONIDOS Y ENVIARLOS A UN

PARLANTE O BOCINA CONECTADO A UN PIN.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 53

Page 56: Prog Picaxe

TUNE incorpora un algoritmo de compresión de datos de la nota para ahorrar espacio de memoria,también viene pre programado con 4 melodías : Happy Birthday, Jingle Bells, Noche de Paz y Rodolfo elReno de la nariz roja. Además puede ser programado con los tonos de timbre de los teléfonos celularesque se prefiera.oLos tonos de los celulares se pueden bajar de internet en formato “Ring Tone Text Transfer” (RTTTF), comolos que se usan en la mayoría de los teléfonos Nokia . oUn microcontrolador simple no puede reproducir melodías complicadas “polifónicas”, pero se oyenbien las melodías “monofónicas” (un tono a la vez).

READTEMP - READTEMP12

Este comando, lee la temperatura de un sensor digital de temperatura DS18B20 conectado en unaentrada analógica y almacena su lectura en una variable dada. La sintaxis del parámetro de progra-mación es la siguiente:

readtemp pin,variablereadtemp12 pin,wordvariable

“Pin” designa la pata del puerto de entrada analógica del PICAXE donde estará conectado el sensor.“Variable” designa la posición donde se almacena el byte leído.

READTEMP: la resolución de la lectura es de “enteros” de grado y el sensor funciona desde -55ºC hasta+125ºC. 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 resolución de0,125ºC y necesita 12 bits para su representación digital. El usuario debe interpretar los datos a través decálculo matemático. Para saber más sobre el uso de esta instrucción debe consultar la hoja de datosdel DS18B20 (www.dalsemi.com).La rutina de ejemplo mostrada en la figura 39 solo es válida si tenemos el módulo LCD de RevolutionsActions. Para saber cómo funciona, puede realizar la práctica de simulación en el “Programming Editor”,tal como venimos explicando en esta obra.

Club Saber Electrónica Nº 79

54

Trabajando con PICAXE

FIGURA 39 - RUTINA QUE LEE LA TEMPERATURA DE UN SENSOR CONECTADO EN UN PIN DE

ENTRADA DEL PICAXE.

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 54

Page 57: Prog Picaxe

Ejecute el “Programming Editor” en su PC, copie la rutina de la figura 39 y desde la pestaña opción, vayaa simulación y seleccione la opción “visualizar y simular comandos de LCD”. De esta manera podrá vercómo 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 módulo interno del microcontrolador y solopuede ser empleado cuando el microcontrolador tenga una salida específica para esta función.Este comando, es diferente al comando PWM que vimos anteriormente, ya que PWMOUT funciona hastaque otra orden de PWMOUT sea indicada. Este comando resulta eficiente para el control de velocidadesde 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 enperiod = 0. La sintaxis de esta instrucción es la siguiente:

pwmout pin,period,duty cycles

“Pin” define la pata de salida en la que se generarán los pulsos (siempre es 3 en el PICAXE-18X, 2 en elPICAXE-08M y 1 ó 2 en los PICAXE 28X/40X).“Period” es una variable/constante (0-255) que especifica el período del pulso.“Duty” es una variable/constante (0-1023) que especifica el ciclo de trabajo de la señal PWM.A los fines de referencia, las fórmulas de cálculo para saber cuál es la frecuencia de los pulsos produci-dos 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) opara 8MHz. La forma en que se escribe la instrucción es:

setfreq freq

“freqt” puede ser m4 o m8

Por ejemplo:setfreq m4 'frecuencia interna a 4MHzsetfreq m8 'frecuencia interna a 8MHz

Club Saber Electrónica Nº 79

55

Programación Fácil de Microcontroladores PICAXE

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 55

Page 58: Prog Picaxe

El cambio de frecuencia no ocurre hasta que el interruptor de arranque se active de nuevo, y el valor esalmacenado en memoria interna siendo, ahora, el cambio permanente.

SLEEP

Coloca al microcontrolador en modo de bajo consumo (duerme) por un período de tiempo indicadoen seconds segundos. Los retardos pueden ser de hasta 65535 segundos (aproximadamente 18 horas).La sintaxis de programación es la siguiente:

sleep seconds

“seconds” es una variable/constante que especifica la duración del sleep (0-65535)

La instrucción SLEEP usa el WatchDog Timer, por lo que es independiente de la frecuencia del osciladorutilizado. La resolución es de aproximadamente 2,3 segundos y la exactitud es de aproximadamente un99,9%, aunque puede variar de acuerdo al dispositivo y la temperatura. El consumo se reduce en unarelación 1/100.

Los dados hasta aquí son la mayoría de los comandos que acepta PICAXE, no son todos, existen otrosespecíficos que serán explicados cuando se empleen en aplicaciones especiales.

Club Saber Electrónica Nº 79

56

Trabajando con PICAXE

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 56

Page 59: Prog Picaxe

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 57

Page 60: Prog Picaxe

Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 58

Page 61: Prog Picaxe

Club Saber Electrónica Nº 79

59

Hemos visto en qué consiste elsistema PICAXE y ya sabemoscuáles son los comandos parapoder programarlo en BASIC,además, en el Nº 16 de estacolección “Club SaberElectrónica”, explicamos cómose programa un PICAXE pormedio de diagramas de flujoutilizando el Programing Editor.Resta ahora comenzar a pro-gramar en BASIC utilizando loaprendido en el capítulo 2 de esta obra, tema del que nos ocuparemos a continuación.

INTRODUCCIÓN

Para que un microcontrolador desarrolle una tarea mediante la ejecución del programa que tiene gra-bado en su memoria, es preciso que el mismo esté alimentado y posea componentes externos quepermitan su funcionamiento. Normalmente se emplean resistencias, diodos emisores de luz, capacito-res, buzzers piezoeléctricos (zumbadores), interruptores, etc.

El objetivo de este texto es que Ud. utilice al microcontrolador PICAXE como un elemento multipro-pósito y le saque “el mayor jugo posible”.

Antes de explicar cómo se puede realizar la prueba de los componentes que trabajan con el micro-controlador, daremos algunas consideraciones generales sobre las fuentes de energía que usaremospara alimentar a nuestro circuito.

¿Qué es una batería?Una batería es una fuente de energía eléctrica (es una fuente de potencia portátil). Las baterías estánconstituidas por elementos químicos que almacenan energía. Al conectarlas a un circuito, esta energíaquímica se convierte en energía eléctrica que puede luego alimentar al circuito.

CC APÍTULAPÍTUL OO 33

APRENDIENDO A PROGRAMARPICAXE

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 59

Page 62: Prog Picaxe

¿Qué tamaño de batería se utilizan en electrónica?Las baterías vienen en todo clase de tipos y tamaños. Lamayoría de las baterías consisten en un grupo de pilas,en donde cada pila provee cerca de 1.5V (figura 1). Porlo tanto 4 pilas crean una batería de 6V y 3 pilas una de4.5V. Como regla general, mientras más grande es labatería, más tiempo durará (ya que contiene más quími-cos y por lo tanto será capaz de convertir más energía).Una batería de mayor voltaje no dura más que una ba-tería de menor voltaje. Por lo tanto, una batería de 6V for-mada por 4 pilas AA dura mucho más que una bateríaPP3 de 9V (batería de 9V común), ya que por ser física-mente más grande contiene una mayor cantidad totalde energía química. Por lo tanto, aquellos equipos querequieren mucha potencia para operar (por ejemplo unreproductor portátil de CDs, el cual tiene un motor y unláser para leer los CDs) siempre utilizarán pilas AA y nobaterías PP3.Los microcontroladores PICAXE generalmente requieren entre 3 a 6V para operar, y por lo tanto es mejorutilizar una batería formada por tres a cuatro pilas AA. Nunca utilice una batería PP3 de 9V ya que la ali-mentación de 9V puede dañar el microcontrolador.

¿Qué tipo de batería debo utilizar?Los distintos tipos de baterías contienen diferentes químicos. Las baterías de carbón-zinc son las más ba-ratas, y son adecuadas para utilizarse en muchos circuitos de microcontroladores. Las baterías alcalinasson más costosas, pero tienen una vida mucho más larga y se las debe emplear cuando se necesitaalimentar dispositivos que requieren mucha corriente tales como motores. Las baterías de litio son mu-cho más costosas pero tienen una larga vida, y por lo tanto se utilizan comúnmente en circuitos de com-putadoras, videocaseteras, etc. Otro tipo de baterías son las baterías recargables, las cuales pueden re-cargarse cuando se agotan. Estas están hechas, usualmente, de níquel y cadmio (Ni-cad) ó de hidróxi-do de metal cadmio (NiMH).Atención:Nunca haga corto-circuito en los terminales de una pila o una batería. Las baterías alcalinas y las recar-gables pueden suministrar corrientes muy grandes, y pueden calentarse tanto que pueden llegar a “ex-plotar” o derretir la carcasa. Siempre asegúrese de conectar la batería en el sentido correcto (rojo posi-tivo (V+) y negro negativo -0V ó tierra-). Si las baterías se conectan al revés, el microcontrolador corre pe-ligro de calentarse y dañarse.Los paquetes de baterías se conectan a menudo, al circuito integrado mediante cables con conecto-res adecuados. Asegúrese siempre que los cables rojo y negro estén conectados en la dirección correc-ta. También es de mucha utilidad pasar los cables de la batería a través de los agujeros del tablero an-tes de soldarlos en su lugar (esto proveerá una unión mucho más fuerte, la cual será mucho menos pro-pensa a soltarse).Nunca use una batería PP3 de 9V para alimentar directamente a un microcontrolador, ya que el mismosólo trabaja con voltajes entre 3 y 6V.

Club Saber Electrónica Nº 79

60

Aprendiendo a Programar PICAXE

FIGURA 1

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 60

Page 63: Prog Picaxe

Algunos soportes de baterías pequeñas requieren la soldadura de cables a contactos metálicos en la ca-ja. En este caso debe ser muy cuidadoso de no sobrecalentar los contactos metálicos. Si los contactosse calientan mucho, derretirán el plástico que los rodea y por lo tanto se caerán. Una buena manera deprevenir esto es pedirle a un amigo que sostenga los contactos metálicos con una pinza pequeña. Laspinzas actuarán como un disipador de calor y ayudarán a evitar que el plástico se derrita.

USO Y PRUEBA DE LEDS

Un Diodo Emisor de Luz (LED) es un componente electrónico que emite luz cuando la corriente pasa através de él. Un LED es un tipo de diodo especial. Un diodo es un componente que sólo permite el flujode corriente en una dirección. Al utilizar un diodo, el mismo debe estar conectado en la dirección correcta. La pata positiva (ánodo) deun LED es más larga que la pata negativa (mostrada por una barra en el símbolo). La pata negativa tam-bién posee un extremo plano en la cubierta plástica del LED. En la figura 2 se puede observar el aspec-to y el símbolo de un led.

¿Para qué se utilizan los LEDs?Los LEDs se utilizan principalmente como lucesindicadoras. Los LEDs rojos y verdes se utilizan,comúnmente, en artefactos electrónicos talescomo televisores para mostrar si el televisor es-tá encendido o si está en el modo stand-by (enespera). Los LEDs están disponibles en una va-riedad de colores diferentes, incluyendo rojo,amarillo, verde y azul. Existen también LEDs ul-

tra-brillantes, los cuales se utilizan en luces de seguridad tales como las luces intermitentes utilizadas enbicicletas. Los LEDs infrarrojos producen una luz infrarroja que no es visible al ojo humano, pero que pue-de utilizarse en dispositivos tales como mandos a distancia de equipo de video.

¿Cómo se usan los LEDs?Los LEDs sólo necesitan una pequeña cantidad de corriente para operar; esto los hace mucho más efi-cientes que las lamparitas eléctricas (esto significa, por ejemplo, que si se tuviera una alimentación porbaterías un LED alumbraría por mucho más tiempo que una bombilla eléctrica). Si se pasa demasiadacorriente por un LED el mismo se puede dañar; es por esto que los LEDs normalmente se utilizan junto conuna resistencia en serie para protegerlos de corrientes excesivas. El valor de la resistencia requerida de-pende del voltaje de la batería utilizada. Para una batería de 4.5V se puede utilizar una resistencia de 330Ω o 330R que es lo mismo (fig. 3), y pa-ra una batería de 3V lo apropiado es una resistencia de 120Ω.

¿Cómo se conecta un LED a un microcontrolador?Debido a que el LED sólo requiere una pequeña cantidad de corriente para operar, el mismo se puedeconectar directamente entre un pin de salida del microcontrolador y 0V (sin olvidar incluir la resistenciaen serie para protección).

Club Saber Electrónica Nº 79

61

Programación Fácil de Microcontroladores PICAXE

FIGURA 2 FIGURA 3

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 61

Page 64: Prog Picaxe

¿Cómo se prueba el LED con el microcontrolador?Después de conectar el LED al PICAXE, el mismo puede probarse utilizando un simple programa tal co-mo el siguiente:Main:

High 0Wait 1Low 0Wait 1Goto main

Este programa debe encender y apagar el LED (conectado al pin de salida 0) una vez por segundo.Para realizar esta primera práctica, ejecute el utilitario “Editor de Programa” según lo descrito en este mis-mo capítulo; luego, escriba el programa anterior, conecte la placa entrenadora con el PICAXE coloca-do, asegúrese que el jumper correspondiente esté en el lado de programación, conecte uno de los ledsde la placa en la salida “0”, descargue el programa (asegúrese que el entrenador esté bien conectadopor medio del cable al puerto serial de la PC), luego corra el jumper a la posición salida y vea si obtie-ne 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 sentidocorrecto.3. que se esté utilizando el número de pin correcto dentro del programa.4. que todos los componentes estén bien soldados.

Para la prueba, se puede emplear también el circuito de una mascota virtual (figura 4) dado que seráuno de los proyectos que presentaremos más adelante.El programa de la tabla 1 enciende y apaga 15 veces al LED conectado al pin de salida 0 utilizandouna técnica de programación BASIC llamada “bucle for...next” (esta técnica no puede utilizarse con or-ganigramas). ______________________________________________________________Tabla 1: Programa para encender y apagar un led 15 veces

Main:For b1 = 1 to 15 ;inicio de un bucleHigh 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 continúa con el bucle hasta que termineEnd ; fin del programa________________________________________________________________

El número de veces que el código debe repetirse se almacena en la memoria del chip PICAXE utilizan-do una “variable” llamada b1 (el PICAXE tiene 14 variables nombradas de b0 a b13). Una variable es un

Club Saber Electrónica Nº 79

62

Aprendiendo a Programar PICAXE

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 62

Page 65: Prog Picaxe

“registro de almacenamientode números” dentro del micro-controlador, que el mismo pue-de utilizar para almacenar nú-meros a medida que el progra-ma se ejecuta. Le aconsejamos que lea o repa-se todo lo anterior nuevamente,que baje de Internet el progra-ma para trabajar con PICAXE ypractique con el ejercicio queacabamos de dar y con los queseguimos.

USO Y PRUEBA DE TIMBRES Y ZUMBADORES

¿Qué es un zumbador electrónico?Un zumbador electrónico es un “miniparlante” (minibocina) de bajo costo que se utiliza para hacer soni-dos. El sonido generado por el zumbador puede cambiarse alterando las señales electrónicas suministra-das por el microcontrolador.

¿Para qué se utilizan los zumbadores?Los zumbadores se utilizan en una gran variedad de diferentes productos para dar “retroalimentación” alusuario. Un buen ejemplo de esto es una máquina expendedora, la cual emite un sonido cada vez quese presiona un botón para escoger un refresco o algo para comer. Este sonido da retroalimentación alusuario para indicarle que se recibió la señal del botón presionado. Otros tipos de zumbadores se utilizana menudo en tarjetas musicales de cumpleaños, para tocar una melodía cuando se abre la tarjeta.

¿Cuál es la diferencia entre un zumbador y un timbre ?El timbre (o sirena) contiene un pequeño circuito electrónico, el cual genera la señal electrónica necesa-ria para emitir un sonido. Por lo tanto, cuando el timbre se conecta a una batería siempre emitirá el mis-mo sonido. El zumbador no tiene este circuito y por ende necesita una señal externa. Esta señal puedesuministrarla un pin de salida del microcontrolador. El zumbador también requiere menos corriente para

operar y por lo tanto durará más en circuitos alimentadospor baterías.

¿Cómo se usan los zumbadores?La conexión de los zumbadores a un PICAXE es muy sen-cilla. Simplemente conecte el cable rojo al pin de salidadel microcontrolador y el cable negro a 0V (tierra), figura5. Tome en cuenta que los zumbadores más económicosno tienen cubierta plástica exterior. En estos casos es ne-cesario montar el zumbador sobre una sección del circui-

Club Saber Electrónica Nº 79

63

Programación Fácil de Microcontroladores PICAXE

FIGURA 4

FIGURA 5

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 63

Page 66: Prog Picaxe

to impreso (con cinta adhesiva de doble contacto) para crear un sonido que se pueda escuchar. El cir-cuito impreso actúa como una “caja de sonido” (baffle) y amplifica el sonido emitido por el zumbador.Asegúrese de pegar la cinta adhesiva al lado correcto del zumbador (¡el lado de bronce que no tienelos cables!).En algunas ocasiones puede que desee emitir sonidos más fuertes. En este caso lo adecuado es utilizarun parlante (bocina) en vez de un zumbador. Al utilizar parlantes es necesario conectar un condensador(por ejemplo un capacitor electrolítico de 10µF) al circuito del microcontrolador para evitar causarle da-ños al chip. Recuerde que, al igual que el zumbador, los parlantes sólo operan correctamente si estánmontados en una “caja de sonido”.Después de conectar el zumbador, el mismo puede probarse utilizando un simple programa tal comoel siguiente:

Main:Sound 2, (65,100)Sound 2, (78,100)Sound 2, (88, 100)Sound 2, (119, 100)Go to main

Este programa hará que el zumbador (conectado al pin de salida 2) haga 4 sonidos diferentes (valores65, 78, 88, 119), siguiendo el diagrama de flujo de la figura 6.

Vea qué sencillo es programar…

“main” (del inglés “principal), es una etiqueta que dice que está por em-pezar el programa.“sound 2” es una instrucción que dice que el PICAXE genere un sonido ylo emita por la salida 2, cuya frecuencia dependerá del primer númeroque está entre paréntesis en la instrucción y su valor puede ser cualquie-ra entre 0 y 127.De la misma mamera que antes, podemos probar este programa, utili-zando el entrenador propuesto en este capítulo y conectando el zumba-dor en la salida 2. Ejecute el utilitario “Editor de Programa”; luego, escribael programa anterior, conecte la placa entrenadora con el PICAXE colo-cado, asegúrese que el jumper correspondiente esté en el lado de pro-gramación, conecte el zumbador en la salida “2”, descargue el progra-ma (asegúrese que el entrenador esté bien conectado por medio del ca-ble al puerto serial de la PC), luego corra el jumper a la posición salida y

vea si obtiene el funcionamiento deseado.Si el zumbador no funciona verifique:

1. Que el valor del sonido (primer número en el paréntesis) esté entre 0 y 127.2. Que se esté utilizando el número de pin correcto dentro del programa.3. Que todas las conexiones estén bien soldadas.

Club Saber Electrónica Nº 79

64

Aprendiendo a Programar PICAXE

FIGURA 6

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 64

Page 67: Prog Picaxe

Para probar este elemento también puede utilizar el circuito de la mascota virtual. En síntesis, al utilizar elcomando sound, el primer número indica el número de pin (en los proyectos el pin 2 es utilizado frecuen-temente). El siguiente número es el tono, seguido por la duración. Mientras más alto es el tono, mayor se-rá la altura tonal del sonido (tome en cuenta que algunos zumbadores no pueden emitir tonos muy altosy; por lo tanto, valores mayores de 127 puede que no se escuchen).Al utilizar sonidos múltiples puede incluirlos todos en la misma línea. 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, uti-lizando la variable b1 para almacenar el valor (tono) del comando sound.El número almacenado en la variable b1 aumenta 1 en cada bucle (1-2-3-etc.); por lo tanto, al utilizar lavariable b1 en la posición del tono, la nota se cambia en cada bucle. El programa de la tabla 3 realizala misma tarea, pero en orden inverso (contando el tono en cuenta regresiva)._____________________________________________________________________Tabla 2

Main:For b1 = 1 to 120 step-1 ,iniciar un bucle for … nextSound 2, (b1, 50) ,emita un sonido con el tono b1Next b1 , siguiente b1End ,fin del programa

_____________________________________________________________________

Tabla 3

Main:For b1 = 120 to 1 step-1 ,iniciar un bucle for … nextSound 2, (b1, 50) ,emita un sonido con el tono b1Next b1 ,siguiente b1End ,fin del programa

_____________________________________________________________________

Le aconsejamos que baje de Internet el programa para trabajar con PICAXE y realice sus propios “ejem-plos”. Si no tiene los programas para trabajar con los microcontroladores PICAXE, puede bajarlos sin car-go de nuestra web: www.webelectronica.com.mx, haciendo clic en el ícono password e ingresando laclave: “picaxe212”.

PRUEBA Y USO DE SENSORES DIGITALES

¿Qué son los interruptores digitales?Un sensor digital es simplemente un componente del tipo “interruptor”, el cual sólo puede estar en dosposiciones: encendido ó apagado. Si dibujáramos una gráfica de las señales de encendido-apagado

Club Saber Electrónica Nº 79

65

Programación Fácil de Microcontroladores PICAXE

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 65

Page 68: Prog Picaxe

del interruptor a medida que se oprime, el mis-mo se vería como se muestra en la figura 7.Los interruptores son componentes electróni-cos que detectan movimientos. Existe unagran variedad de interruptores diferentes, porejemplo:

1) interruptores de botón de presión que de-tectan cuando el botón ha sido oprimido 2) micro-interruptores con palanquitas largasque detectan pequeños movimientos3) interruptores de nivel que detectan sacudidas4) interruptores de lengüeta (reed switches) que detectan el movimiento de un imán

¿Para qué se utilizan los Interruptores?Los interruptores de botón de presión se utilizan comúnmente en dispositivos tales como teclados. Los mi-cro-interruptores se utilizan en alarmas contra robos, para detectar si se ha quitado la cubierta de la ca-ja de la alarma. Los interruptores de lengüeta (reed switches) se utilizan para detectar la apertura de puer-tas y ventanas, y los interruptores de nivel se utilizan a menudo para detectar mo-vimiento en dispositivos tales como juguetes, secadores y alarmas. Los símbolospara un interruptor deslizante y para un interruptor de presión, se muestran en la fi-gura 8.Los interruptores se instalan en los circuitos junto a una resistencia como se mues-tra en el diagrama de la figura 9. El valor de la resistencia no es importan-te, pero a menudo se utiliza una resistencia de 10kΩ. Cuando el interrup-tor está “abierto”, la resistencia de 10kΩ conecta el pin de entrada del mi-crocontrolador a 0V, lo cual da una señal de apagado (nivel lógico 0) alpin de entrada del microcontrolador.Cuando el interruptor se activa, el pin de entrada se conecta al terminalpositivo de la batería (V+). Esto da una señal de encendido (nivel lógico1) al microcontrolador.El interruptor puede probarse utilizando un simple programa tal como elmostrado en la tabla 4.Este programa encen-derá o apagará unasalida dependiendo desi el interruptor es pre-sionado o no. En esteprograma las tres pri-meras líneas constitu-yen un bucle continuo.Mientras la entrada es-té apagada, el progra-ma seguirá reiniciándo-

Club Saber Electrónica Nº 79

66

Aprendiendo a Programar PICAXEFIGURA 7

FIGURA 8

FIGURA 9

TABLA 4

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 66

Page 69: Prog Picaxe

se una y otra vez. Si la entrada está encendida, el programa salta a la etiqueta llamada “flash”. El pro-grama luego enciende por 2 segundos la salida 0 antes de regresar al bucle principal. Note cuidadosa-mente la ortografía de la línea: “if...then – input3” (entrada 3) es una sola palabra (sin espacios en blan-co). Es permitido utilizar tanto pin3 como input3, ambas significan lo mismo. Note también que despuésdel comando then, únicamente está la etiqueta “–“ en este punto no se permite ninguna otra palabraaparte de la etiqueta.Para realizar la prueba del interruptor con este programa, deberá conectar el interruptor en la entrada 3del entrenador y en la salida deberemos conectar un led. Luego, una vez descargado el programa si-guiendo el procedimiento que explicamos para otros ejemplos, cada vez que presione el pulsador y lomantenga presionado, se encenderá el led conectado en la salida “0” durante 2 segundos. Recuerdeque para programar el jumper de la pata 7 debe estar del lado de programación y luego del lado desalida “0” para que el circuito trabaje según lo programado.

PRUEBA Y 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. Laresistencia de la fotorresistencia cambia a medida que varía la cantidad de luz que incide sobre la “ven-tana” del dispositivo. Esto permite a los circuitos electrónicos medir cambios en el nivel de luz. Vea en elcapítulo siguiente a la explicación del funcionamiento de los PICAXE-18 la curva de respuesta y otros da-tos relevantes sobre las fotorresistencias.

¿Para qué se utilizan las fotorresistencias?Las fotorresistencias se utilizan en las lámparas automáticas de las rutas para encenderlas durante la no-che y apagarlas durante el día. También se utilizan en muchas alarmas y juguetes para medir niveles deluz.La fotorresistencia es un sensor del tipo analógico. Un sensor analógico mide una señal continua tal co-mo luz, temperatura o posición (en vez de una señal digital de encendido/apagado como es el caso deun interruptor). El sensor analógico provee como señal un voltaje variable. Esta señal de voltaje puede re-presentarse mediante un número entre el 0 al 255 (Por ejemplo: muy oscuro = 0, luz brillante = 255).Las fotorresistencias se pueden utilizar de dos maneras. La manera más simple de utilizar una fotorresis-tencia 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á unaseñal de encendido; cuando el nivel de luz está debajo de cierto nivel, la fotorre-sistencia enviará una señal de apagado.En este caso, la fotorresistencia se coloca en una configuración de divisor de vol-taje con una resistencia estándar. El valor de la resistencia estándar define el “va-lor de umbral”. Para fotorresistencias miniatura el valor adecuado es 1kΩ, para fo-torresistencias más grandes del tipo ORP12 una resistencia de 10kΩ es más ade-cuada. Si se desea la resistencia fija puede reemplazarse por una resistencia va-riable de manera que el valor de umbral se pueda ajustar para diferentes valoresdel nivel de luz (figura 10).Una manera más versátil de utilizar la fotorresistencia es midiendo un cierto núme-

Club Saber Electrónica Nº 79

67

Programación Fácil de Microcontroladores PICAXE

FIGURA 10

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 67

Page 70: Prog Picaxe

ro de valores de luz diferentes, de manera que las decisiones se puedan tomar para niveles de luz cam-biantes en vez de un solo nivel de umbral fijo. Un valor cambiante se conoce como un valor “analógi-co”.Para medir valores analógicos el microcontrolador debe tener un convertidor analógico/ digital y ade-más el software utilizado debe ser capaz de soportar el uso de este convertidor. La mayoría de los mi-crocontroladores sólo tienen convertidores a-d en algunos de sus pines de entrada; por lo tanto, el pinde entrada se debe seleccionar cuidadosamente. En el microcontrolador de 8 patas sólo uno de los pines puede utilizarse.El circuito electrónico que utiliza el convertidor a-d es un circuito divisor de voltaje idéntico al mostradoen la figura 10. Las “mediciones” analógicas se realizan dentro del microcontrolador mismo. Para realizar una prueba, conecte la fotorresistencia, la misma se puede probar como un interruptor di-gital utilizando un simple programa tal como se ve en el diagrama de la figura 11 (que también mues-tra el diagrama de flujo que dá origen al programa).

Este programa encende-rá y apagará la “salida0” de acuerdo al nivelde luz.Para probar la fotorresis-tencia, conéctela al en-trenador de la figura 12 ysiga los procedimientosque hemos utilizado pa-ra la prueba de otroscomponentes. La mismase puede probar comoun sensor analógico utili-zando un simple progra-ma, tal como se ve en lafigura 13.El comando “readadc”se utiliza para leer el valor

Club Saber Electrónica Nº 79

68

Aprendiendo a Programar PICAXE

FIGURA 11

FIGURA 12

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 68

Page 71: Prog Picaxe

analógico (un número entre 0 y 255) dentro de la variable b1. Una vez que este número está en la varia-ble b1, el mismo se puede probar para ver si es mayor que 100 ó mayor que 50. Si es mayor que 100la salida 4 se enciende, si está entre 50 y 100 se enciende la salida 0, y si es menor de 50 ambas salidasse apagan.De esta manera culminamos este capítulo “presentación” de los microcontroladores PICAXE. Veamosahora cómo trabajar con los PICAXE-18.

RRecordemos:ecordemos: El microcontrolador PICAXE es un PIC al que se le graba un pequeño programita in-terno (firmware) para que pueda ser programado directamente sin la necesidad de un cargador ylos programas se pueden hacer en BASIC y en otros entornos muy amigables. En síntesis, tiene to-das las bondades del PIC, pero son mucho más fáciles de usar.

A modo de síntesis, por si Ud. ha comenzado la lecturapor esta sección, digamos que el microcontroladorPIC (microcontrolador programable, figura 14) es amenudo descrito como una “computadora en unchip”. Es un circuito integrado que contiene memoria,unidades procesadoras y circuitos de entrada/salida,en una sola unidad.Estos microcontroladores son comprados en “blanco”y luego programados con un programa específico de

control. Una vez programado, este microcontrolador es introducido en algún producto para hacerlo másinteligente y fácil de usar. A manera de ejemplo, un horno de microondas (figura 15) puede utilizar un solo microcontrolador para

Club Saber Electrónica Nº 79

69

Programación Fácil de Microcontroladores PICAXEFIGURA 13

FIGURA 14

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 69

Page 72: Prog Picaxe

procesar información proveniente del teclado numérico, mostrarinformación para el usuario en la pantalla y controlar los dispositi-vos de salida (motor de la mesa giratoria, luz, timbre y magnetrón).Un microcontrolador puede, a menudo, reemplazar a un gran nú-mero de partes separadas, o incluso a un circuito electrónicocompleto. Algunas de las ventajas obtenidas con el uso de micro-controladores en el diseño de productos son:

· Aumento en la confiabilidad debido al menor número de par-tes.· Reducción en los niveles de existencia ya que un microcontrola-dor reemplaza varias partes.· Simplificación del ensamblaje del producto y productos finales más pequeños.· Gran flexibilidad y adaptabilidad del producto, ya que las funciones del producto están programadasen el microcontrolador y no incorporadas en el hardware electrónico.· Rapidez en modificaciones y desarrollo del producto mediante cambios en el programa del micro-controlador, y no en el hardware electrónico.

Algunas de las aplicaciones que utilizan microcontroladores incluyen artefactos domésticos, sistemas dealarma, equipo médico, subsistemas de automóviles y equipo electrónico de instrumentación.Algunos automóviles modernos contienen más de treinta microcontroladores, utilizados en una ampliavariedad de subsistemas desde el control del motor hasta el cierre a control remoto.En la Industria, los microcontroladores son usualmente programados utilizando programación en lengua-je C. Sin embargo, debido a la complejidad de este lenguaje, es muy difícil, para estudiantes muy jóve-nes de bachillerato, el uso adecuado de dicho lenguaje.

UTILIZANDO EL COMANDO SYMBOL

Algunas veces es difícil recordar cuáles pines están conectados a cuáles dispositivos. El comando sym-bol puede, en estos casos, ser utilizado al inicio del programa para renombrar las entradas y salidas. No-te que este programa asume la conexión de un timbre externo al pin de salida 7. Ver tabla 5._______________________________________________________________________TABLA 5

symbol dp = 7 'renombrar salida 7 “dp” (punto decimal)symbol buzzer = 1 'renombrar salida 1 “buzzer” (timbre)

main: 'hacer una etiqueta llamada “main” high dp 'LED encendidolow buzzer 'timbre apagadowait 1 ' esperar un segundolow dp ' LED apagadohigh buzze ' timbre encendido

Club Saber Electrónica Nº 79

70

Aprendiendo a Programar PICAXE

FIGURA 15

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 70

Page 73: Prog Picaxe

wait 1 'esperar 1 segundogoto main 'regresar al inicio (“main”)

______________________________________________________________________

Recuerde que los comentarios [explicaciones posteriores al símbolo de apóstrofe (‘)] facilitan mucho lacomprensión de cada línea del programa. Estos comentarios son ignorados por la computadora al des-cargar un programa al PICAXE. “Todo lo que en una línea está después de (‘) es ignorado por el pro-grama”.Las etiquetas (“main:” en el programa de la tabla 5) pueden ser cualquier palabra (con la excepción depalabras claves como por ejemplo “switch”) pero DEBEN empezar con una letra. Cuando la etiqueta esdefinida por primera vez debe llevar al final el símbolo de dos puntos (:). Esto indica a la computadoraque la palabra es una nueva etiqueta.Este programa utiliza el comando wait. Los comandos wait y pause se utilizan para crear retardos o tiem-pos muertos. Sin embargo, el comando wait puede ser utilizado únicamente con segundos enteros mien-tras que pause se puede utilizar para retardos más cortos (el mismo se asigna en milésimas de segundo).Al comando wait se le pueden asignar números del 1 al 65, los cuales deben escribirse después del co-mando. Al comando pause se le pueden asignar números entre 1 y 65535.Es una buena técnica de programación usar tabulaciones (o espacios) al inicio de líneas sin etiquetas demanera que los comandos estén alineados. El término “espacios en blanco” es utilizado por programa-dores para definir tabulaciones, espacios y líneas en blanco. Dichos “espacios en blanco”, utilizados co-rrectamente, hacen al programa mucho más fácil de leer y entender (vea las tabulaciones que hemoshecho en el programa de la tabla5; en la primera columna ponemos etiquetas o definimos variables, enla segunda columna colocamos las instrucciones y en la tercera columna están los comentarios que fa-cilitan la comprensión del programa).

NOTA: Algunas versiones antiguas de lenguaje BASIC utilizan “números de línea” en vez de etiquetas pa-ra trabajar con los comandos goto. Desafortunadamente, este sistema puede ser muy inconveniente yaque si el programa es modificado posteriormente agregando o eliminando líneas, todos los números delínea posteriores deben ser modificados. El sistema de etiquetas, utilizado en la mayor parte de las versio-nes modernas de lenguaje BASIC, supera este problema automáticamente.El “cerebro” del sistema PICAXE es el microcontrolador de 18 pines PIC16F627. Este PIC posee un progra-ma 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 menosde 2 dólares), los mismos son dispositivos muy complejos que contienen miles de transistores, resistenciasy otros componentes electrónicos.El microcontrolador PICAXE almacena sus programas (firmware) en su memoria FLASH “no volátil”. La ven-taja de esta memoria es que no pierde el programa descargado cuando la fuente de alimentación (ba-terías) es desconectada del circuito (cuando las baterías son reconectadas el programa se inicia nueva-mente). Sin embargo, cuando desee reprogramar el PICAXE, puede descargar un nuevo programa; es-ta acción borra el viejo programa almacenado en la memoria y almacena el nuevo programa en la me-moria de programa. La memoria sólo 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 “leer-lo”; por ende, si desea guardar el código de un programa para utilizarlo posteriormente debe guar-

Club Saber Electrónica Nº 79

71

Programación Fácil de Microcontroladores PICAXE

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 71

Page 74: Prog Picaxe

darlo en su computadora antes de descargarlo al PICAXE. Esto es una restricción que el operadordebe tener en cuenta, dado que en un PIC sí es posible leer el programa grabado en la memoria.

El microcontrolador contiene además de la memoria ROM (Read Only Memory - Memoria de sólo lec-tura), memoria temporal RAM (Random Access Memory - Memoria de Acceso Aleatorio).La memoria RAM es una memoria “temporal” utilizada para almacenar información mientras el progra-ma es ejecutado. La misma es utilizada normalmente para almacenar respuestas de sumas matemáti-cas que el microcontrolador hace mientras está trabajando. Esta memoria es “volátil”, lo cual significaque tan pronto las baterías son desconectadas, la información almacenada en la misma se pierde.Hay 14 bytes de memoria temporal disponibles y los mismos son denominados desde b0 a b13 dentrode los programas.

PRACTICANDO CON EL PICAXE-18

La figura 16 muestra el circuito básico PICAXE-18. El resistor de 4k7 (4700Ω), conectado en el pin 4, seusa como resistencia de “pull-up” para quitar al micro del estado de reset. Si desea colocar un sistemade reset, debe conectar un interruptor o pulsador entre el pin 4 y masa (tierra, gnd) de modo que al serpresionado se produzca el estado de reset del micro.

¡Tome en cuenta que el microcontrolador PICAXE no es un microcontrolador en blanco... es un PICque tiene un programa interno (firmware) para que pueda ser usado con el utilitario ProgrammingEditor!

El microcontrolador PICAXE está preprogramado con un firmware de carga que permite la descarga di-recta de programas con el cable suministrado de sólo tres terminales. Los microcontroladores PIC comu-nes no tienen este progra-ma y por ende no puedenser programados medianteel sistema PICAXE.El microcontrolador PICA-XE-18A es casi idéntico almicrocontrolador PICAXE-18 estándar, pero es ligera-mente más costoso ya quetiene el doble de capaci-dad de memoria (aproxi-madamente 80 líneas deprogramación BASIC envez de 40) y salidas analó-gicas de alta resolución (envez de baja resolución).

El sistema PICAXE utilizauna interfaz al puerto serie

Club Saber Electrónica Nº 79

72

Aprendiendo a Programar PICAXE

FIGURA 16

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 72

Page 75: Prog Picaxe

de la computadora muy simple (esun cable de tres hilos). Aunque estainterfaz no utiliza verdaderos voltajesRS232, es de muy bajo costo y hatenido un desempeño confiable encasi todas las computadoras mo-dernas. Si bien ya mostramos en elcapítulo 1 cómo se programa elmicro PICAXE, en la figura 17 volve-mos a mostrar cómo se conecta es-te cable en la placa del entrenador.

Es altamente recomendable utilizar esta interfaz, ya que cada vez que quiera programar el chip no de-be quitarlo de la placa de circuito impreso, sólo debe conectar el cable entre la placa y la computado-ra, ejecutar el programa “Programming Editor” y hacer la descarga correspondiente... ¡así de simple!

NOTA: Hoy las computadoras portátiles ya no tienen puerto serial y, en ese caso, debe usar un adapata-dor (vea el capítulo 1), por otro lado, a mayor parte de las computadoras de escritorio tienen dos puer-tos serie, normalmente denominados COM1 y COM2. El software “Editor de Programación (ProgrammingEditor)” debe ser configurado con el puerto al cual el microcontrolador está conectado. Para ello, en elmenú desplegable seleccione Ver -> Opciones -> Puerto Serie, para elegir el puerto serie correspon-diente en su computadora.Si ya compró un cable de sistema PICAXE armado y utiliza una computadora que posee el antiguo co-nectador de puerto serie de 25 pines, utilice un adaptador 9-25 para poder conectar el cable PICAXE de9 pines. Estos adaptadores pueden ser comprados en cualquier tienda (casa) especializada en compu-tadoras. Pero también, Ud. puede armar el cable siguiendo las instrucciones que le daremos oportuna-mente.

UTILIZANDO BUCLES FOR…NEXT

Con frecuencia, es útil repetir una parte de un programa varias veces, por ejemplo al encender/apagarsucesivamente un diodo LED (Light Emitting Diode, Diodo emisor de luz). En estos casos un bucle for…nextpuede ser utilizado. El programa de la tabla 6 enciende y apaga 15 veces el diodo LED conectado alpin de salida 7. El número de veces que el código debe ser repetido es almacenado usando la variableb0 (el PICAXE tiene 14 variables de 1 byte para uso general, nombradas de b0 a b13 en la memoria RAMdel chip PICAXE). Estas variables pueden ser renombradas usando el comando symbol con el fin de ha-cerlas más fácil de recordar. _______________________________________________________________________ TABLA 6

symbol counter = b0 'definir la variable “counter” como b0symbol dp = 7 'asignar al pin 7 con el “dp”

main:

Club Saber Electrónica Nº 79

73

Programación Fácil de Microcontroladores PICAXE

FIGURA 17

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 73

Page 76: Prog Picaxe

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

______________________________________________________________________

Note nuevamente cómo los espacios en blanco han sido utilizados para mostrar claramente todos loscomandos contenidos entre los comandos for y next.

CONTROLANDO LA VELOCIDAD DE UN MOTOR

Debido a que el sistema PICAXE opera muy rá-pidamente, es posible controlar la velocidadde motores, encendiéndolos y apagándolosmuy rápidamente. Este tipo de control se co-noce como PWM (Pulse Width Modulation, Mo-dulación por ancho del impulso). La PWM esuna buena técnica de control ya que permitea los motores operar a bajas velocidadesmanteniendo un alto torque (fuerza de giro).La PWM es utilizada frecuentemente en mu-chas aplicaciones, por ejemplo, para contro-lar la velocidad de taladros y destornilladoreseléctricos. Para que la PWM funcione correctamente, se necesitan motores de alta calidad. Los progra-mas aquí mostrados están diseñados para motores “solares” y puede que no funcionen correctamentesi se utilizan motores de juguete baratos. Para la conexión del motor en nuestro entrenador, vea la figura18. El programa se muestra en la tabla 7.

_____________________________________________________________________________________TABLA 7

symbol mark1 = b6 'renombrar variablessymbol space1 = b7symbol mark2 = b8symbol space2 = b9

let mark1 = 2 'precargar mark1/space1 con relación de 2:10 (1:5)let space1 = 10

let mark2 = 20 'precargar mark2/space2 con relación de 20:10 (2:1)let space2 = 10

Club Saber Electrónica Nº 79

74

Aprendiendo a Programar PICAXE

FIGURA 18

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 74

Page 77: Prog Picaxe

main:for b2 = 1 to 200 'iniciar un bucle for...nexthigh 0 'encender motorpause mark1 'esperar tiempo indicado por mark1low 0 'apagar motorpause space1 'esperar tiempo indicado por space1next b2 'siguiente b2pause 2000 'detener motor por 2 segundosfor b2 = 1 to 200 'iniciar un bucle for.....nexthigh 0 'encender motorpause mark2 'esperar tiempo indicado por mark2low 0 'apagar motorpause space 2 'esperar tiempo indicado por space1next b2 'siguiente b2pause 2000 'detener motor por 2 segundosgoto main

_____________________________________________________________________________________

Intente seguir el programa para ver si puede comprenderlo; si no lo logra.... no se preocupe, recién es-tamos empezando.

USO DE TIMBRES Y ZUMBADORES ELECTRÓNICOS EN EL SISTEMA PICAXE

Los timbres emiten un sonido cuando están conectados a una fuente de alimentación.Este sonido, usualmente, está “fijo” a una frecuencia determinada; así, los timbres pueden emitir un solo“tono”. Los zumbadores electrónicos usan un tipo de sistema y pueden ser utilizados para emitir sonidosen diferentes tonos al proveerlos con una salida de diferentes frecuencias.El sistema PICAXE puede crear automáticamente sonidos de diferentes frecuencias utilizando el coman-do sound (ver tabla 8).

_____________________________________________________________________________________ TABLA 8main:

sound 6, (50,100) 'emitir un sonido en salida 6 con frecuencia 50 y longitud 100sound 6, (100,100) 'emitir un sonido en salida 6sound 6, (120,100) 'emitir un sonido en salida 6pause 1000 'esperar 1 segundogoto main 'saltar al inicio del programa (main)

_____________________________________________________________________________________

Para probar este programa se debe instalar un zumbador electrónico 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 Electrónica Nº 79

75

Programación Fácil de Microcontroladores PICAXE

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 75

Page 78: Prog Picaxe

En el programa, el primer número indica el númerode pin (en el tablero tutorial el pin de salida 6 es uti-lizado). El siguiente número es el tono, seguido porla duración del sonido (longitud). Mientras más altosea el número de tono, mayor será la “altura tonal”del sonido (frecuencia, note que algunos zumba-dores no pueden producir tonos muy altos y por lotanto números de tono mayores de 127 puede queno sean escuchados).El siguiente programa que vemos en la tabla 9 utiliza un bucle for-…next para producir 120 sonidos diferentes. El número almacenadoen la variable b0 aumenta 1 unidad en cada bucle (1-2-3, etc.). Porconsiguiente, al utilizar la variable b0 para asignar el tono, el mismopuede ser cambiado en cada bucle. _____________________________________________________________ TABLA 9main:

for b0 = 1 to 120 'iniciar un bucle for....nextsound 6, (b0,50) 'emitir sonido en salida 6 con frecuencia b0 y longitud 50Next b0 'siguiente b0end

_____________________________________________________________________________________En la tabla 10 se ve el programa que realiza la misma función pero cambiando el tono en orden des-cendente, es decir de 120 a 1._____________________________________________________________________________________ TABLA 10main:

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 50next b0 'siguiente b0end

_____________________________________________________________________________________En la tabla 11 vemos el programa que emite todos los 256 sonidos posibles._____________________________________________________________________________________ TABLA 11main:

sound 6, (b0, 50) 'emitir sonido en salida 6let b0 = b0 + 1 'sumar 1 al valor de la variable b0goto main 'ir a inicio del programa (main)

_____________________________________________________________________________________En este último caso el programa es ejecutado indefinidamente. Sin embargo, es importante compren-der cómo el PICAXE ejecuta las operaciones matemáticas.El PICAXE sólo interpreta números en “byte”, o sea números enteros del 0 al 255. No puede interpretarfracciones, ni números negativos, ni números mayores de 255.

Club Saber Electrónica Nº 79

76

Aprendiendo a Programar PICAXEFIGURA 19

FIGURA 20

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 76

Page 79: Prog Picaxe

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 mane-ra mientras el programa se ejecuta: …252-253-254-255-0-1-2- etc.

USO DE ENTRADAS CON SENSORES DIGITALES

Un sensor digital es un simple sensor del tipo “interruptor” que sólo puede estar en dos posiciones: encen-dido ó apagado. Algunos ejemplos de sensores digitales comunes son:

· Microinterruptores· Interruptores de botón de presión e interruptores oscilantes· Interruptores de lengüeta

La placa entrenadora propuesta para esta prácticatiene dos interruptores de presión conectados a las en-tradas 6 y 7 (figura 21). Adicionalmente se pueden co-nectar otros dos interruptores a las entradas 0 y 1. En latabla 12 vemos el programa que indica al PICAXE có-mo reaccionar cuando los interruptores de botón depresión son presionados. En el programa el pin de salida 7 se ilumina cada vezque el interruptor de botón de la entrada 6 es presio-nado.

_____________________________________________________________________________________ TABLA 12main: '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 mainflash: 'hacer etiqueta llamada “flash”

high 7 'encender salida 7 (output 7)pause 2000 'esperar 2 segundoslow 7 'apagar salida7goto main 'ir a “main”

_____________________________________________________________________________________En este programa las tres primeras líneas forman un bucle continuo. Si la entrada está apagada el pro-grama se reiniciará una y otra vez.Una vez que el interruptor es presionado, el programa salta a la etiqueta llamada “flash”. El programa lue-go activa la “salida 7” por dos segundos antes de regresar nuevamente a “main”.Note cuidadosamente la ortografía en la línea del comando if…then – entrada6 (input6) es una sola pa-labra (sin espacios en blanco). Note también que únicamente se debe escribir la etiqueta posterior al co-mando then – no se permite ninguna otra palabra aparte de la etiqueta.

Club Saber Electrónica Nº 79

77

Programación Fácil de Microcontroladores PICAXE

FIGURA 21

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 77

Page 80: Prog Picaxe

USO DE ENTRADAS CON SENSORES ANALÓGICOS

Los sensores analógicos miden señales continuas talescomo luz, temperatura o posición.El sensor analógico provee una señal que consiste enun voltaje variable (figura 22). Este voltaje puede luegoser representado con un número del 0 al 255 (Porejemplo muy oscuro = 0, luz muy brillante = 255).Ejemplos típicos de sensores analógicos son:

· Fotorresistencias ó LDRs (LightDependent Resistors - Resisten-cias variables con la luz ).· Termistores· Resistencias variables (poten-ciómetros)

El tablero tutorial (entrenador)posee una fotorresistencia mon-tada en el mismo, la cual estáconectada a la entrada 2 (in-put2).La fotorresistencia es un componente cuya resistencia cambia al variar la intensi-dad de luz que incide sobre la misma, es decir, su resistencia cambia según el ni-vel de luz. Bajo luz brillante su resistencia es baja (típicamente alrededor de 1kΩ) mientrasque en la oscuridad, su resistencia es muy alta (típicamente alrededor de 1MΩ).En la figura 23 se muestra el símbolo y la curva típica de resistencia contra intensi-dad de luz para la fotorresistencia. La fotorresistencia está conectada a la entra-da 2 en configuración de divisor de voltaje. Tal como se muestra en la figura 24.

Cómo se Leen las Entradas AnalógicasEl valor de una entrada analógica puede ser fácilmente copiado dentro de una variable utilizando el co-mando readadc. Luego, se puede probar el valor de la variable (0 a 160). El programa de la tabla 13enciende un diodo LED si el valor es mayor que 120 y otro diodo LED, si el valor es menor de 70. Si el va-lor está entre 70 y 120, ambos diodos LED permanecen apagados._____________________________________________________________________________________ TABLA 13

main: 'hacer etiqueta llamada “main”readadc 2,b0 'leer señal de canal 2 en variables b0if b0 > 120 then stop 'si b0 >120 ir a “stop”if b0 < 70 the bot 'si b0 <70 ir a “bot”low 1 'sino apagar 1

Club Saber Electrónica Nº 79

78

Aprendiendo a Programar PICAXE

FIGURA 23

FIGURA 24

FIGURA 22

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 78

Page 81: Prog Picaxe

low 2 'y apagar 2goto main 'ir a “main”

top: 'hacer una etiqueta llamada “top”high 1 'encender 1low 2 'apagar 2goto main 'ir a “main”

bot: 'hacer una etiqueta llamado “bot”high 2 'encender 2low 1 'apagar 1goto main 'ir a “main”

_____________________________________________________________________________________ Note que el microcontrolador PICAXE-18 tiene tres canales o entradas analógicas nombradas del 0 al 2.En el tablero de nuestro entrenador la fotorresistencia está conectada permanentemente al pin 2, perolos otros dos canales (0 y 1) están libres para conectar otros sensores.Frecuentemente, al utilizar sensores análogos es necesario calcular el valor de “umbral” necesario parael programa (esto es, los valores 70 y 120 en el programa anterior). El comando debug permite ver fácil-mente 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 depuración (debug) en la pantalla dela computadora, indicando el valor de la variable b0. _____________________________________________________________________________________ TABLA 14

main: 'hacer etiqueta llamada “main”readadc 2,b0 'leer señal de canal 2 en variable b0debug b0 'transmitir valor a la pantalla del ordenadorpause 100 'pausa cortagoto main 'ir a “main”

_____________________________________________________________________________________ A medida que el sensor es probado con la variable, la ventana va indicando la lectura actual del sen-sor.

De esta manera damos por terminada la edición de este texto. Aclaramos que en este capítulo hemoshecho 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 Evaluación, asistencia por Internet y Diplomaavalado por importantes Instituciones, siga las instrucciones que brindamos en la página 2..

Club Saber Electrónica Nº 79

79

Programación Fácil de Microcontroladores PICAXE

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 79

Page 82: Prog Picaxe

Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 80

Page 83: Prog Picaxe

3ª de forros 2.qxd 9/5/11 12:54 PM Página 3ªFo1

Page 84: Prog Picaxe

4ª de forros.qxd 9/5/11 12:55 PM Página 4ªFo1