SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
Programando con variables en bitbloq
¿Qué es una variable y para qué sirve?
Una variable es como una “caja” donde guardaremos un dato, un valor que podremos ver y recuperar más adelante durante el
resto del programa. Además, en cualquier momento se puede cambiar ese valor guardado.
Declarando variables:
Al declarar una variable lo que hacemos es crear esa “caja” y guardar por primera vez un dato en ella. En bitbloq el dato que
guardemos puede ser de tipo número o de tipo texto. Al declarar la variable defines de que tipo es, por ejemplo: si lo primero
que guardaste es un número, esa variable va a ser siempre para guardar números (¡no mezcles tipos!)
Puedes renombrar como quieras una variable. Esta cualidad te servirá para identificar en todo momento tu “caja”. Aquí algunos
ejemplos de declaración de variables:
También podemos guardar el valor que nos devuelve directamente un sensor. Este caso lo verás habitualmente en las
siguientes lecciones:
Usando variables:
En bitbloq tienes bloques para “mirar la caja” (mira el valor que hay guardado en ese momento en la variable) y bloques para
guardar un nuevo valor en ella (borrando el anterior).
Diferencia entre variable GLOBAL y variable LOCAL:
Como bien explicamos en las primeras lecciones (ver lección programación LEDs), la placa controladora ejecuta el programa
que le carguemos siguiendo los bloques en orden (de arriba a abajo) y repitiéndolo infinitamente en forma de bucle.
Por este motivo, es importante saber en qué momento del programa usamos y declaramos las variables. En bitbloq se pueden
programar variables LOCALES y GLOBALES.
 Variables GLOBALES: se crean al inicio nada más encender la placa, antes incluso de empezar el bucle del
programa.
 Variables LOCALES: se crean justo en el instante de declarar la variable, ya dentro del bucle.
