domingo, 15 de diciembre de 2013

Practica 11. sensor de llama

1.DETECTOR DE FUEGO
Esta práctica emplea un sensor de llama regulable que permite recibir determinados rangos de radiaciones que emiten una llama de fuego.
Por lo tanto cuando recibimos esa radiación, se activa un zumbador para avisar de la presencia de fuego.
- Sensor de llama en la entrada analógica C.0
- Zumbador en la salida B.2



Codigo del programa:

inicio:
readadc C.0, b0
if b0<15 then goto zumbador
if b0>90 then goto inicio
zumbador:
for b1=1 to 5
sound B.2, (100,60)
next b1
goto inicio

Práctica 12. LDR para medir revoluciones

LDR COMO SENSOR PARA MEDIR VELOCIDAD (R.P.M)
En esta práctica hemos empleado una resistencia variable LDR para un uso diferente al habitual. En este caso nos sirve para fabricar un tacómetro casero.
Consiste en una LDR junto con un potenciómetro de 10k del que sacamos el positivo, negativo y entrada analógica (C.0), es decir, un divisor de tensión.
Para ello la hemos calibrado, regulando el potenciómetro para que nos de un voltaje alto 3,5v cuando le llega luz y un voltaje bajo 2v cuando no le da.
Así hemos podido contar el número de veces que ocurre esto en un tiempo deteminado y de ahí obtener las r.p.m.
 
 El código del programa es:
inicio:
count C.0,4000,w0   'cuenta pulsos durante 4 seg. en entrada C.0 y guarda en vble. w0
debug w0    'mostramos en pantalla
w1=w0*15   ' obtenemos las revoluciones en 1 minuto al multiplicar por 15.
goto inicio   'volvemos a inicio y refrescamos
Esto mismo podríamos mostrarlo en una pantalla LCD mediante el comando serout mostrado en otras prácticas.

Practica 10. Display de 7 segmentos

MARCHA ATRÁS CON SONIDO "BOMBA"

1. CUENTA ATRÁS "BOMBA"

Esta práctica trata de programar un display de 7 segmentos conectados a 7 de las salidas, mas 1 salida extra que se emplea en hacer sonar un zumbador indicando que se ha llegado al final de la cuenta atrás. Se producirá un efecto de intermitencia en el número 0 acompañado del sonido.
Para hacer funcionar la secuencia se ha conectado a una de las entradas, un pulsador que será el encargado de hacer iniciar todo el proceso.


Código del programa:
 ' Preparamos las conexiones B como salidas para poder emplear let pins
output B.0
output B.1
output B.2
output B.3
output B.4
output B.5
output B.6
output B.7
inicio:
if pin0=1 then goto numeros_atras
goto inicio
numeros_atras:   'Let pins =%B7B6B5B4B3B2B1B0 (B.4-B.7 low significa 1)
num_9:
let pins = %10010111 '9
pause 1000
num_8:
let pins = %10001111 '8
pause 1000
num_7:
let pins = %11010111 '7
pause 1000
num_6:
let pins = %10001101 '6
pause 1000
num_5:
let pins = %10011101 '5
pause 1000
num_4:
let pins = %10010110 '4
pause 1000
num_3:
let pins = %10111111 '3
pause 1000
num_2:
let pins = %10101011 '2
pause 1000
num_1:
let pins = %11110110 '1
pause 1000

num_0_intermitente: '3 veces intermitencia
for b1 =1 to 3
let pins = %11001111 '0
pause 500
let pins = %11110000 'en blanco
pause 500
next

Sonido:
low B.7  'Sonido del zumbador
pause 3000
high B.7  'Apgado del zumbador

goto inicio

Hay que recordar que este ejemplo solo es válido para la configuración utilizada de las salidas y conexiones a los segmentos del display empleadas, es decir, que depende de a que salidas de la placa conecte cada segmento del display.

Hay que tener en cuenta que las salidas B.4-B.7 funcionan al contrario, es decir, un 1 implica desconexión y un 0 conexión. Esto es así al llevar el chip L293D para invertir el sentido de giro de motores.




Practica 9. Control remoto "irin" (Mando SONY)

1. CONTROL DE MOTORES DE UN VEHÍCULO

Esta práctica emplea un sensor de infrarrojos controlado mediante un mando a distancia compatible SONY. En función de la tecla pulsada, el programa nos muestra mediante el comando irin, un valor asociado a ese botón.
Por lo tanto podemos programar para que dependiendo de la pulsación, el programa realice una función u otra.



Código del programa "Control Display"

