bitbloq2-sentencias-condicionales

En este post aprenderemos la base de la programación: las sentencias condicionales. Para ello utilizaremos un pulsador.

¿Qué es una sentencia condicional? El bloque Si…ejecutar

Una sentencia condicional es plantearse una pregunta para actuar de una forma u otra según la respuesta. Por ejemplo, si llueve, abriré el paraguas. Si por el contrario no llueve, lo cerraré. Si hace frío, me pondré el abrigo. Si hace calor, me lo quitaré. Si es de noche, encenderé una luz. Si por el contrario es de día, la apagaré.

condicionales

¿Qué es un pulsador?

pulsador

Un pulsador es un sensor digital que al presionarlo se activa (1 o verdadero) y al dejar de pulsarlo se desactiva (0 o falso). En nuestra vida diaria estamos rodeados de pulsadores, desde los botones del ascensor a los botones de stop de los autobuses o las teclas del ordenador. Junto con las sentencias condicionales serán de gran utilidad para controlar nuestras máquinas y robots.

OJO

IMPORTANTE: Existen dos tipos de pulsadores en el mercado, los normalmente abiertos (Pulsado->1, No pulsado->0) y los normalmente cerrados (Pulsado->0, No pulsado->1). Si tienes un pulsador de Mi primer kit de Robótica o cualquier otro del mercado probablemente sea normalmente cerrado y los programas aquí descritos funcionen justo a la inversa, cambia el 1 por el 0 y viceversa a la hora de realizar tus programas.

Si se hace de noche… enciende la luz. Controlando un LED con el pulsador

Vamos a aprender a controlar un LED utilizando el pulsador. Conecta el LED al pin digital 13 y el pulsador al pin digital 7.


conexion_pulsador_led

Queremos que el LED se encienda cuando presionemos el pulsador, y se apague cuando dejemos de pulsarlo:

programa_pulsador_led_simple

En la pestaña Control encontrarás el bloque Si…ejecutar. Si presionamos nuestro pulsador, es decir, si el valor que devuelve el bloque Leer Boton_1 es igual a 1, encenderemos el LED. Recuerda que tu placa controladora nunca hace nada que no le hayas dicho. Hay que programar todo lo que quieras que haga. Si solo programas que cuando el botón valga 1, el LED se encienda, y no le dices cuando debe apagarse, el LED nunca se apagará. Por ello el bloque Si…ejecutar dispone de dos opciones más: en cambio, si y de lo contrario, ejecutar

En cambio, si…

En cambio, si permite añadir más condiciones después de la primera. Un ejemplo: si queremos comer tarta, pero no hay tarta, en cambio sí hay helado también nos vale, ¿verdad? ¡Queremos comer helado! ¡Aunque preferimos la tarta! ¡Eso es muy importante! Solo comeremos helado si NO hay tarta. En el caso de nuestro LED, queremos comprobar si el pulsador está pulsado y vale 1. Si no vale 1 pero en cambio sí vale 0, apagaremos el LED.

programa_pulsador_led_en_cambio_si

De lo contrario, ejecutar

El bloque de lo contrario, ejecutar se ejecutará cuando no se cumpla ninguna de las condiciones anteriores, es decir, cuando nuestro pulsador no esté presionado.

programa_pulsador_led ilustracion_if_pulsado_2r

Aún hay más

    A continuación te proponemos un par de ideas para seguir practicando:

  • Conecta dos LED y haz que uno se encienda y el otro se apague y viceversa, según el estado del pulsador.
  • Crea un semáforo que esté en color rojo. Puedes usar un LED de otro color si no tienes uno rojo. Cuando pulses el botón, espera cinco segundos, apaga el rojo y enciende el verde. A los veinte segundos apaga el verde y vuelve a encender el rojo.

Además, puedes seguir el siguiente videotutorial para aprender más:

Ahora que sabes cómo funcionan las sentencias condicionales y el pulsador ¡puedes empezar a hacer un montón de proyectos! En las siguientes entradas descubriremos poco a poco más sensores y actuadores. ¡Permanece atento!

