Esta práctica consiste en iniciar una cuenta atrás de un display de 7 segmentos controlado mediante un sensor de luz que sérá el encargado de iniciar la cuenta atrás o de pararlo. Para ello será suficiente con interponer la mano entre el foco de luz y el sensor (LDR) y así variar la intensidad de luz que será la mgnitud que controle dicha cuenta atrás.
Se han empleado las siguientes conexiones:
Entrada analógica C.0, positivo y negativo.
Salidas B.0, B.1, B.2, B.4, B.5, B.6, B.7 y positivo.
Vídeo de la práctica
Código del programa:
'Prepara salidas
output B.0
output B.1
output B.2
output B.3
output B.4
output B.5
output B.6
output B.7
Let pins=%11110000 'Nada (Todo apagado)
lectura:
readadc 0, b0 'Leemos el valor de la variable b0 en la entrada C0
debug b0
if b0>180 then goto inicio 'si la variable es mayor de 180 empieza a contar (poca luz)
goto lectura 'Si hay mucha luz aún no comienza
inicio:
pause 200
nueve:
Let pins=%01001111 'número 9
pause 1000
readadc 0, b0
if b0>180 then goto nueve 'Si ponemos la mano y tapamos, se congela el número
Let pins=%11110000 'Nada (parpadea en blanco antes de cambiar de número)
pause 200
ocho:
Let pins=00001111 '8
pause 1000
readadc 0, b0
if b0>180 then goto ocho
Let pins=%11110000 'Nada
pause 200
siete:
Let pins=%11001001 '7
pause 1000
readadc 0, b0
if b0>180 then goto siete
Let pins=%11110000 'Nada
pause 200
seis:
Let pins=00101111 '6
pause 1000
readadc 0, b0
if b0>180 then goto seis
Let pins=%11110000 'Nada
pause 200
cinco:
Let pins=%01101111 '5
pause 1000
readadc 0, b0
if b0>180 then goto cinco
Let pins=%11110000 'Nada
pause 200
cuatro:
Let pins=%11011111 '4
pause 1000
readadc 0, b0
if b0>180 then goto cuatro
Let pins=%11110000 'Nada
pause 200
tres:
Let pins=%01001011 '3
pause 1000
readadc 0, b0
if b0>180 then goto tres
Let pins=%11110000 'Nada
pause 200
dos:
Let pins=00001010 '2
pause 1000
readadc 0, b0
if b0>180 then goto dos
Let pins=%11110000 'Nada
pause 200
uno:
Let pins=%11010001 '1
pause 1000
readadc 0, b0
if b0>180 then goto uno
Let pins=%11110000 'Nada
pause 200
cero:
Let pins=00001101 '0
pause 1000
readadc 0, b0
if b0>180 then goto cero
Let pins=%11110000 'Nada
pause 200
goto lectura 'Comenzamos de nuevo
No hay comentarios:
Publicar un comentario
En este espacio puedes comentar la entrada publicada o hacer preguntas o sugerencias