# 2. Circuitos sencillos

# Un LED

### <span style="color: rgb(22, 145, 121);">**Circuito un led directo**</span>

Para las siguientes propuestas, el montaje es colocar un diodo LED, en este caso no es necesario complicarse, podemos montarlo directamente en el Arduino uno colocando el ánodo (pata más larga) en el pin13 y el cátodo (pata más corta) en masa GND, elegimos el pin 13 por estar al lado de GND

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-zq3gosop.png)

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-momwf2gp.png)

<p class="callout info">No es una buena práctica conectar un diodo directamente sin pasar por una resistencia, pues en teoría es un cortocircuito, PERO si se hace no pasa nada pues Arduino tiene una limitación interna de 20mA</p>

Luego lo recomendable es hacerlo pasar por una resistencia, usando la placa PROTOBOARD

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-duyrwjkk.png)

Para el cálculo de la resistencia, debemos de tener en cuenta que la máxima corriente es 20mA, que la tensión de salida es 5V y que el diodo tiene una tensión Vd de funcionamiento, que depende de su color:

Rminima = (5V-Vd)/20mA

<table id="bkmrk-color-vd-resistencia"><thead><tr><th>Color</th><th>Vd</th><th>Resistencia mínima Ohm</th></tr></thead><tbody><tr><td>Rojo</td><td>1.8V</td><td>160</td></tr><tr><td>Amarillo</td><td>3.2V</td><td>140</td></tr><tr><td>Verde</td><td>3.2V</td><td>90</td></tr></tbody></table>

### <span style="color: rgb(22, 145, 121);">**Intermitente**</span>

Una propuesta muy sencilla

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--5" src="//www.youtube.com/embed/jxszyuTrRF8%20" width="560"></iframe>

##### <span style="color: rgb(22, 145, 121);">**Solución**</span>

#####   
![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-un4p3nvf.png)  
  


La captura está realizada con mBlock 3.0 no hay problema en hacerlo igual con mBlock 5.0

Aquí no hay ninguna interacción con el ordenador, este programa es candidato para ejecutarlo desde el Arduino como desde el ordenador. Vamos a añadirle algo de interacción con el ordenador en la siguiente propuesta.

### <span style="color: rgb(22, 145, 121);">**Luz interactiva**</span>

Realizar un programa que al pulsar la tecla espacio, se encienda el led, un personaje cambie el disfraz, cambie el fondo y que suene un sonido

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--6" src="//www.youtube.com/embed/oiOvVsE_6fc" width="560"></iframe>

##### <span style="color: rgb(22, 145, 121);">**Solución**</span>

