21
DEPARTAMENTO DE TECNOLOGÍA APUNTES AUTOMATIZACIÓN CON PICAXE I.E.S Valle de Leiva Profesor: David González Dpto. Tecnología

Apuntes y prácticas Picaxe 18M2+

Embed Size (px)

DESCRIPTION

Apunes para programar las placas Picaxe junto a enunciados de prácticas para realizar por los alumnos.

Citation preview

Page 1: Apuntes y prácticas Picaxe 18M2+

DEPARTAMENTO DE

TECNOLOGÍA

APUNTES AUTOMATIZACIÓN CON PICAXE

I.E.S Valle de Leiva Profesor: David González Dpto. Tecnología

Page 2: Apuntes y prácticas Picaxe 18M2+

DEPARTAMENTO DE TECNOLOGÍA - I.E.S VALLE DE LEIVA

Constitución Placa Picaxe David González V2.0

EL USO DEL PROTOBOARD

El ensamble del prototipo de un circuito se hace sobre un elemento denominado protoboard, tablero de prototipo.

La protoboard permite montar y modificar fácil y rápidamente circuitos electrónicos sin necesidad de soldaduras, y muchas veces, sin herramientas.

Una vez que el circuito bajo experimentación está funcionando correctamente sobre el protoboard puede procederse a su construcción en forma definitiva sobre un circuito impreso utilizando soldaduras para fijar e interconectar los componentes.

ESQUEMA

BUSES

CANAL CENTRAL

FILAS

Los contactos están separados entre sí por una distancia de 0,1”, distancia que corresponde a la separación entre pines o terminales de los circuitos integrados, principales componentes de los circuitos electrónicos actuales. El contacto eléctrico se realiza a través de laminillas en las que se insertan los

terminales de los componentes. Estás no están visibles, ya que se encuentran por debajo de la cubierta plástica aislante.

Esta disposición también permite instalar fácilmente los demás componentes electrónicos tales como los transistores, resistencias y capacitores, entre otros. Para hacer las uniones entre puntos distantes de los circuitos, se utiliza alambre calibre 22 (tipo telefónico).

Como se observa en las figuras, las filas de orificios tienen cinco perforaciones que se conectan entre sí en forma vertical. Sin embargo entre cada fila no existe contacto.

Además, existe un canal central separador cuya distancia es igual a la que existe entre las filas de terminales de los circuitos integrados. Esto es con el fin de poder ubicar sobre dicha separación, todos los circuitos integrados que posea el circuito. Las líneas verticales a cada lado del canal central no están unidas, lo que establece dos áreas de conexiones para el circuito.

Los contactos de las filas externas se unen entre sí pero en forma horizontal y reciben el nombre de buses. Las mayorías de las protoboard traen dos buses a cada lado y se utilizan generalmente para manejar en ellos las alimentaciones, tanto positiva s como negativa.

Page 3: Apuntes y prácticas Picaxe 18M2+

DEPARTAMENTO DE TECNOLOGÍA - I.E.S VALLE DE LEIVA

Constitución Placa Picaxe David González V2.0

ENTRADAS Y SALIDAS DE LA PLACA PICAXE

Entradas

La placa dispone de 3 entradas analógicas que pueden adoptar 255 valores según el voltaje recibido y son las C.0, C.1 y C.2. Estas entradas se conectan poniendo un terminal a positivo (rojo), otro a negativo (negro) y el último terminal a la entrada correspondiente.

También dispone de 3 entradas digitales que son las pin5, pin6 y pin7. Las entradas pin3 y pin4 están reservadas para la transferencia de datos con el puerto serie. Estas entradas se conectan poniendo un terminal a positivo (rojo) y el otro a la entrada correspondiente.

Salidas

La placa dispone de 8 salidas digitales que son desde B.0 a B.7. Se conecta habitualmente una conexión a positivo (V2+) y la otra a la conexión que queramos emplear. .

Además, las salidas B.4 a B.7 se pueden emplear también para conectar motores e invertir el sentido de giro. Para ello se conectan los terminales del motor a las salidas B.4 y B.5 o a B.6 y B.7.

Las salidas se denominan del siguiente modo: B.0, B.1, B.2, …

Añadir que la mayoría de entradas y salidas son intercambiables, es decir, pueden actuar como entrada o salida, mediante los comandos input y output realizaremos este cambio.

Por último hay 2 conexiones para alimentar la placa con un voltaje de 4,5v, es decir 3 pilas de 1,5v. No sobrepasar los 5,5v ya que puede ocasionar la rotura de la placa.

Entradas

Analógicas

C.0, C.1 y C.2

Salidas

Entradas

Digitales

Pin5, pin6 y pin7

Alimentación: Rojo (+), Negro (-)

Conexión PC

Page 4: Apuntes y prácticas Picaxe 18M2+

DEPARTAMENTO DE TECNOLOGÍA - I.E.S VALLE DE LEIVA

Comandos básicos PICAXE David González V2.0

COMANDOS BÁSICOS PARA PICAXE

1.COMENTARIOS

Si queremos escribir comentarios para aclarar partes del programa deberemos escribirlo del siguiente modo:

2. CONTROL SIMULTÁNEO DE SALIDAS

La instrucción let pins permite controlar todas las salidas en un solo paso. La forma de hacerlo es:

a. Utilizar el comando output para indicar que la conexión queremos que sea una salida, ya pueden ser reversibles y utilizarse como entradas o salidas en un momento dado.

