Minicurso Arduino

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 56

Minicurso de Arduino

Retos para aprender y enseñar con Arduino


Adaptado a uso de Shield Edubasica (de @leobotmanuel)

Autor : Pedro Ruiz Fernández (@pedroruizf)


Fuentes utilizadas:
• Adaptación y modificación de Curso de Arduino de Prudencio Luna Belizón (@plunax)
• Ejercicios de Arduino resueltos (de @pedroruizf)
• Taller de Edubasica de Manuel Hidalgo (@leobotmanuel)

Licencia: Creative Commons by-nc-sa 3.0

Versión: 21/04/2019
Reto 0: La protoboard (placa de pruebas)
En este caso el reto consiste en iluminar un led, alimentándolo directamente con arduino, por tanto
no lo programaremos. Para ello utilizaremos una placa de pruebas, una resistencia, un led y los
terminales (5V y GND) de la placa de Arduino.
El objetivo es conocer la forma de conexionado en la placa de pruebas.
¿Qué es una protoboard?
Es un tablero con orificios que se encuentran conectados eléctricamente entre sí.

El esquema del circuito eléctrico a montar será el siguiente:

La forma de conexión será la que se muestra en la figura.


Reto 1: LED parpadeante
El reto consiste en iluminar de manera intermitente un led utilizando cualquier pin digital de
Arduino, en nuestro caso vamos a usar el 3, que edubasica lo provee de un led verde. El led estará
encendido durante 500ms y que se apague 100ms y así de forma ininterrumpida. Si se utiliza el pin
13 no hace falta resistencia en otros casos sí.
Objetivos:
 Familiarizarse con el entorno de programación.
 Reconocer las partes de un programa de Arduino.
 Conocer órdenes como: pinMode, digitalWrite y delay.

Esquema

Conexionado
La forma de conexión será la que se muestra en la figura.
Código fuente
Reto 2: Secuencia de leds
Se trata de encender y apagar 3 leds secuencialmente. Los leds deben estar conectados a los pines 3,
4 y 5 (los pines de los leds de edubasica). Tanto el tiempo de encendido y apagado será de 200
milisegundos.
Nota: en una segunda solución la secuencia principal del programa debe estar reproducida en una
función a la que llamará el programa principal.
Objetivos:
 Familiarizarse con el entorno de programación.
 Estructura de control for.
 Escribir funciones.

Esquema
Conexionado
La forma de conexión será la que se muestra en la figura:
Código fuente

Código fuente 2
Código fuente 3
Reto 3: SOS con zumbador
Se trata de un zumbador que en código morse (pitidos largos/cortos) especifica una palabra, en
nuestro caso SOS. Para el que no lo sepa, la S son tres señales acústicas de corta duración y la O
tres señales acústica de larga duración.
El zumbador debe estar conectado al pin 3, aunque para no ser ruidosos se puede hacer con el led
asociado al pin 3 de edubasica (verde), los pitidos o destellos cortos tendrán una duración de 100 ms
y los largos 300 ms. Entre letra y letra debe pasar un tiempo de 300 ms y entre SOS debe haber un
tiempo de 1000 ms.
Nota: Debes usar variables para guardar los tiempos que vas a usar.
Objetivos:
 Repaso a blucle for.
 Repaso a funciones.
 Introducción del zumbador.
 Resolución y comprobación de reto.

Esquema
Conexionado
Código fuente
Solución 1:
Solución 2:
Reto 4: Coche fantástico
Se trata de encender y apagar 3 leds secuencialmente. Los leds deben estar conectados a los pines 3,
4, y 5, que son los leds que provee edubasica.
Se deben encender y apagar los leds desde el pin 3 al 5, con un tiempo de encendido y apagado de
50 ms, más tarde se deben encender y apagar los leds desde el pin 5 al 3, con un tiempo de
encendido y apagado de 50 ms. La secuencia se debe repetir indefinidamente.
El efecto del programa es el de las luces delanteras de nuestro querido "Coche fantástico".
Objetivos:
 Familiarizarse con el entorno de programación.
 Repasar declaración de variables tipo lista de valores.
 Repasar órdenes de control de programa como: for.

Esquema
Conexionado
Código fuente
Solución 1:
Solución 2 (con array)):
Solución 3 (mejorando el efecto visual):
Reto 5: Secuencia de leds con pulsador
Se trata de encender y apagar 3 leds secuencialmente al accionar un pulsador. El pulsador debe estar
conectado al pin 2 (al que está conectado el pulsador de edubasica), y los leds a los pines 3, 4 y 5
(los de edubasica).
Se deben encender y posteriormente apagar los leds desde el pin 3 al 5, con un tiempo de duración
de encendido y apagado de 200 milisegundos.
Nota: la secuencia principal del programa debe estar reproducida en una función a la que llamará el
programa principal.
Objetivos:
 Aprender a conectar una entrada digital a arduino (pulsador). Divisor de tensión
 Conexiones Pull-down y Pull-up.
 Conocer órdenes como: digitalRead.
 Conocer órdenes de control de programa como: If.
 Aprender a enviar y visualizar datos por puerto serie.

Esquemas
El esquema eléctrico del pulsador será:
Siendo el esquema del conjunto el siguiente:
Conexionado
Conexionado real con pulsador:

Conexionado real con cables a modo de pulsador:


Código fuente
Solución 1
Solución 2 (con variable tipo lista)
Solución 3 (con visualización de datos por puerto serie)
Reto 6: Ruleta de la fortuna
Se trata de tres leds que se van encendiendo y apagando formando una secuencia, el jugador debe
dar al pulsador cuando el led intermedio se enciende, si acierta funciona un zumbador y la
velocidad de la secuencia aumenta.
Los leds deben estar conectados de los pines 3 a 5 (los de edubasica), el zumbador al pin 7, el
pulsador al pin 2 (el de edubasica).
El tiempo inicial entre encendido y encendido de leds debe ser 200 ms, si se acierta el tiempo
disminuye en 20 ms, si el tiempo entre encendidos llegase a 10 ms, se devuelve el tiempo a 200 ms.
Objetivos:
 Conocer órdenes: if, &&, ||
 Repaso a uso de funciones
 Repaso a variables tipo lista
 Repaso a entradas digitales

Esquema
Conexionado
Código fuente
Código 1
Código 2 (con 5 leds y zumbador)
Código 2 (con variable tipo lista)
Código 3 (evita acertar con el pulsador permanentemente pulsado)
Reto 7: Detector de oscuridad
Se trata de un dispositivo que haga funcionar un led cuando la luminosidad baja de cierto umbral.
Para ello conectaremos una ldr a la entrada analógica 1 (edubasica ya la trae conectada) y un led al
pin 3 (uno de los edubasica). Cuando la luz llegue a cierto umbral de voltaje (entre 0 y 1023) que
nosotros decidamos, se encenderá el diodo led. Además se deberá visionar el valor de voltaje en la
entrada analógica (valor entre 0 y 1024) en una consola en el PC.
Objetivos:
 ¿Qué son las entradas analógicas?
 Conexión de entrada analógica a arduino (ldr). Repaso de divisor de tensión.
 Órdenes como: analogRead.
 Visualizar datos en consola de puerto serie, con órdenes como: Serial.begin,Serial.print.
 Órdenes de control de programa como: If else.

Esquemas
Esquema eléctrico.
Conexionado

Código fuente
Reto 8: Potenciómetro que enciende un led rojo o uno
verde en función de un valor de referencia
El reto consiste en iluminar un led rojo o un led verde en función de un valor de referencia que
obtendremos de un divisor de tensión formado por un potenciómetro y una resistencia. El led rojo
estará conectado al pin 5 y el verde al pin 3. El divisor de tensión de conectará a la entrada
analógica A0.
Objetivos:
 Repaso a entradas analógicas.

 Representación de valores utilizando la comunicación serie

 Repaso a órdenes de control If, else.

Esquema
Conexionado

Código fuente
Reto 9: Aumentar y disminuir intensidad luminosa de
led (fading)
Se trata aumentar y disminuir la luminosidad de un led usando la capacidad de ofrecer una tensión
variable que da una salida analógica. Para ello se conecta un led al pin 3 (led verde en edubasica) y
se provoca que su luminosidad pase de mínima a máxima, para luego ir de máxima a mínima. Los
valores de salidas analógicas van del mínimo 0, al máximo 255.
Objetivos:
 Conexionado de salidas analógicas (power with module pwm).

 Conocer órdenes como analogWrite.

Conexionado

Código fuente
Reto 10: Aumentar luminosidad de led con pulsador
(fading)
Se trata de aumentar la luminosidad de un diodo led conectado al pin 3 (verde de edubasica) a
través de la activación de un pulsador conectado al pin 2 (el de edubasica). Si el pulsador se activa
aumenta la luminosidad del led pudiendo llegar hasta su valor máximo (255), si el pulsador no se
activa se mantendrá su luminosidad, si nos pasamos del valor máximo de luminosidad (255)
pulsando nuevas veces, la luminosidad pasará a valor nulo (0).
Los objetivos:
 Repaso de conexionado de entradas digitales.

 Repaso de orden digitalRead.

 Repaso de conexionado de salidas analógicas.

 Repaso de orden analogWrite.

Conexionado
La forma de conexión será la que se muestra en la figura.
Código fuente
Reto 11: Control de led desde el ordenador
Se trata de diseñar un dispositivo que haga apagar o encender un led conectado al pin 3 desde el
ordenador. Si pulsamos la tecla 1 se encenderá y si pulsamos la 0 se apagará.
Los objetivos:
 Repaso de visualización de datos en consola de puerto serie.

 Envío de datos por puerto serie a Arduino.

 Conocer el código ASCII.

