Está en la página 1de 59

PICAXE: El Microcontrolador ms Fcil de Utilizar

Lab. Fundamentos de Instrumentacin Biomdica Feb-May de 2008

Qu es un Microcontrolador?
Es un dispositivo electrnico de alta escala de integracin, que nos permite controlar puertos de entrada y salida. Es utilizado para el diseo de sistemas digitales avanzados. La analoga mas comn es que un microcontrolador es como una PC.

Microcontrolador vs. PC
CPU (Central procesor Unit) Memoria de programacin Memoria de Datos (localidades de memoria) Puertos de entrada Puertos de salida Microprocesador (pentium) Memoria ROM (BIOS) Memoria RAM Teclado, mouse, puerto infrarrojo, USB, etc. Monitor, bocinas, unidades de disco, USB, etc.

Von Newman vs. Harvard

Arquitectura Von Newman

Arquitectura Harvard

Qu es un PIC?
PIC (Peripheral Interface Controller) Los PICs son microcontroladores con arquitectura Harvard. Los PICs utilizan un conjunto de instrucciones de tipo RISC (Reduced Instruction Set Computer)

Estructura interna de un PIC

Generalidades de un PIC
Se programan en lenguaje ensamblador (lenguaje de mquina). Se utiliza un software editor donde se escriben los comandos a programar en el PIC. (MPLAB) Un software que permita traducir a lenguaje ensamblador los comandos escritos en el editor. (MPASM) Un software que permita programar o enviar el codigo en ensamblador al PIC. (NOPP) Tambin es necesario contar con un circuito programador de PICs

PICAXE
EL PICAXE es un PIC al cual se le grab un pequeo software (firmware) para poder programarlo en el mismo circuito donde ser utilizado por medio de un software gratuito desarrollado en ambiente muy amigable donde los programas pueden ser escritos en lenguaje basic o como diagrama de flujo; logrando con esto que el PICAXE sea el PIC ms fcil de utilizar.

Sitio oficial de PICAXE


En el sitio web podemos encontrar muchos productos y mucha informacin, tutoriales, proyectos, etc. http://www.rev-ed.co.uk/picaxe/

Primer paso: instalar el software


Desde el sitio web es posible descargar el software que se utiliza para programar el PICAXE, en el CD hemos incluido el archivo ejecutable para instalar el software Una vez que corramos el archivo de instalacin nos pedir una contrasea, la cual es: picaxebegin Para instalar el software haga click aqui

Una vez instalado


La pantalla de inicio del software es la que se muestra a continuacin:

Configurando el software
Para configurar algunas cosillas es necesario accesar al men view>>options

Modelos de PICAXE
Existen varios modelos los cuales varan en nmero de entradas y salidas y en el tipo de entradas (analgicas o digitales). Existen: picaxe 08, picaxe 08M, picaxe 14M, picaxe 18, 18A, 18X, 28, 28A, 28X, 28X1, 28X2 y 40X, 40X1 y 40X2. El nmero nos refiere el nmero de patitas que tiene el chip y la letra es para diferenciar caractersticas internas del PICAXE, dichas caractersticas se pueden ver en los manuales.

PICAXE 08 y 08M

PICAXE 14M

PICAXE 18, 18A y 18X

PICAXE 28A y 28X

PICAXE 40X

Cable para programacin

Tabla comparativa

Alimentacin del PICAXE


El rango en el que puede ser alimentado un PICAXE es de 3 a 6 volts.
2 pilas AA = a 3 volts. 3 pilas AA = 4.5 volts

4 pilas recargables AA = 4.8 volts


Pila de 9 votls + regulador = 5 volts (TTL)

Entradas y salidas

El kit de trabajo
Un PICAXE 18A Una tarjeta entrenadora del PICAXE 18A Una protoboard 8 LEDs 8 resistencias 330 Una fotoresistencia de 10 M Una resistencia de 100 k Una bocina piezoelctrica (piezo sounder) Un decodificador 74LS47 Display de 7 segmentos 8 resistencias de 330 Cable programador PICAXE 17 jumpers

La tarjeta entrenadora

La tarjeta entrenadora

La tarjeta entrenadora

El primer programita

Su primer diseo propio


Disear un programa que encienda un LED durante 4.5 segundos mientras que otro permanece apagado; al cabo de este tiempo el primer LED debe ser apagado y el segundo encenderse y durar encendido otros 4.5 segundos, de tal forma que siempre haya un LED encendido. Esta rutina es continua, el PIC debe repetirla todo el tiempo.
Ver solucin

Ejercicio 2
Teniendo una hilera de 8 LEDs, hacer un programa que vaya encendiendo consecutivamente cada uno de los LEDs durante 0.5 segundos, de izquierda a derecha.

Ver solucin

El comando Symbol, comentario y justificacin


