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

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

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

Color Vd Resistencia mínima Ohm
Rojo 1.8V 160
Amarillo 3.2V 140
Verde 3.2V 90

Intermitente

Una propuesta muy sencilla

Solución



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

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

En el objeto oso 

arduino-led-interactivo2.png

En el dispositivo Arduino

arduino-led-interactivo1.png

Con mBlock 3.0



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

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

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

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



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

Solución

Con mBlock5 lo tienes aquí 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

En el dispositivo ARDUINO

arduino-pulsadorinteractivo1.png

En el objeto PANDA

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






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

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

En el dispositivo ARDUINO

arduino-condensador1.png

En el objeto PELOTA

arduino-condensador2.png

Con mBlock 3.0



AMPLIACIÓN

Se puede aprovechar esta experiencia para:

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

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

En el dispositivo ARDUINO

arduino-condensador1.png

En el objeto PELOTA

arduino-condensador2.png

Y en mblock 3.0

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...




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:

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

Estas funciones SOLO FUNCIONAN EN MODO CARGA

Opción instalando extensión 

lo tienes aquí https://planet.mblock.cc/project/3266063

Pulsamos abajo al + 

arduino-pelotahinchadistancia3.png

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

arduino-pelotahinchadistancia4.png

Que instala estas instrucciones

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

Al dispositivo ARDUINO el programa es sin la extensión

arduino-pelotahinchadistancia7.png

Con la extensión

arduino-pelotahinchadistancia1.png

En el objeto PELOTA el programa es

arduino-pelotahinchadistancia2.png

Con mBlock3