Está en la página 1de 84

Portada club 79M

9/5/11

12:58 PM

Pgina 1

2 de forros.qxd

9/5/11

12:53 PM

Pgina 2Fo1

sumario club 79 picaxe

9/6/11

10:02 AM

Pgina 1

Programacin Fcil de Microcontroladores PICAXE

Programacin Fcil de

Microcontroladores

PICAXE

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

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

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

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

SUMARIO

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

CAPTULO 3
APRENDIENDO

PROGRAMAR PICAXE . . . . . .59

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

Club Saber Electrnica N 79

sumario club 79 picaxe

9/6/11

10:02 AM

Pgina 2

Qu Son y Cmo se Usan los PICAXE

Director
Ing. Horacio D. Vallejo

Editorial

Produccin
Jos Mara Nieves (Grupo Quark SRL)
Seleccin y Coordinacin:
Ing. Horacio Daniel Vallejo
EDITORIAL QUARK S.R.L.
Propietaria de los derechos en castellano de la publicacin mensual SABER ELECTRNICA - San Ricardo 2072 (1273) Capital Federal - Buenos Aires - Argentina - T.E. 4301-8804
Administracin y Negocios
Teresa C. Jara (Grupo Quark SRL)
Patricia Rivero Rivero (SISA SA de CV)
Margarita Rivero Rivero (SISA SA de CV)
Staff
Liliana Teresa Vallejo
Mariela Vallejo
Diego Vallejo
Fabian Nieves
Luis Alberto Castro Regalado (SISA SA de CV)
Jos Luis Paredes Flores (SISA SA de CV)
Sistemas: Paula Mariana Vidal
Red y Computadoras: Ral Romero
Video y Animaciones: Fernando Fernndez
Legales: Fernando Flores
Contadura: Fernando Ducach
Tcnica y Desarrollo de Prototipos:
Alfredo Armando Flores
Atencin al Cliente
Alejandro Vallejo
ateclien@webelectronica.com.ar
Internet: www.webelectronica.com.mx
Publicidad:
Rafael Morales
rafamorales@webelectronica.com.mx

Del Editor al Lector

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

Club SE:
Grupo Quark SRL
luisleguizamon@webelectronica.com.ar
Editorial Quark SRL
San Ricardo 2072 (1273) - Capital Federal
www.webelectronica.com.ar
La Editorial no se responsabiliza por el contenido de las notas firmadas. Todos los productos o marcas que se mencionan son a los efectos de prestar un servicio al lector, y no entraan responsabilidad de nuestra parte. Est prohibida la
reproduccin total o parcial del material contenido en esta
revista, as como la industrializacin y/o comercializacin
de los aparatos o ideas que aparecen en los mencionados textos, bajo pena de sanciones legales, salvo mediante autorizacin por escrito de la Editorial. Octubre 2011.
Impresin: Talleres Babieca - Mxico

SOBRE LOS CDS Y SU DESCARGA


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

Club Saber Electrnica N 79

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 3

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

QU SON Y CMO SE USAN LOS

PICAXE

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

Club Saber Electrnica N 79

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 4

Qu Son y Cmo se Usan los PICAXE

namente dentro de su encapsulado, posee como


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

Club Saber Electrnica N 79

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 5

Programacin Fcil de Microcontroladores PICAXE

ware que poseen los microcontroladores PICAXE se


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

Club Saber Electrnica N 79

Cap 1 - PICAXE

VENTAJAS

9/6/11

DEL

10:03 AM

Pgina 6

Qu Son y Cmo se Usan los PICAXE

SISTEMA PICAXE

Como dijimos, el PICAXE es un sistema de microcontroladores PIC muy fcil de programar ya


