Microcontroladores PICAXE

26
ELPICAXE-08M ELPICAXE-08M Microcontroladores EL PICAXE Carlos E. Canto Quintal M.C.

Transcript of Microcontroladores PICAXE

Page 1: Microcontroladores PICAXE

ELPICAXE-08MELPICAXE-08M

Microcontroladores Microcontroladores EL PICAXE

Carlos E. Canto Quintal M.C.

Page 2: Microcontroladores PICAXE

Microcontroladores Microcontroladores EL PICAXE

Carlos E. Canto Quintal M.C.

• El PICAXE-08M usa el PIC12F683 que tiene el doble de memoria que el PIC12F629 usado con el PICAXE-08 original. Por eso el PICAXE-08M tiene la capacidad de reproducir música y mucho más.

ELPICAXE-08MELPICAXE-08MELPICAXE-08MELPICAXE-08M

Page 3: Microcontroladores PICAXE

El PICAXE-08M soporta todos los comandos estándar y carcterísticas del PICAXE-08 con las El PICAXE-08M soporta todos los comandos estándar y carcterísticas del PICAXE-08 con las siguientes mejoras:siguientes mejoras:

La memoria de programa ha sido doblada en capacidad ( aprox. 80 líneas de código). La memoria de programa ha sido doblada en capacidad ( aprox. 80 líneas de código).

Capacidad de tocar melodías generados por el usuario o cuatro melodías Capacidad de tocar melodías generados por el usuario o cuatro melodías preprogramados (comandos PLAY y TUNE). preprogramados (comandos PLAY y TUNE).

Opción de DAC de 10 bits en tres terminales (comandos READ-ADC10/READADC). Opción de DAC de 10 bits en tres terminales (comandos READ-ADC10/READADC).

Habilidad de interrupción en las entradas (comando SETINT). Habilidad de interrupción en las entradas (comando SETINT).

Entrada y salida para Control remoto infrarojo ( comandos INFRAIN2/INFRAOUT). Entrada y salida para Control remoto infrarojo ( comandos INFRAIN2/INFRAOUT).

Salida PWM para manejo continuo de motor (comando PWMOUT ) Salida PWM para manejo continuo de motor (comando PWMOUT )

Control de servos de tipo de radio control (comando SERVO ). Control de servos de tipo de radio control (comando SERVO ).

Conteo de pulsos de alta frecuencia dentro de un periodo de tiempo habilitado Conteo de pulsos de alta frecuencia dentro de un periodo de tiempo habilitado ( comando COUNT). ( comando COUNT).

Interface para sensor exacto de temperatura (comando READTEMP/READTEMP12). Interface para sensor exacto de temperatura (comando READTEMP/READTEMP12).

Lectura de cualquier dispositivo Dallas de 1-wire (como el iButton) (comando Lectura de cualquier dispositivo Dallas de 1-wire (como el iButton) (comando READOWSN). READOWSN).

Soporta software para una frecuencia de reloj aumentada (8 MHz) (comando SETFREQ).Soporta software para una frecuencia de reloj aumentada (8 MHz) (comando SETFREQ).

ELPICAXE-08MELPICAXE-08MELPICAXE-08MELPICAXE-08M

Microcontroladores Microcontroladores EL PICAXE

Carlos E. Canto Quintal M.C.

Page 4: Microcontroladores PICAXE

Tocar música con un PICAXE-08M

• El principal obstáculo cuando se toca música en un microcontrolador PIC es El principal obstáculo cuando se toca música en un microcontrolador PIC es el limitado espacio de memoria . Todos los chips PICAXE tienen un el limitado espacio de memoria . Todos los chips PICAXE tienen un comando SOUND para hacer ruidos, sin embargo, el número de notas y comando SOUND para hacer ruidos, sin embargo, el número de notas y velocidad de reproducción o “tempo”, es muy limitado ya que el dato del velocidad de reproducción o “tempo”, es muy limitado ya que el dato del comando SOUND consume toda la memoria de programa disponible. .comando SOUND consume toda la memoria de programa disponible. .

• Para resolver esto, el PICAXE-08M tiene el comando nuevo TUNE para Para resolver esto, el PICAXE-08M tiene el comando nuevo TUNE para reproducir música . El comando TUNE incorpora un algoritmo de reproducir música . El comando TUNE incorpora un algoritmo de compresión de datos de la nota para ahorrar espacio de memoria, también compresión de datos de la nota para ahorrar espacio de memoria, también viene pre programado con 4 melodías : Happy Birthday, Jingle Bells, Noche viene pre programado con 4 melodías : Happy Birthday, Jingle Bells, Noche de Paz y Rodolfo el Reno de la nariz roja. Además puede ser programado de Paz y Rodolfo el Reno de la nariz roja. Además puede ser programado con los tonos de timbre de los teléfonos celulares que se prefiera.con los tonos de timbre de los teléfonos celulares que se prefiera.

