# ARDUINO CON ARDUINOBLOCKS

# Objetivos y contenidos

#### Objetivos

- Enseñar que es posible tener un kit barato al alcance de los centros con buena calidad/precio para enseñar la robótica al alumnado.
- Conocer la versatilidad, posibilidades, creatividad y sencillez de la programación en bloques de Arduinoblocks.
- Conocer los diferentes elementos que rodean a la programación con Arduino: 
    - Sensores
    - Actuadores y otras salidas
- Capacidad de desarrollar retos **STEAM** con un amplio nivel educativo: primaria hasta secundaria 
    - Retos **STEAM** de nivel principiante
    - Retos **STEAM** de nivel medio
    - Retos **STEAM** de nivel avanzado
- Realizar retos STEAM en un entorno de lenguaje gráfico por bloques **ARDUINOBLOKS** amigable, sin complicaciones técnicas y multiplataforma. 
    - Conocer **ARDUINOBLOCKS** una plataforma web que permite programar por bloques gráficos
    - Conocer las diferentes posibilidades de la programación por bloques de **ARDUINOBLOCKS**
    - Conocer las posibilidades didácticas de **ARDUINOBLOCKS** y su gestión de proyectos en el aula
- Conocer el kit robótico STEAM **Arduino** que se propone, con un coste económico bajo pero de calidad para que un centro educativo lo pueda asumir para su aplicación en el aula (mínimo 12 por aula)  
    
    - Conocer la placa **Arduino**, sus sensores y actuadores
    - Aplicaciones prácticas del **Arduino**

#### Contenidos

- El kit de Arduino con Arduinoblocks
- El pensamiento computacional
- Qué es Arduinoblocks 
    - Crear cuenta
    - Cuentas alumnos
    - Arduinoblocks connector
    - Empezar un proyecto
- Sensores
- Actuadores y otras salidas
- Prácticas como principiante 
    - Encender y led
    - Intermitente RGB
    - Pulsador luz
    - Pistola láser
    - Pulsador con luz y timbre
- Prácticas nivel intermedio 
    - Interruptor crepuscular
    - Barrera por ultrasonidos
    - Comunicaciones
    - Lectura puerto serie ultrasonidos
- Prácticas nivel avanzado 
    - Alarma láser
    - Piano con teclado invisible
    - Aparcacoches
    - Estación meteorológica

# Introducción

# Kit de Arduino con Arduinoblocks

