Vous êtes sur la page 1sur 93

2ª de forros.

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


Sumario club 161_ArtTapa 10/03/2019 11:11 a. m. Página 1

Programación Fácil de Microcontroladores PICAXE


Programación Fácil de
Microcontroladores
PICAXE
Sumario
Capítulo 1: READI2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
Qué Son y Cómo Se uSan loS pICaXe 3 READ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 WRITE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
Ventajas del Sistema PICAXE . . . . . . . . . . . . . . . .6 WRITEI2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
Comenzando a Trabajar con PICAXE . . . . . . . . . .8 READOWSN . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
El Editor de Programas . . . . . . . . . . . . . . . . . . . . .9 DEBUG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
Los Distintos Tipos de PICAXE . . . . . . . . . . . . . .12 SERTXD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
Kits PICAXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 PULSIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
Tarjeta Entrenadora PICAXE-08 . . . . . . . . . . . . .14 PULSOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
Tarjeta Entrenadora PICAXE-18 . . . . . . . . . . . . .16 SERIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
PLC PICAXE-18 (ICA-017) . . . . . . . . . . . . . . . . .16 SEROUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
Control de Display de LCD para PICAXE-18 . . .16 SETINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
BRANCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
Capítulo 2 BUTTON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
trabajando Con mICroControladoreS COUNT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
pICaXe . . . . . . . . . . . . . . . . . . . . . . . . .19 SERVO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . .19 SOUND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
El Sistema PICAXE . . . . . . . . . . . . . . . . . . . . . .20 READTEMP - READTEMP12 . . . . . . . . . . . . . .54
Comenzando las Prácticas . . . . . . . . . . . . . . . . .22 PWMOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
Usando COMENTARIOS . . . . . . . . . . . . . . . . . . .22 SETFREQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
Uso de SYMBOL . . . . . . . . . . . . . . . . . . . . . . . . .23 SLEEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
Uso de Constantes . . . . . . . . . . . . . . . . . . . . . . .23
Designación de Variables . . . . . . . . . . . . . . . . . .24 Capítulo 3
Los Comandos de Programación BASIC aprendIendo a programar pICaXe . . .59
en PICAXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
GOTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25 ¿Qué es una batería? . . . . . . . . . . . . . . . . . . . . .59
GOSUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26 Uso y Prueba de LEDs . . . . . . . . . . . . . . . . . . . .61
FOR ... NEXT . . . . . . . . . . . . . . . . . . . . . . . . . . .27 Uso y Prueba de Timbres y Zumbadores . . . . . .63
HIGH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 Prueba y Uso de Sensores Digitales . . . . . . . . . .65
LOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 Prueba y Uso de Fotorresistencias . . . . . . . . . . .67
INPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 Utilizando el Comando Symbol . . . . . . . . . . . . .70
OUTPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 Practicando con el PICAXE-18 . . . . . . . . . . . . . .72
END . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 Utilizando Bucles For…Next . . . . . . . . . . . . . . . .73
IF…THEN IF…AND…THEN IF…OR…THEN . .31 Controlando la Velocidad de un Motor . . . . . . . .74
PAUSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 Uso de Timbres y Zumbadores Electrónicos
WAIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 en el Sistema PICAXE . . . . . . . . . . . . . . . . . . . . .75
RETURN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 Uso de Entradas con Sensores Digitales . . . . . .77
INFRAIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 Uso de Entradas con Sensores Analógicos . . . .78
READADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 Cómo se Leen las Entradas Analógicas . . . . . . .78
READADC10 . . . . . . . . . . . . . . . . . . . . . . . . . . .36
PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 apéndICe
EEPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 robótICa para nIñoS, adoleSCenteS y adultoS . . .81
I2CSLAVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39 Bitbloq 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81

Club Saber Electrónica Nº 161

1
Sumario club 161_ArtTapa 10/03/2019 11:11 a. m. Página 2

Qué Son y Cómo se Usan los PICAXE

Editorial
director

Del Editor al Lector


Ing. Horacio D. Vallejo

autor de este tomo de Colección:


Autores Varios 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, rápidamente, se convirtió en referente para aprender a dise-
Selección y Coordinación:
Ing. Horacio Daniel Vallejo ñar sistemas microcontrolados mediante programaciones fáciles de com-
prender.
Editorial QUarK S.r.l. Básicamente son microcontroladores PIC a los que la empresa Education
Revolution les programa un firmware para que puedan ser programados en el
Pro­pie­ta­ria­de­los­de­re­chos­en­cas­te­lla­no­de­la­pu­bli­ca­-
ción­ men­sual­ SabEr ElECtróNiCa -­ Altolafguirre circuito en que se los va a utilizar (no es preciso un programador) utilizando
310­(1870)­Villa­Domínico­-­Buenos­Aires­-­Argentina­- una aplicación llamada Programing Editor que permite hacer programas en
T.E.­11­4206­1742 diagramas de flujo y en lenguaje Basic.
En los tomos de colección Nº 7, 16 y 29 de esta obra, Club Saber
administración y negocios
Electrónica, nos dedicamos a explicar qué es PICAXE, cómo se los programa
Patricia Rivero Rivero (SISA SA de CV) mediante el uso de diagramas de flujo y dimos varios circuitos prácticos.
Margarita Rivero Rivero (SISA SA de CV) El objetivo de este tomo es introducirlo al lenguaje BASIC de modo que
aprenda a programar utilizando un lenguaje sencillo que posee muy pocas
Staff
Liliana Teresa Vallejo instrucciones, con el que podrá darle “más poder” a los PICAXE dado que
Mariela Vallejo podrá ahorrar líneas de comando, haciendo más efectiva a la memoria
Diego Vallejo EEPROM de estos micros.
Luis Alberto Castro Regalado (SISA SA de CV) Para la elaboración del capítulo 2 nos basamos en escritos del Ingeniero
Federico Vallejo
Martín Alejandro Torres Fortelli de “ElectroEscuela Virtual” quien propone
ejemplos básicos para que Ud. aprenda mientras realiza sus propias prácticas
atención al Cliente de simulación en el Programing Editor.
Alejandro Vallejo A su vez, le brindamos la oportunidad de descargar 2 discos compactos
ateclien@webelectronica.com.ar
completos, uno con un Curso Programado de PICAXE con Test de
Internet: www.webelectronica.com.ar Evaluación y Diploma extendido por importantes Instituciones y otro con un
Curso en video sobre Programación de Microcontroladores PICAXE.
publicidad: En esta segunda edición, decidimos agregar un capítulo sobre Bitbloq 2
Rafael Morales
rafamorales@webelectronica.com.ar es un lenguaje de programación por bloques, ideal para el aprendizaje de
niños, adolescentes y adultos.
Club Se: Esperamos que disfrute de este material.
grupo Quark Srl ¡Hasta el mes próximo!
clubse@webelectronica.com.ar

editorial Quark Srl


San Ricardo 2072 (1273) - Capital Federal
www.webelectronica.com.mx

La Editorial no se responsabiliza por el contenido de las no-


Sobre loS CDS y Su DeSCarga
tas firmadas. Todos los productos o marcas que se mencio-
nan son a los efectos de prestar un servicio al lector, y no Ud, podrá descargar de nuestra web 2 CDs: “Curso Programado de
entrañan responsabilidad de nuestra parte. Está prohibida la Microcontroladores PICAXE” y “Ambiente de Programación de
reproducción total o parcial del material contenido en esta Microcontroladores PICAXE” (en video). El primero incluye un curso con
revista, así como la industrialización y/o comercialización de
los aparatos o ideas que aparecen en los mencionados tex-
asesoramiento a través de Internet y Diploma de aprobación. Para realizar la
tos, bajo pena de sanciones legales, salvo mediante autori- descarga deberá ingresar a nuestra web: www.webelectronica.com.mx, ten-
zación por escrito de la Editorial. drá 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 conte-
SEGUNDA EDICIÓN, abril 2019 nido para que pueda iniciar la descarga.

Club Saber Electrónica Nº 161

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