• Los tonos de los celulares se pueden bajar de internet en formato “Ring Los tonos de los celulares se pueden bajar de internet en formato “Ring Tone Text Transfer” (RTTTF), como los que se usan en la mayoría de los Tone Text Transfer” (RTTTF), como los que se usan en la mayoría de los teléfonos Nokia . teléfonos Nokia .

• Un microcontrolador simple no puede reproducir melodías complicadas Un microcontrolador simple no puede reproducir melodías complicadas “polifónicas”, pero se oyen bien las melodías “monofónicas” (un tono a la “polifónicas”, pero se oyen bien las melodías “monofónicas” (un tono a la vez). vez).

Microcontroladores Microcontroladores EL PICAXE

Carlos E. Canto Quintal M.C.

Page 5: Microcontroladores PICAXE

Esta representación de teclado de un piano muestra las frecuencias claves en octavas 5, 6 y 7. Este es el rango de frecuencias cubiertos por el PICAXE-08M

Tocar música con un PICAXE-08M

Microcontroladores Microcontroladores EL PICAXE

Carlos E. Canto Quintal M.C.

Page 6: Microcontroladores PICAXE

El byte de codificación de cada nota usado por el comando TUNE. El byte de codificación de cada nota usado por el comando TUNE.

Tocar música con un PICAXE-08M

Microcontroladores Microcontroladores EL PICAXE

Carlos E. Canto Quintal M.C.

Page 7: Microcontroladores PICAXE
Page 9: Microcontroladores PICAXE

loop:infrain 'wait for new signalif infra = 1 then swon1 'switch on 1if infra = 2 then swon2 'switch on 2if infra = 3 then swon3 'switch on 3if infra = 4 then swoff1 'switch off 1if infra = 5 then swoff2 'switch off 2if infra = 6 then swoff3 'switch off 3

goto loopswon1: high 1

goto loopswon2: high 2

goto loopswon3: high 3

goto loopswoff1: low 1

goto loopswoff2: low 2

goto loopswoff3: low 3

goto loop

with PICAXE-08M input3 must be used instead of input0)

Page 11: Microcontroladores PICAXE
Page 12: Microcontroladores PICAXE
Page 13: Microcontroladores PICAXE
Page 14: Microcontroladores PICAXE
Page 15: Microcontroladores PICAXE
Page 16: Microcontroladores PICAXE
Page 17: Microcontroladores PICAXE
Page 18: Microcontroladores PICAXE

Dispositivos I2C con el PICAXEDispositivos I2C con el PICAXE

Microcontroladores

M.C. Carlos E. Canto Quintal

El bus I2C

WRITEI2C

Sintáxis: WRITEI2C location,(variable,...)- Location es una variable /constante que especifica la dirección de un byte o palabra- Variable(s) contiene el byte(s) de dato que se va a escribirFunción:Escribe a la localidad I2C el contenido de la variable(s).

READI2C

Sintáxis: READI2C location,(variable,...)- Location es una variable /constante que especifica la dirección de un byte o palabra- Variable(s) recibe el byte(s) leido(s).Funcción:Lee la localidad I2C contenida en la(s) variable(s).

I2CSLAVE

Sintáxis: I2CSLAVE slave, speed, address

- Slave es la dirección i2c del esclavo- Speed es la palabra i2cfast (400kHz) o i2cslow (100kHz) a 4Mhz-Address es la palabra i2cbyte o i2cword

Función:El comando i2cslavei2cslave es usado para configurar las terminales PICAXE para usar el I2C y para definir el tipo de dispositivo I2C a ser direccionado

Instrucciones del PICAXE para usar el bus I2C

Page 19: Microcontroladores PICAXE

Microcontroladores

M.C. Carlos E. Canto Quintal

El bus I2C

Page 20: Microcontroladores PICAXE

Comandos del PICAXE (válidos para todos los tamaños):