Este es un ejemplo de código erróneo, ya que se intenta usar y comparar la variable local cuando todavía no se había
declarado. Recuerda que el código se va a ejecutar de arriba a abajo.
Esta sería la forma correcta de usarla: primero la declaramos y más adelante la usamos.
Comunicación Serie USB con bitbloq
En este post os vamos a enseñar cómo realizar una comunicación por puerto serie USB entre vuestro ordenador y la placa
controladora. Lo diré de otra forma más sencilla: transferir información y órdenes a tu placa por el cable USB.
Una comunicación consta siempre de dos partes, un emisor y un receptor. Por tanto, vamos a necesitar dos cosas:
1. Programa dentro de la placa controladora que envíe/reciba datos. (Lo haremos con bitbloq)
2. Programa dentro del ordenador que envíe/reciba datos. (Usaremos el Monitor Serial de la IDE de Arduino)
Abre bitbloq y descarga el IDE de Arduino. Conecta tu placa Arduino al ordenador con el cable USB y… ¡Comenzamos!
“”Aquí robonauta llamando a Base Eco, ¿me recibe?””
ESCRIBIR POR PUERTO SERIE
El ejemplo siguiente envía desde la placa controladora la palabra ‘NEGRO‘ cuando un sensor IR detecta ese color. Conecta
dicho sensor al pin digital 3:
Parte 1: EMISOR – Programación en bitbloq
Para programar un envío de un dato desde la placa en bitbloq, tan sólo será necesario el bloque llamado “Imprimir por puerto
serie”
Es así sencillo entonces crear un programa en el que se compara cada segundo (1000 ms) el valor del sensor y si éste vale 0
envia la palabra. Carga este programa en tu placa:
Parte 2: RECEPTOR – Usando el Monitor Serial de Arduino IDE
Como hemos dicho, utilizaremos el Monitor Serial del IDE de Arduino. Con la placa conectada, abre el programa Arduino y
cierra bitbloq.
Ahora selecciona la placa controladora en Herramientas/Tarjeta.
Selecciona el puerto donde está conectada la placa en Herramientas/Puerto Serial:
Ya podemos abrir el Monitor Serial en Herramientas/Monitor Serial o pulsando aquí:
Se abrirá esta ventana donde debemos comprobar que esté marcada una velocidad de 9600 baudios.
Si el sensor IR de nuestro ejemplo comienza a detectar varias veces, en el monitor irá apareciendo la palabra ‘NEGRO’ sin
cesar:
Si queremos ver el resultado un poco más ordenado, podemos utilizar el bloque bitbloq “Imprimir por puerto serie con salto de
linea“:
De esta forma conseguiremos una respuesta más separada así:
Programando los bloques de control-
El bloque Si… ejecutar
Hoy vamos a aprender a cómo usar los bloques de bitbloq de la pestaña Control en concreto el bloque Si… ejecutar
Hoy necesitarás:
1. LED
2. Sensor de luz
3. Pulsador
4. Una placa controladora Arduino
5. Un cable USB
El bloque si…ejecutar
Aprendiendo lo que es una sentencia condicional
Un momento, no tan rapido. ¿Una sentencia condicional? ¿Qué es eso?
Una sentencia condicional es una condición, algo que tiene que cumplirse para que se ejecute una parte del programa.
Es muy sencillo, por ejemplo: Si has sido bueno, los reyes magos te traeran regalos. Si no recoges tu habitación, tu madre te
castigará. Si presiono el botón, el LED se encenderá.
Es un bloque fundamental que nos permitirá decirle a nuestro programa cuando debe suceder una cosa y cuando otra.
¿Cómo funciona? Veamoslo en el siguiente ejemplo:
Ejemplo con el bloque si… ejecutar
Utilizando el bloque Si…ejecutar, hacer que se encienda el LED cuando se pulse el pulsador
En primer lugar, conecta tu LED y tu Pulsador a tu placa siguiendo el siguiente esquema:
Queremos que, al presionar nuestro pulsador, el LED se encienda.
Es decir:
Si el pulsador está presionado… el LED se enciende
Por tanto, tenemos que usar el bloque Si… ejecutar, el programa quedará del siguiente modo:
Recuerda que dependiendo del típo de pulsador que tengas, al estar presionado puede tener un valor de 1 o 0. Si posees uno
de nuestros kits de robótica, al presionar el botón su valor valdrá 0.
Como puedes observar, al presionar el botón, el LED se enciende, y permanece encendido indefinidamente… y es qué nuestra
placa es muy tonta y… ¡solo hace lo que le decimos! tenemos que decirle que ocurre cuando el pulsador no esté pulsado!
¿Cómo podemos hacer ésto? Fijate en el siguiente programa:
Como puedes ver,el bloque Si …entonces puede tener más opciones como de lo contrario que se ejecutará cuando no se
cumpla la condición, es decir, cuando nuestro pulsador no este presionado. Para añadir la opción de lo contrario pulsa sobre la
estrella del bloque y agrégala:
Además existe una opción más dentro de éste bloque, la opción: en cambio, si. Está opción te permite añadir más condiciones
despues 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
Vamos a abandonar a nuestro querido pulsador y a hacer un ejercicio con el sensor de luz y la opción en cambio, si:
Ejemplo 2
Hacer que un LED parpadee cuando el sensor de luz detecte poca cantidad de luz, y se encienda cuando
este a oscuras
Voy a confesarte una cosa, tengo miedo a la oscuridad. Por las noches no voy al baño por muchas ganas que tenga hasta la
mañana siguiente, no me gusta nada no tener luz y andar por ese pasillo, a saber que monstruos acechan por ahí, quiza la
profe de mates …
Por eso he decidido ponerme manos a la obra e inventarme una alarma de noche. ¡Para no quedarme nunca a oscuras! Estuve
hablando con un reputado luminógrafo y, tras muchas discusiones, llegamos a la conclusión de que mi revolucionaria máquina,
que cambiaría la infancia de la humanidad, tendría que ser de la siguiente forma:
-Si la cantidad de luz es menor que 100-> ¡Ay que está muy negro todo!->ENCIENDE EL LED
-En cambio, si la cantidad de luz es menor que 200, bueno, da un poco de miedo…->¡EL LED PARPADEA!
-De lo contrario, si brilla el sol no te preocupes… ¡Si yo soy muy valiente! ->APAGA EL LED
¡Ríete tú del iphone! ¡Manos a la obra! Lo primero será realizar nuestras conexiones en la placa:
Recuerda que el sensor de luz es un componente analógico.
Por lo que tendrá que ir conectado a los pines analógicos de tu placa.
Ahora que lo tienes todo conectado ¿Por qué no intentas programarlo por tí mismo? Verás como pronto llegas a la solución.
Si todo fue bien deberías haber hecho algo parecido a ésto:
Pronto veremos con más detalle las operaciones lógicas, pero en el caso de que quieras dentro del bloque Si…ejecutar que se
cumpla más de una condición, como por ejemplo, que el pulsador esté presionado y la luz sea menor que 30 puedes hacerlo
de la siguiente forma:
00:00:56
¿Qué te parece? Puede que tengas dudas de cuando usar el bloque. ¡No te preocupes! ¡La práctica hace al maestro!
Programando los bloques lógicos
Si es igual y/o distinto de no verdadero…
Hoy vamos a aprender como funcionan los bloques de la pestaña Lógica.
Hay cuatro bloques con distintas opciones cada uno. ¡Veamos en que consisten!
Para realizar los ejemplos de hoy, necesitarás:
 1 LED
 1 Potenciómetro
 1 Zumbador
 1 Pulsador
 1 Sensor de luz
 Una placa controladora Arduino
 Un cable USB
El bloque de comparación
Te suena ¿verdad?. Hemos usado este bloque a menudo junto con el el bloque de control Si…ejecutar .
Este bloque devuelve verdadero o falso según las dos entradas sean:
 = iguales.
 ≠ distintas.
 < la primera menor que la segunda.
 ≤ la primera menor o igual que la segunda.
 > la primera mayor que la segunda.
 ≥ la primera mayor o igual que la segunda.
De esta forma, junto al bloque Si…ejecutar podemos establecer condiciones para que nuestro programa haga unas cosas u
otras según las condiciones que elijamos. Veamos un ejemplo:
Ejemplo con el bloque de comparación
Hacer que se encienda un LED cuando el valor del potenciómetro sea menor que 500
En caso de que el valor del potenciómetro sea menor que 500, es decir, un valor comprendido entre 0 y 499, el LED se
encenderá. En caso contrario, de 500 a 1023 valores (recuerda que el potenciómetro varía sus valores entre 0 y 1023), el LED
se apagará.
El bloque Y/O
Este bloque sirve para comprobar varias condiciones al mismo tiempo:
 Opción Y: Deben cumplirse ambas condiciones para que el valor sea verdadero y la acción se ejecute.
 Opción O: Al menos una de las dos condiciones debe cumplirse para que el valor sea verdadero y la acción se