CAPÍTULO 1
Los microcontroladores PICAXE, mas que
ser considerados como una serie de cir-
cuitos integrados fáciles de programar,
constituyen la integración de todo un sis-
tema en el cual están involucrados, a
parte de los dispositivos electrónicos (los
propios microcontroladores PICAXE), el
software para programarlos (entorno de
programación Programming Editor y apli-
cación 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 fácil, ya que uti-
liza un lenguaje BASIC muy sencillo, además de contar también con la posibilidad de pro-
gramarlos con diagramas de flujo.
En este capítulo explicaremos qué son los PICAXE, cómo podemos realizar fácilmente diseños
de sistemas que los contengan, qué tipos de PICAXE podemos encontrar y cómo se usa el
entorno de programación

QUÉ SON Y CÓMO SE USAN LOS


PICAXE
INTRODUCCIÓN

Un PIC es un microcontrolador que precisa un entorno de desarrollo (el MPLAB) para editar programas,
simularlos, convertir el programa en un archivo hexadecimal y realizar la simulación que verifique 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 (firm-
ware) para que pueda ser “cargado” en la misma placa donde va a funcionar por medio de un soft-
ware gratuito y en el que los programas pueden escribirse en BASIC o en diagrama de flujo.
Desde que el primer microprocesador vio la luz del mundo (el 4004), y cuya única y principal operación
era una suma de 1 bit, se comenzó con una carrera tecnológica que lejos de ver el fin, día a día va
logrando cosas inimaginables, tal es el caso de los microcontroladores que vendrían 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 más (figura 1), inter-

Club Saber Electrónica Nº 161

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

Qué Son y Cómo se Usan los PICAXE


namente dentro de su encapsulado, posee como
equipamiento mínimo un microprocesador, memo-
ria RAM, y distintas versiones de memoria ROM.
Los microcontroladores más avanzados, aparte de lo
mencionado anteriormente, también llegan a
poseer temporizadores ADC, DAC, Comunicación en
paralelo, USAR, etc.
Un microcontrolador, desde el punto de vista de ope-
ración, puede considerarse como si fuera una PC, ya
que cuenta con el conjunto básico de implementos FIGURA 1 - UN PICAXE ES UN PIC DE
que necesita para realizar sus funciones, esto es,
MICROCHIP AL QUE SE LE AGREGÓ UN FIRMWARE

microprocesador, disco duro, memoria RAM, etc.


PARA FACILITAR SU PROGRAMACIÓN.

Clásicamente, cuando programamos un microcon-


trolador, de forma implícita se tiene que desarrollar
un programa que trabaja a manera del BIOS de una
PC, ya que lo primero que debemos tomar en
cuenta es la configuración de sus puertos, ya sea
como de entrada o de salida, configurar sus demás
herramientas como pueden ser los temporizadores,
los ACD, etc. Han aparecido en el mercado, sistemas
de desarrollo que permiten la programación del
microcontrolador de una manera relativamente fácil,
en la cual se puede emular el proceso que nos inte-
resa desarrollar. FIGURA 2 - LA EMPRESA EDUCATION
Para la mayoría de estos sistemas de desarrollo, una R EVOLUTION FACILITA HERRAMIENTAS PARA

vez que se tiene terminada la aplicación, el paso


APRENDER A TRABAJAR CON LOS MICROCONTRO-

siguiente es armar el prototipo e insertar el microcon-


LADORES PICAXE.

trolador 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, además, Ud. puede armar el cable de conexión 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 microcon-
troladores PIC llamado PICAXE, que de por sí, quien ha utilizado estos microcontroladores, puede cons-
tatar lo sencillo que resulta su programación, el sistema de desarrollo PICAXE hace las cosas todavía más
sencillas para el programador.
El sistema de desarrollo PICAXE hace las cosas todavía más sencillas para el programador, ya que
cuenta con dos opciones de diseñar una aplicación: una por medio de diagramas de flujo y otra por
medio de “BASIC”, y aunque esto no es ninguna novedad, (ya que estas herramientas existían con ante-
rioridad), lo ventajoso del PICAXE radica en el hecho de que se trata de un microcontrolador PIC que, en
un segmento de memoria ROM interna le ha sido grabado desde su fabricación, un firmware a manera
de BIOS que simplifica la forma de programarlo.
Al igual que en todos los sistemas de desarrollo, existen ya predefinidas toda una serie de tarjetas de
prácticas sobre las cuales podemos emular las aplicaciones que hemos diseñado, pero gracias al firm-

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


ware que poseen los microcontroladores PICAXE “se
puede armar la aplicación completa incluyendo al
microcontrolador”, y sobre la aplicación programarlo
sin necesidad del sistema de desarrollo, ni del circuito
programador de microcontroladores (vea la figura 3).
De hecho, el sistema PICAXE hace más accesible la
programación de microcontroladores a todas aque-
llas personas que tan sólo cumplan con el único e
indispensable requisito que es el de querer aprender.
Vea en la figura 4 una “pantalla” de la aplicación que
nos permitirá realizar el programa que vamos a car-
FIGURA 3 - UNA DE LAS VENTAJAS DEL PICAXE gar adentro del PIC.
Aquí no vamos a mencionar las ventajas y desventa-
ES QUE LA PLACA EN QUE SE USA PUEDE TENER

jas del sistema PICAXE con respecto a otros, lo único


UN CONECTOR PARA PODER PROGRAMARLO SIN

que podemos agregar es que


SACARLO DE SU ZÓCALO.

se trata de otra manera de pro-


gramar microcontroladores PIC,
empleando diagramas de flujo
y/o lenguaje BASIC (figura 5),
con los cuales, ya sea de
manera consciente o total-
mente implícita, recurrimos a
ellos para elaborar un pro-
grama.
Debemos aclarar que para pro-
gramar en diagrama de flujo, la
empresa Education Revolution
desarrolló la aplicación
“Logicator” que también sirve
para trabajar con PICs y de la
FIGURA 4 - LA APLICACIÓN PROGRAMING EDITOR PERMITE CONSTRUIR cual hablaremos más ade-
PROGRAMAS PARA PICAXE EN DIAGRAMAS DE FLUJO. HOY, LA EMPRESA lante. La empresa menciona
que en el futuro ya no actuali-
EDUCATION REVOLUTION OFRECE EL PROGRAMA LOGICATOR QUE TAM-

zará el editor por diagrama de


BIÉN SIRVE PARA TRABAJAR CON LOS PIC DE MICROCHIP. PUEDE DES-

flujos del “Programing Editor”


CARGAR GRATUITAMENTE UN MANUAL COMPLETO SOBRE EL MANEJO DE
LOGICATOR CON LA CLAVE: “PICAXELOGIC”.
por lo cual el usuario deberá
aprender a manejar el
Logicator. Aquí el problema es que sólo será gratuita una versión limitada y para adquirir la versión full
deberá comprar la licencia.
A lo largo de estas páginas, iremos aprendiendo paso a paso la forma de cómo programar los micro-
controladores bajo el sistema PICAXE. Para ello, como primer paso, emplearemos una tarjeta de des-
arrollo de la cual proporcionaremos su circuitería para que ustedes la puedan armar, posteriormente des-
pués de realizar algunas prácticas, avanzaremos sobre aplicaciones en donde se tenga al microcontro-
lador como elemento principal y al cual programaremos en sitio.

Club Saber Electrónica Nº 161

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

Qué Son y Cómo se Usan los PICAXE


VENTAJAS DEL SISTEMA PICAXE

Como dijimos, el PICAXE es un sistema de micro-


controladores PIC muy fácil de programar ya
que utiliza un lenguaje BASIC muy sencillo, ade-
más de contar también con la posibilidad de
programarlos con diagramas de flujo.
Aprovecha todas las características de los micro-
controladores de bajo costo que incorporan
memoria FLASH.
Está disponible en tres versiones que son el de 8
terminales (PICAXE-08), 18 terminales (PICAXE-
18) y 28 terminales (PICAXE-28). En estos micro-
FIGURA 5 - EL PROGRAMING EDITOR PERMITE
PROGRAMAR EN BASIC O CONVERTIR EL DIA-

controladores ya se tienen definidas las termi- GRAMA DE FLUJO EN BASIC.

nales que tienen la función de entrada y salida


de datos, además de las terminales que sirven
para programar al PICAXE en sitio, o en otras
palabras sobre la misma aplicación. En las figuras 6, 7 y 8 se muestran los circuitos esquemáticos de
la disposición de cada uno de los microcontroladores PICAXE.
En la figura 6 se muestra el circuito esquemático para un PICAXE de 8 terminales, de las cuales las que
están identificadas como Pin1 E/S, Pin2 E/S, Pin3 E/S y Pin4 E/S, son terminales que pueden funcionar como
entradas o salidas de datos del exterior hacia el microcontrolador.
Las terminales identificadas como Serial En y Serial Sal, se utilizan para programar al microcontrolador a
través del puerto serie de una PC, para lo cual las terminales del conector identificado como CON1 se
hacen llegar al conector DB9 de la PC, tal como se muestra en la figura 9.
Por otra parte, de la misma figura 6 se observa que la terminal identificada como Serial Sal, cumple con
una doble función, y dependiendo de dónde se ubique un jumper selector en el conector CON2, se
podrá programar al PIC o esa misma terminal una vez programado el PIC tendrá la función de una ter-
minal de salida de datos.
Del circuito esquemático de la figura 7 se observa la forma en que están dispuestas las terminales de un
PICAXE de 18 termi-
nales, de las cuales
las que se encuen-
tran identificadas
como En 0, En 1, En
2, En 6 y En 7 son
dedicadas exclusiva-
mente para adquirir
datos del exterior
hacia el microcontro-
lador.
Las terminales que se
encuentran identifi-
cadas de la Sal 0 a FIGURA 6 - CIRCUITO BÁSICO DE ENTRENAMIENTO PARA EL PICAXE-08.

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


Sal 7 son exclusiva-
mente para enviar
datos hacia afuera
del microcontrolador,
mientras que las ter-
minales 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 termi-
nales, en donde
aparte de las patas
FIGURA 7 - CIRCUITO BÁSICO DE ENTRENAMIENTO PARA EL PICAXE-18. de entrada que se
encuentran definidas
como En 0 a En 7,
también se cuenta
con las terminales de
salida identificadas
como Sal 0 a Sal 7,
además de 4 termi-
nales para entrada
de datos analógicos,
y por último las termi-
nales de programa-
ción del microcontro-
lador.
Ya se ha mencionado
que el sistema PICAXE
no requiere de pro-
gramador o borrador,
ya que utiliza única-
FIGURA 8 - CIRCUITO BÁSICO DE ENTRENAMIENTO PARA EL PICAXE-28.

mente tres alambres


conectados al puerto serie de una computa-
dora, tal como se describe en la siguiente
figura 9.
Una vez que han sido identificadas las termina-
les a utilizar en el conector del puerto serie de
la PC, ahora lo que sigue es preparar la cone-
xión hacia el PIC tomando en cuenta las termi-
nales, tal como se aprecia en la figura 10.
FIGURA 9 - LOS PICAXE SE COMUNICAN CON LA PC A TRAVÉS
DEL PUERTO COM, UTILIZANDO PROTOCOLO RS232.

Club Saber Electrónica Nº 161

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

Qué Son y Cómo se Usan los PICAXE


Como se puede observar en la
figura 10, se puede emplear (es
recomendable) un plug de los uti-
lizados para conectar los audífo-
nos 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 mayoría de las
computadoras pequeñas, tipo
nanobook, no poseen puerto
RS232 y hasta las notebook
actuales tampoco lo incluyen. En
FIGURA 10 - DIAGRAMA DE ARMADO DEL CABLE QUE SE UTILIZA PARA

ese caso, se debe utilizar un


PROGRAMAR LOS PICAXE.

conector que comercializa la


empresa Education Revolution, o
colocar un conversor USB a RS232 como el que
publicamos en saber Electrónica Nº 178 o el
circuito de Saber Electrónica Nº 223. En la
figura 12 podemos observar el circuito eléc-
trico con su placa de circuito impreso de
dicho conversor. Si desea más detalles del
armado puede recurrir a dicha revista.
También puede comprar un conversor USB a RS
232 como el de la figura 13; en ese caso debe
FIGURA11 - VISTA DEL CABLE DE PROGRAMA-

asegurarse que el dispositivo genere un puerto


CIÓN TERMINADO.

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 fácil de programar que utiliza un lenguaje BASIC muy sim-
ple, el cual la mayoría de los estudiantes pueden aprender rápidamente. Los microcontroladores (con
memoria FLASH) pueden ser programados una y otra vez sin la necesidad de un costoso programador
PIC. El sistema no necesita de ningún programador, borrador o complejo sistema electrónico. El pro-
grama puede escribirse en BASIC o por medio de un diagrama de flujo y se carga mediante una cone-
xión de tres cables conectada al puerto serie de la computadora. El sistema PICAXE consiste en tres
componentes principales:

1) El software editor de programación.


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

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE

FIGURA 12 - PARA PODER UTILIZAR UN SISTEMA PICAXE CON UNA COMPUTADORA A TRAVÉS DEL PUERTO USB SE DEBE
EMPLEAR UN CONVERSOR DE PUERTO COMO EL MOSTRADO EN LA FIGURA Y CUYA CONSTRUCCIÓN SE EXPLICÓ EN SABER
ELECTRÓNICA Nº 221.

Ya retornaremos con este tema, cuando sepamos


más acerca de las características principales de
estos chips. Veamos ahora en qué consiste el soft-
ware gratuito.

EL EDITOR DE PROGRAMAS

Lo diferente del sistema de microcontroladores


PICAXE, con respecto a la programación tradicional
de los microcontroladores PIC, radica en la progra-
FIGURA 13 - UN ADAPTADOR USB A RS232
COMERCIAL.

Club Saber Electrónica Nº 161

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

Qué Son y Cómo se Usan los PICAXE


mación basada en un lenguaje BASIC y
diagramas de flujo. Esto hace que los
microcontroladores del sistema PICAXE
sean muy fáciles de programar, en un
ambiente amigable.
Para programar los microcontroladores
PICAXE debemos, en primera instancia,
instalar el software que contiene el
ambiente de programación, por lo que
describiremos la forma de hacerlo.
Si bien a lo largo de este texto vamos a
explicar paso por paso cómo se emplea
el “Programming Editor” (Editor de
Programas), es necesario que ya lo tenga FIGURA 14 - CARPETA PROGEDIT.
en su computadora.
El software lo puede bajar de nuestra
página 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 información debe ser
socio del club SE, lo cual es gratuito y
puede inscribirse por Internet en sólo un
par de minutos (siga las instrucciones que
dimos para bajar el programa y encon-
trará cómo hacerse socio, si aún no lo es).
Una vez que se tenga el software, se con-
tará con una carpeta con el nombre de
“progedit”, a la cual debemos acceder FIGURA 15 - SOFTWARE DE INSTALACIÓN “PROGRAMMING EDITOR”.
(observe la figura 14).
Luego debemos ingresar a la carpeta
progedit y tenemos que ubicar el pro-
grama identificado como “Programming
Editor”, al cual debemos hacerle un
doble clic con el ratón de la pc para que
éste se ejecute y se pueda instalar el pro-
grama de los PICAXE, tal como se mues-
tra en la figura 15.
Una vez que ejecutamos el programa de
instalación Programming Editor apare-
cerá la ventana que se muestra en la
figura 16, sobre la cual debemos de opri-
mir con el ratón el cuadro identificado
como “next” para que continúe la insta-
FIGURA 16 - VENTANA DE BIENVENIDA PARA LA INSTALACIÓN
DEL SOFTWARE DE LOS PICAXE.

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


lación. Posteriormente será desplegada
la ventana donde se muestra la licencia
que debemos aceptar, porque de otra
manera no podremos continuar con la
instalación del software, por lo que nue-
vamente oprimiremos el cuadro identifi-
cado como “next”, esta acción se indica
en la figura 17.
Como paso siguiente, pregunta por el
nombre del usuario que normalmente uti-
lizará el software, aquí podemos instalar
la aplicación para que pueda ser utili-
zada por todas las personas que utilicen
FIGURA 17 - ACUERDO DE LICENCIA. la computadora, y después de seleccio-
nar esta acción tenemos que oprimir el
cuadro identificado como “next”, tal
como se muestra en la figura 18.
Posteriormente debemos decir en dónde
se guardará el software de programa-
ción, que por lo general, aquí no tene-
mos que modificar dato alguno, a
menos de que querramos asignar otra
localidad, tal como se ilustra en la figura
19. Una vez seleccionada la opción
correspondiente procederemos a hacer
clic sobre el cuadro identificado como
“next”.
Por último, aparecerá una ventana de
confirmación para estar seguros de que
FIGURA 18 - INFORMACIÓN DEL USUARIO.

los datos que introdujimos se encuentran