symbol LEDR = 4 symbol LEDA = 2 main: high LEDR low LEDA pause 1000 low LEDR high LEDA wait 1 goto main
renombra la salida 4 como LEDR

renombra la salida 2 como LEDA


crea una etiqueta llamada main enciende el LED rojo apaga el LED amarillo espera 1 segundo (1000 ms)
apaga el LED rojo enciende el LED amarillo

espera 1 segundo
Regresa a la etiqueta main

NOTA: el comando wait puede ser seguido por un nmero entre 1 y 65 mientras que el comando pause, por un nmero entre 1 y 65535

Ciclos ForNext
symbol contador = b1
define la variable b1 como contador

symbol LED = 4 define main: for contador = 1 to 15 high LED pause 500 low LED pause 500 next counter end

la salida 4 como LED

comienza el ciclo for

enciende el LED
espera 0.5 segundos apaga el LED espera 0.5 segundos acaba el ciclo for fin del programa

Haciendo Ruido
Buzzer piezo sounder

Bocina

Conexin al PICAXE

Conexin al PICAXE

Haciendo Ruido
main:

sound 2,(50,100) sound 2,(100,100) sound 2,(120,100) pause 1000 goto main

frecuencia 50, duracin 100


frecuencia 100, duracin 100 frecuencia 120, duracin 100 espera un segundo

regresa a la etiqueta main

NOTA: el nmero 2 despus del comando sound es para decir la salida que queremos que haga ese sonido y es necesaria la coma (,) despus de la salida
Para los PICAXE 08 Y 08M es necesario que la salida sea la 2

Muchos sonidos, un solo comando


Si se quiere hacer diferentes sonidos se puede unir todo en un comando:
sound 2,(57,100,65,100,78,100,88,100,98,100,107,100,113,100)

(Aqu estn intercalados frecuencias y duraciones)

Ejercicios 3 y 4
Hacer un programa donde se reproduzcan 100 sonidos diferentes de tal forma que las frecuencias de cada sonido vayan en Ver solucin aumento. Hacer un programa donde se reproduzcan 30 sonidos diferentes de tal forma que las frecuencias de cada sonido vayan disminuyendo de 5 en 5.
Ver solucin

Display de 7 segmentos

NOTA: El decodificados que nosotros proporcionamos en el Kit es el 74LS47 pero su diagrama de conexin es igual al que se muestra en la figura

Del 0 al 9 en 7 segmentos
Symbol cont = b0 renombrando b0 como cont main: for cont = 0 to 9 inicio ciclo for let pins=cont igualando las salidas