que utiliza un lenguaje BASIC muy sencillo, adems de contar tambin con la posibilidad de
programarlos con diagramas de flujo.
Aprovecha todas las caractersticas de los microcontroladores de bajo costo que incorporan
memoria FLASH.
Est disponible en tres versiones que son el de 8
terminales (PICAXE-08), 18 terminales (PICAXEFIGURA 5 - EL PROGRAMING EDITOR PERMITE
18) y 28 terminales (PICAXE-28). En estos microPROGRAMAR EN BASIC O CONVERTIR EL DIAGRAMA DE FLUJO EN BASIC.
controladores ya se tienen definidas las terminales que tienen la funcin de entrada y salida
de datos, adems de las terminales que sirven
para programar al PICAXE en sitio, o en otras
palabras sobre la misma aplicacin. En las figuras 6, 7 y 8 se muestran los circuitos esquemticos de
la disposicin de cada uno de los microcontroladores PICAXE.
En la figura 6 se muestra el circuito esquemtico para un PICAXE de 8 terminales, de las cuales las que
estn identificadas como Pin1 E/S, Pin2 E/S, Pin3 E/S y Pin4 E/S, son terminales que pueden funcionar como
entradas o salidas de datos del exterior hacia el microcontrolador.
Las terminales identificadas como Serial En y Serial Sal, se utilizan para programar al microcontrolador a
travs del puerto serie de una PC, para lo cual las terminales del conector identificado como CON1 se
hacen llegar al conector DB9 de la PC, tal como se muestra en la figura 9.
Por otra parte, de la misma figura 6 se observa que la terminal identificada como Serial Sal, cumple con
una doble funcin, y dependiendo de dnde se ubique un jumper selector en el conector CON2, se
podr programar al PIC o esa misma terminal una vez programado el PIC tendr la funcin de una terminal de salida de datos.
Del circuito esquemtico de la figura 7 se observa la forma en que estn dispuestas las terminales de un
PICAXE de 18 terminales, de las cuales
las que se encuentran
identificadas
como En 0, En 1, En
2, En 6 y En 7 son
dedicadas exclusivamente para adquirir
datos del exterior
hacia el microcontrolador.
Las terminales que se
encuentran identifiFIGURA 6 - CIRCUITO BSICO DE ENTRENAMIENTO PARA EL PICAXE-08.
cadas de la Sal 0 a

Club Saber Electrnica N 79

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 7

Programacin Fcil de Microcontroladores PICAXE

Sal 7 son exclusivamente para enviar


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

Club Saber Electrnica N 79

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 8

Qu Son y Cmo se Usan los PICAXE

Como se puede observar en la


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

Club Saber Electrnica N 79

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 9

Programacin Fcil de Microcontroladores PICAXE

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

ELECTRNICA N 221.

Ya retornaremos con este tema, cuando sepamos


ms acerca de las caractersticas principales de
estos chips. Veamos ahora en qu consiste el software gratuito.
EL EDITOR

FIGURA 13 - UN ADAPTADOR USB A RS232


COMERCIAL.

DE

PROGRAMAS

Lo diferente del sistema de microcontroladores


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

Club Saber Electrnica N 79

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 10

Qu Son y Cmo se Usan los PICAXE

macin basada en un lenguaje BASIC y


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

10

Club Saber Electrnica N 79

FIGURA 14 - CARPETA PROGEDIT.

FIGURA 15 - SOFTWARE DE INSTALACIN PROGRAMMING EDITOR.

FIGURA 16 - VENTANA DE BIENVENIDA PARA LA INSTALACIN


DEL SOFTWARE DE LOS PICAXE.

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 11

Programacin Fcil de Microcontroladores PICAXE

FIGURA 17 - ACUERDO DE LICENCIA.

FIGURA 18 - INFORMACIN DEL USUARIO.

FIGURA 19 - DESTINO DEL SOFTWARE.

lacin. Posteriormente ser desplegada


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

Club Saber Electrnica N 79

11

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 12

Qu Son y Cmo se Usan los PICAXE

como finish. Una vez instalado el software de programacin de los PICAXE, en


el escritorio de nuestra PC encontraremos un cono de acceso directo identificado como PICAXE Programming
Editor, al cual, para comenzar a programar los microcontroladores, debemos
hacer un doble clic con el mouse para
que se ejecute el programa, tal como se
muestra en la figura 23. En la figura 24a
se observa un ejemplo del ambiente
grfico en lenguaje BASIC y en la figura
24b en diagrama de flujo. En varias ocasiones editamos artculos mostrando
cmo se emplea el editor por diagrama
de flujo del Programing Editor pero, tal
como hemos dicho, para los prximos
PICAXE deber emplear el Logicator,
razn por la cual, ms adelante explicaremos cmo se usa.

FIGURA 20 - VENTANA DE CONFIRMACIN DE DATOS.

LOS DISTINTOS TIPOS DE PICAXE


El sistema PICAXE aprovecha todas las
caractersticas de los microcontroladores
de bajo costo que incorporan memoria
FLASH.
El sistema PICAXE est disponible en seis
distintas versiones que son:
De
De
De
De
De
De

FIGURA 21 - VENTANA DE INSTALACIN DEL SOFTWARE.

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

Estos microcontroladores ya tienen definidas las terminales que tienen la funcin


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

12

Club Saber Electrnica N 79