correctos, si es así debemos oprimir el
cuadro identificado como “next” para
que continúe la instalación, tal como se
aprecia en la figura 20.
Cuando se está instalando el software se
indica gráficamente, tal como se ilustra
en la figura 21, aquí debemos esperar
hasta que se terminen de instalar, tanto el
software de programación como todas
las utilerías que serán empleadas por los
PICAXE. En la figura 22 se muestra la ven-
tana que nos indica que ya se ha con-
cluido con la instalación, por lo que
FIGURA 19 - DESTINO DEL SOFTWARE. debemos oprimir el cuadro identificado

Club Saber Electrónica Nº 161

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

Qué Son y Cómo se Usan los PICAXE


como “finish”. Una vez instalado el soft-
ware de programación de los PICAXE, en
el escritorio de nuestra PC encontrare-
mos un ícono de acceso directo identifi-
cado como “PICAXE Programming
Editor”, al cual, para comenzar a progra-
mar 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
gráfico en lenguaje BASIC y en la figura
24b en diagrama de flujo. En varias oca-
siones editamos artículos mostrando FIGURA 20 - VENTANA DE CONFIRMACIÓN DE DATOS.
cómo se emplea el editor por diagrama
de flujo del Programing Editor pero, tal
como hemos dicho, para los próximos
PICAXE deberá emplear el Logicator,
razón por la cual, más adelante explica-
remos cómo se usa.

LOS DISTINTOS TIPOS DE PICAXE

El sistema PICAXE aprovecha todas las


características de los microcontroladores
de bajo costo que incorporan memoria
FLASH.
El sistema PICAXE está disponible en seis FIGURA 21 - VENTANA DE INSTALACIÓN DEL SOFTWARE.
distintas versiones que son:

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

Estos microcontroladores ya tienen defi-


nidas las terminales que tienen la función
de entrada y/o salida de datos, además
de las terminales que sirven para progra-
mar al PICAXE en sitio, o en otras pala-
bras sobre la misma aplicación.
FIGURA 22 - CUANDO LA INSTALACIÓN HAYA CONCLUIDO EL PROGRAMA
NOS INDICARÁ QUE ESTAMOS LISTOS PARA COMENZAR A UTILIZARLO.

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE

FIGURA 24A - LENGUAJE BASIC PARA PROGRAMAR


FIGURA 23 - ICONO DE ACCESO RÁPIDO. LOS PICAXE.

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

FIGURA 24B - DIAGRAMA DE


FLUJO PARA PROGRAMAR LOS
PICAXE.

Club Saber Electrónica Nº 161

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

Qué Son y Cómo se Usan los PICAXE


cialización, por lo tanto, es importante tomar
en cuenta con que matriculas disponemos
para poder desarrollar nuestros proyectos.
Incluso anteriormente los microcontroladores
PICAXE, tenían grabadas las matriculas de
los microcontroladores PIC (ya que la
empresa Microchip es quien los fabrica),
pero también 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 micro-
controladores PICAXE disponibles, así como
la matrícula que tienen grabada.
Por otra parte, en la tabla 2 se muestran las
matrículas de los microcontroladores PICAXE,
que sustituyen a los primeros que salieron al TABLA 1 - DISTINTOS TIPOS DE PICAXE.
mercado, para que de esta manera, se
pueda saber cuáles son los PICAXE de
reciente aparición, y por obvias razones, con
los que contamos para seguir trabajando.
Para continuar conociendo a los microcon-
troladores PICAXE, en la tabla 3 se muestran
las principales diferencias entre las distintas
versiones que podemos encontrar y para ello
los clasificaremos en PICAXE estándar y
PICAXE Avanzado.

KITS PICAXE

A lo largo de los últimos años, en Saber


Electrónica, publicamos varios circuitos con
PICAXE, muchos de los cuales se ofrecen en
forma de kits o que Ud. puede montar fácil-
mente, ya que todos los componentes son
comunes. A continuación mostramos algunos
de los proyectos publicados:

TARJETA ENTRENADORA PICAXE-08 (ICA-011)


Se trata de la primera tarjeta de entrena-
miento universal para programar microcon-
troladores PICAXE de 8 terminales denomina-
dos PICAXE - 08, figura 25. TABLA 2 - LAS MATRÍCULAS DE LOS PICAXE.

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE

TABLA 3 - DIFERENCIAS ENTRE LOS PICAXE.

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 jum-
per selector, ya que las terminales 3, 5, 6 y 7 del
microcontrolador PICAXE cumplen con una doble
función.
La tarjeta entrenadora para PICAXE - 08 tiene la
posibilidad de explotar al máximo las propiedades
del cualquier PICAXE-08, y por lo tanto se pueden
desarrollar proyectos en donde tan solo se tienen
que conectar las señales de los sensores y los
actuadores sobre las terminales que tiene destina-
FIGURA 25 - TARJETA PICAXE-08. das la tarjeta entrenadora.

Club Saber Electrónica Nº 161

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

Qué Son y Cómo se Usan los PICAXE


TARJETA ENTRENADORA PICAXE-18 (ICA-016)
Es la segunda tarjeta de entrenamiento universal que
Saber Electrónica propone para programar microcontro-
ladores PICAXE de 18 terminales denominados PICAXE -
18, figura 26.
Sobre la tarjeta se dispone de un total de 5 entradas y 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 experimenta-
ción la cual consta de 2 circuitos para generar estados
lógicos mediante push butom para manipular las termi-
nales de entada del microcontrolador PICAXE. Además FIGURA 26 - TARJETA PICAXE-18.
cuenta también con dos circuitos con leds para veri-
ficar el estado de las salidas, y por último también
posee dos espacios para colocarle distintos tipo de
sensores,

PLC PICAXE-18 (ICA-017)


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

CONTROL DE DISPLAY DE LCD PARA PICAXE-18 (ICA-018)


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

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

Club Saber Electrónica Nº 161

16
Cap 1 - PICAXE 9/6/11 10:03 AM Página 17
Cap 1 - PICAXE 9/6/11 10:03 AM Página 18
Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 19

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

TRABAJANDO CON MICROCONTROLADORES


PICAXE
INTRODUCCIÓN

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

Club Saber Electrónica Nº 161

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

Trabajando con PICAXE


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

En la Industria, los microcontroladores son usualmente programados utilizando programación en len-


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

EL SISTEMA PICAXE

El sistema “PICAXE” es un sistema de microcontrolador fácil de programar que utiliza un lenguaje BASIC
muy simple, el cual la mayoría de las personas pueden aprender rápidamente dado su nivel de inter-
accionar con su lenguaje. Ya hemos dado las características sobresalientes de este sistema en capítu-
los anteriores de esta obra pero no está demás resumir los rasgos sobresalientes del sistema PICAXE.
En forma sintética, el lenguaje que se implementa, es un sencillo diálogo muy intuitivo, que da órdenes
muy precisas… como ejemplo, podría
darles este ejemplo citado en la figura 1.
En la rutina de dicha figura, lo único que
hice, fue programar el microcontrolador
con un diálogo sencillo, en inglés, pero
muy deducible para aquellos que estén
flojos con este idioma.
Prácticamente, lo único que le ordené al
microcontrolador, es que monitoree la
entrada numero cero (input cero), y en
caso de tener algún estado definido (un
alto o un bajo, o sea, un 1 o un 0 lógico),
éste actúe dando como resultado una
acción determinada. Internamente, estas
líneas de programación, funcionan de la
siguiente manera dentro del microcontro-
lador:
Siempre, la rutina se lee y se ejecuta
desde la primer línea para abajo, salvo FIGURA 1 - RUTINA EN BASIC PARA PROGRAMAR UN PICAXE

Club Saber Electrónica Nº 161

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

Programación Fácil 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
instrucción que
FIGURA 3 - UNA INSTRUCCIÓN PUEDE INDICAR QUE,

indica que visua-


SI SE CUMPLE ALGUNA CONDICIÓN, EL PROGRAMA

lice y compare el
“SALTE” A OTRA INSTRUCCIÓN O SUBRUTINA.

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.
En el caso de que la comparación de “cero”, el microcontrolador
FIGURA 2 - EL PROGRAMA CON-

sigue líneas abajo leyendo las instrucciones. Como pueden observar,


SISTE EN UN JUEGO DE INSTRUC-

la siguiente instrucción es similar, compara el estado de la señal en la


CIONES QUE SE ESCRIBE EN EL
PROGRAMING EDITOR.
entrada cero, y si la comparación es positiva, salta al subprograma
“apagado”. En caso de ser nula la comparación, el programa sigue
leyendo las siguientes líneas hasta llegar al fin del programa o bien, hasta llegar a una bifurcación. En
nuestro caso, llega hasta la instrucción “goto”, lo cual, hace repetir el programa una y otra vez sin tener
fin. Se observa entonces que este sistema implementa un diálogo de instrucción muy fácil de aprender,
de manera que en tan sólo unos pasos Ud. podrá aprender rápidamente a realizar sus propios proyectos
microcontrolados.
Este sistema explota las características únicas de la nueva generación 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 ningún programador, borrador o com-
plejo sistema electrónico. El microcontrolador es programado mediante una conexión 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 fácilmente
en una placa experimental para componentes electrónicos, en una placa corriente o en una placa PCB.
EL sistema PICAXE está disponible en varias versiones (8 pines, 18 pines, 28 pines, 40 pines). El controlador
PICAXE-28 provee 22 pines de entrada/salida (8 salidas digitales, 8 entradas digitales y 4 entradas analó-
gicas). El sistema PICAXE-18 provee 8 salidas y 5 entradas.
Las características principales del sistema PICAXE son las siguientes:

o Bajo costo, circuito de fácil construcción.


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

Club Saber Electrónica Nº 161

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

Trabajando con PICAXE


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

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

COMENZANDO LAS PRÁCTICAS

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

o No tolera mas de 16gosub


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