al [valor de cont

pause 1000 next cont goto main

esperando 1 seg (1000 ms)


siguiente valor de cont ir a al etiqueta main

Modulacin por ancho de pulso

Ciclo de trabajo de 50% Valor promedio igual a la mitad del valor mximo

Ciclo de trabajo mayor al 50% Valor promedio ms cercano al valor mximo

Seal digital real


Aparente seal continua con valor igual al promedio de la seal real

Symbol ton1 = b6 symbol toff1 = b7 symbol ton2 = b8 symbol toff2 = b9 let ton1 = 2 2:10 (1:5) let toff1 = 10 let ton2 = 20 20:10 (2:1) let toff2 = 10 main: for b2 = 1 to 200 high 0 pause ton1 low 0 pause toff1 next b2 pause 2000 for b2 = 1 to 200 high 0 pause ton2 low 0 pause toff2 next b2 pause 2000 goto main

renombrando variables

inicializazndo variables con una razon de inicializando variables con una razon de

iniciando ciclo for encendiendo salida 0 esperando un tiempo igual a ton1 apagando salida 0 esperando un tiempo igual a toff1 siguiente valor de b2 esperando 2 segundos iniciando otro ciclo for encendiedno salida 0 esperando un tiempo igual a ton2 apagando salida 0 esperando un tiempo igual a toff2 siguiente valor de b2 esperando 2 segundos regresar a la etiqueta main

Uso de entradas digitales


main: if pin3 = 1 then flash goto main flash: high 4 pause 2000 low 4 goto main
etiqueta llamada main

si entrada 3 es uno salta [a la etiqueta flash


sino regresa a main etiqueta llamada flash

enciende la salida 4
espera 2 segundos apaga la salida 4

regresa a main

NOTA: La etiquetas no pueden empezar con nmeros ni tampoco se pueden usar palabras como for o sound que son comandos o sentencias internas del sistema PICAXE, es necesario que al final de la etiqueta se pongan dos puntos(:)

La funcin OR
Interruptor A

Interruptor B

La funcin OR
Interruptor A

Interruptor B

La funcin OR
Interruptor A

Interruptor B

La funcin OR
Interruptor A

Interruptor B

Tabla de verdad
A off on off on B off off on on FOCO Off On On on

El diagrama de flujo

Ejercicio 5
Programar el PICAXE de tal forma que cuando se presiones la entrada 1 se vea un uno en el display de 7 segmentos, si se presiona la entrada 2 se vea un dos en el display y si se presionnan ambas entradas se despliegue una A. Todos los despliegues deben durar 4 segundos y regresar a cndiciones iniciales para esperar a que el usuario presiones una entrada.
Ver solucin

Usando entradas analgicas

Usando entradas analgicas


main:
etiqueta llamada main

readadc 1,b0 guardando lectura del ADC en b0 if b0 > 120 then top si b0 > 120 ir a top if b0 < 70 then bot si b0 < 70 ir a bot low 0 sino apagar salido 0 low 4 sino apagar slaida 4 goto main ir a la etiqueta main top: high 0 low 4 goto main bot: high 4 low 0 goto main
etiqueta top encender salida 0 apagara salida 4

ir a la etiqueta main
etiqueta bot encender salida 4 apagara salida 0 ir a la etiqueta main

Ejercicio 6
Programar el PICAXE para que sirva como medidor de intensidad luminosa, de tal forma que est calibrado para que en la oscuridad se despliegue en el display de 7 segmentos un cero y a la mxima intensidad se despliegue un 9 teniendo entonces 10 niveles repartidos equitativamente en todo el espectro de intensidades.
Ver solucin

Comando debug
main:
etiqueta main

readadc 1,b0
debug b0

guarda lectura [del ADC en b0


trransmite el [valor a la PC un pequeo [retraso regresar a la [etiqueta main

pause 500
goto main

Sub-rutinas
Una sub-rutina es un mini programa dentro del mismo programa principal. Muchas veces las sub-rutinas son utilizadas para organizar los programas en pequeas secciones para que sea ms fcil entender el objetivo del programa. Los PICAXE modelo X aceptan hasta 255 sub-rutinas, los dems slo aceptan 15.

Ejemplo sub-rutina
symbol LED = 4 renombrandoLED a la salida 4 symbol buzzer = 2 renombrando buzzer a la salida 2 symbol counter = b1 deefine conunter a la variable b1 main: etiqueta main gosub flash llama a hacer la sub-rutina flash gosub noise llama a hacer la sub-rutina noise goto main regrresar a main end fin del programa flash: hace un sub-rutina llamada flash for counter = 1 to 25 comeinza un ciclo for high LED enciende el LED pause 50 espera 0.05 segundos low LED apaga el LED pause 50 espera 0.05 segundos next counter siguiente valor de counter return regresa al programa principal noise: high buzzer enciended el buzzer pause 2000 espera dos segundos low buzzer apaga el buzzer return regrgesa al programa principal

Ejercicio 7
Programar el PICAXE para que se despliegue en un display de 7 segmentos los nmeros del 1 al 9, de tal forma que cada que cambie un dgito se reproduzca la escala musical en un piezo sounder y parpadee un LED cuatro veces con una duracin de 0.05 segundos.

Ver solucin

Interrupciones
Una interrupcin es un caso particular de una sub-rutina, slo que esta sub-rutina es llamada a ejecutarse cuado un entrada (o combinacin de entradas) ha sido activada. Una interrupcin es el camino mas corto para que el PICAXE reacciones de cierta manera a una estimulacin externa (entrada). Las interrupciones pueden ocurrir en cualquier instante, debido a que el puerto de entrada se monitores entre comando y comando ejecutado.

Enmascarando las entradas


Para hacer una interrupcin cuando la entrada 1 este en alto setint %00000010,%00000010 Para hacer una interrupcin cuando la entrada 1 este en bajo setin % 00000000, %00000010 Para hacer una interrupcion cuando la entrada 0 ente en alto, la 1 en alto y la 2 en bajo setint % 00000011, % 00000111

Ejemplo de Interrupcin
setint %10000000,%10000000
activa la interrupcion cuandola entrada 7 este [en alto

loop: low 1 apaga salida 1 pause 2000 espera dos segundos goto loop regrgesa a loop interrupt: high 1 enciende la salida 1 if pin7 = 1 then interrupt se pause 2000 espera 2 segundos setint %10000000,%10000000 return

queda [haciendo esta rutina hasta que la interrupcion se acabe reactiva la [interrupcion

regresa al programa principal

Algunos comandos interesantes


Por cuestin de tiempo es imposible abarcar todos los comandos del Sistema PICAXE en unas cuantas horas por lo que la recomendacin es que revisen el segundo manual de PICAXE, ya que ah viene un desglose de todos los comandos del sistema y cuales se pueden utilizar en cada modelo PICAXE, asimismo algunos tienen ejemplos de aplicaciones

Tan Tan

GRACIAS!

También podría gustarte