El paquete consta de una docena de los [siguientes elementos](https://docs.google.com/spreadsheets/d/e/2PACX-1vRDFFr4WBUFjn9DpX7gt2Acja_OVNIB1PECFAVL3e05aCuQmBKofhtkpGtbxn5rK5VnoGkaGQvSlO5c/pubhtml)

[![kitarduino.jpg](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/kitarduino.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-04/kitarduino.jpg)

El coste se ha optimizado a casi 24€ por robot, y con preferencia empresas españolas. Con diferencia, el kit que presentamos tiene mejor relación calidad/precio que los kits que venden comerciales, incluso en sitios "*baratos*" como *Aliexpress* [ver unos ejemplos ](https://docs.google.com/spreadsheets/d/e/2PACX-1vTJH5Pex1D29aPp_DnOnLNHWJbDnEbssoyfQKOWdh83zX7aOygQJ_D5L3mqCWXWV9hCUqhqMNNdJsew/pubhtml)

Recomendamos el siguiente artículo de Luis Llamas que da buenos consejos sobre las compras de los kits de iniciación de Arduino, coincide con nuestro criterio **es mejor comprar los elementos separados y a empresas españolas online que kits ya prefabricados a empresas tipo Amazon, Aliexpress...** sobre todo porque en esos kits ponen elementos innecesarios y la relación calidad/precio es muy baja. Ver[ https://www.luisllamas.es/kit-de-iniciacion-barato-para-empezar-en-arduino/](https://www.luisllamas.es/kit-de-iniciacion-barato-para-empezar-en-arduino/)

<iframe height="600px" src="https://docs.google.com/spreadsheets/d/e/2PACX-1vRDFFr4WBUFjn9DpX7gt2Acja_OVNIB1PECFAVL3e05aCuQmBKofhtkpGtbxn5rK5VnoGkaGQvSlO5c/pubhtml?gid=0&single=true&widget=true&headers=false" width="800px"></iframe>

# Pensamiento computacional

¿Dónde se encaja este robot?¿se puede comparar este robot con otros robots de otros cursos que hacemos desde CATEDU?

Esta es la hoja de ruta que proponemos, no se tiene que tomar al pie de la letra, pero intenta ayudar al profesorado que tenga una visión global de tanta oferta:

Como se puede ver **ARDUINO CON ARDUINOBLOCKS** tiene la ventaja de tener un precio razonable, y dentro del rango de programación en bloques del Arduino en primaria.

{{@4518}}

# Lenguajes de programación

Arduino se puede programar

- Por bloques (mBlock, Echidna, Scratch, **SteamMakerblocks** (**este curso se basa en utilizar Arduino en este lenguaje)**, Blocky....)
- Por código principalmente Arduino IDE

{{@13859}}

# Robótica y accesibilidad

{{@7565}}

# ¿Qué es Arduino?

{{@2936}}

# Hardware

{{@2937}}

# Software

{{@7552}}

# Sensores

{{@7009}}

# Actuadores y otras salidas

{{@11506}}

# ¿Qué es Arduino Blocks?

{{@5126}}

# Crear cuenta

{{@5973}}

# Cuentas alumnos

{{@5127}}

# Arduino blocks connector

{{@5128}}

# Empezando un proyecto

{{@5129}}

# PRACTICAS PRINCIPIANTE

Son prácticas a nivel de primaria. Muy básicas en programación a nivel de control de la lógica si/sino y con una circuitería mínima para encender, apagar luces con un pulsador como sensor.

# Encender un led

 Vamos a realizar un primer programa sencillo para empezar: encender un led. Como tenemos un led RGB vamos a encender sólo un color: El rojo

El esquema de conexiones es el siguiente :

- El pin R=Red del RGB en D9 por ejemplo
- El pin GND al GND del Arduino

[![2022-03-31 12_55_04-Untitled Sketch 2.fzz_ - Fritzing - [Vista de Protoboard (placa de Prototipos)].jpg](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/2022-03-31-12-55-04-untitled-sketch-2-fzz-fritzing-vista-de-protoboard-placa-de-prototipos.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-03/2022-03-31-12-55-04-untitled-sketch-2-fzz-fritzing-vista-de-protoboard-placa-de-prototipos.jpg)

Quedaría pues así :

[![2022-03-31 12_58_38-WhatsApp.jpg](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/2022-03-31-12-58-38-whatsapp.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-03/2022-03-31-12-58-38-whatsapp.jpg)

Y el [programa](http://www.arduinoblocks.com/web/project/766233) en Arduino Blocks :

*Dejamos de momento Pin G = 10 y Pin B= 11 en esta práctica es irrelevante, pero en la siguiente práctica lo utilizaremos*

[![2022-03-31 13_01_12-ArduinoBlocks.jpg](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/2022-03-31-13-01-12-arduinoblocks.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-03/2022-03-31-13-01-12-arduinoblocks.jpg)

# Intermitente RGB

#### Objetivo

Vamos ahora a utilizar los tres colores y de forma intermitente. Que se encienda primero el rojo, luego el verde y luego el azul y así indefinidamente, con un tiempo de 1 segundo de duración cada encendido.

<iframe allowfullscreen="allowfullscreen" height="314" src="//www.youtube.com/embed/gWMd2BkeXls" width="560"></iframe>

##### Esquema

[![2022-03-31 13_14_55-ArduinoBasico1.fzz_ - Fritzing - [Vista de Protoboard (placa de Prototipos)].jpg](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/2022-03-31-13-14-55-arduinobasico1-fzz-fritzing-vista-de-protoboard-placa-de-prototipos.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-03/2022-03-31-13-14-55-arduinobasico1-fzz-fritzing-vista-de-protoboard-placa-de-prototipos.jpg)

[![2022-03-31 13_06_11-WhatsApp.jpg](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/2022-03-31-13-06-11-whatsapp.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-03/2022-03-31-13-06-11-whatsapp.jpg)

##### Programa

[http://www.arduinoblocks.com/web/project/764523](http://www.arduinoblocks.com/web/project/764523)

[![2022-03-31 13_10_12-ArduinoBlocks.jpg](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/2022-03-31-13-10-12-arduinoblocks.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-03/2022-03-31-13-10-12-arduinoblocks.jpg)

<p class="callout success">🤔 ¿Por qué se han conectado a las salidas 9,10 y 11 ?</p>

<p class="callout success">…pista : **~**</p>

# Pulsador luz

##### Objetivo

Montar el pulsador de luz, si se pulsa, que se encienda el RGB en todos sus colores

<iframe allowfullscreen="allowfullscreen" height="314" src="//www.youtube.com/embed/ag-pWdZYRyE" width="560"></iframe>

##### Esquema

A partir de ahora vamos a hacer dos líneas de +5V y GND superior e inferior en la placa Protoboard:

- Si te fijas se ha conectado el GND del RGB al GND de la línea azul superior de la placa Protoboard.al GND superior.
- El pulsador táctil su +5V y GND a las líneas rojas y azules inferiores +5V y GND de la placa Protoboard.
- Las dos filas rojas y azules superior e inferior están conectadas por los cables negro y rojo de la izquierda de la placa Protoboard.

De esta manera simplificamos algo el cruce de cables y queda pues :

- las dos líneas azules de la placa Proboboard son **GND** (la superior y la penúltima de abajo)
- las dos líneas rojas de la placa Protoboard son **+5V**. (la segunda y la última de abajo)

[![2022-03-31 13_51_08-ArduinoBasico3PulsadorLuz.fzz_ - Fritzing - [Vista de Protoboard (placa de Proto.jpg](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/2022-03-31-13-51-08-arduinobasico3pulsadorluz-fzz-fritzing-vista-de-protoboard-placa-de-proto.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-03/2022-03-31-13-51-08-arduinobasico3pulsadorluz-fzz-fritzing-vista-de-protoboard-placa-de-proto.jpg)

Aconsejamos poner el pulsador táctil **delante** de los cables de esta manera queda libre el acceso para poder pulsarlo sin tener cables por en medio.

[![2022-03-31 13_52_20-WhatsApp.jpg](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/2022-03-31-13-52-20-whatsapp.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-03/2022-03-31-13-52-20-whatsapp.jpg)

<p class="callout danger">ATENCIÓN, a partir de ahora sólo señalaremos las nuevas conexiones para simplificar los esquemas</p>

Esto quiere decir que para este ejemplo, sólo mostraremos la conexión del interruptor de luz:

[![2022-03-31 18_20_45-ArduinoBasico3PulsadorLuz.fzz_ - Fritzing - [Vista de Protoboard (placa de Proto.png](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/2022-03-31-18-20-45-arduinobasico3pulsadorluz-fzz-fritzing-vista-de-protoboard-placa-de-proto.png)](https://libros.catedu.es/uploads/images/gallery/2022-03/2022-03-31-18-20-45-arduinobasico3pulsadorluz-fzz-fritzing-vista-de-protoboard-placa-de-proto.png)

<p class="callout warning">Las demás conexiones tienes que mantenerlas aunque no las dibujemos :  
- Conexión de la alimentación +5V y GND de las líneas azules y rojas superiores e inferiores  
- Conexión de los anteriores elementos (en la figura el RGB)</p>

##### Programa

[http://www.arduinoblocks.com/web/project/766370](http://www.arduinoblocks.com/web/project/766370)

[![2022-03-31 13_45_41-ArduinoBlocks.jpg](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/2022-03-31-13-45-41-arduinoblocks.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-03/2022-03-31-13-45-41-arduinoblocks.jpg)

<p class="callout success">🤔¿Por qué se han conectado a las salidas 9,10 y 11 ?</p>

<div class="pointer-container" id="bkmrk-%C2%A0"><div class="pointer anim is-page-editable"><svg class="svg-icon" data-icon="link" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg><div class="input-group inline block"> <button class="button outline icon" data-clipboard-target="#pointer-url" title="Copy Link" type="button"><svg class="svg-icon" data-icon="copy" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></button></div><svg class="svg-icon" data-icon="edit" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></div></div><p class="callout success">…pista : **~ y el 255**</p>

# Pistola láser

<div class="youtube-player" data-id="gx6KRmT1oxg" id="bkmrk-">  
</div>#### Objetivo

Es la misma práctica que la de pulsador con luz, pero en vez del LDR es el láser. No tienen ninguna dificultad, simplemente la motivación de la creación de una pistola láser.

<iframe allowfullscreen="allowfullscreen" height="314" src="//www.youtube.com/embed/gx6KRmT1oxg" width="560"></iframe>

#### Cableado

[![2022-04-09 17_52_00-ArduinoUnoDisparoLaser.fzz - Fritzing - [Vista de Protoboard (placa de Prototipo.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-09-17-52-00-arduinounodisparolaser-fzz-fritzing-vista-de-protoboard-placa-de-prototipo.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-09-17-52-00-arduinounodisparolaser-fzz-fritzing-vista-de-protoboard-placa-de-prototipo.png)

[![2022-04-09 17_54_57-Clipboard.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-09-17-54-57-clipboard.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-09-17-54-57-clipboard.png)

#### Programa

[http://www.arduinoblocks.com/web/project/780595](http://www.arduinoblocks.com/web/project/780595)

[![arduinoblocks_1649519777018.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/arduinoblocks-1649519777018.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/arduinoblocks-1649519777018.png)

# Pulsador luz y timbre

##### Objetivo

Al tocar el pulsador, además de encenderse el RGB tiene que sonar una musiquilla ¿te suena la melodía?

<iframe allowfullscreen="allowfullscreen" height="314" src="//www.youtube.com/embed/52YHse6TsOg" width="560"></iframe>

##### Esquema

Añadimos el módulo zumbador, sin quitar los anteriores elementos ni cables, conectando el pin I/O **a D3**, y los correspondientes pines de Vcc y GND del módulo zumbador al +5V y GND del Protoboard.

[![2022-03-31 18_51_55-ArduinoBasico4PulsadorLuzZumbador.fzz_ - Fritzing - [Vista de Protoboard (placa .png](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/2022-03-31-18-51-55-arduinobasico4pulsadorluzzumbador-fzz-fritzing-vista-de-protoboard-placa.png)](https://libros.catedu.es/uploads/images/gallery/2022-03/2022-03-31-18-51-55-arduinobasico4pulsadorluzzumbador-fzz-fritzing-vista-de-protoboard-placa.png)

##### Programa

El esquema del programa está en [http://www.arduinoblocks.com/web/project/766866](http://www.arduinoblocks.com/web/project/766866)

[![2022-04-01 21_18_23-ArduinoBlocks.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-01-21-18-23-arduinoblocks.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-01-21-18-23-arduinoblocks.png)

# PRACTICAS INTERMEDIO

Prácticas ya con sensores como el LDR, el sensor de distancia Ultrasonidos  
Salidas con actuadores como el servo  
Lectura de valores de los sensores por el puerto serie

# Interruptor crepuscular

#### Objetivo

Realizar un interruptor crepuscular, es decir, cuando se oscurece, que se encienda la luz y que se apague cuando la luminosidad se recupere.

<iframe allowfullscreen="allowfullscreen" height="314" src="//www.youtube.com/embed/1d_siWmJwiM" width="560"></iframe>

#### Cableado

Utilizaremos el LDR con un divisor de tensión de tal manera que al modificar el LDR su valor, la tensión que han entre las dos resistencias se modifica. El punto intermedio que lee la tensión lo conectaremos a una entrada analógica, al A0 por ejemplo.

[![ldrporA0.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/ldrpora0.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/ldrpora0.png)

[![2022-04-09 18_58_03-ArduinoBasico4PulsadorLuzZumbadorAlarma.fzz_ - Fritzing.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-09-18-58-03-arduinobasico4pulsadorluzzumbadoralarma-fzz-fritzing.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-09-18-58-03-arduinobasico4pulsadorluzzumbadoralarma-fzz-fritzing.png)

[![2022-04-09 18_59_19-Clipboard.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-09-18-59-19-clipboard.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-09-18-59-19-clipboard.png)

#### Programa

[http://www.arduinoblocks.com/web/project/780612](http://www.arduinoblocks.com/web/project/780612)

[![arduinoblocks_1649523671646.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/arduinoblocks-1649523671646.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/arduinoblocks-1649523671646.png)

# Barrera por ultrasonidos

##### Objetivo

Crear un programa que al detectar un objeto a menos de 10cm suba una "barrera" simulada con un servo y un trozo de papel (en el vídeo un "*postit*"

<iframe allowfullscreen="allowfullscreen" height="314" src="//www.youtube.com/embed/L5nhbA--yBk" width="560"></iframe>

##### Cableado

<p class="callout warning">ATENCIÓN Se han omitido las conexiones del led RGB y las del zumbador</p>

[![2022-04-04 11_06_09-Window.jpg](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-04-11-06-09-window.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-04-11-06-09-window.jpg)

##### Programa

El programa lo tienes aquí [http://www.arduinoblocks.com/web/project/770872](http://www.arduinoblocks.com/web/project/770872)

[![arduinoblocks_1650695820893.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/arduinoblocks-1650695820893.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/arduinoblocks-1650695820893.png)

<p class="callout info">Puedes mejorar el programa añadiendo un retardo en la bajada de la barrera, simulando el caso real, que cuando el coche pasa, hay un poco de retraso en el cierre de la barrera</p>

<p class="callout info">También puedes añadir al programa que si se pulsa el pulsador táctil, que se suba la barrera, como pulsador de seguridad.</p>

# Comunicaciones

Arduino permite comunicarse con periféricos o con el PC de diferentes formas:

- **Puerto serie (COM)**: Permite una conexión serie (tipo RS232) a través del puerto USB. Utilizada principalmente para programar la placa Arduino desde el ordenador y para comunicar con aplicaciones en un ordenador (consola   
    serie). Con una aplicación de terminal o consola serie podemos visualizar los datos recibidos desde Arduino y enviar datos al Arduino fácilmente.   
    *(José Andrés Echevarría @cantabRobots CC-BY-NC-SA)*  
    <p class="callout success">Para utilizar este puerto hay que determinar antes a qué velocidad se van a transmitir los datos para que todo se sincronice. A la hora de programar en el apartado de *Inicio **se determina la velocidad en baudios** bits por segundo* normalmente 9600</p>
    
      
      
    [![2022-04-13 13_05_27-PROYECTO 00 CONOCEMOS ARDUINO._ - PDF-XChange Viewer.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-13-13-05-27-proyecto-00-conocemos-arduino-pdf-xchange-viewer.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-13-13-05-27-proyecto-00-conocemos-arduino-pdf-xchange-viewer.png)  
    [![2022-04-13 13_06_22-PROYECTO 00 CONOCEMOS ARDUINO._ - PDF-XChange Viewer.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-13-13-06-22-proyecto-00-conocemos-arduino-pdf-xchange-viewer.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-13-13-06-22-proyecto-00-conocemos-arduino-pdf-xchange-viewer.png)  
    *(José Andrés Echevarría @cantabRobots CC-BY-NC-SA)*

<p class="callout info"> La conexión serie de Arduino está accesible en los pines 0 (RX) y 1 (TX), internamente estos pines están conectados al chip que gestiona el USB, en caso de usar la comunicación serie con otros dispositivos conectados a los pines 0 y 1 se deberá desconectar el USB para evitar que se mezclen los datos y no funcione la comunicación. </p>

- **I2C:** Es otro sistema de bus de comunicaciones en serie. Permite crear una pequeña red de dispositivos (pensado principalmente para interconectar otros chips en la propia placa o cerca). La comunicación I2C sólo utiliza 2 cables. 
    - Para el Arduino UNO utiliza SDA=A4 SCL=A5
    - Para el Arduino Nano utiliza SDA=A4 SCL=A5
    - Para el Arduino Mega utiliza SDA=20 SCL=21
    - Para I2C Keyestudio UNO utiliza : SDA=A4 SCL=A5
- Existe una tercera forma de comunicación, la **SPI** (Serial Peripheral Interface), pero no la veremos en este manual.

*(adaptado de José Andrés Echevarría @cantabRobots CC-BY-NC-SA)*

El **Puerto serie COM** lo utilizaremos como comunicaciones entre ordenador y las placas, [aunque aquí puedes ver un ejemplo](https://libros.catedu.es/books/programa-arduino-mediante-codigo/page/42-arduino-arduino) sencillo de comunicación entre dos Arduinos utilizando los pines 0-RX y 1-TX

El **I2C** se utiliza principalmente en la conexión con la pantalla I2C:

[![2022-04-13 13_33_04-PROYECTO 00 CONOCEMOS ARDUINO._ - PDF-XChange Viewer.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-13-13-33-04-proyecto-00-conocemos-arduino-pdf-xchange-viewer.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-13-13-33-04-proyecto-00-conocemos-arduino-pdf-xchange-viewer.png)  
*(José Andrés Echevarría @cantabRobots CC-BY-NC-SA)*  
[![lcd-arduino.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/lcd-arduino.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/lcd-arduino.png)

Ejemplo de conexión de LCD con **ARDUINO UNO** para ver cómo se programa con código [aquí](https://libros.catedu.es/books/programa-arduino-mediante-codigo/page/35-lcd)

# Lectura puerto serie ultrasonidos

#### Objetivo

Vamos a visualizar por el puerto serie el valor del sensor de Ultrasonidos con el objetivo de aprender sobre las comunicaciones del Arduino y el ordenador y sus posibilidades de recogida de datos

La gráfica que obtendremos al pinchar en el serial plotter de arriba a la derecha será algo así, moviendo un obstáculo delante del sensor :

[![2022-04-10 10_25_24-Clipboard.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-10-10-25-24-clipboard.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-10-10-25-24-clipboard.png)

Arriba a la derecha tiene las opciones de exportar los datos a una hoja de cálculo. También se puede visualizar de forma textual en la **consola serie**

[![2022-04-10 10_31_05-ArduinoBlocks.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-10-10-31-05-arduinoblocks.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-10-10-31-05-arduinoblocks.png)

#### Cableado

Simplemente conectar el sensor que se quiere examinar. Trigger en D6 y Echo e D5 por ejemplo:

[![2022-04-10 10_28_20-ArduinoBasico4PulsadorLuzZumbador-Barrera.fzz_ - Fritzing.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-10-10-28-20-arduinobasico4pulsadorluzzumbador-barrera-fzz-fritzing.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-10-10-28-20-arduinobasico4pulsadorluzzumbador-barrera-fzz-fritzing.png)

[![2022-04-10 10_32_13-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-10-10-32-13-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-10-10-32-13-whatsapp.png)

#### Programa

[http://www.arduinoblocks.com/web/project/780686](http://www.arduinoblocks.com/web/project/780686)

[![arduinoblocks_1649579610677.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/arduinoblocks-1649579610677.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/arduinoblocks-1649579610677.png)

<p class="callout info">¿Podrías hacer lo mismo con la lectura de la **luz del sensor LDR ?**</p>

# PRACTICAS AVANZADO

\- Utilización de varios sensores y activadores a la vez  
\- Programación en funciones y uso de variables  
\- Continuación de lectura de sensores por el puesto serie

# Alarma láser

##### Objetivo

Realizaremos una alarma laser con las siguientes condiciones:

- Al tocar el pulsador táctil se **activará** la alarma, es decir, se encenderá el láser que apunta al sensor LDR
- Si la alarma está activada y "*el ladrón"* corta el haz láser, entonces la alarma **se dispara**
    - el disparo consistirá en avisos acústicos y visuales
- para salir del estado de disparo o de activación se pulsará el botón ***reset*** (no es necesario ninguna programación especial para cumplir este ítem)

<iframe allowfullscreen="allowfullscreen" height="314" src="//www.youtube.com/embed/_dQcLtzzTNQ" width="560"></iframe>

#### Cableado

Tenemos que ser cuidadosos de apuntar el láser (representado en esta figura por un led) al LDR, en caso contrario el Arduino se disparará de inmediato al cargar el programa.

[![2022-04-07 13_53_59-ArduinoBasico4PulsadorLuzZumbadorAlarma.fzz - Fritzing - [Vista de Protoboard (p.jpg](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/ziI2022-04-07-13-53-59-arduinobasico4pulsadorluzzumbadoralarma-fzz-fritzing-vista-de-protoboard-p.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-04/ziI2022-04-07-13-53-59-arduinobasico4pulsadorluzzumbadoralarma-fzz-fritzing-vista-de-protoboard-p.jpg)

#### Programa

Se aconseja el uso de funciones y variables para simplificar la programación :

<p class="callout warning">OJO si se dispara la alarma, pon más retardo de 500ms</p>

[http://www.arduinoblocks.com/web/project/772739](http://www.arduinoblocks.com/web/project/772739)

[![arduinoblocks_1649331839040.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/SzSarduinoblocks-1649331839040.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/SzSarduinoblocks-1649331839040.png)

<p class="callout info">**Mejora** esta alarma añadiendo otro sensor, el sensor de Ultrasonidos, si detecta un objeto cercano que se dispare la alarma.</p>

<p class="callout info">**Otra mejora**:: Añade un retardo al disparo de la alarma al activar uno de los sensores, por ejemplo el láser. Igual que en los casos reales, el sensor de la puerta principal tiene retardo para que el "dueño" tenga un tiempo para *desactivar* la alarma antes de que se dispare. El otro sensor (el de ultrasonidos) no tendría retardo, estaría por ejemplo en una habitación por lo tanto no tiene que tener retardo, el dueño nunca entra a la casa por ahí.</p>

# Piano con teclado invisible

#### Objetivo

Vamos a tocar diferentes notas según la distancia que mida el sensor de ultrasonidos.. Cuanto más cerca, más agudo.

<iframe allowfullscreen="allowfullscreen" height="314" src="//www.youtube.com/embed/8hzQUQSXN68" width="560"></iframe>

#### Cableado

Conectaremos el sensor de ultrasonidos y el zumbador tal y como lo hemos hecho en anteriores prácticas.

[![2022-04-09 19_56_57-ArduinoBasico4PulsadorLuzZumbador-Barrera.fzz_ - Fritzing.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-09-19-56-57-arduinobasico4pulsadorluzzumbador-barrera-fzz-fritzing.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-09-19-56-57-arduinobasico4pulsadorluzzumbador-barrera-fzz-fritzing.png)

[![2022-04-09 19_58_36-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-09-19-58-36-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-09-19-58-36-whatsapp.png)

#### Programa

[http://www.arduinoblocks.com/web/project/780618](http://www.arduinoblocks.com/web/project/780618)

[![arduinoblocks_1649526757603.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/arduinoblocks-1649526757603.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/arduinoblocks-1649526757603.png)

# Aparca coches

#### Objetivo

Simular el sensor asistente de aparcamiento que mediante una señal acústica nos avisa de la cercanía de un obstáculo.

Es parecido a la práctica anterior, pero aquí el tono es el mismo. Lo que cambia es la frecuencia de los pulsos

<iframe allowfullscreen="allowfullscreen" height="314" src="//www.youtube.com/embed/2JfD6w3deZk" width="560"></iframe>

#### Cableado

Es igual que en la práctica anterior

[![2022-04-09 19_56_57-ArduinoBasico4PulsadorLuzZumbador-Barrera.fzz_ - Fritzing.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-09-19-56-57-arduinobasico4pulsadorluzzumbador-barrera-fzz-fritzing.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-09-19-56-57-arduinobasico4pulsadorluzzumbador-barrera-fzz-fritzing.png)

[![2022-04-09 19_58_36-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-09-19-58-36-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-09-19-58-36-whatsapp.png)

#### Programa

[http://www.arduinoblocks.com/web/project/780629](http://www.arduinoblocks.com/web/project/780629)

[![arduinoblocks_1649531448551.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/arduinoblocks-1649531448551.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/arduinoblocks-1649531448551.png)

# Estación meteorológica

#### Objetivo

Igual que en la[ práctica de lectura de puertos ](https://libros.catedu.es/books/arduino-con-arduinoblocks/page/lectura-puerto-serie-ultrasonidos "Lectura puerto serie ultrasonidos")podemos visualizar los datos de sensores ambientales :

- DHT11 que mide en el mismo pin la humedad y la temperatura
- El sensor LDR que mediría la luminosidad, proporcional a la nubosidad existente.

Podemos ver las variaciones lanzando vaho en el sensor y tapando el LDR.

[![2022-04-10 14_34_51-ArduinoBlocks.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-10-14-34-51-arduinoblocks.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-10-14-34-51-arduinoblocks.png)

#### Cableado

Vamos a practicar la lectura de sensor DHT11 que es sencillo de utilizar pues como todos, tiene dos pines de alimentación y un pin de lectura, el otro pin, el penúltimo **no se conecta** :

<p class="callout info">Ojo, para que funcione correctamente hay que poner una resistencia entre el pin de datos y el de alimentación</p>

[![conextiondht11ldrarduino.jpg](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/conextiondht11ldrarduino.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-04/conextiondht11ldrarduino.jpg)

[![conextiondht11ldrarduinofoto.jpg](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/conextiondht11ldrarduinofoto.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-04/conextiondht11ldrarduinofoto.jpg)

#### Programa

[http://www.arduinoblocks.com/web/project/780757](http://www.arduinoblocks.com/web/project/780757)

[![arduinoblocks_1649602201589.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/arduinoblocks-1649602201589.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/arduinoblocks-1649602201589.png)

# Créditos

## Autoría

- Javier Quintana Peiró CATEDU menos en los párrafos y citas que se cita su autor y procedencia.


Cualquier observación o detección de error en [soporte.catedu.es](https://catedu.es/soporte-catedu/)

Los contenidos se distribuyen bajo licencia **Creative Commons** tipo **BY-NC-SA** excepto en los párrafos que se indique lo contrario.

[![image-1648462225402.gif](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648462225402.gif)](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648462225402.gif)

[![image-1648462299882.png](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/image-1648462299882.png)](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648462299882.png)

[![image-1648462361893.png](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/image-1648462361893.png)](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648462361893.png)