# 2. Circuitos sencillos # Un LED ### **Circuito un led directo** 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)

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

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
ColorVdResistencia mínima Ohm
Rojo1.8V160
Amarillo3.2V140
Verde3.2V90
### **Intermitente** Una propuesta muy sencilla ##### **Solución** ##### ![](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. ### **Luz interactiva** 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 ##### **Solución** 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) #### **Propuesta** 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 ![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-r4cnqaaf.png) ##### **Solución** 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: ¿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) #### **Pulsador interactivo** 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 ![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-cbw8yyny.png) #### **Solución** 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)

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

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

**OJO CONECTAR EL PIN (-) DEL CONDENSADOR A GND peligro de explosión si se conecta al revés**

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: ##### **Solución** 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) Con mBlock 3.0 ![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-kydd8enk.png) ### **AMPLIACIÓN** 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 ##### **Solución** 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. 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) ##### **Solución** Pues el programa es muy parecido a los anteriores: Con mBlock 5 Opción sin instalar extensión lo tienes aquí https://planet.mblock.cc/project/3266117 [![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)

Estas funciones SOLO FUNCIONAN EN MODO CARGA

Opción instalando extensión lo tienes aquí [https://planet.mblock.cc/project/3266063](https://planet.mblock.cc/project/3266063) 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)

Esta extensiones (como suele pasar cuando instalamos una extensión) SOLO FUNCIONAN EN MODO CARGA

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)