FIGURA 22 - CUANDO LA INSTALACIN HAYA CONCLUIDO EL PROGRAMA


NOS INDICAR QUE ESTAMOS LISTOS PARA COMENZAR A UTILIZARLO.

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 13

Programacin Fcil de Microcontroladores PICAXE

FIGURA 23 - ICONO DE ACCESO RPIDO.

FIGURA 24A - LENGUAJE BASIC PARA PROGRAMAR


LOS PICAXE.

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

FIGURA 24B - DIAGRAMA DE


FLUJO PARA PROGRAMAR LOS

PICAXE.

Club Saber Electrnica N 79

13

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 14

Qu Son y Cmo se Usan los PICAXE

cializacin, por lo tanto, es importante tomar


en cuenta con que matriculas disponemos
para poder desarrollar nuestros proyectos.
Incluso anteriormente los microcontroladores
PICAXE, tenan grabadas las matriculas de
los microcontroladores PIC (ya que la
empresa Microchip es quien los fabrica),
pero tambin en la actualidad algunos
PICAXE ya traen grabada la matricula que les
corresponde, dentro del sistema PICAXE, aun
cuando los continua fabricando Microchip.
En la tabla 1 se muestra la serie de microcontroladores PICAXE disponibles, as como
la matrcula que tienen grabada.
Por otra parte, en la tabla 2 se muestran las
matrculas de los microcontroladores PICAXE,
que sustituyen a los primeros que salieron al
mercado, para que de esta manera, se
pueda saber cules son los PICAXE de
reciente aparicin, y por obvias razones, con
los que contamos para seguir trabajando.
Para continuar conociendo a los microcontroladores PICAXE, en la tabla 3 se muestran
las principales diferencias entre las distintas
versiones que podemos encontrar y para ello
los clasificaremos en PICAXE estndar y
PICAXE Avanzado.

TABLA 1 - DISTINTOS TIPOS DE PICAXE.

KITS PICAXE
A lo largo de los ltimos aos, en Saber
Electrnica, publicamos varios circuitos con
PICAXE, muchos de los cuales se ofrecen en
forma de kits o que Ud. puede montar fcilmente, ya que todos los componentes son
comunes. A continuacin mostramos algunos
de los proyectos publicados:
TARJETA ENTRENADORA PICAXE-08 (ICA-011)
Se trata de la primera tarjeta de entrenamiento universal para programar microcontroladores PICAXE de 8 terminales denominados PICAXE - 08, figura 25.

14

Club Saber Electrnica N 79

TABLA 2 - LAS MATRCULAS DE LOS PICAXE.

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 15

Programacin Fcil de Microcontroladores PICAXE

TABLA 3 - DIFERENCIAS ENTRE LOS PICAXE.

FIGURA 25 - TARJETA PICAXE-08.

Sobre la tarjeta de circuito impreso se dispone de


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

Club Saber Electrnica N 79

15

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 16

Qu Son y Cmo se Usan los PICAXE

TARJETA ENTRENADORA PICAXE-18 (ICA-016)


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

FIGURA 26 - TARJETA PICAXE-18.

PLC PICAXE-18 (ICA-017)


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

16

Club Saber Electrnica N 79

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 17

Cap 1 - PICAXE

9/6/11

10:03 AM

Pgina 18

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 19

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

TRABAJANDO CON MICROCONTROLADORES

PICAXE

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

Club Saber Electrnica N 79

19

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 20

Trabajando con PICAXE

o Aumento en la confiabilidad debido al menor nmero de partes.


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

20

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 21

Programacin Fcil de Microcontroladores PICAXE

que halla un salto


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

Club Saber Electrnica N 79

21

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 22

Trabajando con PICAXE

o Circuito experimental, manejo y tutoriales incluidos en la pgina del fabricante (gratuitos).


o Paquete de control remoto infrarrojo disponible.
o Paquete de servo controlador disponible.
Estas son slo algunas de las funciones y utilidades disponibles.
COMENZANDO

LAS

PRCTICAS

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

22

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 23

Programacin Fcil de Microcontroladores PICAXE

y coma (;) es simplemente un comentario y


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

DE

SYMBOL

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

PUS DE UN APSTROFE O UN PUNTO Y COMA ES UN COMENTARIO Y NO FORMA PARTE DEL PROGRAMA.

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

Club Saber Electrnica N 79

23

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 24

Trabajando con PICAXE

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


ASCII.

o Los nmeros decimales se


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

DE

VARIABLES

Veamos los tipos de variable


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