La figura 4 muestra imágenes de un laboratorio de prácticas microcontroladas (varias placas de 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 día de mañana, le puede ayudar a comprender por qué implementó una
acción en su rutina, además, hay que tener en cuenta que si lo compartimos, alguien más 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 programación.
Implementar un bloque de comentarios en el comienzo del programa y antes de cada sección del
código, puede describir cuál es la función de la rutina que tenemos, o bien, podemos describir con más
detalles cada línea de nuestro programa.
Para reconocer los comentarios, podemos dirigirnos a nuestra sección configuración del software, y en
la pestaña “editor” seleccionamos preferencias de colores en la sintaxis.
Con esta ultima acción, podremos diferenciar en nuestras rutinas los comandos, los comentarios con un
color distinto. Los comentarios en el programa comienzan con un apóstrofe (‘) o punto y coma (;) y con-
tinúa hasta el final de la línea. Es decir, en una línea, todo lo que está después del apóstrofe (‘) o punto

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


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

USO DE SYMBOL

Los símbolos en nuestras rutinas, son pala-


FIGURA 4 - TODA ESCRITURA EN UNA LÍNEA QUE ESTÁ DES-
PUÉS DE UN APÓSTROFE O UN PUNTO Y COMA ES UN COMEN-
TARIO Y NO FORMA PARTE DEL PROGRAMA. bras clave que identifican constantes, varia-
bles y direcciones en el programa.
La asignación del símbolo se realiza
poniendo el comando “symbol + nombre del símbolo” y seguido de éste implementamos el signo igual
(=). Posterior a estas líneas, agregamos la variable o constante.
Los símbolos pueden ser cualquier palabra que no sea la relativa a un comando.
Los símbolos pueden contener caracteres numéricos (por ejempolo: ucontrol1, salida2, etc.) pero el pri-
mer carácter no puede ser uno numérico, es decir, no podría ser “1salida”, por dar un ejemplo.
El uso de símbolos no aumentan la longitud del programa. O sea, esta función no tiene peso alguno 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 cuál es la función 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 pri-
mer instrucción o, mejor dicho, al inicio del programa.
En la figura 5 tenemos un ejemplo de programa en el que se han realizado asignaciones de símbolos.

Uso de Constantes

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

Club Saber Electrónica Nº 161

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

Trabajando con PICAXE


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

o Los números decimales se


escriben directamente sin nin-
gún prefijo.
o Los números hexadecimales
se preceden del símbolo
“peso” ($).
o Los números binarios de pre-
ceden del símbolo “tanto por
ciento” (%).
o Los valores ASCII se colocan
entre comillas (“…”).

DESIGNACIÓN DE VARIABLES

Veamos los tipos de variable


según el sistema, ya que éstas
varían en su aplicación según
cada modelo de programa-
ción :

PICAXE es usado al programar


módulos PICAXE.
El BASIC y Extended son usados
al programar módulos Stamp.
El ensamblador es el utilizado
con código de ensamblador.

Veamos entonces que tipos de


variables se pueden emplear
en función del sistema de pro-
FIGURA 5 - EL COMANDO SYMBOL DEFINE EL NOMBRE Y LA ACCIÓN DE
CONSTANTES O VARIABLES.

gramación que utilizamos:

Las Variables en PICAXE:


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

Club Saber Electrónica Nº 161

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

Programación Fácil 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 debería
utilizarse como un registro de propósito general.

Las Variables en el Modo Extendido (EXTENDED)


El modo extendido da soporte a todas las variables de BASIC. Además: INPUT0, INPUT1, etc. puede 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 debería
utilizarse como un registro de propósito general.

Las Variables en el Modo Ensamblador


El modo ensamblador soporta los mismos modelos de variables que el modo extendido.

LOS COMANDOS DE PROGRAMACIÓN BASIC EN PICAXE

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

GOTO

Este comando tiene como función la


ejecución del programa que continua
en la declaración de la etiqueta. Dicho
en otras palabras, este comando tiene
como función dar una dirección donde
saltara el programa y seguirá la lectura
de las instrucciones para continuar eje-
cutando el programa. En la figura 6
tenemos un ejemplo práctico.
FIGURA 6 - GOTO SE USA PARA INDICAR A DÓNDE SIGUE EL
PROGRAMA.

Club Saber Electrónica Nº 161

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

Trabajando con PICAXE

TABLA 1 - RESUMEN DE COMANDOS USADOS EN PICAXE.

GOSUB

Este comando tiene como función saltar a la subrutina indicada en la etiqueta, guardando su dirección
de regreso en la memoria pila (stack). A diferencia del GOTO, cuando se llega a un RETURN, la ejecución
sigue con la declaración siguiente al último GOSUB ejecutado. Se puede usar un número 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 nos-
otros ejecutamos GOSUB, salta el programa a una etiqueta, y cuando llega al comando RETURN, vuelve
a la siguiente línea de donde partió con el comando GOSUB. La figura 7 muestra un ejemplo de uso de
este comando.

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


FOR ... NEXT

El bucle FOR … NEXT permite a los programas ejecutar un número de declaraciones tantas veces como
se lo defina, usando una variable como contador. Este comando es ideal para acortar líneas de pro-
gramas repetitivas. Para tener una idea
de su potencial, sea el siguiente pro-
grama que permite el parpadeo de un
Led conectado en una salida del PICAXE
cinco veces:

symbol led1= 7
ejemplo1:
high led1
pause 1000
low led1
pause 1000
high led1
pause 1000
low led1
pause 1000
high led1
pause 1000
low led1
pause 1000
high led1
pause 1000
low led1
pause 1000
high led1
pause 1000
low led1
pause 1000
end
FIGURA 7 - GOSUB ES SIMILAR A GOTO PERO GUARDA LA
DIRECCIÓN DONDE ESTABA EN EL STACK.

En esta rutina, “high led1” es una instruc-


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

bucle: low 1 pause 1000


for b0 =1 to 5 next b0
high 1 end
pause 1000

Club Saber Electrónica Nº 161

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

Trabajando con PICAXE


En este punto le aconsejo que realice
una práctica en su PC. Ejecute el software
“Programming Editor” y copie las líneas de
programación dadas en la figura 8 (con-
figure el programa para usarlo con el
PICAXE18X), revise las sintaxis y luego
haga la simulación mediante el
comando RUN del menú del
“Programming Editor”.
Al iniciarse el programa, cuando la lec-
tura 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 instrucción de
comenzar con el contador, sigue leyendo
FIGURA 8 - FOR... NEXT SE EMPLEA PARA HACER BUCLES DE

el resto de las líneas y ejecutando toda


FORMA DE REPETIR UN ALGORITMO TANTAS VECES COMO SE
REQUIERA EN UN PROGRAMA.

acción que conlleven en ellas (high1-


pause-low1-pause) hasta llegar a la línea
donde dice “next b0”. En esta línea, lo
que hace, es decirle al contador que adi-
cione un entero (que le sume uno) en la
memoria que alojamos el conteo (b0)y
luego salta automáticamente a la línea
donde comienza el contador (for b0 =1
to 20) iniciando nuevamente toda la
acción descrita anteriormente hasta lle-
gar a almacenar en la memoria el valor
20 (por que esa fue la instrucción que le
dimos cuando le dijimos que cuente de1
a 20 en la línea de instrucción “for b0 = 1
to 20”).
Note que cuando llega a 20, en vez de
retornar a la línea del contador, sigue
leyendo la siguiente línea. En este caso, la
siguiente línea 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”.
Después de esto, como el contador tenía registrado el valor 20, no tendría que seguir contando... pero
no es así, ya que al volver a reiniciarse el programa, el contador vuelve a cero también. Para el caso en
que nosotros quisiéramos que al llegar a determinado conteo, el programa termine, lo que podríamos
hacer, es implementar la rutina mostrada en la figura 9.

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


HIGH

A medida que vayamos avanzando en


nuestros proyectos, iremos notando que la
gran mayoría de nuestros desarrollos
microcontrolados requieren de un control
de estados de las entradas y salidas. Hay
dos comandos que definen el estado
lógico de una salida: HIGH y LOW.
El comando HIGH pone a nivel alto (“1”
lógico) un pin determinado del microcon-
trolador.
Se usa este comando para activar una
salida.
FIGURA 10 - LAS INSTRUCCIONES HIGH Y LOW SE EMPLEAN
PARA ESTABLECER LAS CONDICIONES DE LAS SALIDAS DIGITALES.

LOW

Es el comando contrario a HIGH y se usa para poner una salida en estado bajo (“0” lógico) o desactivar
dicha salida.
Veamos cómo funcionan los comandos high y low en el ejemplo mostrado en la figura 10: Simplemente
se pone un “1” lógico en el PIN 1 del microcontrolador, se detiene el programa durante 5 segundos, luego
se pone un “0” lógico 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 períodos de 5 segundos en cada estado.

INPUT

Este comando refiere a un puerto de entrada específico.


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

OUTPUT

Este comando refiere a un puerto de salida específico.


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

Club Saber Electrónica Nº 161

29
Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 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 línea qué acción queremos que adopte esa salida.
Para definir nuestra salida, se puede implementar el comando OUTPUT, o bien, podemos adoptar el
número de puerto (0 a 7 para el caso de los micros 18x) y definir la acción o estado de este puerto (high
7 -low 7 / high output7 -low output7). Es hora de realizar una nueva práctica: ejecute el “Programming
Editor” en su PC y copie las instrucciones del programa de la figura 11, nos preparamos para ver cómo
funcionan las instrucciones IMPUT y OUTPUT.

FIGURA 11 - LA CONFIGURACIÓN 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 ningún conflicto.

END

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

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


Cuando el microcontrolador es detenido
por el comando END entra en modo de
bajo consumo. Otra de las característica
de este comando es que cuando se eje-
cuta esta instrucción todos los datos pre-
sentes en los pines de entrada y salida se
congelan y permanecen en el estado en
que se encuentran. Para ver mejor cómo
funciona este comando, realice una
nueva práctica; para ello, ejecute en su
PC nuevamente el “Programming Editor” y
copie el programa mostrado en la figura
12, realice la simulación y verifique la
estructura del comando.

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

Estos comandos son en sí, parte de una


estructura de comparación con salto a
una dirección determinada (siempre a
una etiqueta), en el caso en que se cum-
pla la función asignada. Las funciones
que se pueden asignar a estas compara-
FIGURA 12 - LA INSTRUCCIÓN END SE EMPLEA PARA DETENER EL

ciones son:
PROGRAMA Y QUE EL MICRO QUEDE EN LA CONDICIÓN DE BAJO
CONSUMO.

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

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

if…then
if input1 =1 then action3

Club Saber Electrónica Nº 161

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

Trabajando con PICAXE


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

if…and…then
if input1 =1 and input0= 1 then action2
FIGURA 13 - EJEMPLO DE USO DEL COMANDO IF... THEN
Aquí se dice que si la entrada 1 es igual
a 1 y la entrada 0 es igual a 1, entonces
el programa sigue ejecutándose en la
etiqueta “action2”. Si la entrada 1 y/o la
entrada 0 es igual a cero se sigue eje-
cutando el programa normalmente.

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

Aquí se dice que si la entrada 1 es igual


a 1 o la entrada 0 es igual a 1, enton-
ces el programa sigue ejecutándose en
la etiqueta “action3”. Si la entrada 1 o la
entrada 0 es igual a cero se sigue eje-
cutando el programa normalmente.

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

En este caso estamos diciendo que si la


entrada 1 es igual a 1, entonces el pro-
grama sigue ejecutándose en la eti-
queta “action3” y cuando termine, que
vuelva y prosiga en la siguiente línea.
En la figura 13 tenemos un ejemplo que
Ud. puede utilizar para realizar una
práctica 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 FIGURA 14 - OTRO EJEMPLO DE USO DEL COMANDO IF... THEN.

Club Saber Electrónica Nº 161

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

Programación Fácil 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 automático 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 refe-
rencia.
Note la inclusión de algunos comandos que aún no hemos analizado, que ello no lo detenga en su prác-
tica. Trabaje de la misma manera que hemos explicado hasta ahora sobre el “Programming Editor” para
simular el funcionamiento de esta rutina… notará que “Readadc 2,b2”, por ejemplo, es una instrucción
que lee el estado de una entrada y que se trata de una entrada analogical… ¿qué otras cosas nota?
Nuevamente: “La práctica es tanto más importante que la teoría”, por lo tanto, “manos a la obra”.

PAUSE

Este comando, es implementado para generar retardos en los saltos entre líneas y ejecución del código
del programa. Ya lo hemos visto en algunos ejemplos anteriores, pero ahora lo presentamos “formal-
mente”. En la siguiente rutina se está indicando que se ponga en “1” el PIN 1, luego que se 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 especificación del tiempo de retardo está dada en “milisegundos”, en una estructura de 16 bits,
los retardos pueden ser de hasta 65635 milisegundos (66 segundos).

WAIT

Este comando, al igual que el anterior, es implementado para generar retardos en los saltos entre líneas y
ejecución del código del programa. La única diferencia es que PAUSE establece unidades expresadas en
milisegundos y WAIT en segundos. Técnicamente decir WAIT 1 o decir PAUSE 1000 es lo mismo. Por lo dicho,
el programa que vimos en la explicación del comando PAUSE se puede expresar de la siguiente manera:

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

Club Saber Electrónica Nº 161

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

Trabajando con PICAXE


Aquí también podemos
establecer un tiempo
máximo 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 sabe-
mos implementar, pode-
mos hacer programas más
rápidos e interesantes. En
si, este comando tiene
como función volver
desde una subrutina, reto-
mando la ejecución en la
declaración que sigue al
GOSUB que llamó a la
FIGURA 15 - RETORNO DE UNA SUBRUTINA POR MEDIO DEL COMANDO
RETURN.
subrutina. En la figura 15
tenemos un ejemplo sencillo que podremos
simular de la forma acostumbrada.

INFRAIN

Este comando se usa en sistemas de comu-


nicación por infrarrojos. Se implementa para
esperar en el receptor una señal infrarrojo
procedente del transmisor IR. Este
comando, además de poder implementar-
los 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 compañía utiliza en sus productos. El
comando en si, interactúa en el programa
esperando la señal infrarroja y, una vez reci-
bida esta señal, el valor de ella se alma-
cena en la variable predefinida “infra” (es
FIGURA 16 - CONEXIÓN DE UN RECEPTOR INFRARROJO EN UN
PICAXE.

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


similar a b0,b1,etc., pero de uso
exclusivo para este comando). En la
figura 16 tenemos el esquema de
conexión de un receptor IR sobre un
PICAXE-08 y en la figura 17 hemos
escrito una rutina que Ud. puede uti-
lizar para practicar sobre el manejo
de esta instrucción. 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
cómo cambia la simulación.

READADC

Un sensor analógico es capaz de


medir y proveer información codifi-
FIGURA 17 - INFRAIN ES UN COMANDO APLICABLE A LÍNEAS DE cada en forma de tensiones varia-
ENTRADA QUE POSEEN SENSORES INFRARROJOS Y“LEE” EL ESTADO DE bles. Si colocamos la señal de este
tipo de sensores a la entrada del
DICHO SENSOR.

puerto analógico del microcontrola-


dor, puede ser representada por
valores de 0 a 255, por ejemplo, en
el caso de una foto resistencia,
podríamos decir que 0 es oscuro y
255 luz intensa.
Este comando, lo podemos imple-
mentar para convertir una señal ana-
lógica entrante en el puerto ADC del
microcontrolador, en una informa-
ción digital con una resolución de 8
FIGURA 18 - EJEMPLO DE USO DEL COMANDO READADC. 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 propósito.
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 resolución de 8 bits mientras que si la almacena-
mos en una variable tipo “w1”, el dato es guardado con una resolución de 10 bits. En la figura 18 tiene
un ejemplo que recomendamos que simule de la forma acostumbrada.

Club Saber Electrónica Nº 161

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

Trabajando con PICAXE


READADC10

Este comando, es similar a


READADC y lo podemos
implementar para conver-
tir una señal analógica
entrante en el puerto ADC
del microcontrolador. La
diferencia de este
comando con el anterior-
mente mencionado, es
que este puede leer y
almacenar el dato con
una resolución de 10 bits.
El dato obtenido de esta
lectura convertida (A/D), es
almacenada en una
FIGURA 19 - CON READDC10 SE PUEDEN LEER Y ALMACENAR DATOS ANALÓGICOS
CON UNA RESOLUCIÓN DE 10 BITS.

variable (w1, w2, wx, etc.)


que luego puede ser
empleada para cualquier propósito. Un dato interesante, es que podemos implementar también 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 tene-
mos un ejemplo que podemos simular de la forma acostumbrada en el “Programming Editor”.

PWM

Este comando solo puede ser implementado en los microcontroladores PICAXE 08 y 08M (en otros
PICAXE no funciona) y su función es enviar un tren de pulsos modulados en un ancho definido por el pin
de salida seleccionado. Cada ciclo del PWM (Pulse Width Modulation -Modulación del ancho del pulso),
puede tener una resolución dada a nuestro gusto y necesidad, es decir, podemos ampliar tanto el
“duty”, como el “cycle”, reduciendo o ampliando así el ancho del pulso. Entendemos como “duty”, al
momento en que tenemos un estado alto por un tiempo determinado la señal 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 osci-
lador de 4MHz, cada cycle será de aproximadamente 5 ms de largo. Con un oscilador de 20MHz la
duración del ciclo será de 1 ms aproximadamente.
Definir el valor del oscilador mediante la implementación 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, según lo configuremos nosotros pero cuando
empleamos el comando PWM, el puerto se convierte en salida justo antes de la generación del pulso y
vuelve a ser entrada, cuando cesa. La salida de PWM tiene mucho ruido, y no tiene forma de onda cua-

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


drada. Es necesario usar
algún tipo de filtro para
convertirla en algo útil. Se
puede usar un circuito RC
como un simple converti-
dor A/D. En la figura 20
FIGURA 20 - ENVÍO DE UN TREN DE PULSOS POR EL PIN 4 DE UN PICAXE-08M
CON EL COMANDO PWM.

tenemos un ejemplo apli-


cable en un PICAXE 08 -
08M.

EEPROM

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

EEPROM {posición},(dato)

“Posición (location)” es una constante numérica de 0 a 255 que específica donde se debe empezar a
almacenar los datos en la EEPROM. Como mencionamos anteriormente, si no existe una posición indi-
cada, el almacenamiento continúa a partir del último dato introducido. Si inicialmente no se especificó
ninguna posición, el almacenamiento comienza en la posición 0.
“Dato (data)” puede ser una constante alfanuméricas de hasta 256 caracteres. Cada carácter del valor
numérico o palabras son almacenados en las posiciones de la EEPROM que van desde la posición “0”
hasta la “255”. Este comando y esta diversidad en la estructura física del microcontrolador, solo la pode-
mos encontrar en los
microcontroladores
PICAXE-18A, 28, 28A y 28X.
Los datos que son guarda-
FIGURA 21 - EEPROM PERMITE ESCRIBIR DATOS EN POSICIONES DE MEMO- dos en la EEPROM solo una
vez y esto ocurre cuando el
RIA INTERNA DEL MICRO.

microcontrolador es pro-
gramado, no cada vez
que se ejecuta el pro-
grama. Para el caso de
tener que armar una rutina
donde necesitamos guar-
dar en tiempo real determi-
nados datos en la EEPROM
se puede usar la instrucción
FIGURA 22 - PARA ESCRIBIR LA PALABRA “MARTIN” SE REQUIEREN 6 POSI-
CIONES DE MEMORIA.

Club Saber Electrónica Nº 161

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

Trabajando con PICAXE

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

Club Saber Electrónica Nº 161

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

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

EEPROM 6,(“Martin Torres”)

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

I2CSLAVE

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

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

Trabajando con PICAXE


féricos en sistemas integrados (Embedded Systems) y generalizando más para comunicar circuitos inte-
grados entre si que normalmente residen en un mismo circuito impreso. Algunos PICAXE contienen blo-
ques internos que permiten la comunicación I2C.
La principal característica de I2C es que utiliza dos líneas para transmitir la información: una para los datos
y por otra la señal de reloj. También es necesaria una tercera línea, que es la referencia (masa). Como
suelen comunicarse circuitos en una misma placa que comparten una misma masa esta tercera línea
no suele ser necesaria.
Las líneas 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 emple-
ará como hardware funcional (sensores - conversores A/D-módulos 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, dirección

“Esclavo” es un registro que corresponde a la dirección del esclavo I2C.


“Velocidad” marca la velocidad de transmisión.
“Dirección” establece el
I2CBYTE o I2SWORD, indi-
cando la dirección donde
comenzará a guardar la
información.
Después de que se utilice
el comando I2CSLAVE, se
pueden utilizar los coman-
dos readi2c y writei2c
para acceder al disposi-
tivo I2C. Se pueden utilizar
para leer y grabar datos
de una EEPROM mediante
comunicación serie,
usando una interfase I2C
de 2 hilos. Esto permite
guardar datos en una
memoria externa no volá-
til, para que sean mante-
nidos aún sin conexión de
alimentación. También se
FIGURA 25 - CAPACIDAD Y DIRECCIÓN “ESCLAVO” DE ALGUNOS DISPOSITIVOS DE
ALMACENAMIENTO DE MEMORIA.

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


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

Dirección esclavo: La dirección del esclavo cambia para dispositivos diferentes (vea la tabla de la figura
25). Para las EEPROM del tipo 24LCxx la dirección es %1010xxxx.
Velocidad: La velocidad del bus I2C se selecciona a través de los comandos I2CFAST para velocidad de
400kHz y I2CSLOW para 100kHz.
Dirección control: Los 7 bits superiores del byte de control contienen el código de control junto con la
selección del chip e información adicional de dirección, 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 código de control es %1010
y no se usa la selección 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 tamaño de dirección enviado (byte o Word) viene determinado por el tamaño de la variable
usada. Si se usa una variable con tamaño byte se envía una dirección de 8 bits. Si se envía una variable
de tamaño Word, se envía una dirección de 16 bits. Asegurarse de utilizar una variable apropiada al dis-
positivo a comunicar.

READI2C

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

readi2c dirección, (variable,…)

“Dirección (Location)” especifica la dirección del I2C mediante un byte del tipo Word.
“Variable(s)” establece dónde se almacenan los bytes del dato leído.
Dirección o Location, define la dirección de inicio de la lectura de datos, aunque se logra también leer
más de un byte secuencialmente (si el dispositivo I2C da soporte a lecturas secuenciales). Dirección o
Location debe ser un byte que defina al 12cslave. Un comando del 12cslave tiene que haberse ejecu-
tado con anterioridad de la ejecución del readi2c. Si el hardware del I2C no fue configurado de forma
correcta o el byte de localización no es el adecuado el valor almacenado en la variable será 255 ($FF)
indicándonos un error. Veamos el siguiente ejemplo de cómo usar el time clock DS1307, donde los datos
son enviados/recibidos en ‘código BCD coloca la dirección del esclavo del DS1307 12cslave %11010000,
‘i2cslow, i2cbyte lectura de la hora y fecha y presenta en el depurador:

Inicio:
readi2c 0, (b0,b1,b2,b3,b4,b5,b6,b7)
debug b1
pause 2000
goto inicio

Club Saber Electrónica Nº 161

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

Trabajando con PICAXE


Tengan en cuenta, que estos datos almacenados en b0, b1, b2, b3, b4, b5, b6, b7, además 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
algún programa que realicemos en VisualB.

READ

Lee la información de la EEPROM incorporada en la dirección (locatino), y guarda el resultado en una


variable dada (b1, b2… w0, w1, etc.). La forma en que se escribe este comando en un programa es la
siguiente:

read dirección, variable

“Dirección o location” es una variable/constante que especifica la dirección mediante un byte.


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

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

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

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


WRITE

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

write Dirección, valor

“Dirección” es una variable o constante que especifica el byte de la dirección de memoria.


“Valor” es una variable o constante que indica el valor del dato a escribir en la memoria.
Este comando podemos emplearlo para refrescar datos guardados en un registro de memoria. Tengan
en cuenta que la duración
de la grabación 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 instrucción.

WRITEI2C

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

writei2c Dirección, (variable,…)

“Dirección” es una variable/constante que especifica el byte de la dirección de memoria.


“Variable” contiene el dato byte(s) que deberá ser grabado.

Esta orden se usa para escribir datos para el dispositivo I2C.


El dato “dirección” define la dirección del inicio de los datos de escritura, cabe la posibilidad de escribir
más 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 mayoría 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 ejecución del
comando i2cwrite. Si no se tiene en cuenta este tiempo de retardo en la grabación, los datos pueden
corromperse.

Club Saber Electrónica Nº 161

43
Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 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á ningún 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 PROGRAMACIÓN 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 específico 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
número de serie está grabado en el chip que
contiene la envoltura del iButton, al ejecutar
el comando readowsn se realizará la lectura
del número de serie y guardará el código
indicador de la familia en b6, el número de
serie en b7a b12 y la suma de verificación en
b13. Nunca deberá utilizar los registros b6 a
b13 para otros propósitos durante la ejecu-
ción del comando readowsn.
FIGURA 29 - CONEXIÓN DE UN IBUTTON EN UN
PICAXE.

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


DEBUG

Permite visualizar la información contenida en la variable Var en la ventana del depurador durante la eje-
cución. Esta instrucción, en el programa, se debe escribir de la siguiente manera:

debug Var

“Var” es el nombre de la variable cuyo contenido se quiere visualizar, por ejemplo:

debug b1

Es la instrucción que permitirá visualizar el contenido de la variable b1.

SERTXD

Envía uno o más conjunto de datos al pin de programación, en formato “standard asíncrono”, usando 8
bit de datos, sin paridad y un BIT de stop (8N1) a 4800 baudios. Este comando nos puede servir para escri-
bir mensajes en nuestro terminal de programación, sin la necesidad de usar una interfase o convertidor
de código 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 Electrónica Nº 161

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

Trabajando con PICAXE


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

PULSIN

Este comando tiene como función observar el ancho de un pulso en un PIN de entrada o salida deter-
minado. Si la opción “estado” tiene el valor cero, se mide el ancho de un pulso bajo. Si la opción “estado”
tiene el valor uno, se mide el ancho de un pulso alto. El ancho o duración medido del pulso así sea con
lógica negativo o positiva, se guarda en la variable que queramos establecer (b1, b2, etc.).
Si el flanco del pulso nunca aparece, ó si el ancho del pulso es demasiado grande para ser medido, el
valor de esta variable será igual a cero. Si se usa una variable de 8 bits, solo se usan los bits menos sig-
nificativos de la medición de 16 bits.
La estructura o sintaxis de la instrucción es la siguiente:

pulsin pin, estado, variable

“Pin” es una variable o constante (0-7) que especifica el pin de entrada o salida que se usará.
“Estado” es una variable o constante con los valores 0 ó 1. Estos valores, configuran el tipo de pulso a
medir en unidades de 10µs (para un cristal de 4MHz).
“Variable” define un registro específico para almacenar el dato obtenido.
La resolución del comando PULSIN depende de la frecuencia de los osciladores, ya sea internos (RC) u
externos. Si se usa un oscilador de 4MHz, el ancho de pulso se obtiene en incrementos de 10µs. Si se usa
un oscilador de 20MHz, el ancho de pulso tendrá una resolución de 2µs. La resolución siempre cambia
con la velocidad del oscilador en uso. Por ejemplo, si en un programa escribimos:

pulsin 3,1,b1

Esta instrucción guarda la longitud del pulso introducido en el pin 3 en la variable b1.

PULSOUT

Genera un pulso en un pin determinado, con un tiempo o período específico. El pulso se genera acti-
vando dos veces el PIN, por lo que la polaridad del pulso depende del estado inicial del PIN.
Orden en que escribimos este comando en un programa:

pulsout pin, tiempo (periodo)

“Pin” especifica la salida que se implementará (0-7) con este comando.


“Tiempo o Período” es una variable (o constante) que especifica el tiempo o período que tendrá el pulso
de salida en unidades de 10µs para una frecuencia de 4MHz.
La resolución de PULSOUT, al igual que PULSIN, depende de la frecuencia del oscilador. Si se usa un osci-
lador de 4MHz, el período del pulso generado estará en incrementos de 10µs. Si se usa un oscilador de

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


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

Pulsout 4,150

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

SERIN

Este comando se usa para recibir uno o más conjuntos de datos en un PIN de entrada determinado, en
formato “standard asíncrono”, 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 transferirán el o los datos, de acuerdo con los siguientes
valores:

T2400 dato original


T1200 dato original
T600 dato original
T300/T4800 dato original
N2400 dato invertido
N1200 dato invertido
N600 dato invertido
N300/N4800 dato invertido

“Variable/s” establece que el comando SERIN comience a guardar datos en la variable asociada (w0,
w1, b1, b2, etc.). Si el nombre de “variable” está sola o sea, si hay un sólo punto establecido para alma-
cenar los datos entrantes, el valor del carácter ASCII recibido es guardado en esa variable. Si la 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 Electrónica Nº 161

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

Trabajando con PICAXE


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

SEROUT

Envía uno o más conjuntos de datos a un pin de salida, en formato “standard asíncrono”, 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 parénte-
sis, por ejemplo: (“Hola”). La figura 32 muestra un ejemplo de uso de este comando en una rutina.

SETINT

Este comando genera una interrup-


ción en función de ciertas condicio-
nes de entrada. FIGURA 32 - EJEMPLO DE USO DE LA INSTRUCCIÓN SEROUT.

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


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

setint input, mask

“Input” es una variable o constante que establece las condiciones de entrada y nos dice qué entrada
es la que va actuar en el efecto de interrupción.
“Mask” es una variable/constante (75-225) que especifica la máscara. La máscara es la función que se
tiene que cumplir para ejecutar la interrupción.
El PIN de interrupción se comprueba entre la ejecución de cada línea de código del programa e, inclu-
sive, durante cualquier orden de pausa.
Si la condición particular de entrada de interrupción se cumple (es cierta), se ejecuta un “gosub” para la
subrutina de interrupción inmediatamente. Cuando termina la ejecución de la subrutina de interrupción,
el programa continúa en la línea siguiente desde donde se produjo la llamada a la interrupción del pro-
grama principal.
La condición de entrada de interrupción es cualquier patrón de “0” y “1” en el “terminal de entrada de
interrupción”, enmascarado por el byte mask (máscara). 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 sólo un patrón de entrada en cualquier momento. Para desactivar la interrupción se debe eje-
cutar una orden SETINT con el valor “0” como byte de máscara.

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

Club Saber Electrónica Nº 161

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

Trabajando con PICAXE


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

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

BRANCH

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

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

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

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

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


BUTTON

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


interno de anti-rebote y autoprotección. El orden en que escribimos este comando en un programa:

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

“Pin” indica cuál es la entrada elegida para implementar este comando.


“Down” es para setear el estado del PIN de entrada cuando se oprime el pulsador colocado en la
entrada seleccionada (0..1).
“Delay” otorga un contador de ciclos antes de que comience la auto-repetición (0..255). Si es 0, no se
efectúa anti-rebote ni auto-repetición. Si es 255 se eliminan rebotes, pero no auto-repetición.
“Rate” indica el valor de auto-repetición (0..255).
“Bvar” es la variable con tamaño de byte que se usa internamente para conteo de demoras y repeti-
ciones. Debe ser inicializada a 0 antes de ser usada y no ser usada en cualquier lugar del programa, ya
que perderíamos los datos almacenados del conteo.
“Action” indica el estado del pulsador al ser actuado… puede ser 1 o 0 (podemos invertir el estado de
las entradas según nuestras necesidades).
“Etiqueta” Indica el origen de la ejecución del comando. La ejecución 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 solución en varias oportunidades en las cuales la fuente de alimentación me
fallaba por ser muy sencilla y tener, a su vez, una muy alta distorsión armónica en la línea de alimentación.
Si bien uno puede suponer en teoría que con una resistencia de 10kΩ en la entrada o implementando opto-
acopladores podemos suprimir o acondicionar las señales entrantes, en este caso el problema se origina en
la propia fuente y, por mas que hagamos intentos, vamos a tener problemas de lectura.

COUNT

Cuenta el número de pulsos en un PIN, durante un período (Period) y guarda el resultado en Var (variable).
El orden en que escribimos este comando en un programa es el siguiente:

count Pin, Period, Var

“Pin” debe ser una constante (0..7) ó una variable que contenga un número de 0 a 15 (B0, por ejemplo)
ó un numero de PIN.

Club Saber Electrónica Nº 161

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

Trabajando con PICAXE


“Period” es un valor numérico (0..65535) y expresa unidades de milisegundos.
“Variable” es del tipo Word y recibe el valor del conteo (0..65535).
Checa el estado de PIN mediante un bucle y cuenta las transiciones de bajo a alto.
Con un oscilador de 4MHz checa el estado del pin cada 20µs. Con un oscilador de 20MHz chequea el
estado cada 4µs. 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 ins-
trucción. Este comando, me fue muy útil para la elaboración de un codificador que debía implementar
en un TACOMETRO
digital de altas RPM
que regulaba un
acelerador electró-
nico.
FIGURA 36 - EJEMPLO DE USO DEL COMANDO COUNT.

SERVO

Envía un pulso por el PIN de salida establecido para el control de un dispositivo de radio control tipo servo.
Aclaremos que no necesariamente tiene que ser para un radio control. En mi caso, lo implemente alám-
bricamente. La sintaxis de programación es la siguiente:

servo pin,pulse

“Pin” es el terminal de salida del PICAXE (0-7).


“Pulse” es una variable/constante (75-225) que especifica la posición del servo. Este comando pone 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 duración) cada 20ms; por consi-
guiente el comando servo 1,75 moverá el servo a la posición de 0 grados, con el comando servo 1,225
se posicionará en el extremo opuesto 180º. Con el comando servo 1,150 colocará el servo en la posi-
ción central.
El comando SERVO no se puede usar al mismo tiempo que PWMOUT dado que comparten un contador
común. No se debe usar
un valor de pulso menor de
75 o mayor de 255 dado
que puede causar que el
servo funcione incorrecta-
mente. Debido a las tole-
rancias en la fabricación
de los servos, todos los
valores son aproximados y
requieren un ajuste fino por
experimentación. En la
figura 37 tenemos una
rutina de ejemplo. FIGURA 37 - EJEMPLO DE USO DEL COMANDO SERVO.

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


SOUND

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

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

“Pin” es una variable/constante (0-7) que especifica el PIN I/O a utilizar.


“Nota(s)” es una variable o constante (0-255) que especifica la frecuencia del sonido emitido.
* si el valor de la Nota es 0, el resultado es: silencio.
* si el valor de la Nota es entre (1-127), el resultado son tonos.
* si el valor de la Nota es entre (128-255), el resultado es ruido blanco.
“Duración” es una variable/constante (0-255) que determina la duración de la nota, en incrementos de
12 ms.
Los tonos y el ruido blanco están 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 características del
PIC (con el que se obtiene el PICAXE), se puede manejar un parlante a través de un condensador. El valor
del condensador debe ser determinado en función de las frecuencias a usar y la carga del parlante. Para
el caso de implementar parlantes piezoeléctricos o buzzer, estos pueden ser conectados directamente.
En la figura 38 tenemos un ejemplo de uso de este comando.

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 conexio-
nes en el terminal de salida del módulo.
El principal obstáculo cuando se toca música en un microcontrolador PIC es el limitado espacio de
memoria . Todos los chips PICAXE tienen un comando SOUND para hacer ruidos, sin embargo, el número
de notas y velocidad de reproducción 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 música . El comando

Club Saber Electrónica Nº 161

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

Trabajando con PICAXE


TUNE incorpora un algoritmo de compresión de datos de la nota para ahorrar espacio de memoria,
también viene pre programado con 4 melodías : Happy Birthday, Jingle Bells, Noche de Paz y Rodolfo el
Reno de la nariz roja. Además puede ser programado con los tonos de timbre de los teléfonos 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 mayoría de los teléfonos Nokia .
oUn microcontrolador simple no puede reproducir melodías complicadas “polifónicas”, pero se oyen
bien las melodías “monofónicas” (un tono a la vez).

READTEMP - READTEMP12

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

readtemp pin,variable
readtemp12 pin,wordvariable

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

READTEMP: la resolución de la lectura es de “enteros” de grado y el sensor funciona desde -55ºC hasta
+125ºC. El bit 7 indicará si los valores de temperatura son positivos (0) o negativos (1).

READTEMP12: Para programadores avanzados. La temperatura viene expresada con una resolución de
0,125ºC y necesita 12 bits para su representación digital. El usuario debe interpretar los datos a través de
cálculo matemático. Para saber más sobre el uso de esta instrucción debe consultar la hoja de datos
del DS18B20 (www.dalsemi.com).
La rutina de ejemplo mostrada en la figura 39 solo es válida si tenemos el módulo LCD de Revolutions
Actions. Para saber cómo funciona, puede realizar la práctica de simulación 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.

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


Ejecute el “Programming Editor” en su PC, copie la rutina de la figura 39 y desde la pestaña opción, vaya
a simulación y seleccione la opción “visualizar y simular comandos de LCD”. De esta manera podrá ver
cómo funciona el programa. Pueden emplear otros comandos para visualizar esta lectura en nuestra PC;
como por ejemplo, el comando Debug.

PWMOUT

Este comando, genera una salida PWM continua usando el módulo interno del microcontrolador y solo
puede ser empleado cuando el microcontrolador tenga una salida específica para esta función.
Este comando, es diferente al comando PWM que vimos anteriormente, ya que PWMOUT funciona 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 instrucción es la siguiente:

pwmout pin,period,duty cycles

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

pwm period = (period + 1) x 4 x velocidad del oscilador


pwm duty cycle = (duty) x velocidad del resonador (speed)

La velocidad de oscilador será de: 1/4.000.000.

SETFREQ

Establece la frecuencia interna del reloj para el microprocesador PICAXE-18X para 4MHz (por defecto) o
para 8MHz. La forma en que se escribe la instrucción es:

setfreq freq

“freqt” puede ser m4 o m8

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

Club Saber Electrónica Nº 161

55
Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 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 período de tiempo indicado
en seconds segundos. Los retardos pueden ser de hasta 65535 segundos (aproximadamente 18 horas).
La sintaxis de programación es la siguiente:

sleep seconds

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

La instrucción SLEEP usa el WatchDog Timer, por lo que es independiente de la frecuencia del oscilador
utilizado. La resolución 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
relación 1/100.

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

Club Saber Electrónica Nº 161

56
Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 58
Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 59

CAPÍTULO 3
Hemos visto en qué consiste el
sistema PICAXE y ya sabemos
cuáles son los comandos para
poder programarlo en BASIC,
además, en el Nº 16 de esta
colección “Club Saber
Electrónica”, explicamos cómo
se programa un PICAXE por
medio de diagramas de flujo
utilizando el Programing Editor.
Resta ahora comenzar a pro-
gramar en BASIC utilizando lo
aprendido en el capítulo 2 de esta obra, tema del que nos ocuparemos a continuación.

APRENDIENDO A PROGRAMAR
PICAXE
INTRODUCCIÓN

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

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

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

¿Qué es una batería?


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

Club Saber Electrónica Nº 161

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

Aprendiendo a Programar PICAXE


¿Qué tamaño de batería se utilizan en electrónica?
Las baterías vienen en todo clase de tipos y tamaños. La
mayoría de las baterías consisten en un grupo de pilas,
en donde cada pila provee cerca de 1.5V (figura 1). Por
lo tanto 4 pilas crean una batería de 6V y 3 pilas una de
4.5V. Como regla general, mientras más grande es la
batería, más tiempo durará (ya que contiene más quími-
cos y por lo tanto será capaz de convertir más energía).
Una batería de mayor voltaje no dura más que una ba-
tería de menor voltaje. Por lo tanto, una batería de 6V for-
mada por 4 pilas AA dura mucho más que una batería
PP3 de 9V (batería de 9V común), ya que por ser física-
mente más grande contiene una mayor cantidad total
de energía química. Por lo tanto, aquellos equipos que
requieren mucha potencia para operar (por ejemplo un
reproductor portátil de CDs, el cual tiene un motor y un FIGURA 1

láser para leer los CDs) siempre utilizarán pilas AA y no


baterías PP3.
Los microcontroladores PICAXE generalmente requieren entre 3 a 6V para operar, y por lo tanto es mejor
utilizar una batería formada por tres a cuatro pilas AA. Nunca utilice una batería PP3 de 9V ya que la ali-
mentación de 9V puede dañar el microcontrolador.

¿Qué tipo de batería debo utilizar?


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

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


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

USO Y PRUEBA DE LEDS

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

¿Para qué se utilizan los LEDs?


Los LEDs se utilizan principalmente como luces
indicadoras. Los LEDs rojos y verdes se utilizan,
FIGURA 2 FIGURA 3 comúnmente, en artefactos electrónicos tales
como televisores para mostrar si el televisor es-
tá encendido o si está en el modo stand-by (en
espera). Los LEDs están disponibles en una va-
riedad de colores diferentes, incluyendo rojo,
amarillo, verde y azul. Existen también LEDs ul-
tra-brillantes, los cuales se utilizan en luces de seguridad tales como las luces intermitentes utilizadas en
bicicletas. Los LEDs infrarrojos producen una luz infrarroja que no es visible al ojo humano, pero que pue-
de utilizarse en dispositivos tales como mandos a distancia de equipo de video.

¿Cómo se usan los LEDs?


Los LEDs sólo necesitan una pequeña cantidad de corriente para operar; esto los hace mucho más efi-
cientes que las lamparitas eléctricas (esto significa, por ejemplo, que si se tuviera una alimentación por
baterías un LED alumbraría por mucho más tiempo que una bombilla eléctrica). Si se pasa demasiada
corriente por un LED el mismo se puede dañar; 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 de-
pende del voltaje de la batería utilizada.
Para una batería de 4.5V se puede utilizar una resistencia de 330Ω o 330R que es lo mismo (fig. 3), y pa-
ra una batería de 3V lo apropiado es una resistencia de 120Ω.

¿Cómo se conecta un LED a un microcontrolador?


Debido a que el LED sólo requiere una pequeña cantidad de corriente para operar, el mismo se puede
conectar directamente entre un pin de salida del microcontrolador y 0V (sin olvidar incluir la resistencia
en serie para protección).

Club Saber Electrónica Nº 161

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

Aprendiendo a Programar PICAXE


¿Cómo se prueba el LED con el microcontrolador?
Después de conectar el LED al PICAXE, el mismo puede probarse utilizando un simple programa tal co-
mo el siguiente:
Main:
High 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 práctica, ejecute el utilitario “Editor de Programa” según lo descrito en este mis-
mo capítulo; luego, escriba el programa anterior, conecte la placa entrenadora con el PICAXE coloca-
do, asegúrese que el jumper correspondiente esté en el lado de programación, conecte uno de los leds
de la placa en la salida “0”, descargue el programa (asegúrese que el entrenador esté bien conectado
por medio del cable al puerto serial de la PC), luego corra el jumper a la posición salida y vea si obtie-
ne el funcionamiento deseado.
Si el LED no funciona verifique:

1. que el LED esté conectado en la salida “0” (por medio de un simple cablecito).
2. que se esté utilizando la resistencia correcta en la placa entrenadora y que el LED esté en el sentido
correcto.
3. que se esté utilizando el número de pin correcto dentro del programa.
4. que todos los componentes estén bien soldados.

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

Main:
For b1 = 1 to 15 ;inicio de un bucle
High 0 ;se pone en alto la salida “0”
Pause 500 ;se hace una pausa de 1/2 seg.
Low 0 ;se pone en estado bajo la salida “0”
Pause 500 ;se hace una pausa de 1/2 seg.
Next b1 ;se continúa con el bucle hasta que termine
End ; fin del programa
________________________________________________________________

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

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


“registro de almacenamiento
de números” dentro del micro-
FIGURA 4

controlador, que el mismo pue-


de utilizar para almacenar nú-
meros a medida que el progra-
ma se ejecuta.
Le aconsejamos que lea o repa-
se todo lo anterior nuevamente,
que baje de Internet el progra-
ma para trabajar con PICAXE y
practique con el ejercicio que
acabamos de dar y con los que
seguimos.

USO Y PRUEBA DE TIMBRES Y ZUMBADORES

¿Qué es un zumbador electrónico?


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

¿Para qué se utilizan los zumbadores?


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

¿Cuál es la diferencia entre un zumbador y un timbre ?


El timbre (o sirena) contiene un pequeño circuito electrónico, el cual genera la señal electrónica necesa-
ria para emitir un sonido. Por lo tanto, cuando el timbre se conecta a una batería siempre emitirá el mis-
mo sonido. El zumbador no tiene este circuito y por ende necesita una señal externa. Esta señal puede
suministrarla un pin de salida del microcontrolador. El zumbador también requiere menos corriente para
operar y por lo tanto durará más en circuitos alimentados
por baterías.

¿Cómo se usan los zumbadores?


La conexión de los zumbadores a un PICAXE es muy sen-
cilla. Simplemente conecte el cable rojo al pin de salida
del microcontrolador y el cable negro a 0V (tierra), figura
5. Tome en cuenta que los zumbadores más económicos
no tienen cubierta plástica exterior. En estos casos es ne-
FIGURA 5 cesario montar el zumbador sobre una sección del circui-

Club Saber Electrónica Nº 161

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

Aprendiendo a Programar PICAXE


to impreso (con cinta adhesiva de doble contacto) para crear un sonido que se pueda escuchar. El cir-
cuito impreso actúa como una “caja de sonido” (baffle) y amplifica el sonido emitido por el zumbador.
Asegúrese de pegar la cinta adhesiva al lado correcto del zumbador (¡el lado de bronce que no tiene
los cables!).
En algunas ocasiones puede que desee emitir sonidos más 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 electrolítico de 10µF) al circuito del microcontrolador para evitar causarle da-
ños al chip. Recuerde que, al igual que el zumbador, los parlantes sólo operan correctamente si están
montados en una “caja de sonido”.
Después 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 inglés “principal), es una etiqueta que dice que está por em-
pezar el programa.
“sound 2” es una instrucción que dice que el PICAXE genere un sonido y
lo emita por la salida 2, cuya frecuencia dependerá del primer número
que está entre paréntesis en la instrucción y su valor puede ser cualquie-
ra entre 0 y 127.
De la misma mamera que antes, podemos probar este programa, utili-
zando el entrenador propuesto en este capítulo y conectando el zumba-
dor en la salida 2. Ejecute el utilitario “Editor de Programa”; luego, escriba
el programa anterior, conecte la placa entrenadora con el PICAXE colo-
cado, asegúrese que el jumper correspondiente esté en el lado de pro-
gramación, conecte el zumbador en la salida “2”, descargue el progra-
FIGURA 6 ma (asegúrese que el entrenador esté bien conectado por medio del ca-
ble al puerto serial de la PC), luego corra el jumper a la posición salida y
vea si obtiene el funcionamiento deseado.
Si el zumbador no funciona verifique:

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

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