b. Emplearemos let pins =%xxxxxxxx, siendo x las salidas desde B.7 a B.0. c. Las conexiones se hacena V+ y la otra conexión a la salida que corresponda. d. Tener en cuenta que las salidas desde B.4 a B.7 funcionan al contrario, es decir,

cuando indicamos high están desconectadas y viceversa.

3. VISUALIZAR EN PANTALLA

En muchas ocasiones, cuando estamos programando, nos interesa ver el valor de una variable en pantalla para saber cómo se está desarrollando nuestra programación. Para ello utilizamos el comando debug seguido de la variable correspondiente que suele ser desde b1 a b12. En este ejemplo, leemos en la entrada C.1 el valor y le asignamos una variable b0 que posteriormente leemos en pantalla con el comando debug.

Page 5: Apuntes y prácticas Picaxe 18M2+

DEPARTAMENTO DE TECNOLOGÍA - I.E.S VALLE DE LEIVA

Comandos básicos PICAXE David González V2.0

4.ESPERAS

Es una instrucción que se emplea para parar durante un tiempo en milisegundos, para ello se emplea el comando pause. En este ejemplo activamos la salida B.4 durante 2 segundos y tras esto la desconectamos.

5.ETIQUETAS

Una etiqueta podríamos decir que es un cambio de variable que nos permita entender mejor lo que estamos programando. Esto se hace mediante el comando symbol. Dicho de otro modo, podemos tener una entrada cualquiera del tipo Pin5 que vaya asociada a la conexión o desconexión de un pulsador, por lo tanto en vez de emplear esta entrada, utilizamos un nombre que le asignemos nosotros. También puede ser una variable del tipo b0 o una salida del tipo B.3. En este ejemplo hemos cambiado esa entrada pin5, la variable b1 y la salida B.3 por los nombres que ahí aparecen.

5. PROCEDIMIENTO O SUBRUTINA

Un procedimiento o subrutina consiste en crear un subprograma que puede sernos de utilidad a lo largo del programa ya que se utiliza en muchas ocasiones o en varias partes del mismo. Por ello lo podemos “llamar” cuando sea necesario.

La estructura suele consistir en realizar un proceso cualquiera y “saltar” a otra parte del programa

6. IR A OTRA PARTE DEL PROGRAMA

Cuando necesitamos ir hacia otra parte del código del programa se utiliza la instrucción goto.

También se puede emplear esta instrucción cuando se cumpla una condición de entrada. En este caso si se cumple una condición va a una parte del programa y si no es así va a otra.

Page 6: Apuntes y prácticas Picaxe 18M2+

DEPARTAMENTO DE TECNOLOGÍA - I.E.S VALLE DE LEIVA

Comandos básicos PICAXE David González V2.0

7. VARIABLES.

Las variables son espacios de memoria del programa que permiten almacenarla en el programa. En estos espacios de memoria se puede meter un número que va desde el 0 al 255. Sus nombres por defecto van desde el b0 al b13. Tenemos, por tanto 14 variables independientes. En este ejemplo guardamos el valor de la entrada analógica C.0 en una variable llamada b0.

8. REPETICIÓN DE UN PROCESO UN Nº DE VECES

Un bucle for permite repetir una instrucción un número de veces. La sintaxis es : for b1=1 to xx (nº veces)…--código--..next b1., siendo b1 la variable que incrementa. En este caso se repite 10 veces la conexión de un zumbador conectado a la salida b.4 con una frecuencia de 100 Hz y una duración de 60 ms. El contador es una variable (puede ser b0, b1,....b13), el valor inicial será el valor que tome la variable la primera vez que se hace el bucle y el valor final será el valor que tome esa variable la última vez que se ejecute el bucle. Cuando se llega a next, el contador se incrementa en 1 y se vuelve a comenzar en la instrucción 1 del bucle. Por tanto, las instrucciones que hay dentro del bucle se repetirán valor final menos valor inicial veces.

9. BIFURCACIÓN CONDICIONAL

Una de las estructuras más importantes es la bifurcación condicional. Permite que el programa haga unas cosas si se cumplen unas condiciones y otras en caso contrario.

Para ello se emplea el comando if . En estos ejemplos se muestra el empleo de este comando:

Page 7: Apuntes y prácticas Picaxe 18M2+

DEPARTAMENTO DE TECNOLOGÍA - I.E.S VALLE DE LEIVA

Comandos básicos PICAXE David González V2.0

10. SELECCIONAR CASOS DIFERENTES Esta instrucción se llama select case y sirve para realizar diferentes cosas dependiendo del valor que tiene una variable. Es un tipo de bifurcación muy potente que nos permite abrir la línea del programa en muchos caminos. Es parecido a un if, pero más potente.

La sintaxis es del tipo Select (variable) y posteriormente se proponen los casos de la forma case a, case b,…..end select.

11. VARIAR LA VELOCIDAD DE UN MOTOR Para variar la velocidad de un motor, emplearemos el comando pwmout. Para el programa nos ofrece los valores que debemos poner en el código según el porcentaje de la velocidad que queramos. Los pasos son los siguientes:

Conectamos el motor a V+ y la salida. Nos metemos en: Picaxe → wizard → Pwmout

Para parar el motor emplearemos pwmout (salida), off.

12. CONECTARNOS CON UNA PANTALLA LCD Para comunicarnos con una pantalla LCD, emplearemos el comando serout.

Los comandos más comunes son:

Page 8: Apuntes y prácticas Picaxe 18M2+

