Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TALLER DE ARDUINO
PROGRAMADO CON
MINIBLOQ
35 PRÁCTICAS CON EJERCICIOS PROPUESTOS
Este documento tiene como finalidad acercar la microelectrónica y la robótica, mediante un lenguaje gráfico de
programación, cuya característica fundamental es la sencillez, pudiendo ser utilizado por niños y cualquier persona
sin formación previa, que le permitirá aprender a través de montajes prácticos.
Contenido
PRÁCTICA 0 FUNCIONAMIENTO BÁSICO E INSTALACIÓN DEL PROGRAMA . ................................................................. 4
PRÁCTICA 1 SALIDA DIGITAL. ......................................................................................................................................... 7
PRÁCTICA 2 SALIDA DIGITAL CON LED. MONTAJE EN PLACA. ....................................................................................... 8
PRÁCTICA 3 DOS SALIDAS DIGITALES CON LEDS. .......................................................................................................... 9
PRÁCTICA 4 SALIDA ANALÓGICA . ................................................................................................................................ 10
PRÁCTICA 5 DOS SALIDAS ANALÓGICAS. ..................................................................................................................... 11
PRÁCTICA 6 ENTRADA DIGITAL CONECTADA A UN PULSADOR EN CONFIGURACIÓN PULL DOWN. .......................... 12
PRÁCTICA 7 ENTRADA DIGITAL CONECTADA A PULSADOR EN CONFIGURACIÓN PULL UP. ...................................... 13
PRÁCTICA 8 ENTRADA DIGITAL PULL DOWN SALIDA LED. ......................................................................................... 14
PRÁCTICA 9 ENTRADA DIGITAL PULL UP SALIDA LED. ................................................................................................ 15
PRÁCTICA 10 ENTRADA Y SALIDA ANALÓGICA. ............................................................................................................ 16
PRACTICA 11 ENTRADA ANALÓGICA Y SALIDA ANALÓGICA HACIENDO USO DE UNA VARIABLE. ............................... 17
PRÁCTICA 12 SIMULACIÓN DE UN FUEGO MEDIANTE UN LED ROJO Y LA FUNCIÓN RANDON. ................................... 18
PRÁCTICA 13 CONTADOR CON FILTRADO DE PULSACIÓN. ......................................................................................... 19
PRÁCTICA 14 CONTADOR CON PUESTA A CERO.......................................................................................................... 21
PRÁCTICA 15 CONEXIÓN DE UN LED RGB A SALIDAS DIGITALES CONTROLADO CON UNA ENTRADA DIGITAL. .......... 23
PRÁCTICA 16 CONEXIÓN DE UN DIDO LED RGB A SALIDAS ANALÓGICAS CONTROLADO POR TRES POTENCIÓMETROS
CONECTADOS A ENTRADAS ANALÓGICAS. ................................................................................................................... 25
PRÁCTICA 17 INTERRUPTOR CREPUSCULAR MEDIANTE EL USO DE UNA RESISTENCIA LDR. ....................................... 27
PRÁCTICA 18 SENSOR DE PRESENCIA HC- SR501. ....................................................................................................... 29
PRÁCTICA 19 CONEXIÓN DE UN ZUMBADOR. .............................................................................................................. 33
PRÁCTICA 20 USO DE UN RELÉ PREPARADO PARA CONECTARLO DIRECTAMENTE A LA SALIDA ARDUINO. ................ 35
PRÁCTICA 21 CONEXIÓN DE UN SERVOMOTOR........................................................................................................... 38
PRÁCTICA 22 MEDIDA DE TEMPERATURA CON SENSOR LM35. ................................................................................... 40
PRÁCTICA 23 MEDIDA DE DISTANCIAS CON SENSOR ULTRASÓNICO HC-SR04 ............................................................ 43
PRÁCTICA 24 MEDIDA DE DISTANCIAS CON SENSOR INFRARROJOS SHARP GP2Y02 ................................................... 45
PRÁCTICA 25 PUENTE H L298N INVERSIÓN DEL SENTIDO DE GIRO DE UN MOTOR DE CORRIENTE CONTINUA. ...... 47
PRÁCTICA 26 CONTROL DE POTENCIA USANDO EL L 298N. ......................................................................................... 49
PRÁCTICA 27 SENSOR DE SONIDO KY-038. .................................................................................................................. 51
PRÁCTICA 28 TELERRUPTOR. ....................................................................................................................................... 54
PRÁCTICA 29 PUNTO DE LUZ CONMUTADO. ............................................................................................................... 56
PRÁCTICA 30 INDICADOR DE TEMPERATURA CON LM35 Y LED RGB. .......................................................................... 58
PRÁCTICA 31 MEDIDOR DE DISTANCIAS CON DISPLAY . .............................................................................................. 59
PRÁCTICA 32 CONTROL DE DISTANCIA CON SENSOR DE ULTRASONIDOS HC -SRO4 Y ZUMBADOR ........................... 62
PRÁCTICA 33 VARIACIÓN DEL COLOR EN LEDs RGB MEDIANTE SENSOR DE INFRARROJOS GP2YA02 Y PUENTE
LM298N (CAVERNA DE PLATÓN). ................................................................................................................................. 64
PRÁCTICA 34 CARRO EVITA OBSTACULOS CON SENSOR ULTRASÓNICO HC-SR04 Y PUENTE LM298N. ....................... 68
El taller ha estado patrocinado por la Fundación Alcampo Por La Juventud que mediante su apoyo se ha financiado
todo el material necesario para realizar la actividad.
La fundación Alcampo comprometida en promover la inserción laboral de alumnado que por diversos motivos, no ha
conseguido la enseñanza secundaria obligatoria, patrocina este taller como una doble oportunidad para los jóvenes.
Facilitar el acceso al mundo laboral con conocimientos básicos de electrónica y robótica que son
demandados en el mercado de trabajo.
Fomentar y difundir conocimiento tecnológico con mayor desarrollo y proyección de futuro mediante el
aprendizaje práctico, intentando conseguir la motivación necesaria para que el alumnado considere que
este puede ser un camino válido para seguir formándose.
La finalidad de este cuaderno de prácticas es la de acercar la robótica educativa teniendo en cuenta dos condiciones:
Sencillez de aprendizaje para llegar a cualquier persona con curiosidad por conocer este área del
conocimiento.
Accesibilidad tanto por economía como por la facilidad de disponer de el material utilizado en las prácticas.
Por estos dos motivos se ha elegido la programación en miniBloq y la plataforma Arduino, más concretamente la
placa Arduino Uno, cuya difusión es universal y con unos costes mínimos.
El planteamiento didáctico está basado en aprender haciendo, evitando las explicaciones extensas que pretendan
dar a conocer todos los contenidos relacionados con la práctica, centrando la atención en que es lo que queremos
hacer y como lo hacemos, dejando que el alumno complete la formación por los diversos canales que nos ofrece
internet.
Cada práctica comienza con un enunciado que nos indica que hacemos con un croquis y posibilidad de una
fotografía que identifique los componentes a montar y un programa de control realizado en miniBloq, con lo que es
imposible el no saber realizar la práctica.
Ya montada y comprobada la práctica, tenemos la oportunidad de realizar un ejercicio asociado a la práctica que nos
permita pensar de qué forma la modificamos para conseguir el objetivo pedido.
MiniBloq nos permite una primera aproximación al mundo de la robótica y programación, sin ser necesarios
conocimientos previos.
La programación está basada en un lenguaje gráfico donde las instrucciones están representadas por bloques,
haciendo muy sencillo su uso, pudiendo escribir una secuencia de órdenes de forma intuitiva e inmediata.
El mayor inconveniente que puede tener esta interfaz gráfica, es la imposibilidad de poder ver de forma sencilla,
programas extensos, ya que su escritura es lineal y aunque tenemos gran parte de la pantalla libre el programa
desaparece de nuestra pantalla a las pocas instrucciones.
Para conocer con detalle el uso de miniBloq, podemos encontrar manuales y documentación en la página
http://blog.minibloq.org/p/documentation.html
El programa es muy sencillo de instalar en Windows y Linux, siendo de libre distribución, pudiendo descargar las
versiones 0.82 o 0.83 , no existiendo diferencias significativas entre ellas.
Una vez instalado tendremos que identificar la placa que conectamos Arduino Uno y el puerto serie asignado, si
tenemos instalado el IDE de Arduino podemos comprobarlo fácilmente.
http://blog.minibloq.org/p/download.html
los datos pueden ser digitales con valores 0 o 1 y analógicos que en nuestro caso particular tienen un rango
comprendido entre 0 y 100 para trabajar como si de porcentajes se tratara.
A las entradas conectaremos sensores o pulsadores que nos dan información de el exterior y que tendremos que
leer.
En las salidas escribimos los valores configurados en el programa que vendrán condicionados por lo valores leídos en
las entradas, para controlar motores LEDs , y todo tipo de actuadores.
Para simplificar el aprendizaje miniBloq asigna a las diferentes patillas determinados elementos y funcionalidades.
Podemos observar la función asignada a cada patilla en el dibujo de la placa que se muestra en la pantalla, pudiendo
ver que tenemos patillas asociadas a entradas de datos analógicos, (A0 a A5), Salidas PWM (3,5,6,9,11) ,entradas y
salidas digitales (0 a 13), salidas a servomotor (6,7 y 8),salidas control motor (3,4,5,6,7 y 8), salida notas musicales 9
entrada señal infrarrojos 3, entradas y salidas para sensor SR HC04 (7 y 8).
Es importante distinguir si una patilla está funcionando como entrada o salida y si estas pueden ser digitales o
analógicas.
Cuando escribimos un programa en miniBloq generamos el código fuente, que el programa traduce o compila para
que el microcontrolador sea capaz de entenderlo , generando el código máquina.
Este código permanece residente en la memoria del microcontrolador, con lo que podemos desconectar el
ordenador, siendo el microcontrolador autónomo, alimentando el circuito mediante una fuente externa con una
batería de 9V o 12V.
Una salida digital tiene la propiedad de poder escribir en ella dos posibles valores 0 y 1, cuando se escribe
0, la salida tiene una tensión de 0V y cuando escribimos 1, la salida tiene una tensión de 5V.
El cero y el uno lógicos se escriben mediante símbolos con sus correspondientes bloques.
El diodo LED tiene una patilla más larga llamada ánodo, debiendo de conectarla a positivo para que su
polarización sea directa, la patilla más corta es el cátodo que se conecta a negativo. La resistencia de
polarización que incluimos tiene como finalidad el limitar la corriente y evitar la destrucción del diodo LED,
con unos valores que pueden ir desde los 5mA hasta 40mA, (dependiendo del tipo de diodo).
𝑉
𝐼=𝑅 𝐼 = 5000 𝑚𝑉/220Ω= 22mA
``
Se ha añadido un bucle con el fin de que el programa salga de este cuando liberemos el pulsador
conectado a la entrada digital 2, evitando un cuenteo continuo.
En esta práctica conectamos el LED RGB a las salidas digitales 13,12 y 11 de tal forma que cuando
presionemos un pulsador conectado a la entrada digital 2, el color cambie a azul, verde y rojo de forma
alternativa con una frecuencia de 1 segundo entre cada color.
Se realiza un divisor de tensión con una resistencia de 10KΩ y la LDR tal y como se muestra en el esquema,
conectando el divisor a la entrada analógica A0. En nuestro caso leemos un valor aproximado de 70 con
iluminación ( VR= 3,5V) y 30 sin iluminación tapando la LDR (VR=1.5V).
El valor leído en la entrada analógica A0 lo guardamos en una variable que nombramos iluminación,
creamos otra variable nombrada como consigna, que contiene un valor constante.
A la variable consigna le damos un valor de 500. Cuando iluminación < consigna, activamos la salida digital
13, encendiéndose el LED verde.
Tiene tres patillas de conexión, estando conectadas a 5V (Vcc), OUT a entrada digital 2 y 0V (GND)
También tenemos un puente (de color amarillo en la imagen) situado tal y como se muestra en la imagen,
está configurado como disparo único, si lo cambiamos de posición la configuración cambia a disparo
repetido.
A la patilla 2 , conectaremos un pulsador en configuración Pull Down, de tal forma que al pulsarlo se
toquen las notas programadas.
VCC a 5V.
Vs (IN), irá conectada a la salida digital de Arduino que tengamos seleccionada, en nuestro caso
elegimos la salida digital 13
GND a 0V.
El relé dispone de una regleta con tres tornillos unida interiormente a un conmutador libre de
potencial, que es capaz de soportar tensiones de 230 V e intensidades de hasta 10 A.
En el conmutador tendremos un contacto normalmente abierto (NO) y otro normalmente cerrado
(NC) que son los extremos, siendo el tornillo central el común a los dos contactos (COM).
Los contactos libres de potencial están en reposo (COM unido a NC) con la entrada IN a nivel alto.
El relé está activado cuando la entrada IN está a nivel bajo ( en la configuración particular de
nuestro relé) sus contactos libres de potencial cambian (COM unido a NO).
Tendremos un pulsador en configuración Pull Up conectado a la entrada digital 2, de tal forma que
la pulsarlo se active el conmutador interno y cambien de estado los contactos libres de potencial.
Prestar atención en el conexionado de Vcc y la señal de entrada, cada relé tiene una configuración
diferente y puede que no coincida con la del croquis realizado en Fritzing.
Escribimos un programa de control en el que al presionar en el escenario la figura del servo este gira de 0º
a 180º , volviendo a 0º
La patilla Vo la conectaremos a la entrada A0 de tal forma que irá registrando los valores de tensión de esta patilla
que son proporcionales a la temperatura.
La tensión de salida Vo, vendrá en valores de milivoltios, 10mV por por grado centígrado, por ejemplo si
mide una temperatura de 20º C , a la salida tendremos 20x10mV= 200mV, que teniendo en cuenta el rango
de de entrada, nos capturará un valor de 4 unidades.
En el programa, el valor registrado se multiplica por 5000 y se divide por 100 (valor de una unidad en mV) ,
a el valor resultante se vuelve a dividir entre 10 (Correspondiente a 10mV por grado), obteniendo la
temperatura en grados.
El sensor tiene dos patillas de alimentación Vcc y GND, y dos patillas de control siendo Tggr la patilla por la
cual se le da la orden de emitir un ultrasonido, cuando pasa de estado bajo a alto, y la patilla echo que al
emitir el sensor el sonido, esta se mantiene en estado alto, hasta que recibe el eco del sonido emitido.
En miniBloq solo hay que usar el bloque del sensor ya que viene integrada en el bloque de inicio la librería
que nos realizará los cálculos necesarios para que nos de la lectura en cm.
Tiene tres patillas , dos para la alimentación GND, Vcc y una salida Vo con un rango de tensiones comprendidos
entre 0 y 2,7V.
miniBloq dispone de el bloque donde ya están integrados todos los algoritmos necesarios para que nos calcule la
distancia en cm.
A0 nos da una salida de 0 a 1023 dependiendo del sonido recogido, su valor variará del ajuste del
potenciómetro incorporado
GND
VCC (5V)
D0 salida digital nos dará el valor false o true dependiendo del nivel de sonido.
La salida A0 del sensor la conectamos a la entrada analógica A0 de Arduino, y la salida D0 del sensor, la
conectamos a la entrada digital 2.
Ajustamos el potenciómetro hasta que en la entrada analógica A0 tengamos un valor entorno a 500 el LED
indicador de salida digital se apagará
Si se gira el potenciómetro en sentido antihorario sube la numeración leída en la entrada analógica A0. Si
giramos en sentido horario bajamos la numeración.
Realizamos un programa de control de tal forma que al activar la salida digital 2, encendemos o apagamos
el LED asociado a la salida digital 13.
Esta funcionalidad por ejemplo nos permite que con un solo pulsador pueda encender y apagar una lámpara, un
motor, etc. Si la carga esta desconectada, al pulsar la conectaremos y quedará conectada después de dejar de pulsar
y si la carga está conectada, al pulsar la desconectaremos, quedando la carga desconectada después de dejar de
pulsar.
El montaje consiste en que con un pulsador unido a la patilla 2 que ejerce como entrada digital , podamos activar o
desactivar un relé conectado a la patilla 13 cuya función es la de salida digital y a su vez abriremos y cerraremos un
circuito externo que contiene una alimentación y una lámpara.
Si sustituimos el pulsador por el sensor de sonido KY-038, tendremos un circuito que permite encender y apagar un
punto de luz con una palmada.
Prestar atención al conexionado del relé ya puede ser diferente al mostrado en el esquema.
Prestar atención al conexionado del relé ya puede ser diferente al mostrado en el esquema.
La patilla del zumbador se conecta a la patilla 12, la patilla trigger y echo del sensor de ultrasonidos van a
la salida 7 y 8 de la placa Arduino.
La distancia máxima a detectar con frecuencia del zumbador es de 15 cm, para distancias mayores y
elevadas la frecuencia es tan baja que no es operativo.
Para escenificar esta idea, se ha realizado un cuadro hecho a base de trozos de cables eléctricos puestos de forma
arbitraria que intentan representar el caos imperante en nuestro mundo, escenificado por Platón como una caverna
en la que solo somos capaces de ver las sombras reflejadas del exterior desde la entrada, sin conocer realmente
como es el exterior.
En el cuadro se ha realizado la salida de la caverna mediante una obertura cubierta por LEDs RGB que unidos a la
electrónica necesaria y un sensor de infrarrojos que mide distancias, realizamos el efecto, que al acercarnos a la
salida de la caverna , el color de los LEDs cambian del rojo al azul, dando la sensación que salimos, viendo el azul
intenso del mundo exterior .
Circuito electrónico;
Se ha dispuesto de un panel formado por 40 LEDs RGB , uniendo en paralelo sus patillas mediante grapinado,
formando tres circuitos de alimentación, uno para cada color , con el negativo común.
Cada LED es alimentado con 10 mA con lo que necesitamos una intensidad total de I=11mAx 36 LEDs = 400mA por
cada circuito.
La tensión de alimentación de los LEDs es de 12V , lo que nos da una resistencia de polarización de 33Ω y 5W;
Usamos el puente H L298N que es capaz de suministrar algo más de 1A a cada circuito conectado con la propiedad
añadida que es una salida PWM con posibilidad de controlar la potencia.
Para medir las distancias, usamos el sensor Sharp GP2YA02 con capacidad de medir distancias comprendidas en un
rango de 20 cm a 150 cm.
Con la placa Arduino controlamos la salida de los puentes, asociando la distancia medida por el sensor con la
iluminación y color de los LEDs.
Para alimentar el circuito se usa una fuente de alimentación de 12V conectada a 230V en alterna con las debidas
protecciones, ya que es un proyecto permanente.
Su movimiento será autónomo, cambiando de dirección y girando cada vez que se encuentre un obstáculo.
Se le ha añadido un interruptor unido a la patilla 2 que actúa como entrada digital, de tal forma que si está
alimentada a 5V el caro estará parado y cuando la pongamos a 0V el carro funcionará
Si el nivel de iluminación es superior al nivel de consigna preestablecido, daremos la orden al servomotor para que
extienda la capota y realice el giro de 90 en sentido inverso.
El servo lo inicializamos a un valor de 0º que representa el servo extendido , evitando el exceso de iluminación en la
habitación, ya que la iluminación es elevada y mayor que el valor de consigna, además tendremos un LED conectado
a la patilla 13 que en este caso está apagado indicando exceso de iluminación.
Cuando la iluminación sea menor que el valor de consigna, giramos el servo a 90º , plegando y encendiendo el LED
conectado a la patilla 13.
Modificar el programa de forma que el tiempo de encendido y apagado sea de tres segundos.
Ejercicio 2º.
Modificar el programa de forma que el tiempo de encendido sea el doble que el de apagado .
Ejercicio 3 º.
Añadir un LED adicional al montaje de tal forma que se enciendan alternativamente uno encendido y los demás
apagados.
Ejercicio 4º.
Ejercicio 5º.
Añadir un LED adicional al montaje de tal forma que se encienda de forma progresiva.
Ejercicio 6º.
Añadir un pulsador adicional al montaje en la patilla 3 de tal forma que se pueda encender el LED asociado a la
patilla 13 desde cualquiera de los dos pulsadores .
Ejercicio 7º.
Añadir un pulsador adicional al montaje en la patilla 3 de tal forma que se pueda apagar el LED asociado a la patilla
13 desde cualquiera de los dos pulsadores .
Ejercicio 8º.
Añadir un LED adicional al montaje asociado a la patilla 11 de tal forma que al pulsar, se encienda el LED asociado a
la patilla 12 y se apague el LED asociado a la patilla 11.
Si el pulsador no está presionado , el LED asociado a la patilla 12 estará apagado y el LED asociado a la patilla 11
estará encendido.
Ejercicio 9 º.
Añadir un LED adicional al montaje asociado a la patilla 11 de tal forma que al pulsar, se apague el LED asociado a la
patilla 12 y se encienda el LED asociado a la patilla 11.
Si el pulsador no está presionado , el LED asociado a la patilla 12 estará encendido y el LED asociado a la patilla 11
estará apagado.
Ejercicio 10º.
Modificar el programa de tal forma que el valor escrito en la salida PWM5 sea la mitad que el valor leído en la
entrada analógica sensor0 haciendo uso de la función división
Modificar el programa de tal forma que el valor escrito en la salida PWM5 sea la mitad que el valor leído en la
entrada analógica sensor0 haciendo uso de la función división y la variable dimmer.
Ejercicio 12º.
Ejercicio 13º.
Modificar el programa de tal forma que el valor que cuente con cada pulso, sea de 10 en 10.
Ejercicio 14º.
Modificar el programa de tal forma que el contador incremente su valor con el pulsador asociado a la patilla 2 y
decrementa su valor con el pulsador asociado a la patilla 3.
Añadir un LED en la salida 11 asociado al pulsador conectado a la entrada 3, de tal forma que se ilumine al pulsarlo.
Ejercicio 15º.
Añadir dos pulsadores adicionales asociados a las patillas 3 y 4, de tal forma que con el pulsador asociado a la patilla
2 , encendamos el color azul, con el pulsador asociado a la patilla 3, encendamos el color verde y con el pulsador
asociado a la patilla 4 , se encienda el color rojo.
Ejercicio 16º.
Modificar el programa de tal forma que el valor asociado al color rojo sea la mitad del valor leído en la entrada
correspondiente.
Ejercicio 17º.
Modificar el valor de consigna de tal forma que ajustemos el encendido del LED a diferentes iluminaciones.