Para probar este elemento también puede utilizar el circuito de la mascota virtual. En síntesis, al utilizar el
comando sound, el primer número indica el número de pin (en los proyectos el pin 2 es utilizado frecuen-
temente). El siguiente número es el tono, seguido por la duración. Mientras más alto es el tono, mayor se-
rá la altura tonal del sonido (tome en cuenta que algunos zumbadores no pueden emitir tonos muy altos
y; por lo tanto, valores mayores de 127 puede que no se escuchen).
Al utilizar sonidos múltiples puede incluirlos todos en la misma línea. Por ejemplo:

Sound 2, (65,100, 78, 100, 88, 100, 119, 100)

El programa BASIC mostrado en la tabla 2 utiliza un bucle for...next para emitir 120 sonidos diferentes, uti-
lizando la variable b1 para almacenar el valor (tono) del comando sound.
El número almacenado en la variable b1 aumenta 1 en cada bucle (1-2-3-etc.); por lo tanto, al utilizar la
variable b1 en la posición 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 “ejem-
plos”. Si no tiene los programas para trabajar con los microcontroladores PICAXE, puede bajarlos sin car-
go de nuestra web: www.webelectronica.com.mx, haciendo clic en el ícono password e ingresando la
clave: “picaxe212”.

PRUEBA Y USO DE SENSORES DIGITALES