11 comentarios

  1. Buenas tardes Julian, despues de hacer un ejercicio con diodos todo ha ido fenomenal, cambio para hacer otro diferente, y no me reconoce la placa bq ZUM, esto porque es? que he hecho mal? salgo de bitbloq y vuelvo a entrar y tampoco me reconoce la placa, tampoco me aparece el software en cada uno de sus campos, componentes está vacío, y todos los demás también, esto porque es? Muchas gracias, un saludo Rosa

    1. Julián Caro

      Buenos tardes Rosa

      Parece un error del propio bitbloq

      Prueba con lo siguiente:

      -Asegurate de que el programa Web2board está abierto en tu ordenador. Si trabajas bajo windows búscalo en tu lista de programas y ejecutalo, se abrira un programa de consola o símbolo del sistema, dejala abierta mientras uses bitbloq 2.

      -En el caso de que no aparezcan los bloques de software, puede deberse a que el navegador no ha podido cargar correctamente bitbloq. Cierra el navegador por completo para limpiar la cache o prueba a reiniciar.

      Si aún con esto te sigue dando problemas por favor escribenos a support-bitbloq@bq.com donde arreglarán tu problema lo más rápido posible.

      Estamos trabajando duro para que este tipo de errores esporádicos se solucionen, por lo que te agradecemos que nos los comuniques tal como has hecho hoy.

      ¡Espero que pases buenos ratos programando!

  2. Buenas tardes Julián, bueno, en principio además de disfrutar estoy sufriendo un poco, te cuento apesar de abrir Web2board siguen sin aparecer sentencias de software, de nigún tipo, es la primera vez que uso esta placa, tendré que hacer algo antes? apago y enciendo la placa, reseteo, pero todo sigue igual, además de que exista algún problema en bitbloq, quizá estaré haciendo algo mal, como puedo adjuntarte alguna imagen? este editor de texto no me deja, espero tu respuesta, gracias, un saludo Rosa

     

  3. Hola Julián, ahora nada me sale, inicio el navegador, abro web2board, conecto la placa trato de hacer algo tan simple como colocar un diodo y encenderlo, pues a la hora de elegir instrucciones no me sale ninguna, esto antes me ha funcionado, realizo los primeros pasos y se me queda eternamente compilando, no puedo hacer nada ya que conecte lo que conecte no me salen las instrucciones para programar el nuevo trabajo, espero vuestra ayuda, un saludo Rosa

    1. Julián Caro

      Buenos días Rosa

      Sin verlo yo en persona me es dificil ver lo que no funciona o estás haciendo mal.

      ¿Podrías, por favor, enviar tu problema a support-bitbloq@bq.com o llamar al teléfono +34 91 142 06 82?

      Si escribes por email puedes enviarles tu programa en formato .json, les ayudará mucho a la hora de resolver tu problema.

      Para ello puedes descargarlo desde Bitbloq 2 en: Archivo->Descargar proyecto.

      Un saludo y ¡no te desanimes! a veces, a pesar de todo nuestro trabajo y buenas intenciones, la tecnología se pone un poco cabezona ¡pero tarde o temprano todo funciona!

  4. Buenas. Estoy intentado introducir dos condiciones mediante bloques y no soy capaz. Miro el código y aparece algo raro. Por otro lado cuando creamos las variables siempre son de un tipo determinado o puedo cambiarlas.

     

    1. SGracia

      Hola Antonio,

      Asegúrate de que no metes una condición dentro de la otra (por ejemplo, que no metes el bloque de “en cambio, si” dentro del bloque “Si”).

      En cuanto a los tipos de variables, tienes el bloque en cuestión en las opciones “Avanzadas” del apartado de “Variables” (cierra la barrita verde de las cookies para verlo).

  5. Al intentar realizar el ejercicio del pulsador, una vez que está compilado el código, al apretar el botón no se enciende el diodo. Todas las sentencias y conexiones están hechas como indicas. ¿Puede ser un problema de hardware?

    Saludos y gracias

    1. SGracia

      Buenas tardes, Joaquín:

      Si la programación y las conexiones son tal cual el ejemplo del artículo, pero aún así no funciona, en efecto, el problema puede encontrarse en alguno de los componentes.

      Te aconsejo que te pongas en contacto con los compañeros de soporte, quienes podrán ayudarte en lo que necesites: http://www.bq.com/es/support

  6. Hola, me esta gustando este tutorial pero tengo un problema y es que iba hacer que enviara la lectura del sensor de luz por USB pero no me sale el apartado comunicación.¿Alguna ayuda?

    1. Enrique Heredia

      Hola Carlos,
      Para que desde la pestaña de programación te permita utilizar el USB debes añadirlo en la pestaña de Hardware. Una vez añades el componente Puerto Serie verás (en la pestaña de Software) dentro del apartado de componentes varios bloques para el puerto serie (enviar, recibir, enviar con salto de línea).
      Espero haber sido de ayuda,
      Un saludo

Los comentarios están cerrados.