ejecute.
Vamos a ver un ejemplo para que experimentes la diferencia entre la opción Y y la opción O:
Ejemplo con el bloque Y/O
Hacer que suene el zumbador cuando se cumplan las siguientes condiciones:
 la variable luz es menor o igual que 300 y
 el pulsador, entonces el zumbador sonará.
En este caso el zumbador sonará solo en el caso de que se cumplan las dos condiciones, es decir:
Si cualquiera de las dos no se cumple, la condición no será verdadera y el zumbador no sonará.
Hagamos una cosa, modifica el programa anterior, y en vez de la opción Y usa una opción O ¿Qué ocurre ahora?
Ahora tu zumbador sonará más a menudo, ya que le estamos diciendo al programa lo siguiente: Si la variable luz es menor o
igual que 300 o presionamos el pulsador, que el zumbador suene. Es decir, nos vale con que una de las dos condiciones se
cumpla. ¿Ves la diferencia?
El bloque verdadero/falso
Este bloque nos devuelve el valor verdadero o falso, para entenderlo lo mejor es que hagamos un ejemplo:
Ejemplo con el bloque verdadero/falso
Hacer un programa que haga que, cuando la luz sea mayor o igual que 300, se encienda el LED y que, de lo contrario, se
apague.
Recuerdas este programa ¿verdad?. Hoy vamos a hacerlo un poco diferente:
La variable mucha_luz leerá el valor del sensor de luz y si éste es mayor o igual que 300, la variable tendrá un valor
de verdadero, en caso contrario, será falso.
De esta forma podemos comparar el valor de la variable directamente usando el bloque verdadero, si es verdadero significará
que habrá mucha luz y el LED se encenderá.
El bloque No
Este bloque nos permite negar una variable o estado, por ejemplo, si al verdadero le ponemos un bloque No:
Decir no verdadero es lo mismo que decir que algo es falso.
Veamos un pequeño ejemplo:
Ejemplo con el bloque No
Hacer un programa que haga sonar el zumbador si el pulsador está pulsado utilizando el bloque No.
Este programa es una versión modificada de otro que realizamos hace tiempo:
La variable boton_sin_pulsar será verdadero siempre que el pulsador no esté presionada.
Si queremos que el zumbador suene, nuestra condición es: Si no variable boton_sin_pulsar. Es decir, si la negación de
botón sin pulsar es verdadero, o lo que es lo mismo, si el pulsador está presionado, entonces el zumbador sonará.
Como recordaras hay formas mucho más sencillas para realizar este programa, este es solo un ejemplo para que entiendas el
funcionamiento del bloque No. En ocasiones negar el valor de una variable te será de gran utilidad.
La lógica es fundamental para que tu programa vaya bien, si te acostumbras a razonar de forma lógica, las cosas empezarán a
funcionar como por arte de magia. La diferencia será que tu serás el mago y sabrás exactamente donde está y cómo funciona
el truco.
Aún así, siempre que empieces un proyecto, recuerda:
“Hay algo más importante que la lógica: es la imaginación”
Alfred Hitchcock

Más contenido relacionado

La actualidad más candente

Sensor ldr con arduino uno
Sensor ldr con arduino unoSensor ldr con arduino uno
Sensor ldr con arduino unojacobbo
 
Guia de infor 4.pptx
 Guia de infor 4.pptx Guia de infor 4.pptx
Guia de infor 4.pptxthefaut
 
Guia de infor 4
Guia de infor 4Guia de infor 4
Guia de infor 4juanchayan
 
Resumen de mindstorms education
Resumen de mindstorms educationResumen de mindstorms education
Resumen de mindstorms educationfoxperro
 
Resumen de mindstorms education
Resumen de mindstorms educationResumen de mindstorms education
Resumen de mindstorms educationfoxperro
 
Libro arduino blocks 40 proyectos resueltos
Libro   arduino blocks 40 proyectos resueltos Libro   arduino blocks 40 proyectos resueltos
Libro arduino blocks 40 proyectos resueltos polpol2
 
Cifuentes 905
Cifuentes 905Cifuentes 905
Cifuentes 905Ponky905
 
HARDWARE DEL ROBOT LEGO
HARDWARE DEL ROBOT LEGOHARDWARE DEL ROBOT LEGO
HARDWARE DEL ROBOT LEGOscribere
 
Colegio nacional nicolás esguerra 1000000.ppsx
Colegio nacional nicolás esguerra 1000000.ppsxColegio nacional nicolás esguerra 1000000.ppsx
Colegio nacional nicolás esguerra 1000000.ppsxFelipe Torres Gutierrez
 
Colegio nacional nicolás esguerra
Colegio nacional nicolás esguerra Colegio nacional nicolás esguerra
Colegio nacional nicolás esguerra Andres Arenastellez
 

La actualidad más candente (17)

Sensor ldr con arduino uno
Sensor ldr con arduino unoSensor ldr con arduino uno
Sensor ldr con arduino uno
 
Guia de infor 4.pptx
 Guia de infor 4.pptx Guia de infor 4.pptx
Guia de infor 4.pptx
 
Guia de infor 4
Guia de infor 4Guia de infor 4
Guia de infor 4
 