¿Qué son los interruptores digitales?


Un sensor digital es simplemente un componente del tipo “interruptor”, el cual sólo puede estar en dos
posiciones: encendido ó apagado. Si dibujáramos una gráfica de las señales de encendido-apagado

Club Saber Electrónica Nº 161

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

Aprendiendo a Programar PICAXE


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

1) interruptores de botón de presión que de-


tectan cuando el botón ha sido oprimido
2) micro-interruptores con palanquitas largas
que detectan pequeños movimientos
3) interruptores de nivel que detectan sacudidas
4) interruptores de lengüeta (reed switches) que detectan el movimiento de un imán

¿Para qué se utilizan los Interruptores?


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

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


se una y otra vez. Si la entrada está encendida, el programa salta a la etiqueta llamada “flash”. El pro-
grama luego enciende por 2 segundos la salida 0 antes de regresar al bucle principal. Note cuidadosa-
mente la ortografía de la línea: “if...then – input3” (entrada 3) es una sola palabra (sin espacios en blan-
co). Es permitido utilizar tanto pin3 como input3, ambas significan lo mismo. Note también que después
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 si-
guiendo 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 programación y luego del lado de
salida “0” para que el circuito trabaje según lo programado.

PRUEBA Y USO DE FOTORRESISTENCIAS

