1
Taller de Arduino para estudiantes de Invenio
Folleto de Prcticas Nivel Bsico
Elaborado por: Luis Len
Introduccin:
Este folleto de prcticas est hecho con el fin de que los estudiantes a quienes
se les recomiende el material hecho para este taller, puedan poner en prctica sus
conocimientos de programacin en Arduino a nivel bsico. En este fascculo se
encontraran prcticas que combinan retos de programacin y de armado de circuitos
en conjunto. Como recomendacin que brindo, es que el estudiante haga los
ejercicios primero en el simulador del sitio 123d.circuits.io y luego en fsico con su
propio Arduino, esto para que el estudiante se familiarice con la simulacin de
circuitos como proceso de comprobacin antes de ejecutar sus circuitos en la
realidad.
Asimismo, en este folleto se encontrarn prcticas con cdigos no vistos en
clase, pero que se pueden encontrar en la referencia del Arduino IDE
(http://arduino.cc/en/Reference/HomePage).
Tpicos:
- Prcticas con el monitor serial
- Prcticas con variables
- Prcticas con puertos digitales (entradas, salidas y mixtos)
- Prcticas con puertos analgicos (entradas, salidas y mixtos)
- Prcticas con sensores sencillos que no usan librera
2
Problemas de Nivel 1 - Bsico
1. Tenemos un semforo daado y nos piden que lo reparemos en el mnimo
tiempo posible y que sea con recursos a nuestro alcance. Asuma que tienes
un Arduino UNO a disposicin. Los tiempos que debe tener la luz roja
encendida son de 2 minutos y la luz verde es de 1 minuto: Realice un
programa de Arduino, donde se repare el semforo con base al siguiente
circuito:
Pistas: Use escritura digital y retardos
2. El jefe de departamento quiere personalizar su oficina y te ha pedido que
hackees su puerta con un led multicolor que indique cuando est ocupado,
disponible o medianamente ocupado. Te ha dado un Arduino UNO para esa
labor: Usando 1 botn y 1 led multicolor, cree un programa que permita a tu
jefe poder cambiar los colores del LED al hacer clic al botn (cada clic que se
le haga al botn, el led asumir un color diferente). Base su programa en el
siguiente diagrama:
3
Pistas: Use dos condiciones if (una para contabilizar las pulsaciones y otra para
encender el color del LED correcto).
3. Imagina que trabajas en un taller de diseo de dispositivos para autos
modificados. Un cliente te pidi que hicieras la matriz de LED similar al auto
fantstico1 con 20 leds (agrupndolos en parejas). Asuma que tienes que
hacerlo con un Arduino UNO y utiliza el siguiente diagrama:
1 Si no sabes que es el auto fantstico, ver este video: https://www.youtube.com/watch?v=Z-Fw3AAT5Fs
4
Nota: Si no tienes 20 leds, puedes hacerlo slo con 10
Pista: Usa digitalWrite
4. Imagina que ests trabajando para una tienda de regalos y un cliente geek
te pide que hagas un corazn que se ilumine con un LED. Adems te
especific que cuando no haya luz en el cuarto donde se tendr el corazn,
este se ilumine lentamente y se apague lentamente (indefinidamente), no
obstante, cuando se encienda la luz, comience a latir de forma muy similar al
latido de un corazn, como se ilustra con la siguiente grfica:
5
Para el problema, utiliza el siguiente diagrama como ayuda:
0
2
4
6
8
10
12
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Inte
nsi
dad
de
luz
del
LED
Tiempo x100 milisegundos
LED cuando el cuarto est oscuro
0
2
4
6
8
10
12
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Inte
nsi
dad
de
luz
del
LED
Tiempo x100 milisegundos
LED cuando el cuarto est iluminado
6
Pistas: Usar un analogRead y un analogWrite, jugando con delays y condiciones
5. Para un trabajo de universidad, te pidieron hacer un convertidor de analgico
a digital con un Arduino. Para ello te dieron tres valores (100, 300, 700, 1000),
donde esos valores representen el encendido de tres LEDS de la siguiente
forma:
Valor Accin
100 Ningn LED encendido
300 Slo LED rojo encendido
700 Slo LED amarillo encendido
1000 Slo LED verde encendido
Para lo anterior utilice condiciones que permitan comparar lo obtenido de un
potencimetro conectado a una patilla Analgica del Arduino (A0) con los valores
anteriores.
Ejm: if(potval > 100 && potval < 300)
Adems utilice el siguiente diagrama:
7
Nota: Debes tener el puerto Serial configurado para ver los resultados
Pistas: Usa el analogRead, condiciones, monitor serial y digitalWrite
8
Ejercicios de Nivel 1 Bsico
Para estos ejercicios, es necesario visitar la referencia de Arduino:
http://arduino.cc/en/Reference
1. Juega con variables Char* aleatorias: Utilizando un botn y la instruccin
Random, enva mensajes al monitor serial con frases clebres del da al pulsar
un botn.
2. Cuenta de 10 en 10: Utilizando el monitor serial y un botn, haz que el
Arduino muestre en el monitor serial un conteo de 10 en 10 al pulsar un
botn.
3. Juguemos a las matemticas: Utilizando el monitor serial y un botn, muestra
que el Arduino es inteligente y despliega las siguientes operaciones y sus
respuestas:
1.1. (Sen(60)+2)/2
1.2. 2+2*2/2
1.3. 6.66/0.32
Utiliza el siguiente ejemplo de respuesta: 2*2,6 = 5,2
4. Enciende un LED aleatorio: Utilizando 6 LEDs, haz que al pulsar un botn se
encienda uno de forma aleatoria como un dado digital. Utilice la instruccin
random y condiciones.
5. Luz estroboscpica: Utilizando un LED y delays con valores aleatorios de 1-
1000ms, haz que el Arduino encienda un LED y lo apague con un tiempo
indefinido usando Random.
6. Aprende a usar for: Utilizando un for y el monitor serial, haz que el Arduino
cuente hasta el n.mero 1000 y mientras lo hace, que encienda y apague un
LED cada 200 milisegundos.
9
7. Emitiendo tonos: Utilizando tone() y una pequea bocina o altavoz, haz que
el Arduino emita diferentes tonos ajustados mediante un potencimetro
conectado a un pin Analgico.
8. Utilizando do while: Utilizando las condicionales do while, haz que un
LED se encienda y se apague cada segundo, mientras que x < 100. Adems
que cada vez que el LED se encienda y se apague, incremente x en una
unidad