FIGURA 5 - EL COMANDO SYMBOL DEFINE EL NOMBRE Y LA ACCIN DE


CONSTANTES O VARIABLES.

Las Variables en PICAXE:


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

24

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 25

Programacin Fcil de Microcontroladores PICAXE

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

LOS COMANDOS

DE

PROGRAMACIN BASIC

EN

PICAXE

La tabla 1 representa un breve resumen de los diferentes comandos disponibles para los microcontroladores PICAXE.
Veremos a continuacin la estructura y el significado de algunos de los comandos bsicos que se
emplean para programar un PICAXE y
cmo se los emplea.
GOTO

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


PROGRAMA.

Este comando tiene como funcin la


ejecucin del programa que continua
en la declaracin de la etiqueta. Dicho
en otras palabras, este comando tiene
como funcin dar una direccin donde
saltara el programa y seguir la lectura
de las instrucciones para continuar ejecutando el programa. En la figura 6
tenemos un ejemplo prctico.

Club Saber Electrnica N 79

25

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 26

Trabajando con PICAXE

TABLA 1 - RESUMEN DE COMANDOS USADOS EN PICAXE.

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

26

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 27

Programacin Fcil de Microcontroladores PICAXE

FOR ... NEXT

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

FIGURA 7 - GOSUB ES SIMILAR A GOTO PERO GUARDA LA


DIRECCIN DONDE ESTABA EN EL STACK.

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

low 1 pause 1000


next b0
end

Club Saber Electrnica N 79

27

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 28

Trabajando con PICAXE

En este punto le aconsejo que realice


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

28

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 29

Programacin Fcil de Microcontroladores PICAXE


HIGH

FIGURA 10 - LAS INSTRUCCIONES HIGH Y LOW SE EMPLEAN


PARA ESTABLECER LAS CONDICIONES DE LAS SALIDAS DIGITALES.

A medida que vayamos avanzando en


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

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

Club Saber Electrnica N 79

29

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 30

Trabajando con PICAXE

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

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

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

30

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 31

Programacin Fcil de Microcontroladores PICAXE

Cuando el microcontrolador es detenido


por el comando END entra en modo de
bajo consumo. Otra de las caracterstica
de este comando es que cuando se ejecuta esta instruccin todos los datos presentes en los pines de entrada y salida se
congelan y permanecen en el estado en
que se encuentran. Para ver mejor cmo
funciona este comando, realice una
nueva prctica; para ello, ejecute en su
PC nuevamente el Programming Editor y
copie el programa mostrado en la figura
12, realice la simulacin y verifique la
estructura del comando.
IFTHEN IFANDTHEN IFORTHEN

FIGURA 12 - LA INSTRUCCIN END SE EMPLEA PARA DETENER EL


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

=
>=
>
<
<=
<>
&
or

Estos comandos son en s, parte de una


estructura de comparacin con salto a
una direccin determinada (siempre a
una etiqueta), en el caso en que se cumpla la funcin asignada. Las funciones
que se pueden asignar a estas comparaciones son:

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

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

Club Saber Electrnica N 79

31

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 32

Trabajando con PICAXE

Esta sentencia indica que si la entrada 1 es


igual a 1, entonces el programa sigue ejecutndose en la etiqueta action3. Si la entrada
1 es igual a cero se sigue ejecutando el programa normalmente.
ifandthen
if input1 =1 and input0= 1 then action2
Aqu se dice que si la entrada 1 es igual
a 1 y la entrada 0 es igual a 1, entonces
el programa sigue ejecutndose en la
etiqueta action2. Si la entrada 1 y/o la
entrada 0 es igual a cero se sigue ejecutando el programa normalmente.

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

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

32

Club Saber Electrnica N 79

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

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 33

Programacin Fcil de Microcontroladores PICAXE

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

Club Saber Electrnica N 79

33

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 34

Trabajando con PICAXE

Aqu tambin podemos


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

Este es un muy buen


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

34

Club Saber Electrnica N 79

FIGURA 16 - CONEXIN DE UN RECEPTOR INFRARROJO EN UN


PICAXE.

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 35

Programacin Fcil de Microcontroladores PICAXE

similar a b0,b1,etc., pero de uso


exclusivo para este comando). En la
figura 16 tenemos el esquema de
conexin de un receptor IR sobre un
PICAXE-08 y en la figura 17 hemos
escrito una rutina que Ud. puede utilizar para practicar sobre el manejo
de esta instruccin. No hace falta
tener el control remoto (el transmisor),
ya que podemos ejecutar el
Programming Editor en nuestra
computadora, escribir el programa
de la figura 17 y simularlo; podemos
cambiar los valores desde la tabla
de variables de la derecha y ver
cmo cambia la simulacin.
READADC