¿Qué es una fotorresistencia?


Una fotorresistencia es un tipo especial de resistencia, la cual reacciona a cambios en el nivel de luz. La
resistencia de la fotorresistencia cambia a medida que varía la cantidad de luz que incide sobre la “ven-
tana” del dispositivo. Esto permite a los circuitos electrónicos medir cambios en el nivel de luz. Vea en el
capítulo siguiente a la explicación del funcionamiento de los PICAXE-18 la curva de respuesta y otros da-
tos relevantes sobre las fotorresistencias.

¿Para qué se utilizan las fotorresistencias?


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

Club Saber Electrónica Nº 161

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

Aprendiendo a Programar PICAXE


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

FIGURA 11

Este programa encende-


rá y apagará la “salida
0” de acuerdo al nivel
de luz.
Para probar la fotorresis-
tencia, conéctela al en-
trenador de la figura 12 y
siga los procedimientos
que hemos utilizado pa-
ra la prueba de otros
componentes. La misma
se puede probar como
un sensor analógico utili-
zando un simple progra-
ma, tal como se ve en la
figura 13.
El comando “readadc”
se utiliza para leer el valor FIGURA 12

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


FIGURA 13

analógico (un número entre 0 y 255) dentro de la variable b1. Una vez que este número está en la varia-
ble b1, el mismo se puede probar para ver si es mayor que 100 ó mayor que 50. Si es mayor que 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 capítulo “presentación” de los microcontroladores PICAXE. Veamos
ahora cómo trabajar con los PICAXE-18.

R ecordemos: El microcontrolador PICAXE es un PIC al que se le graba un pequeño programita in-


terno (firmware) para que pueda ser programado directamente sin la necesidad de un cargador y
los programas se pueden hacer en BASIC y en otros entornos muy amigables. En síntesis, tiene to-
das las bondades del PIC, pero son mucho más fáciles de usar.

A modo de síntesis, por si Ud. ha comenzado la lectura


por esta sección, 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.
Estos microcontroladores son comprados en “blanco”
FIGURA 14

y luego programados con un programa específico de


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

Club Saber Electrónica Nº 161

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

Aprendiendo a Programar PICAXE


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

· Aumento en la confiabilidad debido al menor número de par-


tes.
· Reducción en los niveles de existencia ya que un microcontrola-
dor reemplaza varias partes.
FIGURA 15

· Simplificación del ensamblaje del producto y productos finales más pequeños.


· Gran flexibilidad y adaptabilidad del producto, ya que las funciones del producto están programadas
en el microcontrolador y no incorporadas en el hardware electrónico.
· Rapidez en modificaciones y desarrollo del producto mediante cambios en el programa del micro-
controlador, y no en el hardware electrónico.

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

UTILIZANDO EL COMANDO SYMBOL

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

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


symbol buzzer = 1 'renombrar salida 1 “buzzer” (timbre)

main: 'hacer una etiqueta llamada “main”


high dp 'LED encendido
low buzzer 'timbre apagado
wait 1 ' esperar un segundo
low dp ' LED apagado
high buzze ' timbre encendido

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


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

