Saltar la navegación

Puerta corredera

Se trata de programar el control de una puerta corredera similar a la de la figura. Dispondrá de los siguientes elementos:

Pulsador conectado a I1.
Pulsador conectado a I2.
Final de carrera conectado a I3 (detecta puerta cerrada).
Final de carrera conectado a I4 (detecta puerta abierta).
Motor conectado a M2.
Diodo LED rojo conectado a D1.
Diodo LED verde conectado a D2.

Para simular este proyecto disponemos del archivo simPuerta.lgo:

Ficheros adjuntos: simPuerta.lgo

Podemos utilizar las siguientes instrucciones:

gira_motor2_derecha detiene_motor2
gira_motor2_izquierda
activa_salida_digital1 desactiva_salida_digital1
activa_salida_digital2 desactiva_salida_digital2
estado_entrada_digital :numero (devuelve on / off)
estado_motor (devuelve derecha, izquierda, off)
estado_salida_digital :numero (devuelve on / off)

Pinchar con el botón derecho del ratón en el enlace adjunto, seleccionar "guardar enlace como" y almacenarlo en vuestro ordenador.

En el vídeo siguiente se ve la simulación de la actividad 3, que consiste en abrir y cerrar la puerta con los pulsadores.

Actividades

Instrucciones: Abrir y ejecutar el archivo simPuerta.lgo. Completar las actividades y comprobar su funcionamiento en el entorno de FMSLogo.

1.- Completar el procedimiento adjunto para que la puerta se abra al pulsar I1 y se detenga al llegar al final de carrera I4.

para puerta1
siempre [
 "I1 1
haz "I4 4
:I1 = [gira_motor2_derecha]
:I4 = [detiene_motor2]
]
fin

 

2.- Ampliar el programa anterior, añadiendo unas líneas de código similares, de manera que al pulsar I2 la puerta se cierre y al llegar al final de carrera I3 se detenga. Cuando ejecutéis el programa veréis que no funciona correctamente, ya que la puerta no se abre. Esto es debido a que con la puerta cerrada el final de carrera I3 está presionado y, por tanto, inmediatamente después de pulsar I4 y decirle al motor que gire a derecha también le indicamos que debe pararse (por estar I3 presionado).

 

3.- Para resolver el problema podemos crear una variable (la llamaremos m2) para almacenar en ella el estado en el que se encuentra el motor: derecha (puerta abriéndose), izquierda (puerta cerrándose) y off (puerta parada). De esta manera podremos hacer preguntas dobles y resolver las ambigüedades anteriores, tal como se muestra en el procedimiento siguiente:

para puerta3
siempre [
haz "m2 estado_motor 2
;el valor de "m2 será off, derecha o izquierda
 "I1 1
 "I2 2
 "I3 3
 "I4 4
:I1 = [gira_motor2_derecha]
:I4 = = "derecha [
    ]
= "on [gira_motor2_izquierda] 
:I3 = "on =  [
      ]
]
fin

 

4.- Realizar un programa para controlar la apertura y cierre de una puerta que cumpla las siguientes condiciones: la puerta se abre al pulsar cualquiera de los pulsadores (I1 o I2) y una vez abierta esperará 20 segundos antes de cerrarse automáticamente.

Montaje real

En el vídeo hemos utilizado uno de los pulsadores que incluye la tarjeta (I1) para dar la orden de apertura de la puerta, una vez abierta, permanece así 10 segundos y se cierra automáticamente.

Obra publicada con Licencia Creative Commons Reconocimiento Compartir igual 4.0