DEPARTAMENTO DE TECNOLOGÍA - I.E.S VALLE DE LEIVA

Comandos básicos PICAXE David González V2.0

12. INCREMENTAR EL VALOR DE UNA VARIABLE Para incrementar el valor de una variable en un valor cualquiera, para realizar, por ejemplo, un contador, se emplea el comando let. Así, en este ejemplo, si se cumple una condición, la variable b1 que inicialmente tiene un valor de 0, se incrementa de valor en 1 unidad cada vez que pasa por el procedimiento llamado “contador”.

13. CONTAR EL NÚMERO DE PULSOS

Existe un comando que permite contar el número de cambios de estado de “high” a “low”, o lo que es lo mismo, el número de pulsos en un tiempo determinado, asignando ese valor a una variable de escritura del tipo “w”. Esto es posible con el comando count. En este ejemplo leemos el número de pulsos que nos devuelve la entrada C.2 durante 3 segundos y lo almacena en la variable w1 que muestra en pantalla.

14. LEER LA TEMPERATURA

Existe un comando que nos puede mostrar la temperatura medida mediante un sensor específico para este tipo de casos. Para ello hay que emplear el comando readtemp. El proceso es similar al empleado cuando queremos leer cualquier otra magnitud que se mida con un sensor analógico como el nivel de luz, la distancia,…

14. LEER LA SEÑAL DE UN MANDO A DISTANCIA

Existe un comando que se emplea para recibir la señal enviada por un mando a distancia compatible con picaxe. Para ello hay que emplear el comando irin . El proceso es similar al empleado cuando queremos leer cualquier otra magnitud que se mida con un sensor analógico como el nivel de luz, la distancia, temperatura… En este comando hay que especificar el tiempo de refresco de la señal, la entrada donde se ha conectado el sensor y la variable donde se almacena el valor leído.

Page 9: Apuntes y prácticas Picaxe 18M2+

DEPARTAMENTO DE TECNOLOGÍA - I.E.S VALLE DE LEIVA

Comandos básicos PICAXE David González V2.0

15. ACCIONAR UN SERVO

En ocasiones se emplean servos por ser muy útiles para realizar giros muy precisos. En este caso se emplea el comando servo. El funcionamiento del comando es muy simple ya que tiene 2 posiciones extremas. Una llamada “75” y la otra “225”. Entre ellas podemos seleccionar el ángulo que nos interesa. Se puede emplear cualquier salida, aunque las mejores son B.4-B.7 ya que permiten un consumo mayor de corriente ya que estos elementos la requieren.

16. GENERAR UN SONIDO

En ocasiones se emplean zumbadores por ser muy útiles para producir sonidos. En este caso se emplea el comando sound. El funcionamiento del comando consiste en definir la salida empleada, la frecuencia del sonido y su duración. sound B.x (frecuencia, tiempo ms). En este ejemplo va a sonar 10 veces un sonido de frecuencia 100 Hz durante 60ms.

17. REALIZAR UN PROCESO HASTA QUE CAMBIE ALGO

Este proceso permite repetir algo (un subproceso) mientras se cumplan unas condiciones. Si dejan de cumplirse hará el subproceso pero seguirá leyendo el código que siga tras esto. Para ello el comando es: Do –código- loop while (condición).

En este ejemplo, se va conectar la salida B.6 mientras la entrada pin5 esté activada. En el momento que la entrada pin5 no esté activada, seguirá leyendo el código que haya debajo de este como ocurre normalmente.

Page 10: Apuntes y prácticas Picaxe 18M2+

DEPARTAMENTO DE TECNOLOGÍA - I.E.S VALLE DE LEIVA

Sensores y Actuadores PICAXE David González V2.0

COMANDOS DE SENSORES Y ACTUADORES

1. Display de 7 segmentos.

Display de 7 segmentos de ánodo (Positivo) común conectado desde la salida B.0 a la B.6 usando las correspondientes resistencias de protección (330 Ω) en serie.

Hay que preparar las salidas desde B.0 a B.6 con el comando output para que actúen como salidas.

Para cambiar los estados de los LED simultáneamente se emplea el comando let pins =%xxxxxxxx. (B.0, B.1, B.2,…B.7)

Ten en cuenta que las salidas B.4 a B.7 van al contrario de las B.0 a B.3, es decir, que el estado “low” implica que están activados y “high” apagados ya que el otro terminal va conectado a V+.

El terminal positivo común es la conexión 8.

2. Mando de infrarrojos.

Se conecta a una entrada analógica, por ejemplo C0. Nos devuelve un valor para cada tecla pulsada, asociado a una variable por ejemplo

b0. El comando empleado para leer los códigos almacenados en la variable b0 es