presentación 1
presentación 1presentación 1
presentación 1
 
Resumen de mindstorms education
Resumen de mindstorms educationResumen de mindstorms education
Resumen de mindstorms education
 
Resumen de mindstorms education
Resumen de mindstorms educationResumen de mindstorms education
Resumen de mindstorms education
 
Libro arduino blocks 40 proyectos resueltos
Libro   arduino blocks 40 proyectos resueltos Libro   arduino blocks 40 proyectos resueltos
Libro arduino blocks 40 proyectos resueltos
 
Guia de infor 4
Guia de infor 4Guia de infor 4
Guia de infor 4
 
Cifuentes 905
Cifuentes 905Cifuentes 905
Cifuentes 905
 
HARDWARE DEL ROBOT LEGO
HARDWARE DEL ROBOT LEGOHARDWARE DEL ROBOT LEGO
HARDWARE DEL ROBOT LEGO
 
Proyecto cosa
Proyecto cosaProyecto cosa
Proyecto cosa
 
Colegio nacional nicolás esguerra 1000000.ppsx
Colegio nacional nicolás esguerra 1000000.ppsxColegio nacional nicolás esguerra 1000000.ppsx
Colegio nacional nicolás esguerra 1000000.ppsx
 
Colegio nacional nicolás esguerra
Colegio nacional nicolás esguerra Colegio nacional nicolás esguerra
Colegio nacional nicolás esguerra
 
TRABAJO DE INFORMATICA
TRABAJO DE INFORMATICATRABAJO DE INFORMATICA
TRABAJO DE INFORMATICA
 
Taller roboticalibrearduino
Taller roboticalibrearduinoTaller roboticalibrearduino
Taller roboticalibrearduino
 
Guia de infor 420
Guia de infor 420Guia de infor 420
Guia de infor 420
 
Presentacion nxt 2
Presentacion nxt 2 Presentacion nxt 2
Presentacion nxt 2
 

Destacado

4 funcions sense retorn
4  funcions sense retorn4  funcions sense retorn
4 funcions sense retornVisemi VI
 
Arduino: Programación y Robótica en Secundaria
Arduino: Programación y Robótica en SecundariaArduino: Programación y Robótica en Secundaria
Arduino: Programación y Robótica en SecundariaJosé Pujol Pérez
 
BQ: Construyendo nuevas herramientas para emprender, por Adán Muñoz, cofundad...
BQ: Construyendo nuevas herramientas para emprender, por Adán Muñoz, cofundad...BQ: Construyendo nuevas herramientas para emprender, por Adán Muñoz, cofundad...
BQ: Construyendo nuevas herramientas para emprender, por Adán Muñoz, cofundad...OpenExpoES
 
Instalación de drivers y software de Arduino
Instalación de drivers y software de ArduinoInstalación de drivers y software de Arduino
Instalación de drivers y software de ArduinoLuis Torreño Peromingo
 
P7: Kiwibot Basic Shield: Control LED desde PUERTO SERIE
P7: Kiwibot Basic Shield: Control LED desde PUERTO SERIEP7: Kiwibot Basic Shield: Control LED desde PUERTO SERIE
P7: Kiwibot Basic Shield: Control LED desde PUERTO SERIEJosé Pujol Pérez
 
P5: Kiwibot Basic Shield: Control luminosidad LED RGB
P5: Kiwibot Basic Shield: Control luminosidad LED RGBP5: Kiwibot Basic Shield: Control luminosidad LED RGB
P5: Kiwibot Basic Shield: Control luminosidad LED RGBJosé Pujol Pérez
 
P4: Kiwibot Basic Shield: Interruptor crepuscular
P4: Kiwibot Basic Shield: Interruptor crepuscularP4: Kiwibot Basic Shield: Interruptor crepuscular
P4: Kiwibot Basic Shield: Interruptor crepuscularJosé Pujol Pérez
 
P3: Kiwibot Basic Shield: Pulsador Salidas digitales
P3: Kiwibot Basic Shield: Pulsador Salidas digitalesP3: Kiwibot Basic Shield: Pulsador Salidas digitales
P3: Kiwibot Basic Shield: Pulsador Salidas digitalesJosé Pujol Pérez
 
P8: Kiwibot Basic Shield: Control de Servo de Posición
P8: Kiwibot Basic Shield: Control de Servo de PosiciónP8: Kiwibot Basic Shield: Control de Servo de Posición
P8: Kiwibot Basic Shield: Control de Servo de PosiciónJosé Pujol Pérez
 
P2: Kiwibot Basic Shield: Semáforo
P2: Kiwibot Basic Shield: SemáforoP2: Kiwibot Basic Shield: Semáforo
P2: Kiwibot Basic Shield: SemáforoJosé Pujol Pérez
 
P10: Kiwibot Basic Shield: Control Vehiculos con Servos
P10: Kiwibot Basic Shield: Control Vehiculos con ServosP10: Kiwibot Basic Shield: Control Vehiculos con Servos
P10: Kiwibot Basic Shield: Control Vehiculos con ServosJosé Pujol Pérez
 
Taller fabricación de robots-d1
Taller fabricación de robots-d1Taller fabricación de robots-d1
Taller fabricación de robots-d1José Pujol Pérez
 