SALIDA - high, low, toggle, pulsout, let pins ENTRADA- if…(and/or)...then, readadc, pulsin, button SONIDO - sound SERIAL - serin, seroutFLUJO DEL PROGRAMA - goto, gosub, return, branchLOOPS - for…nextMATEMÁTICAS - let… (+, -, *, **, /, //, max, min, &, |, ^, &/, |/, ^/ )VARIABLES - if...then, random, lookdown, lookupMEMORIA DE DATOS - eeprom, write, readRETARDOS - pause, wait, nap, sleep, endMISCELÁNEO - symbol, debug

Page 21: Microcontroladores PICAXE

Commandos Específicos del PICAXE-08/08M :

CONFIG. E/S - input, output, reverse, let dirs =PWM - pwm, pwmout (08M)MÚSICA - play, tune (08M)RAM - peek, poke (08M)SERVO CONTROL - servo (08M)INFRAROJO - infrain2, infraout (08M)INTERRUPCIÓN - setint (08M)ADC DE10 BITS - readadc10 (08M)TEMPERATURA - readtemp, readtemp12 (08M)1-WIRE SERIAL NO - readowsn (08M)ENTRADA DE CONTEO - count (08M)SALIDA SERIAL - sertxd (08M)VELOCIDAD DEL RESONADOR - setfreq (08M)

Page 22: Microcontroladores PICAXE

Comandos Específicos del PICAXE-18/18A/18X :

RAM - peek, pokeSERVO CONTROL - servo (18A/X)INFRARED - infrain (18A/X)INTERRUPT - setint (18A/X)10 BIT ADC - readadc10 (18X)TEMPERATURE - readtemp, readtemp12 (18A/X)KEYBOARD - keyin, keyled (18A/X)1-WIRE SERIAL NO - readowsn (18A/X)1-WIRE CLOCK - readowclk, resetowclk (18A)I2C - readi2c, writei2c, i2cslave (18X)COUNT INPUT - count (18X)PWM OUTPUT - pwmout (18X)SERIAL OUTPUT - sertxd (18X)RESONATOR SPEED - setfreq (18X)

Page 23: Microcontroladores PICAXE

Commandos Específicos del

PICAXE-28/28A/28X(40X)

• MEMORIA DE DATOS - writemem, readmem (28/28A)

Page 24: Microcontroladores PICAXE

Processor Hardware

Variante PICmicro Flash RAM [1] EEPROM PICAXE-08 12F629 1K None [2] 128 [3]PICAXE-08M 12F683 2K 48 : $50-$7F 256 [3]PICAXE-18 16F627 1K 96 : $50-$7F / $C0-$EF [4] 128 [3]PICAXE-18A 16F819 2K 48 : $50-$7F 256 [3]PICAXE-18X 16F88 4K 96 : $50-$7F / $C0-$EF 256 [5]PICAXE-28 16F872 2K 48 : $50-$7F 64+256 [5][6]PICAXE-28A 16F872 2K 48 : $50-$7F 64+256 [5][6]PICAXE-28X 16F873A 4K 112 : $50-$7F / $C0-$FF 128 [5]PICAXE-40X 16F874A 4K 112 : $50-$7F / $C0-$FF 128 [5]

[1] SFR available to user using PEEK and POKE commands[2] PEEK and POKE commands not supported[3] User program stored in EEPROM, shared with EEPROM data[4] It is not recommended to use $C0..$EF in order to retain upwards compatability[5] EEPROM data separate to user program[6] 64 bytes using READ/WRITE, plus 256 bytes using READMEM/WRITEMEM

Page 25: Microcontroladores PICAXE

Basic Interfacing

Variant Digital In Digital Out Analogue In PWM SERVO

PICAXE-08 1-4 [1] 1-4 [1] 0-1 Low Res [2] 0-4 Burst [3] No

PICAXE-08M 1-4 [1] 1-4 [1][4] 0-3 [2] 0-1 Continuous 0-4

PICAXE-18 2-5 [2] 8 0-3 Low Res [2] No No

PICAXE-18 2-5 [2] 8 0-3 [2] No 0-8

PICAXE-18X 2-5 [2] 8 [4] 0-3 [2] 0-1 Continuous 0-8

PICAXE-288 8 4 No 0-8

PICAXE-28 8 8 4 No 0-8

PICAXE-28X 0-12 [1][2] 8-16 [1][4] 0-4 [2] 0-2 Continuous 0-8

PICAXE-40X 8-16 [1] 8-16 [1][4] 3-7 [2] 0-2 Continuous 0-8

Page 26: Microcontroladores PICAXE

Advanced Interfacing

Variant I2C [1] Temp [2] Serial Num [3] IR [4] Keyboard [5] PICAXE-08 - - - - -PICAXE-08M - Yes Yes Yes [6] -PICAXE-18 - - - - -PICAXE-18A - Yes Yes Yes YesPICAXE-18X Yes Yes Yes Yes YesPICAXE-28 - - - Yes -PICAXE-28A - Yes - Yes -PICAXE-28X Yes Yes Yes Yes YesPICAXE-40X Yes Yes Yes Yes Yes

[1] General Purpose I2C / DS1307 Clock - I2CSLAVE, READI2C, WRITEI2C[2] DS18B20 One-Wire Temperature Sensor - READTEMP, READTEMP12[3] One-Wire Serial Number - READOWSN[4] IR Input Sensor - INFRAIN, IF INFRA[5] PC keyboard Interface - KEYIN, IF KEYVALUE, KEYLED[6] IR Input and Output Interfaces - INFRAIN2, INFRAOUT