irin[200], C.0, b0, (siendo 200 el tiempo empleado entre lectura y lectura, en este caso 0.2s.

El comando empleado para mostrar en pantalla los valores de b0 es debug b0.

Secuencia para activar el mando

3. Sensor óptico reflexivo CNY70.

Es un sensor óptico reflexivo que tiene una construcción compacta dónde el emisor de luz y el receptor se colocan en la misma dirección para detectar la presencia de un objeto utilizando la reflexión del infrarrojo sobre el objeto. La distancia de detección varía entre 0,3 a 5 mm.

Se conecta a una entrada analógica, por ejemplo C0. Nos devuelve un valor dependiendo del color del objeto encontrado, asociado a

una variable por ejemplo b0. El comando empleado para leer la variable b0 asociada al sensor óptico es

readadc C.0, b0. El comando empleado para leer en pantalla los valores de b0 es debug.

Page 11: Apuntes y prácticas Picaxe 18M2+

DEPARTAMENTO DE TECNOLOGÍA - I.E.S VALLE DE LEIVA

Sensores y Actuadores PICAXE David González V2.0

4. Pantalla LCD AXE 133Y serial.

Se trata de una pantalla de 2 líneas en las que se puede mostrar cualquier mensaje.

La pantalla se conecta a Vcc(potitivo), GND (negativo) y IN (salida) desde la B.4-B.7, cualquiera se puede emplear.

El comando para comunicarse con la pantalla es: serout B.4,n2400,(254,xxx). Para escribir una frase se emplea: serout B.4,n2400,(“Hola que tal”). Asegurarse que la tensión no supera los 5v o podría estropear la pantalla.

5. Sensor piroeléctrico de movimiento PIR.

Es un dispositivo piroeléctrico que mide los cambios en los niveles de radiación infrarroja emitida por los objetos a su alrededor hasta una distancia máxima de 6 metros. Como repuesta al movimiento, el sensor cambia el estado lógico de un “pin” de bajo a alto.

Se conecta a una entrada digital, por ejemplo pin5, pin6, pin7. Nos devuelve un estado lógico “0” o “1” según detecte o no movimiento.

6. Sensor de temperatura DS18B20.

Es un sensor analógico que nos indica la temperatura con un rango de -55ºC a 125ºC con un error de 0,5ºC.

El comando empleado para leer la temperatura es readtemp. El sensor se conecta a una entrada analógica, por ejemplo C.0. El valor de la temperatura se almacena en una variable, por ejemplo b0. Para leer la temperatura y almacenarla se emplea readtemp C.0, b0 El comando empleado para leer en pantalla los valores de b0 es debug b0.

Page 12: Apuntes y prácticas Picaxe 18M2+

DEPARTAMENTO DE TECNOLOGÍA - I.E.S VALLE DE LEIVA

Sensores y Actuadores PICAXE David González V2.0

7. Sensor de llama regulable.

Es un sensor que puede detectar fuegos con longitud de onda entre 760 a 1100 nm con sensibilidad ajustable. El ángulo de detección es regulable hasta 60º. Puede trabajar de forma analógica y digital. Para ello se conecta siempre a Vcc (positivo), GND (negativo) y por último, bien a AO (analógico) o DO (digital). Si se conecta a analógico utilizaremos las entradas C.0, C.1 o C.2 y emplearemos como siempre el comando readadc. Si se conecta a digital utilizaremos las entradas pin5, pin6 o pin7 y emplearemos el estado “0” o “1”. Ejemplo; pin5=1 o pin5=0.

8. Sensor Reed o de proximidad.

Se trata de un sensor digital que actúa como interruptor abierto o cerrado según se toquen entre sí los contactos con un imán que llevan las partes en su interior. Al ser un sensor digital utilizaremos las entradas pin5, pin6 o pin7 y emplearemos el estado “0” o “1”. Ejemplo; If pin5=1 o If pin5=0.

9. Interruptor de inclinación.

Se trata de un sensor digital que actúa como interruptor abierto o cerrado según se supere o no una inclinación de 10º. En principio sus contactos están abiertos (NA), y al inclinarse se cierran. Al ser un sensor digital utilizaremos las entradas pin5, pin6 o pin7 y emplearemos el estado “0” o “1”. Ejemplo; If pin5=1 o If pin5=0.

10. Sensor fotoeléctrico de infrarrojos.

Se trata de un sensor analógico que permite contar las veces que un objeto pasa entre los extremos. Se conecta a Vcc (positivo), GND (negativo) y por último a OUT (salida).

El comando empleado para contar los pulsos es count. La entrada utilizada para conectar el sensor puede ser C.0, C.1 o C.2. La variable empleada para almacenar los pulsos puede ser w1, w2,… El comando empleado será count C.1,tiempo en ms, w1 El comando empleado para leer en pantalla los valores de w1 es debug w1.

11. Sensor de reflectancia QTR-1ª.

Es un sensor óptico reflexivo que tiene una construcción compacta dónde el emisor de luz y el receptor se colocan en la misma dirección para detectar la presencia de un objeto utilizando la reflexión del infrarrojo sobre el objeto. La distancia de detección varía entre 0,3 a 5 mm.

Se conecta a una entrada analógica, por ejemplo C0. Nos devuelve un valor dependiendo del color del objeto encontrado, asociado a

una variable por ejemplo b0. El comando empleado para leer la variable b0 asociada al sensor óptico es

readadc C.0, b0. El comando empleado para leer en pantalla los valores de b0 es debug.

Page 13: Apuntes y prácticas Picaxe 18M2+

DEPARTAMENTO DE TECNOLOGÍA - I.E.S VALLE DE LEIVA

Sensores y Actuadores PICAXE David González V2.0

12. Fototransistor y fotodiodo.

Es un sistema analógico formado por un LED emisor de infrarrojos y un fototransistor. Los 2 componentes se separan una determinada distancia y consiste en emitir una luz y recibirla. Si el haz de luz se corta, se puede utilizar el valor arrojado para controlar algo.

El fototransistor se conecta a una entrada analógica, por ejemplo C0. El fotodiodo se conecta entre los terminales + y -. El fototransistor nos devuelve un valor dependiendo de la luz que reciba, asociado

a una variable por ejemplo b0. El comando empleado para leer la variable b0 asociada al sensor es readadc C.0,

b0. El comando empleado para leer en pantalla los valores de b0 es debug.

13. LDR (Light dependant resistance).

Es un sistema analógico formado por una resistencia variable que depende de la luz, es decir, a mayor cantidad de luz, menor será la resistencia del elemento y viceversa.

Se conecta a una entrada analógica, por ejemplo C0. Nos devuelve un valor dependiendo de la cantidad de luz recibida, asociado a

una variable por ejemplo b0. El comando empleado para leer la variable b0 asociada a la LDR es readadc

C.0, b0. El comando empleado para leer en pantalla los valores de b0 es debug.

14. ServoMotor.

Se trata de un motor que gira como máximo 180º con un movimiento muy preciso y empleado frecuentemente en modelismo de coches y aviones para el giro.

La conexión es a Vcc (positivo), GND (negativo) y OUT (salida) Las salidas que se emplean pueden ser desde B.4 a B.7 ya que permiten el

consumo de mas corriente. El comando empleado para comunicarse con el Servo es: Servo 4,xxx. Uno de los extremos de la posición del servo es Servo 4, 75. El otro extremo del servo es Servo 4, 225. Entre 75 y 225 disponemos de todos los puntos en los que puede parar el servo. Para parar el servo y que no realice giro involuntarios utilizar el comando “high

B.4” para pararlo definitivamente. La fuente de alimentación debe estar al máximo posible de corriente ya que el

servo demanda mucho y en caso contrario no realiza los movimientos como debe.

Page 14: Apuntes y prácticas Picaxe 18M2+

DEPARTAMENTO DE TECNOLOGÍA - I.E.S VALLE DE LEIVA

Sensores y Actuadores PICAXE David González V2.0

15. Motor DC.

Es un actuador muy empleado. Podemos invertir su sentido de giro. Se puede conectar de 2 formas diferentes:

Se puede conectar directamente entre V+ y la salida que queramos desde B.0 a B.7. En tal caso no permite cambio del sentido de giro.

En este caso, si lo hemos conectado entre V+ y (B.0, B.1, B.2 o B.3), el motor se activa poniendo a “high” la salida a la que se ha conectado.

Por el contrario, si lo hemos conectado entre V+ y (B.4, B.5, B.6 o B.7), el motor se activa poniendo a “low” la salida a la que se ha conectado.

A través del controlador L293D incorporado en placa picaxe: Se puede conectar entre B.4 y B.5 un motor y otro entre B.6 y B.7. En este caso

permite cambio de sentido de giro. Si lo conectamos entre B.4 y B.5, para girar en un sentido, necesitamos que una

salida esté “high” y la otra “low”. Si queremos cambiar su sentido de giro, cambiaremos “high” por “low” y viceversa.

Para parar un motor conectado a B.4 y B.5 deben estar ambas salidas a “low” o a “high”.

Si queremos variar la velocidad del motor:

Conectamos el motor a V+ y la salida. Empleamos el comando pwmout. Ej: pwmout B.3, xx, xxx. Encontramos x en “programming editor” según la velocidad requerida, el programa nos devuelve los valores para ponerlo en el código.

Picaxe → wizard → Pwmout Para parar el motor emplearemos pwmout B.3, off.

16. Zumbador.

Este emisor de sonidos, puede producir diferentes frecuencias y por lo tanto, sonidos diferentes. Simplemente se conecta entre V+ y la salida que queramos emplear.

El comando empleado para programar el número de pitidos emitidos por el zumbador es: for b1=1 to 10 (nº veces)…--código zumbador--..next b1., siendo b1 la variable que incrementa.

El comando empleado para programar la (frecuencia,duración) de los pitidos del zumbador es: sound B.4, (100,60).

17. LED (Light Emited Diode).

Para conectar este elemento emisor de luz debemos conectarlo entre V+ y la salida que elijamos.

Hay que poner en serie con el LED una resistencia de 330 Ω para que el voltaje que recibe el LED sea el adecuado.

La patilla larga del LED tiene que conectarse a positivo (+) y la corta a la salida. Recuerda que si lo conectas a las salidas B.0, B.1, B.2 o B.3, para que se ilumine

debes emplear el comando “high”. Recuerda que si lo conectas a las salidas B.4, B.5, B.6 o B.7, para que se ilumine

debes emplear el comando “low”.

Page 15: Apuntes y prácticas Picaxe 18M2+

DEPARTAMENTO DE TECNOLOGÍA - I.E.S VALLE DE LEIVA

Sensores y Actuadores PICAXE David González V2.0

18. Sensor detector de lluvia o humedad.

Es un sensor que puede detectar la presencia de lluvia. Puede trabajar de forma analógica y digital. Para ello se conecta siempre a Vcc (positivo), GND (negativo) y por último, bien a AO (analógico) o DO (digital). Si se conecta a analógico utilizaremos las entradas C.0, C.1 o C.2 y emplearemos como siempre el comando readadc. Si se conecta a digital utilizaremos las entradas pin5, pin6 o pin7 y emplearemos el estado “0” o “1”. Ejemplo; pin5=1 o pin5=0.

19. Módulo sensor detector de sonido.

Es un sensor que sirve para detectar sonidos. Es ajustable en su sensibilidad y por lo tanto va conectado a una entrada analógica. Para ello se conecta siempre a Vcc (positivo), GND (negativo) y por último, bien a AO (analógico). Utilizaremos las entradas C.0, C.1 o C.2 y emplearemos como siempre el comando readadc.

20. Sensor detector de vibración.

Es un sensor que puede detectar movimientos. Puede trabajar de forma analógica y digital. Para ello se conecta siempre a Vcc (positivo), GND (negativo) y por último, bien a AO (analógico) o DO (digital). Si se conecta a analógico utilizaremos las entradas C.0, C.1 o C.2 y emplearemos como siempre el comando readadc. Si se conecta a digital utilizaremos las entradas pin5, pin6 o pin7 y emplearemos el estado “0” o “1”. Ejemplo; pin5=1 o pin5=0.

21. Sensor detector de campos magnéticos mediante e fecto Hall.

El sensor de efecto Hall sirve para la medición de campos magnéticos o corrientes magnéticas o para la determinación de la posición. Si fluye corriente por un sensor Hall y se aproxima a un campo magnético que fluye en dirección vertical al sensor, crea un voltaje saliente proporcional al producto de la fuerza del campo y de la corriente.

Puede trabajar de forma analógica y digital. Para ello se conecta siempre a Vcc (positivo), GND (negativo) y por último, bien a AO (analógico) o DO (digital). Si se conecta a analógico utilizaremos las entradas C.0, C.1 o C.2 y emplearemos como siempre el comando readadc. Si se conecta a digital utilizaremos las entradas pin5, pin6 o pin7 y emplearemos el estado “0” o “1”. Ejemplo; pin5=1 o pin5=0.

22. Motor paso a paso.

Esta placa que lleva incorporado un driver (ULN 2003) sirve para controlar motores paso a paso de 4 fases. Para ello lleva 4 leds que indican el funcionamiento del motor.

Page 16: Apuntes y prácticas Picaxe 18M2+

DEPARTAMENTO DE TECNOLOGÍA - I.E.S VALLE DE LEIVA

Prácticas de PICAXE David González V2.0

PRÁCTICAS CON PICAXE 18M2

1. Programando un Led (parpadeo simple y triple)

• Actuador : Led conectado a la salida B.0 de la placa. • Función : El programa debe hacer parpadear indefinidamente el led; puede ajustarse el

tiempo que está encendido y apagado. En primer lugar haremos un parpadeo simple y posteriormente haremos los cambios necesarios en el programa para que el parpadeo sea triple.

• Consideraciones :

Hay que poner en serie con el LED una resistencia de 330 Ω para que el voltaje que recibe el LED sea el adecuado.

La patilla larga del LED tiene que conectarse a positivo (+) y la corta a B.0 Realizar la práctica probando con diferentes valores para el tiempo de

encendido y apagado.

2. Semáforo simple con tres led

• Actuadores : Tres led conectados a la salidas B.0, B.1 y B.2 (rojo, amarillo y verde). • Función : Alternativamente se van encendiendo los led verde (el que más dura),

amarillo y rojo. • Consideraciones :

Hay que poner en serie con los LED una resistencia de 330 Ω para que el voltaje que recibe el LED sea el adecuado.

La patilla larga del LED tiene que conectarse a positivo (+) y la corta a la salida.

Tiempos: Verde 5s, Amarillo 0,5s, Rojo 2,5s.

3. Leds programados para adorno navideño

• Actuadores : 8 led dispuestos en línea recta en placa protoboard (con sus resistencias de protección).

• Sensores : 2 pulsadores en las entradas C.6 y C.7 • Función : Para simular 2 programas diferentes del juego de luces que acompañan a los

árboles de navidad, queremos que:

- Si pulsamos un pulsador debe realizar un parpadeo de 5 veces, apagado y posterior comienzo del ciclo.

- Si pulsamos el otro pulsador queremos que realice un encendido alternativo de cada Led 5 veces y posteriormente un parpadeo durante 5 veces de todos los Led como en el caso anterior y vuelta a empezar.

• Consideraciones :

Hay que poner en serie con los LED una resistencia de 330 Ω para que el voltaje que recibe el LED sea el adecuado.

La patilla larga del LED tiene que conectarse a positivo (+) y la corta a la salida. Prepara las salidas desde B.0 a B.7 con el comando output. Cambia los estados de los LED simultáneamente con el comando let pins

=%xxxxxxxx (B0B1B2B3B4B5B6B7) Recuerda que las salidas B.4, B.5, B.6 y B.7 funcionan al contrario que las

demás, es decir, su encendido es mediante un “0”.

Page 17: Apuntes y prácticas Picaxe 18M2+

DEPARTAMENTO DE TECNOLOGÍA - I.E.S VALLE DE LEIVA

Prácticas de PICAXE David González V2.0

3. Iluminación de 3 Leds distintos dependiendo de la distancia de un objeto

• Actuador : 3 Led conectados a las salidas B.0, B.1 y B.2. • Sensor : Sensor analógico de distancia (Sharp GP2Y0A41SK0F; rango de 10 a 80cm;

4,5V) conectado a la entrada pin0. • Función : El programa hace parpadear un led u otro dependiendo del valor que

devuelve la variable b0. Este valor cambiará según la distancia al objeto.

• Consideraciones :

El comando empleado para leer la variable b0 asociada a la distancia es readadc 0, b0, (siendo 0 la entrada analógica del sensor de distancia y b0 la variable utilizada para leer los valores).

El comando empleado para leer en pantalla los valores de b0 es debug b0.

4. Sensor de aparcamiento.

• Actuador : 1 zumbador conectado a la salida B.0. • Sensor : Sensor analógico de distancia (Sharp GP2Y0A41SK0F; rango de 10 a 80cm;

4,5V) conectado a la entrada pin0. • Función : El programa debe hacer sonar un zumbador con menor o mayor frecuencia

dependiendo del valor que devuelve la variable b0. Este valor cambiará según la distancia al objeto.

• Consideraciones :

El comando empleado para leer la variable b0 asociada a la distancia es readadc 0, b0, (siendo 0 la entrada analógica del sensor de distancia y b0 la variable utilizada para leer los valores).

El comando empleado para leer en pantalla los valores de b0 es debug b0. El comando empleado para programar el número de pitidos emitidos por el

zumbador es: for b1=1 to 10…..next b1., siendo b1 la variable que incrementa. El comando empleado para programar la (frecuencia,duración) de los pitidos

del zumbador es, Ej: sound B.4, (100,60).

5. Midiendo con sensor de distancia y mostrando en visualizador de 7 segmentos

• Actuador : Display de 7 segmentos de ánodo común conectado desde la salida B.0 a la B.6 usando las correspondientes resistencias de protección (330 Ω).

• Sensor : Sensor analógico de distancia (Sharp GP2Y0A41SK0F; rango de 10 a 80cm; 4,5V) conectado a la entrada pin0.

• Función : El rango de medición del sensor se ha dividido en 8 segmentos. Si se coloca un objeto al inicio del primer segmento, es decir, si está muy cerca, se visualiza un "1" en el display. Al llegar al segundo un "2" y así sucesivamente hasta el final del último en el se muestra un "9". Cuando no hay objeto se muestra un "0".

Consideraciones :

Prepara las salidas desde B.0 a B.6 con el comando output para que actúen como salidas.

Cambia los estados de los LED simultáneamente con el comando let pins =%xxxxxxxx.

Ten en cuenta que las salidas B.4 a B.7 van al contrario de las B.0 a B.3, es decir, que el estado “low” implica que están activados y “high” apagados ya que el otro terminal va conectado a V+.

Page 18: Apuntes y prácticas Picaxe 18M2+

DEPARTAMENTO DE TECNOLOGÍA - I.E.S VALLE DE LEIVA

Prácticas de PICAXE David González V2.0

El comando empleado para leer la variable b0 asociada a la distancia es readadc 0, b0, (siendo 0 la entrada analógica del sensor de distancia y b0 la variable utilizada para leer los valores).

El comando empleado para leer en pantalla los valores de b0 es debug b0.

6. Movimientos básicos de dos motores con un mando a distancia

• Actuadores : Dos motores con movimiento reversible. o El motor derecho en las salidas B.4 y B.5 (cables negro y rojo). o El motor izquierdo en las salidas B.6 y B.7 (cables negro y rojo).

• Sensor : Receptor de señales infrarrojas emitidas por un mando a distancia (protocolo Sony).

• Función : El programa detecta 5 teclas del mando a distancia. Realizará distintas combinaciones de movimiento de los motores según la tecla pulsada.

Consideraciones :

Para avanzar un motor debe activarse una salida y desactivar la otra que va asociada, es decir, (high B.4, low B.5) o (high B.6, low B.7)

El comando empleado para leer los códigos almacenados en la variable b0 es irin[200], C.0, b0, (siendo 200 el tiempo empleado entre lectura y lectura, en este caso 0.2s, C.0 la entrada analógica pin0 y b0 la variable utilizada para leer los valores).

El comando empleado para leer en pantalla los valores de b0 es debug b0. Una tecla servirá para avanzar, otra para retroceder. Lo mismo para girar a la izquierda y derecha. Por último otra lo parará.

7. Funcionamiento de pantalla LCD publicitaria

• Actuadores : Pantalla LCD conectada a salida B.4 • Sensor : Sensor PIR de movimiento. • Función : El programa detecta mediante el sensor de movimiento el paso de alguien y

activa una pantalla LCD mostrando un mensaje publicitario.

Consideraciones :

El comando para comunicarse con la pantalla es: serout B.4,n2400,(xxx,xxx) En la hoja técnica de la pantalla nos muestran los comandos más empleados.

8. Seguir un vehículo una línea negra mediante 2 sensores ópticos reflexivos.

• Actuadores : Dos motores con movimiento reversible. o El motor derecho está conectado a las salidas B.4 y B.5 o El motor izquierdo está conectado a las salidas B.6 y B.7

• Sensores : Dos sensores ópticos reflexivos (CNY 70 rango de 1 a 10mm; 4,5V). o Un sensor está situado en parte Frontal izquierda y se lee en la entrada

analógica C.0 y el otro en la parte Frontal izquierda y se lee en la entrada analógica C.1.

o Ambos sensores van montados sobre una placa construida por el profesor.

Page 19: Apuntes y prácticas Picaxe 18M2+

DEPARTAMENTO DE TECNOLOGÍA - I.E.S VALLE DE LEIVA

Prácticas de PICAXE David González V2.0

• Función : El coche intenta seguir la línea negra, dejándola siempre entre ambos sensores, para ello si un sensor detecta “negro” girará para corregir esto y seguir dejando la línea entre ambos sensores.

Consideraciones :

El comando empleado para leer la variable b0 asociada al sensor frontal izquierdo es readadc C.0, b0, y para leer la variable b1 es la asociada al sensor frontal derecho readadc C.1, b1, (siendo C.0 y C,1 las entradas analógicas de los sensores de distancia y b0 y b1 las variables utilizadas para leer los valores).

El comando empleado para leer en pantalla los valores de b0 y b1 es debug. Según encontremos la línea negra deberá:

Avanzar si los sensores detectan mediante b0 y b1 claridad, es decir, la línea negra está entre ellos y no la está viendo, por tanto ven claridad.

Girar a la derecha si el sensor derecho indica mediante b1 que ha encontrado “negro”.

Girar a la izquierda si el sensor izquierdo indica mediante b0 que ha encontrado “negro”.

9. Control automático de un limpiaparabrisas en lazo cerrado.

• Actuadores : Servo-motor conectado a la salida B.4 • Sensor : Sensor Reed o sensor de reflectancia. • Función : El programa consiste en realizar un giro con aumento progresivo del ángulo

barrido hasta hacer contacto con el sensor de proximidad. En tal caso, permanecerá barriendo dicho ángulo y tras unos segundos parará.

Consideraciones :

El sensor Reed funciona como un microrruptor normal. El comando empleado para comunicarse con el Servo es: Servo 4, (75-225). Tras parar el servo para que no realice giro involuntarios utilizar el comando

“high B.4” para pararlo definitivamente. La fuente de alimentación debe estar al máximo posible corriente ya que el

servo demanda mucho y en caso contrario no realiza los movimientos como debe.

Page 20: Apuntes y prácticas Picaxe 18M2+

DEPARTAMENTO DE TECNOLOGÍA - I.E.S VALLE DE LEIVA

Prácticas de PICAXE David González V2.0

10.Disminución de velocidad, parada y giro de un vehículo según su proximidad a un objeto.

• Actuadores : Dos motores con movimiento reversible. o El motor derecho en las salidas B.4 y B.5 o El motor izquierdo en las salidas B.6 y B.7

• Sensor : 2 Sensores analógicos de distancia (Sharp GP2Y0A41SK0F; rango de 10 a 80cm; 4,5V). El sensor está situado en la parte FRONTAL y TRASERA del coche y conectado a la entrada analógica C.0 y C.1.

• Función : El coche avanza hacia una pared. Según se aproxime debe disminuir su velocidad hasta terminar parándose cuando esté lo más próximo al objeto. Tras esto, girará y realizará la misma operación.

Consideraciones :

El comando empleado para leer la variable b0 asociada a la distancia es readadc C.0, b0, (siendo C.0 la entrada analógica del sensor de distancia y b0 la variable utilizada para leer los valores).

El comando empleado para leer en pantalla los valores de b0 es debug b0. Según la proximidad al objeto disminuye la velocidad mediante el comando

pwmout. Ej: pwmout B.6, 99, xxx (xxx es el porcentaje de velocidad. Se calcula mediante el software). pwmout B.6, 99, off (para parar el comando)

Pwmout se puede utilizar en las salidas B.3 (a positivo) y B.6 (a negativo). El cambio de giro se hará parando un motor y girando el otro.

11.Alarma detector de incendios

• Actuadores : Zumbador • Sensor : Sensor de llama regulable analógico o digital. • Función : Ante la presencia de fuego, el sensor enviará la orden para que suene el

zumbador de forma repetida.

Consideraciones :

El comando empleado para leer la variable b0 asociada a la llama es readadc C.0, b0, (siendo C.0 la entrada analógica del sensor de llama y b0 la variable utilizada para leer los valores).

Si se hace de forma digital, simplemente devolverá 0 o 1 y se conectará a una entrada digital (pin5, pin6 y pin7).

El comando empleado para leer en pantalla los valores de b0 es debug b0. El comando empleado para programar el número de pitidos emitidos por el

zumbador es: for b1=1 to 10…..next b1., siendo b1 la variable que incrementa. El comando empleado para programar la (frecuencia,duración) de los pitidos

del zumbador es: sound B.4, (100,60).

Page 21: Apuntes y prácticas Picaxe 18M2+

DEPARTAMENTO DE TECNOLOGÍA - I.E.S VALLE DE LEIVA

Prácticas de PICAXE David González V2.0

12.Medir la temperatura ambiente

• Actuadores : Pantalla LCD • Sensor : Sensor de temperatura DS18B20 • Función : Medir la temperatura ambiente y mostrarla en una pantalla LCD.

Consideraciones :

El comando empleado para leer la variable b0 asociada a la temperatura es readtemp C.0, b0, (siendo C.0 la entrada analógica del sensor de temperatura y b0 la variable utilizada para leer los valores).

El comando empleado para leer en pantalla los valores de b0 es debug b0. El comando para comunicarse con la pantalla es: serout B.4,n2400,(xxx,xxx) En la hoja técnica de la pantalla nos muestran los comandos más empleados.

13. Realizar un Tacómetro (Medir velocidad r.p.m)

• Actuadores : Pantalla LCD • Sensor : Sensor fotoeléctrico de infrarrojos o CNY70. • Función : Medir la velocidad de giro de un motor y mostrarla en una pantalla LCD.

Consideraciones :

El comando empleado para leer la variable w1 asociada a la velocidad es count C.1,tiempo ms, w1, (siendo C.1 la entrada analógica del sensor de temperatura y w1 la variable utilizada para leer los valores).

El comando empleado para leer en pantalla los valores de w1 es debug w1. Habrá que hacer una pequeña operación matemática para obtener la velocidad

en r.p.m. El comando para comunicarse con la pantalla es: serout B.4,n2400,(xxx,xxx) En la hoja técnica de la pantalla nos muestran los comandos más empleados.