output B.0
output B.1
output B.2
output B.3
output B.4
output B.5
output B.6
output B.7
inicio:
irin[200],C.1,b0 'Leemos el valor del sensor Control Remoto conectado a la entrada C.0
debug  bo   'Se lo asignamos a la variable b0 y mostramos en pantalla
if b0 =9 then goto num_0 'segun la tecla pulsada va a un numero u otro
if b0 =0 then goto num_1
if b0 =1 then goto num_2
if b0 =2 then goto num_3
if b0 =3 then goto num_4
if b0 =4 then goto num_5
if b0 =5 then goto num_6
if b0 =6 then goto num_7
if b0 =7 then goto num_8
if b0 =8 then goto num_9
goto inicio
numeros_atras: 'Let pins =%B7B6B5B4B3B2B1B0 (B.4-B.7 low significa 1)
num_9:
let pins = %10010111 '9
goto inicio
num_8:
let pins = %10001111 '8
goto inicio
num_7:
let pins = %11010111 '7
goto inicio
num_6:
let pins = %10001101 '6
goto inicio
num_5:
let pins = %10011101 '5
goto inicio
num_4:
let pins = %10010110 '4
goto inicio
num_3:
let pins = %10111111 '3
goto inicio
num_2:
let pins = %10101011 '2
goto inicio
num_1:
let pins = %11110110 '1
goto inicio
num_0_:
let pins = %11001111 '0
goto inicio


Programa "Contorl de motores de un vehículo"

inicio:
irin[200],C.1,b0 'Leemos el valor del sensor Control Remoto conectado a la entrada C.0
debug  bo   'Se lo asignamos a la variable b0 y mostramos en pantalla
'segun la tecla pulsada hace una funcion u otra
if b0 =0 then goto izquierda
if b0 =1 then goto derecha
if b0 =2 then goto avanza
if b0 =3 then goto retrocede
if b0 =4 then goto para
goto inicio

iquierda:
high B.4  'Motor 1 avanza
Low B.5
high B.6   'Motor 2 parado
high B.7
goto inicio

derecha:
high B.4  'Motor 1 parado
high B.5
high B.6   'Motor 2 avanza
low B.7
goto inicio

avanza:
high B.4  'Motor 1 avanza
Low B.5
high B.6   'Motor 2 avanza
low B.7
goto inicio

retrocede:
low B.4  'Motor 1 retrocede
high B.5
high B.6   'Motor 2 retrocede
low B.7
goto inicio

para:
low B.4  'Motor 1 parado
low B.5
high B.6   'Motor 2 parado
high B.7
goto inicio



Practica 8. Control con sensor de infrarrojos(distancia)

1.AUMENTO DE FRECUENCIA DE LED SEGÚN PROXIMIDAD 
1.VISUALIZADOR DE APARCAMIENTO

En esta práctica utilizamos un sensor analógico para realizar programación en función de la distancia o proximidad a un objeto. Lo aplicamos a:
- Frecuencia de parpadeo de un LED.
- Cambio de color en luz de una plaza de parking de centro comercial.




En esta práctica utilizamos un sensor analógico para realizar programación en función de la distancia o proximidad a un objeto. Lo aplicamos a:
- Frecuencia de parpadeo de un LED.
- Cambio de color en luz de una plaza de parking de centro comercial.

Código del programa "Frecuencia de parpadeo"

inicio:
readadc 0, b0
debug b0
if b0<10 goto lejos
if b0>10 and <90 goto medio
if b0>90 goto cerca

Lejos:
high B.0
pause 1000
low B.0
pause 1000
goto inicio

medio:
high B.0
pause 500
low B.0
pause 500
goto inicio

cerca:
high B.0
pause 100
low B.0
pause 100
goto inicio

Código del programa "Cambio de color en luz de una plaza de parking de centro comercial"

inicio:
readadc 0, b0
debug b0
if b0<10 goto coche 'el sensor detecta coche
if b0>10 goto nada  ' El sensor no detecta coche

nada:  'No hay coche
high B.0 'Led verde encendido
low B.1 'Led Rojo apagado
goto inicio

coche:  'Hay coche aparcado
low B.0 'Led verde apagado
high B.1 'Led Rojo encendido
goto inicio

Prácticas 7. Secuencias de Control de giro de servos

1.GIRO A AMBOS LADOS

Esta práctica consiste en empezar a aprender a usar servos. Concretamente empezamos conectándolo a la placa Picaxe y realizando giros a derechas e izquierdas.
Por último lo aplicamos a un proyecto en el que se clasifican cajas enviándolas al lado derecho o izquierdo.
 