Recuerde que los comentarios [explicaciones posteriores al símbolo de apóstrofe (‘)] facilitan mucho la
comprensión de cada línea del programa. Estos comentarios son ignorados por la computadora al des-
cargar un programa al PICAXE. “Todo lo que en una línea está después de (‘) es ignorado por el pro-
grama”.
Las etiquetas (“main:” en el programa de la tabla 5) pueden ser cualquier palabra (con la excepción 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 símbolo 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 tiem-
pos muertos. Sin embargo, el comando wait puede ser utilizado únicamente con segundos enteros mien-
tras que pause se puede utilizar para retardos más cortos (el mismo se asigna en milésimas de segundo).
Al comando wait se le pueden asignar números del 1 al 65, los cuales deben escribirse después del co-
mando. Al comando pause se le pueden asignar números entre 1 y 65535.
Es una buena técnica de programación usar tabulaciones (o espacios) al inicio de líneas sin etiquetas de
manera que los comandos estén alineados. El término “espacios en blanco” es utilizado por programa-
dores para definir tabulaciones, espacios y líneas en blanco. Dichos “espacios en blanco”, utilizados co-
rrectamente, hacen al programa mucho más fácil de leer y entender (vea las tabulaciones que 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 están los comentarios que fa-
cilitan la comprensión del programa).

NOTA: Algunas versiones antiguas de lenguaje BASIC utilizan “números de línea” en vez de etiquetas pa-
ra trabajar con los comandos goto. Desafortunadamente, este sistema puede ser muy inconveniente ya
que si el programa es modificado posteriormente agregando o eliminando líneas, todos los números de
línea posteriores deben ser modificados. El sistema de etiquetas, utilizado en la mayor parte de las versio-
nes modernas de lenguaje BASIC, supera este problema automáticamente.
El “cerebro” del sistema PICAXE es el microcontrolador de 18 pines PIC16F627. Este PIC posee un progra-
ma que ha sido grabado para convertirlo en un elemento del sistema PICAXE (se llama PICAXE-18).
Aunque los microcontroladores son relativamente baratos (algunos microcontroladores cuestan menos
de 2 dólares), los mismos son dispositivos muy complejos que contienen miles de transistores, resistencias
y otros componentes electrónicos.
El microcontrolador PICAXE almacena sus programas (firmware) en su memoria FLASH “no volátil”. La ven-
taja de esta memoria es que no pierde el programa descargado cuando la fuente de alimentación (ba-
terías) es desconectada del circuito (cuando las baterías son reconectadas el programa se inicia nueva-
mente). Sin embargo, cuando desee reprogramar el PICAXE, puede descargar un nuevo programa; es-
ta acción borra el viejo programa almacenado en la memoria y almacena el nuevo programa en la me-
moria de programa. La memoria sólo permite el almacenamiento de un programa a la vez.

Tome en cuenta que no es posible sacar el programa fuera de la memoria del PICAXE para “leer-
lo”; por ende, si desea guardar el código de un programa para utilizarlo posteriormente debe guar-

Club Saber Electrónica Nº 161

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

Aprendiendo a Programar PICAXE


darlo en su computadora antes de descargarlo al PICAXE. Esto es una restricción 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 además de la memoria ROM (Read Only Memory - Memoria de sólo lec-
tura), memoria temporal RAM (Random Access Memory - Memoria de Acceso Aleatorio).
La memoria RAM es una memoria “temporal” utilizada para almacenar información mientras el progra-
ma es ejecutado. La misma es utilizada normalmente para almacenar respuestas de sumas matemáti-
cas que el microcontrolador hace mientras está trabajando. Esta memoria es “volátil”, lo cual significa
que tan pronto las baterías son desconectadas, la información almacenada en la misma se pierde.
Hay 14 bytes de memoria temporal disponibles y los mismos son denominados desde b0 a b13 dentro
de los programas.

PRACTICANDO CON EL PICAXE-18

La figura 16 muestra el circuito básico PICAXE-18. El resistor de 4k7 (4700Ω), conectado en el pin 4, 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 di-
recta de programas con el cable suministrado de sólo tres terminales. Los microcontroladores PIC comu-
nes no tienen este progra-
ma y por ende no pueden
ser programados mediante
el sistema PICAXE.
El microcontrolador PICA-
XE-18A es casi idéntico al
microcontrolador PICAXE-
18 estándar, pero es ligera-
mente más costoso ya que
tiene el doble de capaci-
dad de memoria (aproxi-
madamente 80 líneas de
programación BASIC en
vez de 40) y salidas analó-
gicas de alta resolución (en
vez de baja resolución).
El sistema PICAXE utiliza
una interfaz al puerto serie FIGURA 16

Club Saber Electrónica Nº 161

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

Programación Fácil 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 desempeño confiable en
casi todas las computadoras mo-
dernas. Si bien ya mostramos en el
capítulo 1 cómo se programa el
micro PICAXE, en la figura 17 volve-
mos a mostrar cómo se conecta es-
FIGURA 17

te cable en la placa del entrenador.


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

NOTA: Hoy las computadoras portátiles ya no tienen puerto serial y, en ese caso, debe usar un adapata-
dor (vea el capítulo 1), por otro lado, a mayor parte de las computadoras de escritorio tienen dos puer-
tos serie, normalmente denominados COM1 y COM2. El software “Editor de Programación (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 correspon-
diente en su computadora.
Si ya compró un cable de sistema PICAXE armado y utiliza una computadora que posee el antiguo co-
nectador de puerto serie de 25 pines, utilice un adaptador 9-25 para poder conectar el cable PICAXE de
9 pines. Estos adaptadores pueden ser comprados en cualquier tienda (casa) especializada en compu-
tadoras. Pero también, Ud. puede armar el cable siguiendo las instrucciones que le daremos oportuna-
mente.

UTILIZANDO BUCLES FOR…NEXT

Con frecuencia, es útil repetir una parte de un programa varias veces, por ejemplo al encender/apagar
sucesivamente un diodo LED (Light Emitting Diode, Diodo emisor de luz). En estos casos un bucle for…next
puede ser utilizado. El programa de la tabla 6 enciende y apaga 15 veces el diodo LED conectado al
pin de salida 7. El número de veces que el código 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 ha-
cerlas más fácil de recordar.
_______________________________________________________________________
TABLA 6

symbol counter = b0 'definir la variable “counter” como b0


symbol dp = 7 'asignar al pin 7 con el “dp”

main:

Club Saber Electrónica Nº 161

73
Cap 3 - Aperendiendo a Programar 9/6/11 10:23 AM Página 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 cómo 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 rá-


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

_____________________________________________________________________________________
TABLA 7

symbol mark1 = b6 'renombrar variables


symbol space1 = b7
symbol mark2 = b8
symbol space2 = b9

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


let space1 = 10

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


let space2 = 10

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


main:
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, recién es-
tamos empezando.

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

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

_____________________________________________________________________________________
TABLA 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 electrónico en el tablero tutorial (entrenador).
Para hacer esto, ubique los conectores del zumbador, marcados con la palabra PIEZO (figuras 19 y 20).
Luego suelde el cable rojo al agujero marcado “+” y el cable negro al agujero marcado “-”.

Club Saber Electrónica Nº 161

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

Aprendiendo a Programar PICAXE


En el programa, el primer número indica el número FIGURA 19
de pin (en el tablero tutorial el pin de salida 6 es uti-
lizado). El siguiente número es el tono, seguido por
la duración del sonido (longitud). Mientras más alto
sea el número de tono, mayor será la “altura tonal”
del sonido (frecuencia, note que algunos zumba-
dores no pueden producir tonos muy altos y por lo
tanto números de tono mayores de 127 puede que
no sean escuchados).
FIGURA 20

El siguiente programa que vemos en la tabla 9 utiliza un bucle for-


…next para producir 120 sonidos diferentes. El número 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 función pero cambiando el tono en orden des-
cendente, 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 compren-
der cómo el PICAXE ejecuta las operaciones matemáticas.
El PICAXE sólo interpreta números en “byte”, o sea números enteros del 0 al 255. No puede interpretar
fracciones, ni números negativos, ni números mayores de 255.

Club Saber Electrónica Nº 161

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

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

USO DE ENTRADAS CON SENSORES DIGITALES

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

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

La placa entrenadora propuesta para esta práctica


FIGURA 21
tiene dos interruptores de presión conectados a las en-
tradas 6 y 7 (figura 21). Adicionalmente se pueden co-
nectar otros dos interruptores a las entradas 0 y 1. En la
tabla 12 vemos el programa que indica al PICAXE có-
mo reaccionar cuando los interruptores de botón de
presión son presionados.
En el programa el pin de salida 7 se ilumina cada vez
que el interruptor de botón de la entrada 6 es presio-
nado.

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

Club Saber Electrónica Nº 161

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

Aprendiendo a Programar PICAXE


USO DE ENTRADAS CON SENSORES ANALÓGICOS

Los sensores analógicos miden señales continuas tales


como luz, temperatura o posición.
El sensor analógico provee una señal que consiste en
un voltaje variable (figura 22). Este voltaje puede luego
ser representado con un número del 0 al 255 (Por
ejemplo muy oscuro = 0, luz muy brillante = 255).
Ejemplos típicos de sensores analógicos son: FIGURA 22

· Fotorresistencias ó LDRs (Light


FIGURA 23

Dependent Resistors - Resisten-


cias variables con la luz ).
· Termistores
· Resistencias variables (poten-
ciómetros)

El tablero tutorial (entrenador)


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

Cómo se Leen las Entradas Analógicas


El valor de una entrada analógica puede ser fácilmente copiado dentro de una variable utilizando el co-
mando readadc. Luego, se puede probar el valor de la variable (0 a 160). El programa de la tabla 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 va-
lor está entre 70 y 120, ambos diodos LED permanecen apagados.
_____________________________________________________________________________________
TABLA 13

main: 'hacer etiqueta llamada “main”


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

Club Saber Electrónica Nº 161

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

Programación Fácil de Microcontroladores PICAXE


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

top: 'hacer una etiqueta llamada “top”


high 1 'encender 1
low 2 'apagar 2
goto main '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 analógicas 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) están libres para conectar otros sensores.
Frecuentemente, al utilizar sensores análogos 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 fácil-
mente el valor en “tiempo real” de un sensor, permitiendo calcular el valor umbral experimentalmente.
Al ejecutar el programa de la tabla 14 aparecerá una ventana de depuración (debug) en la pantalla de
la computadora, indicando el valor de la variable b0.
_____________________________________________________________________________________
TABLA 14

main: 'hacer etiqueta llamada “main”


readadc 2,b0 'leer señal de canal 2 en variable 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 sen-
sor.

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

Club Saber Electrónica Nº 161

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

Robótica paRa Niños,


adolesceNtes y adultos
apReNde Robótica y pRogRamacióN coN bitbloq 2
Bitbloq 2 es un lenguaje de programación por bloques. En él no hace falta escribir complica-
das líneas de código en las que al principio es habitual cometer muchos errores. Utilizando bit-
bloq 2 te centrarás en aprender los conceptos básicos de programación, como las variables,
los bucles o los condicionales. Cuando aprendas cómo piensa una máquina ¡podrás progra-
mar cualquier cosa!
Bitbloq 2 está recomendado a partir de 8 años. Para crear pequeños experimentos y fantásti-
cos robots no es necesario ser un experto. ¡Al contrario! experimenta y equivócate, aprende,
¡disfruta del camino!
En este curso aprenderás los fundamentos de la robótica y programación usando bitbloq 2 y el
ZUM kit de robótica de BQ. En cualquier caso, bitbloq 2 es compatible con cualquier placa de
la familia UNO, por lo que, si ya tienes cualquier otra placa controladora ¡no lo dudes y ponte a
programar!

http://diwo.bq.com/course/aprende-robotica-y-programacion-con-bitbloq-2

Saber Electrónica 81
APÉNDICE

82 Saber Electrónica
Robótica para Niños, Adolescentes y Adultos

Saber Electrónica 83
APÉNDICE

84 Saber Electrónica
Robótica para Niños, Adolescentes y Adultos

Saber Electrónica 85
APÉNDICE

86 Saber Electrónica
Robótica para Niños, Adolescentes y Adultos

Saber Electrónica 87
APÉNDICE

88 Saber Electrónica
Robótica para Niños, Adolescentes y Adultos

Saber Electrónica 89
APÉNDICE

90 Saber Electrónica
3ª de forros 2.qxd 9/5/11 12:54 PM Página 3ªFo1
4ª de forros.qxd 9/5/11 12:55 PM Página 4ªFo1

Vous aimerez peut-être aussi