Programacion y Robótica Secundaria Open Source
Programacion y Robótica Secundaria Open SourceProgramacion y Robótica Secundaria Open Source
Programacion y Robótica Secundaria Open SourceJosé Pujol Pérez
 
Programacion y Robotica Secundaria-Linea Trabajo Propuesta
Programacion y Robotica Secundaria-Linea Trabajo PropuestaProgramacion y Robotica Secundaria-Linea Trabajo Propuesta
Programacion y Robotica Secundaria-Linea Trabajo PropuestaJosé Pujol Pérez
 

Destacado (20)

Curso arduino basico bitbloq
Curso arduino basico bitbloqCurso arduino basico bitbloq
Curso arduino basico bitbloq
 
4 funcions sense retorn
4  funcions sense retorn4  funcions sense retorn
4 funcions sense retorn
 
Arduino: Programación y Robótica en Secundaria
Arduino: Programación y Robótica en SecundariaArduino: Programación y Robótica en Secundaria
Arduino: Programación y Robótica en Secundaria
 
BQ: Construyendo nuevas herramientas para emprender, por Adán Muñoz, cofundad...
BQ: Construyendo nuevas herramientas para emprender, por Adán Muñoz, cofundad...BQ: Construyendo nuevas herramientas para emprender, por Adán Muñoz, cofundad...
BQ: Construyendo nuevas herramientas para emprender, por Adán Muñoz, cofundad...
 
Instalación de drivers y software de Arduino
Instalación de drivers y software de ArduinoInstalación de drivers y software de Arduino
Instalación de drivers y software de Arduino
 
1.4 open hardware
1.4   open hardware1.4   open hardware
1.4 open hardware
 
P7: Kiwibot Basic Shield: Control LED desde PUERTO SERIE
P7: Kiwibot Basic Shield: Control LED desde PUERTO SERIEP7: Kiwibot Basic Shield: Control LED desde PUERTO SERIE
P7: Kiwibot Basic Shield: Control LED desde PUERTO SERIE
 
P5: Kiwibot Basic Shield: Control luminosidad LED RGB
P5: Kiwibot Basic Shield: Control luminosidad LED RGBP5: Kiwibot Basic Shield: Control luminosidad LED RGB
P5: Kiwibot Basic Shield: Control luminosidad LED RGB
 
P4: Kiwibot Basic Shield: Interruptor crepuscular
P4: Kiwibot Basic Shield: Interruptor crepuscularP4: Kiwibot Basic Shield: Interruptor crepuscular
P4: Kiwibot Basic Shield: Interruptor crepuscular
 
P3: Kiwibot Basic Shield: Pulsador Salidas digitales
P3: Kiwibot Basic Shield: Pulsador Salidas digitalesP3: Kiwibot Basic Shield: Pulsador Salidas digitales
P3: Kiwibot Basic Shield: Pulsador Salidas digitales
 
P8: Kiwibot Basic Shield: Control de Servo de Posición
P8: Kiwibot Basic Shield: Control de Servo de PosiciónP8: Kiwibot Basic Shield: Control de Servo de Posición
P8: Kiwibot Basic Shield: Control de Servo de Posición
 
P2: Kiwibot Basic Shield: Semáforo
P2: Kiwibot Basic Shield: SemáforoP2: Kiwibot Basic Shield: Semáforo
P2: Kiwibot Basic Shield: Semáforo
 
P10: Kiwibot Basic Shield: Control Vehiculos con Servos
P10: Kiwibot Basic Shield: Control Vehiculos con ServosP10: Kiwibot Basic Shield: Control Vehiculos con Servos
P10: Kiwibot Basic Shield: Control Vehiculos con Servos
 
Taller fabricación de robots-d1
Taller fabricación de robots-d1Taller fabricación de robots-d1
Taller fabricación de robots-d1
 
S4A Metodologia
S4A MetodologiaS4A Metodologia
S4A Metodologia
 
Scratch 4ºeso-2014
Scratch 4ºeso-2014Scratch 4ºeso-2014
Scratch 4ºeso-2014
 
Programacion y Robótica Secundaria Open Source
Programacion y Robótica Secundaria Open SourceProgramacion y Robótica Secundaria Open Source
Programacion y Robótica Secundaria Open Source
 
Programacion y Robotica Secundaria-Linea Trabajo Propuesta
Programacion y Robotica Secundaria-Linea Trabajo PropuestaProgramacion y Robotica Secundaria-Linea Trabajo Propuesta
Programacion y Robotica Secundaria-Linea Trabajo Propuesta
 
Scratch: Clones
Scratch: ClonesScratch: Clones
Scratch: Clones
 
S4A Metodo Trabajo
S4A Metodo TrabajoS4A Metodo Trabajo
S4A Metodo Trabajo
 

Similar a Sessió 2 (20)

Cargando el primer programa de arduino
Cargando el primer programa de arduinoCargando el primer programa de arduino
Cargando el primer programa de arduino
 
Ewcc1
Ewcc1Ewcc1
Ewcc1
 
Proyecto Arduino y Proteus
Proyecto Arduino y ProteusProyecto Arduino y Proteus
Proyecto Arduino y Proteus
 
Ficha-1.pdf
Ficha-1.pdfFicha-1.pdf
Ficha-1.pdf
 
Manual mind+
Manual mind+Manual mind+
Manual mind+
 
Legor
LegorLegor
Legor
 