Con mBlock5.0 lo tienes aquí [https://planet.mblock.cc/project/3265812](https://planet.mblock.cc/project/3265812)

Declaramos una variable global ENCIENDE, es decir, estamos usando el método VARIABLE GLOBAL de [https://libros.catedu.es/books/programa-arduino-con-mblock-scratch/page/programacion-mblock](https://libros.catedu.es/books/programa-arduino-con-mblock-scratch/page/dos-formas-de-programar-con-mblock)

En el objeto oso

[![arduino-led-interactivo2.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/arduino-led-interactivo2.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/arduino-led-interactivo2.png)

En el dispositivo Arduino

[![arduino-led-interactivo1.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/arduino-led-interactivo1.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/arduino-led-interactivo1.png)

Con mBlock 3.0  
![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-ozths4lq.png)

# Pulsador

Vamos a realizar el Arduino según el apartado CONEXIÓN CON ARDUINO que hemos visto en [https://libros.catedu.es/books/programa-arduino-con-mblock-scratch/page/pulsadores](https://libros.catedu.es/books/programa-arduino-con-mblock-scratch/page/pulsadores)

#### <span style="color: rgb(22, 145, 121);">**Propuesta**</span>

Realizar un programa con la configuración de pulsador pull down en la entrada analógica A0 y un led en el 13, que cuando se pulse se encienda el LED

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--5" src="//www.youtube.com/embed/je7V-1WSidU" width="560"></iframe>

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-r4cnqaaf.png)

##### <span style="color: rgb(22, 145, 121);">**Solución**</span>

Por la entrada A0 cuando el pulsador está abierto hay 0V y cuando está cerrado hay 5V, luego los valores que tiene A0 son 0 y 1023 respectivamente  
  
Pero eso **en teoría** pues si realizamos este programa:  
[![image-1648635843759.png](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/image-1648635843759.png)](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648635843759.png)  
  
Ocurre esto:  
  
<iframe allowfullscreen="allowfullscreen" height="314" src="//www.youtube.com/embed/zCNcD2EQbQw" width="560"></iframe>

  
  
¿Por qué? seguramente cualquier defecto de conexión o si la resistencia es elevada, la tensión se queda flotante y ya el valor de A0 no es 0 sino va tomando valores, que algunas veces son 0 pero otras veces no lo son (por eso no está totalmente iluminado)  
  
Luego lo mejor es subir el valor, hemos puesto 500 y sí que funciona correctamente  
  
![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-yueorllb.png)

#### <span style="color: rgb(22, 145, 121);">**Pulsador interactivo**</span>

Realizar un programa que al apretar el pulsador, que el panda cambie de disfraz, haga un sonido, diga algo ... además de encender el LED con la misma configuración que la propuesta anterior

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--6" src="//www.youtube.com/embed/7z6QZy22lG8" width="560"></iframe>

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-cbw8yyny.png)

#### <span style="color: rgb(22, 145, 121);">**Solución**</span>

Con mBlock5 lo tienes aquí [https://planet.mblock.cc/project/3265849](https://planet.mblock.cc/project/3265849)

Utilizaremos la técnica BROADCAST explicado en [https://libros.catedu.es/books/programa-arduino-con-mblock-scratch/page/programacion-mblock](https://libros.catedu.es/books/programa-arduino-con-mblock-scratch/page/dos-formas-de-programar-con-mblock)

En el dispositivo ARDUINO

[![arduino-pulsadorinteractivo1.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/arduino-pulsadorinteractivo1.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/arduino-pulsadorinteractivo1.png)

En el objeto PANDA

[![arduino-pulsadorinteractivo2.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/arduino-pulsadorinteractivo2.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/arduino-pulsadorinteractivo2.png)

<p class="callout success">Nota: Se podría hacer un SI - SINO pero programando de esta forma abrimos la posibilidad de ampliar si el mensaje encendido es por ejemplo = 2</p>

Con mBlock3  
  
![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-zegi1xnq.png)

# Condensador

## Propuesta

Realizar un programa que cargue y descargue el condensador y que lo visualice en un objeto.

La propuesta es con un condensador de 10μF y dos resistencias de centenares de k, según lo visto en el módulo M1 esto nos dará un tiempo de carga y descarga de varios segundos

<p class="callout danger">**OJO CONECTAR EL PIN (-) DEL CONDENSADOR A GND peligro de explosión si se conecta al revés**</p>

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/sfAbv-0hQsU" width="560"></iframe>

Las resistencias colocarlos de tal manera que uno sea para la carga y otro para la descarga.

Un cable suelto, en uno extremo el terminal (+) del condensador y el otro suelto preparado para tocar la resistencia de carga o la de descarga.

Esta misma conexión que lo lea Arduino, por ejemplo por A0

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-nmvhy0dt.png)C

Visualizar la carga en un objeto Scratch que aumente de volumen:

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--0" src="//www.youtube.com/embed/08FM_y8rujc" width="560"></iframe>

##### <span style="color: rgb(22, 145, 121); background-color: rgb(255, 255, 255);">**Solución**</span>

Es muy sencillo, fija el tamaño de la pelota al valor del pin A0  
  
Lo hemos hecho a través de una variable auxiliar "carga" para poder visualizar numéricamente su valor.

Con mBlock 5.0 lo tienes aquí [https://planet.mblock.cc/project/3265873](https://planet.mblock.cc/project/3265873)

En el dispositivo ARDUINO

[![arduino-condensador1.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/arduino-condensador1.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/arduino-condensador1.png)

En el objeto PELOTA

[![arduino-condensador2.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/arduino-condensador2.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/arduino-condensador2.png)

<span style="color: rgb(0, 0, 0);">Con mBlock 3.0</span>  
  
![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-kydd8enk.png)

### <span style="color: rgb(22, 145, 121);">**AMPLIACIÓN**</span>

Se puede aprovechar esta experiencia para:

- Calcular el tiempo de carga, si coincide con la fórmula T = 5RC
- Visualizar que la pelota se carga o aumenta de volumen muy rápidamente al principio y luego lentamente, tal y como indica la teoría vista en el módulo 1
- Igualmente en la descarga

# LDR

Realizar un programa que visualice en un objeto Scratch la cantidad de luz

El circuito es el siguiente: el LDR conectado a A0 y a una resistencia (la resistencia PULL UP para que la tensión que mida A0 sea la del LDR) y un objeto que aumente de tamaño según el valor de A0

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-muqgbuky.png)

Y el vídeo

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--1" src="//www.youtube.com/embed/b89sS6mQ4_Q" width="560"></iframe>

##### <span style="color: rgb(22, 145, 121);">**Solución**</span>

El programa es el siguiente:

Lo hemos hecho a través de una variable auxiliar "carga" para poder visualizar numéricamente su valor.

Con mBlock 5.0 lo tienes aquí [https://planet.mblock.cc/project/3265873](https://planet.mblock.cc/project/3265873)

En el dispositivo ARDUINO

[![arduino-condensador1.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/arduino-condensador1.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/arduino-condensador1.png)

En el objeto PELOTA

[![arduino-condensador2.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/arduino-condensador2.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/arduino-condensador2.png)

##### Y en mblock 3.0

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

OOOPAAAA !!! ¡¡ Pero si es el mismo que el que acabamos de ver !!! El condensador  
  
 ¡¡¡ vaya tontería !!!

Simplemente la variable **carga** no es el condensador sino la oscuridad

¿Que quieres cambiar el nombre de la variable **carga** por **oscuridad**? pues vale...  
![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-qauzkd0y.png)

# Ultrasonidos

Pues ya que estamos con la pelota, pues también seguimos: Hacer un programa que se hinche la pelota según la distancia.

En este caso, como la el sensor de ultrasonidos va desde 2 cm a 40cm, nuestra propuesta es que el tamaño se cambie multiplicado x50 ese valor, es decir "cambiar tamaño 50xdistancia", de no hacer esto, la pelota sale demasiado pequeña, o el objeto tendría que estar muy lejos para que se vea a un tamaño razonable.

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--1" src="//www.youtube.com/embed/2Pc2Rg0RqEo" width="560"></iframe>

La configuración la explicada en el módulo 1 es decir:

- Trigger en el pin 4
- Echo en el pin 3

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-lizv18lo.png)

##### <span style="color: rgb(22, 145, 121);">**Solución**</span>

Pues el programa es muy parecido a los anteriores:

Con mBlock 5

<span style="text-decoration: underline;">Opción sin instalar extensión </span>

<span style="text-decoration: underline;">lo tienes aquí https://planet.mblock.cc/project/3266117</span>

[![arduino-pelotahinchadistancia6.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/arduino-pelotahinchadistancia6.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/arduino-pelotahinchadistancia6.png)

<p class="callout warning">Estas funciones SOLO FUNCIONAN EN MODO CARGA</p>

<span style="text-decoration: underline;">Opción instalando extensión </span>

<span style="text-decoration: underline;">lo tienes aquí [https://planet.mblock.cc/project/3266063](https://planet.mblock.cc/project/3266063)</span>

Pulsamos abajo al +

[![arduino-pelotahinchadistancia3.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/arduino-pelotahinchadistancia3.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/arduino-pelotahinchadistancia3.png)

Buscamos extensiones para el sensor de ultrasonidos HC-SR04, nosotros hemos elegido esta

[![arduino-pelotahinchadistancia4.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/arduino-pelotahinchadistancia4.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/arduino-pelotahinchadistancia4.png)

Que instala estas instrucciones

[![arduino-pelotahinchadistancia5.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/arduino-pelotahinchadistancia5.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/arduino-pelotahinchadistancia5.png)

<p class="callout warning">Esta extensiones (como suele pasar cuando instalamos una extensión) SOLO FUNCIONAN EN MODO CARGA</p>

Luego para transmitir la distancia al objeto pelota, utilizamos la técnica de **BROADCAST** que vimos en [https://libros.catedu.es/books/programa-arduino-con-mblock-scratch/page/programacion-mblock](https://libros.catedu.es/books/programa-arduino-con-mblock-scratch/page/dos-formas-de-programar-con-mblock)

Al dispositivo ARDUINO el programa es sin la extensión

[![arduino-pelotahinchadistancia7.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/arduino-pelotahinchadistancia7.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/arduino-pelotahinchadistancia7.png)

Con la extensión

[![arduino-pelotahinchadistancia1.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/arduino-pelotahinchadistancia1.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/arduino-pelotahinchadistancia1.png)

En el objeto PELOTA el programa es

[![arduino-pelotahinchadistancia2.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/arduino-pelotahinchadistancia2.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/arduino-pelotahinchadistancia2.png)

Con mBlock3  
  
![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-nm6yxpvl.png)