Ya casi tengo hecho el proyecto, solo que no se como finalizar una última orden que necesitodarle y es la siguiente: Si se mantiene la entrada 12 en nivel alto durante más de 10 segundos, las salidas 0 y 1 deberán pasar a estado bajo, hasta una nueva pulsación desde la entrada 12.

Aqui os dejo el proyecto a ver si alguien me puede echar una manita. gracias.

' {$STAMP BS2}
' {$PBASIC 2.5}
' {$PORT COM1}

x VAR Word
OUTPUT 0
OUTPUT 1
inicio1:
IF IN12=0 THEN inicio
OUT1=0
OUT0=0
RETURN

inicio:

OUT1=1
OUT0=1
FOR x = 1 TO 1000
NEXT
OUT0=0
FOR x = 1 TO 3000
IF IN12=0 THEN inicio
NEXT
OUT1=0
GOTO inicio1
RETURN

END

Visitas: 41

Responde a esto

Respuestas a esta discusión

Bueno en la primera pregunta que haces IF IN12=0 THEN inicio
OUT1=0 OUT=0 ya parece que le das tratamiento pones a 0 las dos salidas, deberias explicar completo el problema o darnos su función lógica.
Un saludo.
Hola JAVIER, explico el funcionamiento del proyecto.

Tengo que programarlo en Basic Stanp Editor v2.5.



Si tenemos la entrada 12 a nivel 1, nos deberán actuar 2 salidas y ponerlas a nivel alto (1), por ejemplo la salida 0 y 1
Cuándo la entrada 12 pasa de nivel 1 a nivel 0, la salida 0 permanece activa durante x tiempo y la salida 1 durante otro x tiempo. Transcurrido este tiempo deberán pasar a estado (0), pero si mientras tanto la entrada 12 detecta un nivel alto deberá resetear los contadores y automáticamente las salidas 0 y 1 se pondrán en nivel alto.
Luego si la entrada 12 permance activa en estado alto (1) durante 10 segundos, la salida 0 y 1 deberán pasar a estado bajo (0), hasta un nuevo flanco de subida de la entrada 12.
Para probar el proyecto tengo el entrenador de PARALLAX HOME STAMP BASIC

SALUDOS
Bueno me parece que tu primer programa no funcionaría como quieres en el enunciado del proyecto, mira de hacer un organigrama o diagrama de flujo que te ayudará a estructurarlo.
Ya que es un sistema con estados que dependen del estado anterior deberas añadir alguna variable para ejecutar los pasos (memoria) te será mas facil aunque no imprescindible.
(Yo lo estructuraría así)
Partiendo del estado de reposo que es como arranca el programa la primera pregunta es si IN12=1 si es así pones las salidas que correspondan a su estado.La siguiente pregunta es si IN12=0 o han pasado los 10 segundos(consultando dentro del bucle).
Si ha pasado a 0 lanzo los temporizadores y en cada bucle consulto si se ha puesto a 1(si es así salto al punto de poner en alto las salidas y realizar la segunda pregunta)si terminan los temporizadores pongo a 0 sus salidas en el orden que sea.........si los10 segundos pasaron pongo a 0..................y vuelta a empezar...................................
Ruben, algo que te ayudará mucho será el montar el código con un bucle principal y 2 subrutinas con los cambios de estado que deseas. Esto te clarificará mucho el esquema, como si fuera el diagrama de flujo que comenta Javier...
Lo intento y os comento algo. Muchas gracias por vuestra ayuda.

Responder a debate

RSS

Cursos online y tutoriales


(se requiere registro previo gratuito en PortalArduino.com)

Mantenimiento del sitio

© 2024   Creado por Lorenzo M. Oliver.   [Imágenes licenciadas por Depositphotos.com] Tecnología de

Emblemas  |  Reportar un problema  |  Términos de servicio