Trabajo mindstorms
Trabajo mindstormsTrabajo mindstorms
Trabajo mindstorms
 
Curso MPLAB pic 4 compilando y simulando el programa 10p
Curso MPLAB pic 4 compilando y simulando el programa 10pCurso MPLAB pic 4 compilando y simulando el programa 10p
Curso MPLAB pic 4 compilando y simulando el programa 10p
 
Ficha 1.pdf
Ficha 1.pdfFicha 1.pdf
Ficha 1.pdf
 
lego nxt
lego nxtlego nxt
lego nxt
 
Melissa cantillano plantilla implementacionprot2
Melissa cantillano plantilla implementacionprot2Melissa cantillano plantilla implementacionprot2
Melissa cantillano plantilla implementacionprot2
 
Cifuentes 905
Cifuentes 905Cifuentes 905
Cifuentes 905
 
Cifuentes 905
Cifuentes 905Cifuentes 905
Cifuentes 905
 
Lego mindstormsm ntx
Lego mindstormsm ntxLego mindstormsm ntx
Lego mindstormsm ntx
 
Colegio nacional nicolás esguerra 3
Colegio nacional nicolás esguerra 3Colegio nacional nicolás esguerra 3
Colegio nacional nicolás esguerra 3
 
TALLER SCRATCH 1º ó 2º ESO (1).pdf
TALLER SCRATCH 1º ó 2º ESO (1).pdfTALLER SCRATCH 1º ó 2º ESO (1).pdf
TALLER SCRATCH 1º ó 2º ESO (1).pdf
 
Colegio nacional nicolás esguerra 3
Colegio nacional nicolás esguerra 3Colegio nacional nicolás esguerra 3
Colegio nacional nicolás esguerra 3
 
Lego mindstorms
Lego mindstormsLego mindstorms
Lego mindstorms
 
Tarea subir final
Tarea subir finalTarea subir final
Tarea subir final
 
Plantilla implementación Jenny
Plantilla implementación JennyPlantilla implementación Jenny
Plantilla implementación Jenny
 

Último

CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfNataliaMalky1
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdfÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdfluisantoniocruzcorte1
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptAlberto Rubio
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfEDILIAGAMBOA
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxMartín Ramírez
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadJonathanCovena1
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 

Último (20)

CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdfÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdf
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la Sostenibilidad
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 