FIGURA 17 - INFRAIN ES UN COMANDO APLICABLE A LNEAS DE


LEE EL ESTADO DE
DICHO SENSOR.

ENTRADA QUE POSEEN SENSORES INFRARROJOS Y

FIGURA 18 - EJEMPLO DE USO DEL COMANDO READADC.

Un sensor analgico es capaz de


medir y proveer informacin codificada en forma de tensiones variables. Si colocamos la seal de este
tipo de sensores a la entrada del
puerto analgico del microcontrolador, puede ser representada por
valores de 0 a 255, por ejemplo, en
el caso de una foto resistencia,
podramos decir que 0 es oscuro y
255 luz intensa.
Este comando, lo podemos implementar para convertir una seal analgica entrante en el puerto ADC del
microcontrolador, en una informacin digital con una resolucin de 8
bits. El dato obtenido de esta lectura
convertida (A/D) se almacena en
una variable (b0, b1, b2, bx, etc.),

luego ese dato puede ser empleado para cualquier propsito.


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

Club Saber Electrnica N 79

35

Cap 2 - Trabajando con PICAXE

READADC10

9/6/11

10:19 AM

Pgina 36

Trabajando con PICAXE

Este comando, es similar a


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

36

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 37

Programacin Fcil de Microcontroladores PICAXE

FIGURA 20 - ENVO DE UN TREN DE PULSOS POR EL PIN 4 DE UN PICAXE-08M


CON EL COMANDO PWM.

drada. Es necesario usar


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

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

Club Saber Electrnica N 79

37

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 38

Trabajando con PICAXE

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

38

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 39

Programacin Fcil de Microcontroladores PICAXE

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

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

Club Saber Electrnica N 79

39

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 40

Trabajando con PICAXE

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

40

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 41

Programacin Fcil de Microcontroladores PICAXE

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

Club Saber Electrnica N 79

41

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 42

Trabajando con PICAXE

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

FIGURA 26 - EJEMPLO DE USO DE LA INSTRUCCIN READ.

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

42

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

WRITE

9/6/11

10:19 AM

Pgina 43

Programacin Fcil de Microcontroladores PICAXE

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

Club Saber Electrnica N 79

43

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 44

Trabajando con 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 comando
i2cslave, no se generar ningn error. Por ello debe asegurarse que los datos han sido correctamente
grabados por la orden readi2c.
Un ejemplo que muestra la forma de programar la escritura sobre una memoria externa se muestra en
la figura 28.

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

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

44

Club Saber Electrnica N 79

FIGURA 29 - CONEXIN DE UN IBUTTON EN UN


PICAXE.

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 45

Programacin Fcil de Microcontroladores PICAXE

DEBUG

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

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

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

Club Saber Electrnica N 79

45

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 46

Trabajando con PICAXE

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

46

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 47

Programacin Fcil de Microcontroladores PICAXE

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

dato
dato
dato
dato
dato
dato
dato
dato

original
original
original
original
invertido
invertido
invertido
invertido

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

Club Saber Electrnica N 79

47

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 48

Trabajando con PICAXE

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

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

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

48

Club Saber Electrnica N 79

FIGURA 32 - EJEMPLO DE USO DE LA INSTRUCCIN SEROUT.

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 49

Programacin Fcil de Microcontroladores PICAXE

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

Club Saber Electrnica N 79

49

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 50

Trabajando con PICAXE

na en la siguiente lnea del programa principal. Si la interrupcin se produce durante la ejecucin de


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

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

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

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

50

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

BUTTON

9/6/11

10:19 AM

Pgina 51

Programacin Fcil de Microcontroladores PICAXE

EL comando BUTTON lee el PIN de entrada establecido y opcionalmente ejecuta un procedimiento


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

FIGURA 35 - EJEMPLO DE USO DEL COMANDO BUTTON.

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

Club Saber Electrnica N 79

51

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 52

Trabajando con PICAXE

Period es un valor numrico (0..65535) y expresa unidades de milisegundos.


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

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

52

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

SOUND

9/6/11

10:19 AM

Pgina 53

Programacin Fcil de Microcontroladores PICAXE

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

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


PARLANTE O BOCINA CONECTADO A UN PIN.

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

Club Saber Electrnica N 79

53

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 54

Trabajando con PICAXE

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

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