Código del programa:
inicio:
high B.4 'Desconectamos el servo para evitar movimientos involuntarios
if pin5=1 then goto blanco 'si pulsamos interruptor 5
If pin6=1 then goto negro 'si pulsamos interruptor 6
goto inicio ' si no pulsamos ninguno vuelve a inicio
blanco:
servo 4, 75 'giro a izquierdas
pause 5000
servo 4, 225 'giro a derechas
pause 1500
goto inicio
negro:
servo 4, 225
pause 5000
servo 4, 75
pause 1500
goto inicio

2.AUMENTO PROGRESIVO DE GIRO

Esta práctica de control, con Picaxe, propone realizar un aumento del giro realizado por el servo a cada lado.



Código del programa:
inicio:
b1=150
b2=150
giro:
servo 4, b1
pause 200
servo 4, b2
pause 200
let b1=b1-10
let b2=b2+10
if b1menor75 or b1mayor225 then goto inicio
goto giro

3.GIRO COMPLETO Y PASO A PASO

Esta práctica de Picaxe de control de servo propone realizar 2 giros completos del mismo y posteriormente paso a paso.


Código del programa:
inicio:
for b1=1 to 2
servo 4, 75
pause 100
servo 4, 225
next b1

servo 4, 75
pause 100
servo 4, 90
pause 100
servo 4, 105
pause 100
servo 4, 120
pause 100
servo 4, 105
pause 100
servo 4, 90
pause 100
servo 4, 75
pause 100
goto inicio

4.LIMPIAPARABRISAS CON SENSOR DE PRESENCIA

En esta prácticade control de servos con Picaxe hemos realizado una especie de limpiaparabrisas que gire hasta que se encuentre con algún obstáculo que le indique que debe volver al inicio.
Este obstáculo se simula mediante un sensor de reflectancia conectado a una entrada analógica que devuelve un valor u otro en la variable b0 según haya o no presencia del limpiaparabrisas. Así permite el contro del giro según se cambie la posición de dicho obstáculo.
   
 Código del programa:
b1=75
examen:
readadc 0, b0
If b0menor40 then goto paro
If b0mayor40 then goto girar
paro:
b1=75
pause 2000
servo 4, b1
goto examen
girar:
let b1=b1+5
servo 4, b1
goto examen

Practica 5. Mensaje en pantalla LCD

1.Mensajes en pantalla

Esta práctica consiste en programar una pantalla LCD de 16x2 con el Kit LCD serie Picaxe 18M2.
Para ello hemos empleado el comando serout.
La salida utilizada para conectarlo, en este caso, es la B.7 aunque se puede utilizar cualquiera de las salidas desde la B.4-B.7 sin problemas.
Hemos programado 2 mensajes y se han utilizado 2 interruptores conectados a las entradas pin6 y pin7. Por lo tanto, dependiendo del interruptor que se pulse, la pantalla mostrará uno u otro mensaje.

CODIGO DEL PROGRAMA

inicio:
pause 1000 'espera para la inicialización del LCD
pantalla:
if pin6=1 then
serout B.7,N2400, (254,128) 'mueve cursor al principio de la primera línea
serout B.7,N2400, (254,1) 'Borra LCD
serout B.7,N2400, ("Tecnologia industrial") 'presenta texto en pantalla LCD
if pin7=1 then
serout B.7,N2400, (254,128) 'mueve cursor al principio de la primera línea
serout B.7,N2400, (254,1) 'Borra LCD
serout B.7,N2400, ("Ies valle de Leiva") 'presenta texto en pantalla LCD
goto inicio


Practica 4. Control de un ventilador

ACCIONAMIENTO DE VENTILADOR SEGÚN PULSADORES

El programa controla el funcionamiento de un ventilador y de 3 LED mediante 2 pulsadores PA y PB. Planteamos 3 situaciones diferentes:
- Si cerramos PA. Funcionamiento indefinido del ventilador y encendido LED Verde.
- Si cerramos PB. Funcionamiento del ventilador 3s y se apaga durante 5s. Se enciende LED Amarillo
- Si PA y PB están abiertos. Encendido LED Rojo.


Practica 2. Secuencias con Leds

Se plantean una serie de prácticas con un pequeño incremento en dificultad relacionadas con hacer funcionar Leds según un patrón o diferentes condiciones de entradas.

1.DIFERENTES SECUENCIAS







Practica 1. Parpadeo de un Led

En esta primera práctica nos familiarizamos con la placa y con el programa de programación "programming editor".
Consiste en hacer funcionar la placa a través del cable serie.
Posteriormente descargamos un programa muy simple para hacer funcionar un Led.




Código del programa:

parpadeo:
high B.0   'conectamos la salida B.0 (se ilumina el Led)
pause 2000  'durante 2 seg
low B.0  'Desconectamos la salida B.0
pause 1000  'permanece apagada 1 seg
goto parpadeo   'volvemos a la instrucción parpadeo para repetir la secuencia