Toma de decisiones: Condición Si…. entonces

Resumen en vídeo

Funcionamiento

Figura 1: Condicional Si

Las condiciones Si (If en inglés) son uno de los pilares de la programación, ya que permiten evaluar estados y tomar decisiones en consecuencia. Un ejemplo muy básico es el encendido de una salida digital en función del estado de activación de una entrada también digital.

Funciona como una oración condicional en español, en la que, si se cumple una condición, se realizan unas acciones y si no se cumple esa condición, se realizan otras.

Ejemplo: Si está activado el interruptor, enciende la lámpara, si no, mantenla apagada.

Condicional Si en ArduinoBlocks

El bloque se encuentra en el apartado Lógica de Arduinoblocks. En la figura 2 se muestran diferentes situaciones para ilustrar el funcionamiento básico de este bloque.

Figura 2: Ejemplos de utilización del condicinal si para vincular entradas y salidas E/S

Como se aprecia, al condicional Si se le puede unir directamente un bloque de lectura de entrada digital. Hacer esto implica que la condición se cumplirá solo cuando el puerto leído esté recibiendo 5 V.

Figura 3: Lectura de 5V (izquierda) y lectura de 0 V (derecha)

Por otro lado, si se quiere conseguir que la condición se cumpla solo cuando se reciban 0 V, bastará con incluir el bloque no delante, como se muestra en la parte derecha de la figura 3. Dicho bloque se localiza también en el apartado Lógica, y su función es la de invertir el valor de la lectura realizada.

Atención porque en los ejemplos de la figura 2 no se indica cómo se apaga el puerto 3. Programas mas completos, que ya si vinculan los dos posibles estados de las entradas digitales a los dos posibles estados de las salidas digitales, se pueden ver en las figuras 4 y 5. Ambos programas son equivalentes.

Figura 4: Dos condicionales Si para encender y apagar una salida

Figura 5: Condicional Si ampliado (explicación a continuación)

Para ampliar el bloque de condición Si con alternativas como la presentada en la  figura 5, tenemos que hacer click en su icono de configuración y arrastrar la función que queramos ampliar:

Figura 6: Ampliación del bloque Si

Se pueden añadir en el apartado hacer del bloque condicional, tantas acciones como se quiera:

Figura 7: Programa en el que el puerto 2 actúa sobre varias salidas a la vez.

A lo largo de diferentes artículos se exponen otras alternativas de programación mediante las condiciones Si, como la evaluación de igualdades, comparaciones numéricas, condiciones en serie (Y = AND) y en paralelo (O = OR), etc.

Programas con condicional Si

Programa: Encendido de una salida con un pulsador

Realiza y prueba los dos programas de las figuras 4 y 5, en los que el puerto 3 solo permanece encendido mientras se reciben 5 V en el puerto 2.

Conexión:

Para probar el programa descrito, se propone conectar un interruptor (o pulsador) como entrada digital en el puerto 2 y un led como salida en el puerto 3. Recordamos que con el objetivo de simplificar las conexiones, se pueden utilizar módulos de pulsador (o interruptor) con la conexión de la resistencia ya incluida.

Figura 8: Interruptor y led (izquierda) y conjunto módulo pulsador y led (derecha)

Programa: Encendido alterno de salidas con un pulsador

Aprovechando el esquema de conexión de la figura 8, junto con el led incluido en la placa y asociado al pin 13, se va a realizar un programa en el que, mientras que el pulsador (o interruptor) no esté accionado (esté abierto), se encenderá el led externo y se mantendrá el led de la placa apagado. Si se acciona el pulsador (se cierra), ocurrirá lo contrario.

Propuesta:

Una vez comprendido y comprobado el correcto funcionamiento del programa con un montaje físico sencillo, puedes realizar un montaje mas «práctico» conectando a la salida del puerto 3 un relé que active, por ejemplo, una lámpara. Se muestran las opciones de conexión con módulo pulsador y con un pulsador simple mas resistencia de 10 kOhm.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *