Sesión 8 del curso de Arduino básico donde vamos a profundizar en los delays o esperas. Veremos que una orden de espera va a «paralizar» el programa por lo que todo lo que pase alrededor de la placa no va a ser «visible» por Arduino.
Los ejercicios que propongo en esta sesión van a combinar todas las órdenes de control y no debes dejar de hacerlos, y si tienes cualquier duda a la hora de realizarlos ponte en contacto a través del formulario de soporte para alumnos.
Vídeo de la sesión 8 del curso de Arduino básico
Ejercicios:
- Mediante un bloque «por siempre» realizar un programa que indefinidamente haga parpadear el LED de la salida 13.
- Dentro de ese bucle, antes o después de los bloques que hacen parpadear el LED 13, incluir un bucle mediante «esperar hasta que PIN(A)1>1000» que haga parpadear el LED de la salida 12 3 veces. Comprobar el funcionamiento. Recuerda que para que entre en el bucle activado por botón debes mantener pulsado el botón hasta que el programe «pase» por esa zona. Si para hacer parpadear el LED 13 hemos usado esperas de tiempo, debemos esperar ese tiempo para que el programa lea nuestro botón.
- Cambia el bucle de repetición que depende de botón por una espera con «esperar hasta que pin(A)1=0, y posteriormente los bloques de repetición del LED 12. Recuerda mantener también el parpadeo del LED 13 como en el ejercicio 1. En este programa igual que en el 2 el LED 12 va a parpadear 3 veces al pulsar el botón. ¿Pero qué diferencia observas respecto al parpadeo del LED 13?
- Crea un nuevo programa de manera utilizando únicamente el botón 1 vaya encendiendo un LED a cada pulsación, y que una vez encendidos los 4 LEDs los vaya apagando igualmente a cada pulsación. Utiliza únicamente un «por siempre», para que todo vuelva a empezar y pueda volver a encender los LEDs, y ordenes de «esperar hasta que». Si no consigues encontrar la solución, igual que con cualquier ejercicio, ponte en contacto!
- ¿Te atreves a crear un programa que funcione verificando una clave? Vamos a suponer que queremos verificar que el usuario introduce la clave 1322, es decir que se pulsa el botón 1, luego el 3 y luego dos veces el 2. Crea un programa de tal manera que si se introduce la secuencia correcta todos los LEDs parpadeen 3 veces, y si es incorrecta se enciendan fijos 3 segundos. Luego deben permanecer apagados esperando de nuevo la introducción de la clave. Tendrás que utilizar bloques condicionales tipo «si, si no»y enlazar varios dependiendo de los anteriores. Sería algo así:

- Continuando las pulsaciones correctas llegaremos bien, ¿pero cómo detectamos el resto de pulsaciones en las zonas «si no»?
- ¿Cómo detectamos la segunda pulsación del 2? Si seguimos poniendo otro bloque igual al anterior (si leer pin(A)2=0) no se detectará la segunda pulsación del botón 2 porque la lectura es tan rápida que leerá por primera vez la pulsación del botón 2 y por rápido que lo soltemos detectará la siguiente condición. intercalar algún bloque de espera para solucionarlo.
- Es un problema complicado, no dejes de plantear tus dudas.
Todas las clases de este curso
- Iniciación a Arduino por bloques #1. La placa Arduino UNO.
- Iniciación a Arduino por bloques #2. Instalar mBlock.
- Iniciación a Arduino por bloques #3. Interacción con el medio físico: sensores y actuadores.
- Iniciación a Arduino por bloques #4. Elementos de la placa Arduino UNO y shield de prácticas.
- Iniciación a Arduino por bloques #5. Primeros programas corriendo en PC variando salidas en Arduino.
- Iniciación a Arduino por bloques #6. Lectura de entrada analógica y cargar programa en Arduino (autónomo).
- Iniciación a Arduino por bloques #7. Bucles de repetición.
- Iniciación a Arduino por bloques #8. Delay: bloques de espera.
- Iniciación a Arduino por bloques #9. Sensor de ultrasonidos y funciones condicionales en cascada.
- Iniciación a Arduino por bloques #10. Tratamiento de entrada analógica con potenciómetro.
- Iniciación a Arduino por bloques #11. Transformar voltaje a unidades de medida en sensores analógicos.
- Iniciación a Arduino por bloques #12. Bloques para accionar servos y emitir sonidos con piezoeléctricos.
- Iniciación a Arduino por bloques #13. Uso de variables, listas (arrays) y subrutinas.