Sessió 2

  • 1. Programando con variables en bitbloq ¿Qué es una variable y para qué sirve? Una variable es como una “caja” donde guardaremos un dato, un valor que podremos ver y recuperar más adelante durante el resto del programa. Además, en cualquier momento se puede cambiar ese valor guardado. Declarando variables: Al declarar una variable lo que hacemos es crear esa “caja” y guardar por primera vez un dato en ella. En bitbloq el dato que guardemos puede ser de tipo número o de tipo texto. Al declarar la variable defines de que tipo es, por ejemplo: si lo primero que guardaste es un número, esa variable va a ser siempre para guardar números (¡no mezcles tipos!) Puedes renombrar como quieras una variable. Esta cualidad te servirá para identificar en todo momento tu “caja”. Aquí algunos ejemplos de declaración de variables: También podemos guardar el valor que nos devuelve directamente un sensor. Este caso lo verás habitualmente en las siguientes lecciones: Usando variables: En bitbloq tienes bloques para “mirar la caja” (mira el valor que hay guardado en ese momento en la variable) y bloques para guardar un nuevo valor en ella (borrando el anterior).
  • 2. Diferencia entre variable GLOBAL y variable LOCAL: Como bien explicamos en las primeras lecciones (ver lección programación LEDs), la placa controladora ejecuta el programa que le carguemos siguiendo los bloques en orden (de arriba a abajo) y repitiéndolo infinitamente en forma de bucle. Por este motivo, es importante saber en qué momento del programa usamos y declaramos las variables. En bitbloq se pueden programar variables LOCALES y GLOBALES.  Variables GLOBALES: se crean al inicio nada más encender la placa, antes incluso de empezar el bucle del programa.  Variables LOCALES: se crean justo en el instante de declarar la variable, ya dentro del bucle. Este es un ejemplo de código erróneo, ya que se intenta usar y comparar la variable local cuando todavía no se había declarado. Recuerda que el código se va a ejecutar de arriba a abajo. Esta sería la forma correcta de usarla: primero la declaramos y más adelante la usamos.
  • 3. Comunicación Serie USB con bitbloq En este post os vamos a enseñar cómo realizar una comunicación por puerto serie USB entre vuestro ordenador y la placa controladora. Lo diré de otra forma más sencilla: transferir información y órdenes a tu placa por el cable USB. Una comunicación consta siempre de dos partes, un emisor y un receptor. Por tanto, vamos a necesitar dos cosas: 1. Programa dentro de la placa controladora que envíe/reciba datos. (Lo haremos con bitbloq) 2. Programa dentro del ordenador que envíe/reciba datos. (Usaremos el Monitor Serial de la IDE de Arduino) Abre bitbloq y descarga el IDE de Arduino. Conecta tu placa Arduino al ordenador con el cable USB y… ¡Comenzamos! “”Aquí robonauta llamando a Base Eco, ¿me recibe?”” ESCRIBIR POR PUERTO SERIE El ejemplo siguiente envía desde la placa controladora la palabra ‘NEGRO‘ cuando un sensor IR detecta ese color. Conecta dicho sensor al pin digital 3: Parte 1: EMISOR – Programación en bitbloq Para programar un envío de un dato desde la placa en bitbloq, tan sólo será necesario el bloque llamado “Imprimir por puerto serie” Es así sencillo entonces crear un programa en el que se compara cada segundo (1000 ms) el valor del sensor y si éste vale 0 envia la palabra. Carga este programa en tu placa:
  • 4. Parte 2: RECEPTOR – Usando el Monitor Serial de Arduino IDE Como hemos dicho, utilizaremos el Monitor Serial del IDE de Arduino. Con la placa conectada, abre el programa Arduino y cierra bitbloq. Ahora selecciona la placa controladora en Herramientas/Tarjeta. Selecciona el puerto donde está conectada la placa en Herramientas/Puerto Serial: Ya podemos abrir el Monitor Serial en Herramientas/Monitor Serial o pulsando aquí: Se abrirá esta ventana donde debemos comprobar que esté marcada una velocidad de 9600 baudios.
  • 5. Si el sensor IR de nuestro ejemplo comienza a detectar varias veces, en el monitor irá apareciendo la palabra ‘NEGRO’ sin cesar: Si queremos ver el resultado un poco más ordenado, podemos utilizar el bloque bitbloq “Imprimir por puerto serie con salto de linea“: De esta forma conseguiremos una respuesta más separada así:
  • 6. Programando los bloques de control- El bloque Si… ejecutar Hoy vamos a aprender a cómo usar los bloques de bitbloq de la pestaña Control en concreto el bloque Si… ejecutar Hoy necesitarás: 1. LED 2. Sensor de luz 3. Pulsador 4. Una placa controladora Arduino 5. Un cable USB El bloque si…ejecutar Aprendiendo lo que es una sentencia condicional Un momento, no tan rapido. ¿Una sentencia condicional? ¿Qué es eso?
  • 7. Una sentencia condicional es una condición, algo que tiene que cumplirse para que se ejecute una parte del programa. Es muy sencillo, por ejemplo: Si has sido bueno, los reyes magos te traeran regalos. Si no recoges tu habitación, tu madre te castigará. Si presiono el botón, el LED se encenderá. Es un bloque fundamental que nos permitirá decirle a nuestro programa cuando debe suceder una cosa y cuando otra. ¿Cómo funciona? Veamoslo en el siguiente ejemplo: Ejemplo con el bloque si… ejecutar Utilizando el bloque Si…ejecutar, hacer que se encienda el LED cuando se pulse el pulsador En primer lugar, conecta tu LED y tu Pulsador a tu placa siguiendo el siguiente esquema: Queremos que, al presionar nuestro pulsador, el LED se encienda. Es decir: Si el pulsador está presionado… el LED se enciende Por tanto, tenemos que usar el bloque Si… ejecutar, el programa quedará del siguiente modo: Recuerda que dependiendo del típo de pulsador que tengas, al estar presionado puede tener un valor de 1 o 0. Si posees uno de nuestros kits de robótica, al presionar el botón su valor valdrá 0. Como puedes observar, al presionar el botón, el LED se enciende, y permanece encendido indefinidamente… y es qué nuestra placa es muy tonta y… ¡solo hace lo que le decimos! tenemos que decirle que ocurre cuando el pulsador no esté pulsado! ¿Cómo podemos hacer ésto? Fijate en el siguiente programa:
  • 8. Como puedes ver,el bloque Si …entonces puede tener más opciones como de lo contrario que se ejecutará cuando no se cumpla la condición, es decir, cuando nuestro pulsador no este presionado. Para añadir la opción de lo contrario pulsa sobre la estrella del bloque y agrégala: Además existe una opción más dentro de éste bloque, la opción: en cambio, si. Está opción te permite añadir más condiciones despues 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 Vamos a abandonar a nuestro querido pulsador y a hacer un ejercicio con el sensor de luz y la opción en cambio, si: Ejemplo 2 Hacer que un LED parpadee cuando el sensor de luz detecte poca cantidad de luz, y se encienda cuando este a oscuras Voy a confesarte una cosa, tengo miedo a la oscuridad. Por las noches no voy al baño por muchas ganas que tenga hasta la mañana siguiente, no me gusta nada no tener luz y andar por ese pasillo, a saber que monstruos acechan por ahí, quiza la profe de mates … Por eso he decidido ponerme manos a la obra e inventarme una alarma de noche. ¡Para no quedarme nunca a oscuras! Estuve hablando con un reputado luminógrafo y, tras muchas discusiones, llegamos a la conclusión de que mi revolucionaria máquina, que cambiaría la infancia de la humanidad, tendría que ser de la siguiente forma: -Si la cantidad de luz es menor que 100-> ¡Ay que está muy negro todo!->ENCIENDE EL LED -En cambio, si la cantidad de luz es menor que 200, bueno, da un poco de miedo…->¡EL LED PARPADEA! -De lo contrario, si brilla el sol no te preocupes… ¡Si yo soy muy valiente! ->APAGA EL LED ¡Ríete tú del iphone! ¡Manos a la obra! Lo primero será realizar nuestras conexiones en la placa: Recuerda que el sensor de luz es un componente analógico. Por lo que tendrá que ir conectado a los pines analógicos de tu placa. Ahora que lo tienes todo conectado ¿Por qué no intentas programarlo por tí mismo? Verás como pronto llegas a la solución.
  • 9. Si todo fue bien deberías haber hecho algo parecido a ésto: Pronto veremos con más detalle las operaciones lógicas, pero en el caso de que quieras dentro del bloque Si…ejecutar que se cumpla más de una condición, como por ejemplo, que el pulsador esté presionado y la luz sea menor que 30 puedes hacerlo de la siguiente forma: 00:00:56 ¿Qué te parece? Puede que tengas dudas de cuando usar el bloque. ¡No te preocupes! ¡La práctica hace al maestro!
  • 10. Programando los bloques lógicos Si es igual y/o distinto de no verdadero… Hoy vamos a aprender como funcionan los bloques de la pestaña Lógica. Hay cuatro bloques con distintas opciones cada uno. ¡Veamos en que consisten! Para realizar los ejemplos de hoy, necesitarás:  1 LED  1 Potenciómetro  1 Zumbador  1 Pulsador  1 Sensor de luz  Una placa controladora Arduino  Un cable USB El bloque de comparación Te suena ¿verdad?. Hemos usado este bloque a menudo junto con el el bloque de control Si…ejecutar . Este bloque devuelve verdadero o falso según las dos entradas sean:  = iguales.  ≠ distintas.  < la primera menor que la segunda.  ≤ la primera menor o igual que la segunda.  > la primera mayor que la segunda.  ≥ la primera mayor o igual que la segunda.
  • 11. De esta forma, junto al bloque Si…ejecutar podemos establecer condiciones para que nuestro programa haga unas cosas u otras según las condiciones que elijamos. Veamos un ejemplo: Ejemplo con el bloque de comparación Hacer que se encienda un LED cuando el valor del potenciómetro sea menor que 500 En caso de que el valor del potenciómetro sea menor que 500, es decir, un valor comprendido entre 0 y 499, el LED se encenderá. En caso contrario, de 500 a 1023 valores (recuerda que el potenciómetro varía sus valores entre 0 y 1023), el LED se apagará. El bloque Y/O Este bloque sirve para comprobar varias condiciones al mismo tiempo:  Opción Y: Deben cumplirse ambas condiciones para que el valor sea verdadero y la acción se ejecute.  Opción O: Al menos una de las dos condiciones debe cumplirse para que el valor sea verdadero y la acción se ejecute. Vamos a ver un ejemplo para que experimentes la diferencia entre la opción Y y la opción O: Ejemplo con el bloque Y/O Hacer que suene el zumbador cuando se cumplan las siguientes condiciones:  la variable luz es menor o igual que 300 y  el pulsador, entonces el zumbador sonará.
  • 12. En este caso el zumbador sonará solo en el caso de que se cumplan las dos condiciones, es decir: Si cualquiera de las dos no se cumple, la condición no será verdadera y el zumbador no sonará. Hagamos una cosa, modifica el programa anterior, y en vez de la opción Y usa una opción O ¿Qué ocurre ahora? Ahora tu zumbador sonará más a menudo, ya que le estamos diciendo al programa lo siguiente: Si la variable luz es menor o igual que 300 o presionamos el pulsador, que el zumbador suene. Es decir, nos vale con que una de las dos condiciones se cumpla. ¿Ves la diferencia? El bloque verdadero/falso Este bloque nos devuelve el valor verdadero o falso, para entenderlo lo mejor es que hagamos un ejemplo:
  • 13. Ejemplo con el bloque verdadero/falso Hacer un programa que haga que, cuando la luz sea mayor o igual que 300, se encienda el LED y que, de lo contrario, se apague. Recuerdas este programa ¿verdad?. Hoy vamos a hacerlo un poco diferente: La variable mucha_luz leerá el valor del sensor de luz y si éste es mayor o igual que 300, la variable tendrá un valor de verdadero, en caso contrario, será falso. De esta forma podemos comparar el valor de la variable directamente usando el bloque verdadero, si es verdadero significará que habrá mucha luz y el LED se encenderá. El bloque No Este bloque nos permite negar una variable o estado, por ejemplo, si al verdadero le ponemos un bloque No: Decir no verdadero es lo mismo que decir que algo es falso. Veamos un pequeño ejemplo: Ejemplo con el bloque No Hacer un programa que haga sonar el zumbador si el pulsador está pulsado utilizando el bloque No. Este programa es una versión modificada de otro que realizamos hace tiempo:
  • 14. La variable boton_sin_pulsar será verdadero siempre que el pulsador no esté presionada. Si queremos que el zumbador suene, nuestra condición es: Si no variable boton_sin_pulsar. Es decir, si la negación de botón sin pulsar es verdadero, o lo que es lo mismo, si el pulsador está presionado, entonces el zumbador sonará. Como recordaras hay formas mucho más sencillas para realizar este programa, este es solo un ejemplo para que entiendas el funcionamiento del bloque No. En ocasiones negar el valor de una variable te será de gran utilidad. La lógica es fundamental para que tu programa vaya bien, si te acostumbras a razonar de forma lógica, las cosas empezarán a funcionar como por arte de magia. La diferencia será que tu serás el mago y sabrás exactamente donde está y cómo funciona el truco. Aún así, siempre que empieces un proyecto, recuerda: “Hay algo más importante que la lógica: es la imaginación” Alfred Hitchcock