Hola amigos, mi problema es el siguiente, estoy haciendo una maqueta y uso un motor para subir y bajar una persiana, y a la hora de programar la placa (picaxe 28x1) me ha surgido un pequeño problema:
Uso un LDR para que lea el valor de la luz exterior, cuando este valor es más pequeño o más grande de 150 las persianas bajan o suben respectivamente, el problema es cuando por ejemplo las persianas ya están subidas y al volver a leer el LDR vuelven a subir.
Mi pregunta es si existe algún tipo de comando que haga algo parecido al "if b0>XXX then XXX" como podria ser "si la salida 1 esta high (recibe corriente) entonces xxx" que me permitiría "saltarme" el paso de subir o bajar persianas en caso de que las luces ya estuviesen apagadas o encendidas. En caso de no existir como resolveríais el problema?
Gracias y saludos!
Uso un LDR para que lea el valor de la luz exterior, cuando este valor es más pequeño o más grande de 150 las persianas bajan o suben respectivamente, el problema es cuando por ejemplo las persianas ya están subidas y al volver a leer el LDR vuelven a subir.
Mi pregunta es si existe algún tipo de comando que haga algo parecido al "if b0>XXX then XXX" como podria ser "si la salida 1 esta high (recibe corriente) entonces xxx" que me permitiría "saltarme" el paso de subir o bajar persianas en caso de que las luces ya estuviesen apagadas o encendidas. En caso de no existir como resolveríais el problema?
Código:
main:
gosub luces
gosub persiana
goto main
luces:
readadc 0,b0
if b0>=150 then apagar
if b0<150 then encender
apagar:
low 1
return
encender:
high 1
return
persiana:
readadc 0,b0
if b0>=150 then subir
if b0<150 then bajar
subir:
high 4
pause 50
low 4
pause 100
high 4
pause 50
low 4
pause 100
high 4
pause 50
low 4
pause 100
return
bajar:
high 5
pause 50
low 5
pause 100
high 5
pause 50
low 5
pause 100
high 5
pause 50
low 5
pause 100
return
Gracias y saludos!