ENTRADA DEL PICAXE.

54

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 55

Programacin Fcil de Microcontroladores PICAXE

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

'frecuencia interna a 4MHz


'frecuencia interna a 8MHz

Club Saber Electrnica N 79

55

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 56

Trabajando con PICAXE

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

56

Club Saber Electrnica N 79

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 57

Cap 2 - Trabajando con PICAXE

9/6/11

10:19 AM

Pgina 58

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 59

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

APRENDIENDO A PROGRAMAR

PICAXE

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

Club Saber Electrnica N 79

59

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 60

Aprendiendo a Programar PICAXE

Qu tamao de batera se utilizan en electrnica?


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

60

Club Saber Electrnica N 79

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 61

Programacin Fcil de Microcontroladores PICAXE

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

PRUEBA

DE

LEDS

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

Club Saber Electrnica N 79

61

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 62

Aprendiendo a Programar PICAXE

Cmo se prueba el LED con el microcontrolador?


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

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

62

Club Saber Electrnica N 79

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 63

Programacin Fcil de Microcontroladores PICAXE


FIGURA 4

USO

PRUEBA

DE TIMBRES Y

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

ZUMBADORES

Qu es un zumbador electrnico?
Un zumbador electrnico es un miniparlante (minibocina) de bajo costo que se utiliza para hacer sonidos. El sonido generado por el zumbador puede cambiarse alterando las seales electrnicas suministradas por el microcontrolador.
Para qu se utilizan los zumbadores?
Los zumbadores se utilizan en una gran variedad de diferentes productos para dar retroalimentacin al
usuario. Un buen ejemplo de esto es una mquina expendedora, la cual emite un sonido cada vez que
se presiona un botn para escoger un refresco o algo para comer. Este sonido da retroalimentacin al
usuario para indicarle que se recibi la seal del botn presionado. Otros tipos de zumbadores se utilizan
a menudo en tarjetas musicales de cumpleaos, para tocar una meloda cuando se abre la tarjeta.
Cul es la diferencia entre un zumbador y un timbre ?
El timbre (o sirena) contiene un pequeo circuito electrnico, el cual genera la seal electrnica necesaria para emitir un sonido. Por lo tanto, cuando el timbre se conecta a una batera siempre emitir el mismo sonido. El zumbador no tiene este circuito y por ende necesita una seal externa. Esta seal puede
suministrarla un pin de salida del microcontrolador. El zumbador tambin requiere menos corriente para
operar y por lo tanto durar ms en circuitos alimentados
por bateras.

FIGURA 5

Cmo se usan los zumbadores?


La conexin de los zumbadores a un PICAXE es muy sencilla. Simplemente conecte el cable rojo al pin de salida
del microcontrolador y el cable negro a 0V (tierra), figura
5. Tome en cuenta que los zumbadores ms econmicos
no tienen cubierta plstica exterior. En estos casos es necesario montar el zumbador sobre una seccin del circui-

Club Saber Electrnica N 79

63

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 64

Aprendiendo a Programar PICAXE

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

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

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

64

Club Saber Electrnica N 79

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 65

Programacin Fcil de Microcontroladores PICAXE

Para probar este elemento tambin puede utilizar el circuito de la mascota virtual. En sntesis, al utilizar el
comando sound, el primer nmero indica el nmero de pin (en los proyectos el pin 2 es utilizado frecuentemente). El siguiente nmero es el tono, seguido por la duracin. Mientras ms alto es el tono, mayor ser la altura tonal del sonido (tome en cuenta que algunos zumbadores no pueden emitir tonos muy altos
y; por lo tanto, valores mayores de 127 puede que no se escuchen).
Al utilizar sonidos mltiples puede incluirlos todos en la misma lnea. Por ejemplo:
Sound 2, (65,100, 78, 100, 88, 100, 119, 100)
El programa BASIC mostrado en la tabla 2 utiliza un bucle for...next para emitir 120 sonidos diferentes, utilizando la variable b1 para almacenar el valor (tono) del comando sound.
El nmero almacenado en la variable b1 aumenta 1 en cada bucle (1-2-3-etc.); por lo tanto, al utilizar la
variable b1 en la posicin del tono, la nota se cambia en cada bucle. El programa de la tabla 3 realiza
la misma tarea, pero en orden inverso (contando el tono en cuenta regresiva).
_____________________________________________________________________
Tabla 2
Main:

For b1 = 1 to 120
step-1
,iniciar un bucle for next
Sound 2, (b1, 50)
,emita un sonido con el tono b1
Next b1
, siguiente b1
End
,fin del programa
_____________________________________________________________________
Tabla 3
Main:

