Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
2ª de forros.qxd 9/5/11 12:53 PM Página 2ªFo1 Capítulo 1: Qué Son y Cómo Se uSan loS pICaXe 3 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Ventajas del Sistema PICAXE . . . . . . . . . . . . . . . .6 Comenzando a Trabajar con PICAXE . . . . . . . . . .8 El Editor de Programas . . . . . . . . . . . . . . . . . . . . .9 Los Distintos Tipos de PICAXE . . . . . . . . . . . . . .12 Kits PICAXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 Tarjeta Entrenadora PICAXE-08 . . . . . . . . . . . . .14 Tarjeta Entrenadora PICAXE-18 . . . . . . . . . . . . .16 PLC PICAXE-18 (ICA-017) . . . . . . . . . . . . . . . . .16 Control de Display de LCD para PICAXE-18 . . .16 Capítulo 2 trabajando Con mICroControladoreS pICaXe . . . . . . . . . . . . . . . . . . . . . . . . .19 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . .19 El Sistema PICAXE . . . . . . . . . . . . . . . . . . . . . .20 Comenzando las Prácticas . . . . . . . . . . . . . . . . .22 Usando COMENTARIOS . . . . . . . . . . . . . . . . . . .22 Uso de SYMBOL . . . . . . . . . . . . . . . . . . . . . . . . .23 Uso de Constantes . . . . . . . . . . . . . . . . . . . . . . .23 Designación de Variables . . . . . . . . . . . . . . . . . .24 Los Comandos de Programación BASIC en PICAXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25 GOTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25 GOSUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26 FOR ... NEXT . . . . . . . . . . . . . . . . . . . . . . . . . . .27 HIGH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 LOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 INPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 OUTPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 END . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 IF…THEN IF…AND…THEN IF…OR…THEN . .31 PAUSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 WAIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 RETURN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 INFRAIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 READADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 READADC10 . . . . . . . . . . . . . . . . . . . . . . . . . . .36 PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 EEPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 I2CSLAVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39 READI2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41 READ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42 WRITE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43 WRITEI2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43 READOWSN . . . . . . . . . . . . . . . . . . . . . . . . . . . .44 DEBUG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45 SERTXD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45 PULSIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46 PULSOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46 SERIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47 SEROUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48 SETINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48 BRANCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50 BUTTON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51 COUNT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51 SERVO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52 SOUND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53 READTEMP - READTEMP12 . . . . . . . . . . . . . .54 PWMOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55 SETFREQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55 SLEEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56 Capítulo 3 aprendIendo a programar pICaXe . . .59 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59 ¿Qué es una batería? . . . . . . . . . . . . . . . . . . . . .59 Uso y Prueba de LEDs . . . . . . . . . . . . . . . . . . . .61 Uso y Prueba de Timbres y Zumbadores . . . . . .63 Prueba y Uso de Sensores Digitales . . . . . . . . . .65 Prueba y Uso de Fotorresistencias . . . . . . . . . . .67 Utilizando el Comando Symbol . . . . . . . . . . . . .70 Practicando con el PICAXE-18 . . . . . . . . . . . . . .72 Utilizando Bucles For…Next . . . . . . . . . . . . . . . .73 Controlando la Velocidad de un Motor . . . . . . . .74 Uso de Timbres y Zumbadores Electrónicos en el Sistema PICAXE . . . . . . . . . . . . . . . . . . . . .75 Uso de Entradas con Sensores Digitales . . . . . .77 Uso de Entradas con Sensores Analógicos . . . .78 Cómo se Leen las Entradas Analógicas . . . . . . .78 apéndICe robótICa para nIñoS, adoleSCenteS y adultoS . . .81 Bitbloq 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81 Club Saber Electrónica Nº 161 1 Programación Fácil de Microcontroladores PICAXE Sumario Programación Fácil de Microcontroladores PICAXE Sumario club 161_ArtTapa 10/03/2019 11:11 a. m. Página 1 Club Saber Electrónica Nº 161 2 Qué Son y Cómo se Usan los PICAXE di rec tor Ing. Ho ra cio D. Va lle jo autor de este tomo de Colección: Autores Varios Selección y Coordinación: Ing. Horacio Daniel Vallejo Edi to rial QUarK S.r.l. Propietariadelosderechosencastellanodelapublica- ción mensual Sa bEr ElEC tró Ni Ca - Altolafguirre 310(1870)VillaDomínico -BuenosAires -Argentina - T.E.1142061742 ad mi nis tra ción y ne go cios Patricia Rivero Rivero (SISA SA de CV) Margarita Rivero Rivero (SISA SA de CV) Staff Liliana Teresa Vallejo Mariela Vallejo Diego Vallejo Luis Alberto Castro Regalado (SISA SA de CV) Federico Vallejo aten ción al Clien te Ale jan dro Va lle jo ate clien @we be lec tro ni ca .co m.ar In ter net: www .we be lec tro ni ca .co m.ar publicidad: Rafael Morales rafamorales@webelectronica.com.ar Club Se: grupo Quark Srl clubse @we be lec tro ni ca .co m.ar edi to rial Quark Srl San Ricardo 2072 (1273) - Ca pi tal Fe de ral www .we be lec tro ni ca .co m.mx La Edi to rial no se res pon sa bi li za por el con te ni do de las no - tas fir ma das. To dos los pro duc tos o mar cas que se men cio - nan son a los efec tos de pres tar un ser vi cio al lec tor, y no en tra ñan res pon sa bi li dad de nues tra par te. Es tá pro hi bi da la re pro duc ción to tal o par cial del ma te rial con te ni do en es ta re vis ta, así co mo la in dus tria li za ción y/o co mer cia li za ción de los apa ra tos o ideas que apa re cen en los men cio na dos tex - tos, ba jo pe na de san cio nes le ga les, sal vo me dian te au to ri - za ción por es cri to de la Edi to rial. SEGUNDA EDICIÓN, abril 2019 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- ñar sistemas microcontrolados mediante programaciones fáciles de com- prender. Básicamente son microcontroladores PIC a los que la empresa Education Revolution les programa un firmware para que puedan ser programados en el circuito en que se los va a utilizar (no es preciso un programador) utilizando una aplicación llamada Programing Editor que permite hacer programas en diagramas de flujo y en lenguaje Basic. En los tomos de colección Nº 7, 16 y 29 de esta obra, Club Saber Electrónica, nos dedicamos a explicar qué es PICAXE, cómo se los programa mediante el uso de diagramas de flujo y dimos varios circuitos prácticos. El objetivo de este tomo es introducirlo al lenguaje BASIC de modo queaprenda a programar utilizando un lenguaje sencillo que posee muy pocas instrucciones, con el que podrá darle “más poder” a los PICAXE dado que podrá ahorrar líneas de comando, haciendo más efectiva a la memoria EEPROM de estos micros. Para la elaboración del capítulo 2 nos basamos en escritos del Ingeniero Martín Alejandro Torres Fortelli de “ElectroEscuela Virtual” quien propone ejemplos básicos para que Ud. aprenda mientras realiza sus propias prácticas de simulación en el Programing Editor. A su vez, le brindamos la oportunidad de descargar 2 discos compactos completos, uno con un Curso Programado de PICAXE con Test de Evaluación y Diploma extendido por importantes Instituciones y otro con un Curso en video sobre Programación de Microcontroladores PICAXE. En esta segunda edición, decidimos agregar un capítulo sobre Bitbloq 2 es un lenguaje de programación por bloques, ideal para el aprendizaje de niños, adolescentes y adultos. Esperamos que disfrute de este material. ¡Hasta el mes próximo! Sobre loS CDS y Su DeSCarga Ud, podrá descargar de nuestra web 2 CDs: “Curso Programado de Microcontroladores PICAXE” y “Ambiente de Programación de Microcontroladores PICAXE” (en video). El primero incluye un curso con asesoramiento a través de Internet y Diploma de aprobación. Para realizar la descarga deberá ingresar a nuestra web: www.webelectronica.com.mx, ten- 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- nido para que pueda iniciar la descarga. Editorial Del Editor al Lector Sumario club 161_ArtTapa 10/03/2019 11:11 a. m. Página 2 Club Saber Electrónica Nº 161 3 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 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- CC APÍTULAPÍTUL OO 11 QUÉ SON Y CÓMO SE USAN LOS PICAXE Cap 1 - PICAXE 9/6/11 10:03 AM Página 3 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 que necesita para realizar sus funciones, esto es, microprocesador, disco duro, memoria RAM, etc. Clásicamente, cuando programamos un microcon- trolador, de forma implícita se tiene que 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. Para la mayoría de estos sistemas de desarrollo, una vez que se tiene terminada la aplicación, el paso siguiente es armar el prototipo e insertar el microcon- 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 Qué Son y Cómo se Usan los PICAXE FIGURA 1 - UN PICAXE ES UN PIC DE MICROCHIP AL QUE SE LE AGREGÓ UN FIRMWARE PARA FACILITAR SU PROGRAMACIÓN. FIGURA 2 - LA EMPRESA EDUCATION REVOLUTION FACILITA HERRAMIENTAS PARA APRENDER A TRABAJAR CON LOS MICROCONTRO- LADORES PICAXE. Cap 1 - PICAXE 9/6/11 10:03 AM Página 4 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- gar adentro del PIC. Aquí no vamos a mencionar las ventajas y desventa- jas del sistema PICAXE con respecto a otros, lo único que podemos agregar es que 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 cual hablaremos más ade- lante. La empresa menciona que en el futuro ya no actuali- zará el editor por diagrama de flujos del “Programing Editor” por lo cual el usuario deberá aprender a manejar el Logicator. Aquí el problema es que sólo será gratuita una versión limitada y para adquirir la versión 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 Programación Fácil de Microcontroladores PICAXE FIGURA 3 - UNA DE LAS VENTAJAS DEL PICAXE ES QUE LA PLACA EN QUE SE USA PUEDE TENER UN CONECTOR PARA PODER PROGRAMARLO SIN SACARLO DE SU ZÓCALO. FIGURA 4 - LA APLICACIÓN PROGRAMING EDITOR PERMITE CONSTRUIR PROGRAMAS PARA PICAXE EN DIAGRAMAS DE FLUJO. HOY, LA EMPRESA EDUCATION REVOLUTION OFRECE EL PROGRAMA LOGICATOR QUE TAM- BIÉN SIRVE PARA TRABAJAR CON LOS PIC DE MICROCHIP. PUEDE DES- CARGAR GRATUITAMENTE UN MANUAL COMPLETO SOBRE EL MANEJO DE LOGICATOR CON LA CLAVE: “PICAXELOGIC”. Cap 1 - PICAXE 9/6/11 10:03 AM Página 5 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- controladores ya se tienen definidas las termi- 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 Club Saber Electrónica Nº 161 6 Qué Son y Cómo se Usan los PICAXE FIGURA 5 - EL PROGRAMING EDITOR PERMITE PROGRAMAR EN BASIC O CONVERTIR EL DIA- GRAMA DE FLUJO EN BASIC. FIGURA 6 - CIRCUITO BÁSICO DE ENTRENAMIENTO PARA EL PICAXE-08. Cap 1 - PICAXE 9/6/11 10:03 AM Página 6 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 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- 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. Club Saber Electrónica Nº 161 7 Programación Fácil de Microcontroladores PICAXE FIGURA 7 - CIRCUITO BÁSICO DE ENTRENAMIENTO PARA EL PICAXE-18. FIGURA 9 - LOS PICAXE SE COMUNICAN CON LA PC A TRAVÉS DEL PUERTO COM, UTILIZANDO PROTOCOLO RS232. FIGURA 8 - CIRCUITO BÁSICO DE ENTRENAMIENTO PARA EL PICAXE-28. Cap 1 - PICAXE 9/6/11 10:03 AM Página 7 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 ese caso, se debe utilizar un conector que comercializa la empresa Education Revolution, o colocar un conversor USB a RS232 como el que publicamos en saber 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 asegurarse que el dispositivo genere un puerto COM real, es decir, que no sea un dispositivo HID, ya que en ese caso no le va a servir. COMENZANDO A TRABAJAR CON PICAXE “PICAXE” es un sistema que emplea un micro 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 Qué Son y Cómo se Usan los PICAXE FIGURA 10 - DIAGRAMA DE ARMADO DEL CABLE QUE SE UTILIZA PARA PROGRAMAR LOS PICAXE. FIGURA11 - VISTA DEL CABLE DE PROGRAMA- CIÓN TERMINADO. Cap 1 - PICAXE 9/6/11 10:03 AM Página 8 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- Club Saber Electrónica Nº 161 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ÓNSE EXPLICÓ EN SABER ELECTRÓNICA Nº 221. FIGURA 13 - UN ADAPTADOR USB A RS232 COMERCIAL. Cap 1 - PICAXE 9/6/11 10:03 AM Página 9 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 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 (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- Club Saber Electrónica Nº 161 10 Qué Son y Cómo se Usan los PICAXE FIGURA 14 - CARPETA PROGEDIT. FIGURA 15 - SOFTWARE DE INSTALACIÓN “PROGRAMMING EDITOR”. FIGURA 16 - VENTANA DE BIENVENIDA PARA LA INSTALACIÓN DEL SOFTWARE DE LOS PICAXE. Cap 1 - PICAXE 9/6/11 10:03 AM Página 10 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 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 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 debemos oprimir el cuadro identificado Club Saber Electrónica Nº 161 11 Programación Fácil de Microcontroladores PICAXE FIGURA 17 - ACUERDO DE LICENCIA. FIGURA 18 - INFORMACIÓN DEL USUARIO. FIGURA 19 - DESTINO DEL SOFTWARE. Cap 1 - PICAXE 9/6/11 10:03 AM Página 11 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 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 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. Club Saber Electrónica Nº 161 12 Qué Son y Cómo se Usan los PICAXE FIGURA 20 - VENTANA DE CONFIRMACIÓN DE DATOS. FIGURA 21 - VENTANA DE INSTALACIÓN DEL SOFTWARE. FIGURA 22 - CUANDO LA INSTALACIÓN HAYA CONCLUIDO EL PROGRAMA NOS INDICARÁ QUE ESTAMOS LISTOS PARA COMENZAR A UTILIZARLO. Cap 1 - PICAXE 9/6/11 10:03 AM Página 12 Hace aproximadamente 6 años que comenzamos a escribir publicaciones sobre el sistema PICAXE aquí en Saber Electrónica, y a la fecha algunos de los microcontroladores PICAXE que al inicio les presenta- mos en diversos proyectos, ya se encuentran descontinuados o sustituidos por otros de reciente comer- Club Saber Electrónica Nº 161 13 Programación Fácil de Microcontroladores PICAXE FIGURA 23 - ICONO DE ACCESO RÁPIDO. FIGURA 24A - LENGUAJE BASIC PARA PROGRAMAR LOS PICAXE. FIGURA 24B - DIAGRAMA DE FLUJO PARA PROGRAMAR LOS PICAXE. Cap 1 - PICAXE 9/6/11 10:03 AM Página 13 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 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. Club Saber Electrónica Nº 161 14 Qué Son y Cómo se Usan los PICAXE TABLA 1 - DISTINTOS TIPOS DE PICAXE. TABLA 2 - LAS MATRÍCULAS DE LOS PICAXE.Cap 1 - PICAXE 9/6/11 10:03 AM Página 14 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- das la tarjeta entrenadora. Club Saber Electrónica Nº 161 15 Programación Fácil de Microcontroladores PICAXE TABLA 3 - DIFERENCIAS ENTRE LOS PICAXE. FIGURA 25 - TARJETA PICAXE-08. Cap 1 - PICAXE 9/6/11 10:03 AM Página 15 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 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 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 Qué Son y Cómo se Usan los PICAXE FIGURA 26 - TARJETA PICAXE-18. FIGURA 27 - PLC PICAXE-18. Cap 1 - PICAXE 9/6/11 10:03 AM Página 16 Cap 1 - PICAXE 9/6/11 10:03 AM Página 17 Cap 1 - PICAXE 9/6/11 10:03 AM Página 18 Club Saber Electrónica Nº 161 19 “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. 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: CC APÍTULAPÍTUL OO 22 TRABAJANDO CON MICROCONTROLADORES PICAXE Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 19 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 rutinade 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 Club Saber Electrónica Nº 161 20 Trabajando con PICAXE FIGURA 1 - RUTINA EN BASIC PARA PROGRAMAR UN PICAXE Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 20 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 indica que visua- lice y compare el estado de la entrada cero con el valor pre establecido y en caso de ser positivo el resultado tiene que saltar e ir al sub programa “encendido”, figura 3. En el caso de que la comparación de “cero”, el microcontrolador sigue líneas abajo leyendo las instrucciones. Como pueden observar, la siguiente instrucción es similar, compara el estado de la señal en la 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 Programación Fácil de Microcontroladores PICAXE FIGURA 2 - EL PROGRAMA CON- SISTE EN UN JUEGO DE INSTRUC- CIONES QUE SE ESCRIBE EN EL PROGRAMING EDITOR. FIGURA 3 - UNA INSTRUCCIÓN PUEDE INDICAR QUE, SI SE CUMPLE ALGUNA CONDICIÓN, EL PROGRAMA “SALTE” A OTRA INSTRUCCIÓN O SUBRUTINA. Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 21 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 Trabajando con PICAXE Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 22 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- 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 recordarcuá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 Programación Fácil de Microcontroladores PICAXE FIGURA 4 - TODA ESCRITURA EN UNA LÍNEA QUE ESTÁ DES- PUÉS DE UN APÓSTROFE O UN PUNTO Y COMA ES UN COMEN- TARIO Y NO FORMA PARTE DEL PROGRAMA. Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 23 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- 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 Trabajando con PICAXE FIGURA 5 - EL COMANDO SYMBOL DEFINE EL NOMBRE Y LA ACCIÓN DE CONSTANTES O VARIABLES. Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 24 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. Club Saber Electrónica Nº 161 25 Programación Fácil de Microcontroladores PICAXE FIGURA 6 - GOTO SE USA PARA INDICAR A DÓNDE SIGUE EL PROGRAMA. Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 25 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 Trabajando con PICAXE TABLA 1 - RESUMEN DE COMANDOS USADOS EN PICAXE. Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 26 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 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: Club Saber Electrónica Nº 161 27 Programación Fácil de Microcontroladores PICAXE FIGURA 7 - GOSUB ES SIMILAR A GOTO PERO GUARDA LA DIRECCIÓN DONDE ESTABA EN EL STACK. bucle: for b0 =1 to 5 high 1 pause 1000 low 1 pause 1000 next b0 end Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 27 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 el resto de las líneas y ejecutando toda 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 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 Trabajando con PICAXE FIGURA 8 - FOR... NEXT SE EMPLEA PARA HACER BUCLES DE FORMA DE REPETIR UN ALGORITMO TANTAS VECES COMO SE REQUIERA EN UN PROGRAMA. FIGURA 9 - EJEMPLO DE USO DEL COMANDO FOR... NEXT. Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 28 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. 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 Programación Fácil de Microcontroladores PICAXE FIGURA 10 - LAS INSTRUCCIONES HIGH Y LOW SE EMPLEAN PARA ESTABLECER LAS CONDICIONES DE LAS SALIDAS DIGITALES. Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 29 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. 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 Trabajando con PICAXE FIGURA 11 - LA CONFIGURACIÓN DE LOS PUERTOS, COMO ENTRADAS O SALIDAS, SE PUEDE HACER CON LOS COMANDOS IMPUT Y OUTPUT. Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 30 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- ciones son: = (igual que) >= (mayor o igual que) > (mayor que) < (menor que) <= (menor o igual que) <> (no es igual que) & (función lógica AND) or (función lógica OR) Estas son sólo algunas de las comparaciones a las que pueden responder estos comandos. El principio básico de estos tres comandos son la de establecer una pregunta (IF...) sobre el estado de 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 Programación Fácil de Microcontroladores PICAXE FIGURA 12 - LA INSTRUCCIÓN END SE EMPLEA PARA DETENER EL PROGRAMA Y QUE EL MICRO QUEDE EN LA CONDICIÓN DE BAJO CONSUMO. Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 31 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 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 Club Saber Electrónica Nº 161 32 Trabajando con PICAXE FIGURA 13 - EJEMPLO DE USO DEL COMANDO IF... THEN FIGURA 14 - OTRO EJEMPLO DE USO DEL COMANDO IF... THEN. Cap 2 - Trabajandocon PICAXE 9/6/11 10:19 AM Página 32 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 Programación Fácil de Microcontroladores PICAXE Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 33 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 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 Club Saber Electrónica Nº 161 34 Trabajando con PICAXE FIGURA 15 - RETORNO DE UNA SUBRUTINA POR MEDIO DEL COMANDO RETURN. FIGURA 16 - CONEXIÓN DE UN RECEPTOR INFRARROJO EN UN PICAXE. Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 34 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- cada en forma de tensiones varia- bles. Si colocamos la señal de este tipo de sensores a la entrada del 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 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 Programación Fácil de Microcontroladores PICAXE FIGURA 17 - INFRAIN ES UN COMANDO APLICABLE A LÍNEAS DE ENTRADA QUE POSEEN SENSORES INFRARROJOS Y “LEE” EL ESTADO DE DICHO SENSOR. FIGURA 18 - EJEMPLO DE USO DEL COMANDO READADC. Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 35 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 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 Trabajando con PICAXE FIGURA19 - CON READDC10 SE PUEDEN LEER Y ALMACENAR DATOS ANALÓGICOS CON UNA RESOLUCIÓN DE 10 BITS. Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 36 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 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 m i c r o c o n t r o l a d o r e s PICAXE-18A, 28, 28A y 28X. Los datos que son guarda- dos en la EEPROM solo una vez y esto ocurre cuando el 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 Club Saber Electrónica Nº 161 37 Programación Fácil de Microcontroladores PICAXE FIGURA 20 - ENVÍO DE UN TREN DE PULSOS POR EL PIN 4 DE UN PICAXE-08M CON EL COMANDO PWM. FIGURA 21 - EEPROM PERMITE ESCRIBIR DATOS EN POSICIONES DE MEMO- RIA INTERNA DEL MICRO. FIGURA 22 - PARA ESCRIBIR LA PALABRA “MARTIN” SE REQUIEREN 6 POSI- CIONES DE MEMORIA. Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 37 Club Saber Electrónica Nº 161 38 Trabajando con PICAXE FIGURA 23 - EL CÓDIGO ASCII Y SU EQUIVALENTE EN NÚMEROS BINARIOS. Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 38 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- a 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. Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 39 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 Club Saber Electrónica Nº 161 40 Trabajando con PICAXE FIGURA 25 - CAPACIDAD Y DIRECCIÓN “ESCLAVO” DE ALGUNOS DISPOSITIVOS DE ALMACENAMIENTO DE MEMORIA. Cap 2 - Trabajando con PICAXE 9/6/11 10:19 AM Página 40 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
Compartir