Conexionado
La forma de conexión será la que se muestra en la figura.

Código fuente
Solución 1
Solución 2
Solución 3
Reto 12: Control de servomotor estándar
El reto consiste en conectar un servomotor estándar al pin 7 (está especialmente dispuesto en
edubasica para ello), haciendo que el motor gire continuamente desde 0º a 180º y viceversa.
Objetivos:
• Conexionado de Servomotor.

• Cargar y usar librerías.

• Repaso de orden de control for.

Conexionado
La forma de conexión será la que se muestra en la figura.
Código fuente
Reto 13: Control de servomotor estándar con
potenciómetro
El reto consiste en conectar un servomotor estándar al pin 7 (está especialmente dispuesto en
edubasica para ello) que estará controlado por un potenciómetro conectado al pin analógico 0. El
sistema tiene que funcionar de tal manera que cuando el potenciómetro de un valor 0 de tensión en
su entrada analógica el servo tiene que estar a 0º, y en la otra posición extrema del potenciómetro
(marcando valor 1023) el servo tiene que estar a 180º.
Objetivos:
• Repaso de entradas analógicas

• Repaso de conexionado de servomotor.

• Repaso de carga y uso de librerías.

• Escalado de valores con la orden map.

Conexionado
La forma de conexión será la que se muestra en la figura.
Código fuente
Reto 14: Servomotor de rotación continua
El reto consiste en conectar un servomotor de rotación continua al pin digital 7 y hacer que:
 Gire durante 3 segundos a máxima potencia en un sentido.

 Esté parado durante 2 segundos.

 Gire en sentido contrario al primero durante otros 3 segundos.

Objetivos:
• Conexionado de servomotor de rotación continua.

• Carga y uso de librerías en este tipo de servo.

Conexionado
La forma de conexión será la que se muestra en la figura.
Código fuente
Reto 15: Comunicación de ordenador con arduino.
Encender led con una tecla.
El reto consiste en encender o apagar led a través de una tecla del ordenador estableciendo una
comunicación serie en el sentido ordenador Arduino.
Objetivos:
• Control serie sentido Ordenador Arduino.
• Utilizar variables booleanas.

Conexionado
La forma de conexión será la que se muestra en la figura.
Código fuente
Reto 16: Variación de luz de led (PWM) con ldr.
El reto consiste en encender en variar la luminosidad de un led conectado a una salida PWM, de tal
forma que a menos luz exterior más luminosidad del led y viceversa.
Objetivos:
• Repasar conexionado divisor de tensión, PULL DOWN en este caso.
• Conocer o repasar la orden map.
• Repasar salidas PWM.

Esquema

Conexionado
La forma de conexión será la que se muestra en la figura.
Código fuente
Reto 17: Pulsador de un arduino controla led de otro
arduino.
El reto consiste en comunicar dos arduinos vía puerto serie, de tal manera que en el arduino maestro
cuando se pulsa un pulsador (D2) se enciende led del arduino esclavo (D13).
Objetivos:
• Repasar conexionado divisor de tensión de pulsador, PULL DOWN en este caso.
• Conexionado para comunicación de arduino.
• Conocer órdenes para enviar y recibir datos con arduino. Serial.read(), Serial.write() y
Serial.available().

Esquema

Conexionado arduino maestro


La forma de conexión será la que se muestra en la figura.
Código fuente arduino maestro

Código fuente arduino esclavo


Reto 18: Móvil controlando led de arduino. Bluetooth
El reto consiste en comunicar un teléfono móvil con arduino mediante bluetooth, para ello
conectaremos un dispositivo bluetooth a arduino que actuará como receptor y el móvil emitirá
datos. Se establecerá una comunicación serie entre ellos, al arduino en función del dato recibido del
móvil encenderá o apagará un led (D13).
Objetivos:
• Conexionado bluetooth para comunicación de móvil con arduino.
• Conocer o repasar órdenes para enviar y recibir datos con arduino. Serial.read() y
Serial.available().

Esquema

Conexionado arduino maestro


La forma de conexión será la que se muestra en la figura.
Código fuente

Aplicación en el móvil
Antes de nada en el móvil tengo que activar la conexión bluetooth, e instalar de la Tienda de
aplicaciones (Google play Store en mi caso) la aplicación Arduino Bluetooth Controler.

Al abrir la app lo primero que haces es buscar dispositivos y


emparejarlos, la contraseña de los dispositivos suele ser “1234”.
Más tarde usamos el modo “Controller mode” y configuramos los datos a enviar pulsando cada
botón del interface, para ello pulsamos la rueda dentada. En nuestro caso un botón debe enviar el
carácter “1” para encender el led y otro botón otro carácter para apagarlo.

También podría gustarte