For b1 = 120 to 1
step-1
,iniciar un bucle for next
Sound 2, (b1, 50)
,emita un sonido con el tono b1
Next b1
,siguiente b1
End
,fin del programa
_____________________________________________________________________

Le aconsejamos que baje de Internet el programa para trabajar con PICAXE y realice sus propios ejemplos. Si no tiene los programas para trabajar con los microcontroladores PICAXE, puede bajarlos sin cargo de nuestra web: www.webelectronica.com.mx, haciendo clic en el cono password e ingresando la
clave: picaxe212.
PRUEBA

USO

DE

SENSORES DIGITALES

Qu son los interruptores digitales?


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

Club Saber Electrnica N 79

65

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 66

Aprendiendo a Programar PICAXE

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

FIGURA 7

1) interruptores de botn de presin que detectan cuando el botn ha sido oprimido


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

66

Club Saber Electrnica N 79

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 67

Programacin Fcil de Microcontroladores PICAXE

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

USO

DE

FOTORRESISTENCIAS

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

Club Saber Electrnica N 79

67

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 68

Aprendiendo a Programar PICAXE

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

Este programa encender y apagar la salida


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

68

Club Saber Electrnica N 79

FIGURA 12

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 69

Programacin Fcil de Microcontroladores PICAXE


FIGURA 13

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

Club Saber Electrnica N 79

69

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 70

Aprendiendo a Programar PICAXE

procesar informacin proveniente del teclado numrico, mostrar


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

Aumento en la confiabilidad debido al menor nmero de partes.


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

EL

COMANDO SYMBOL

Algunas veces es difcil recordar cules pines estn conectados a cules dispositivos. El comando symbol puede, en estos casos, ser utilizado al inicio del programa para renombrar las entradas y salidas. Note que este programa asume la conexin de un timbre externo al pin de salida 7. Ver tabla 5.
_______________________________________________________________________
TABLA 5
symbol dp = 7
symbol buzzer = 1

'renombrar salida 7 dp (punto decimal)


'renombrar salida 1 buzzer (timbre)

main:

'hacer una etiqueta llamada main


'LED encendido
'timbre apagado
' esperar un segundo
' LED apagado
' timbre encendido

70

high dp
low buzzer
wait 1
low dp
high buzze

Club Saber Electrnica N 79

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 71

Programacin Fcil de Microcontroladores PICAXE

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

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

Club Saber Electrnica N 79

71

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 72

Aprendiendo a Programar PICAXE

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

CON EL

PICAXE-18

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

72

Club Saber Electrnica N 79

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 73

Programacin Fcil de Microcontroladores PICAXE

de la computadora muy simple (es


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

'definir la variable counter como b0


'asignar al pin 7 con el dp

main:

Club Saber Electrnica N 79

73

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 74

Aprendiendo a Programar PICAXE

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

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

LA

VELOCIDAD

DE UN

MOTOR

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

mark1 = b6
space1 = b7
mark2 = b8
space2 = b9

'renombrar variables

let mark1 = 2
let space1 = 10

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

let mark2 = 20
let space2 = 10

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

74

Club Saber Electrnica N 79

Cap 3 - Aperendiendo a Programar

main:

9/6/11

10:23 AM

Pgina 75

Programacin Fcil de Microcontroladores PICAXE

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

DE TIMBRES Y

ZUMBADORES ELECTRNICOS

EN EL

SISTEMA PICAXE

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

Club Saber Electrnica N 79

75

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 76

Aprendiendo a Programar PICAXE

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

76

Club Saber Electrnica N 79

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 77

Programacin Fcil de Microcontroladores 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 manera 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 slo puede estar en dos posiciones: encendido apagado. Algunos ejemplos de sensores digitales comunes son:
Microinterruptores
Interruptores de botn de presin e interruptores oscilantes
Interruptores de lengeta

FIGURA 21

La placa entrenadora propuesta para esta prctica


tiene dos interruptores de presin conectados a las entradas 6 y 7 (figura 21). Adicionalmente se pueden conectar otros dos interruptores a las entradas 0 y 1. En la
tabla 12 vemos el programa que indica al PICAXE cmo reaccionar cuando los interruptores de botn de
presin son presionados.
En el programa el pin de salida 7 se ilumina cada vez
que el interruptor de botn de la entrada 6 es presionado.

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

Club Saber Electrnica N 79

77

Cap 3 - Aperendiendo a Programar

USO

DE

9/6/11

10:23 AM

Pgina 78

Aprendiendo a Programar PICAXE

ENTRADAS

CON

SENSORES ANALGICOS

Los sensores analgicos miden seales continuas tales


como luz, temperatura o posicin.
El sensor analgico provee una seal que consiste en
un voltaje variable (figura 22). Este voltaje puede luego
ser representado con un nmero del 0 al 255 (Por
ejemplo muy oscuro = 0, luz muy brillante = 255).
Ejemplos tpicos de sensores analgicos son:
Fotorresistencias LDRs (Light
Dependent Resistors - Resistencias variables con la luz ).
Termistores
Resistencias variables (potencimetros)

FIGURA 22
FIGURA 23

El tablero tutorial (entrenador)


posee una fotorresistencia montada en el mismo, la cual est
conectada a la entrada 2 (input2).
La fotorresistencia es un componente cuya resistencia cambia al variar la intensidad de luz que incide sobre la misma, es decir, su resistencia cambia segn el nivel de luz.
Bajo luz brillante su resistencia es baja (tpicamente alrededor de 1k) mientras
que en la oscuridad, su resistencia es muy alta (tpicamente alrededor de 1M).
En la figura 23 se muestra el smbolo y la curva tpica de resistencia contra intensidad de luz para la fotorresistencia. La fotorresistencia est conectada a la entrada 2 en configuracin de divisor de voltaje. Tal como se muestra en la figura 24.

FIGURA 24

Cmo se Leen las Entradas Analgicas


El valor de una entrada analgica puede ser fcilmente copiado dentro de una variable utilizando el comando readadc. Luego, se puede probar el valor de la variable (0 a 160). El programa de la tabla 13
enciende un diodo LED si el valor es mayor que 120 y otro diodo LED, si el valor es menor de 70. Si el valor est entre 70 y 120, ambos diodos LED permanecen apagados.
_____________________________________________________________________________________
TABLA 13
main:

78

readadc 2,b0
if b0 > 120 then stop
if b0 < 70 the bot
low 1

'hacer etiqueta llamada main


'leer seal de canal 2 en variables b0
'si b0 >120 ir a stop
'si b0 <70 ir a bot
'sino apagar 1

Club Saber Electrnica N 79

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 79

Programacin Fcil de Microcontroladores PICAXE

top:

low 2
goto main

'y apagar 2
'ir a main

high 1
low 2
goto main

'hacer una etiqueta llamada top


'encender 1
'apagar 2
'ir a main

bot:

'hacer una etiqueta llamado bot


high 2
'encender 2
low 1
'apagar 1
goto main
'ir a main
_____________________________________________________________________________________
Note que el microcontrolador PICAXE-18 tiene tres canales o entradas analgicas nombradas del 0 al 2.
En el tablero de nuestro entrenador la fotorresistencia est conectada permanentemente al pin 2, pero
los otros dos canales (0 y 1) estn libres para conectar otros sensores.
Frecuentemente, al utilizar sensores anlogos es necesario calcular el valor de umbral necesario para
el programa (esto es, los valores 70 y 120 en el programa anterior). El comando debug permite ver fcilmente el valor en tiempo real de un sensor, permitiendo calcular el valor umbral experimentalmente.
Al ejecutar el programa de la tabla 14 aparecer una ventana de depuracin (debug) en la pantalla de
la computadora, indicando el valor de la variable b0.
_____________________________________________________________________________________
TABLA 14
main:

'hacer etiqueta llamada main


readadc 2,b0
'leer seal de canal 2 en variable b0
debug b0
'transmitir valor a la pantalla del ordenador
pause 100
'pausa corta
goto main
'ir a main
_____________________________________________________________________________________
A medida que el sensor es probado con la variable, la ventana va indicando la lectura actual del sensor.

De esta manera damos por terminada la edicin de este texto. Aclaramos que en este captulo hemos
hecho referencia al PICAXE-18 porque en el tomo del Club N 29 trabajamos con el PICAXE-08.
Si Ud. desea descargar el curso programado con Test de Evaluacin, asistencia por Internet y Diploma
avalado por importantes Instituciones, siga las instrucciones que brindamos en la pgina 2..

Club Saber Electrnica N 79

79

Cap 3 - Aperendiendo a Programar

9/6/11

10:23 AM

Pgina 80

3 de forros 2.qxd

9/5/11

12:54 PM

Pgina 3Fo1

4 de forros.qxd

9/5/11

12:55 PM

Pgina 4Fo1

También podría gustarte