Test Repaso
Realizar este test con 20 preguntas para evaluar los conocimientos de Arduino: testmoz.com/1332065
Para entrar poner vuestro nombre seguido de # + “número kit”
Por ejemplo Enrique#99
passcode: AprendiendoArduino2017
Práctica: Ejemplos Básicos con Arduino
Repasar cada uno de los ejemplos básicos:
- Leer entradas digitales
- Leer entrada digital sin referencia externa
- Leer entradas analógicas
- Leer entrada analógica mejorada
- Escribir salida analógica
- Escribir salida digital con acción de un botón
- Mejora de botón para evitar rebotes
- Contar pulsaciones
Ejemplos básicos con Arduino: http://jecrespo.github.io/ArduinoBasicExamples/
Práctica: Detectar Flanco
Hacer un sistema de encendido y apagado de un led mediante una pulsación. Con una pulsación enciende y con otra apaga el led. Para hacer esto debemos detectar flancos al encender y apagar.
Usar la resistencia interna de pull up de Arduino para detectar la pulsación de un botón en el pin 2 (leer estado de una entrada digital) y encender/apagar el led puesto en el pin 10 (no olvidar la resistencia) al detectar un flanco ascendente. Adicionalmente sacar por el monitor serie el estado de pulsación del botón con un 1 (pulsado) o un 0 (no pulsado) y en la misma línea el estado del led con un 3 (led encendido) y 0 (led apagado), de esta forma abriendo el Serial Plotter es posible ver cuando se enciende y apaga el led al detectar flancos.
Esquema de conexión:
Resultado:
Solución Ejercicio01: https://github.com/jecrespo/aprendiendoarduino-Curso_Arduino_Avanzado_2017/tree/master/Ejercicio01-Detectar_Flanco
Solución a los Rebotes (Debounce)
Los rebotes son las falsas pulsaciones que se producen al hacer falsos contactos en el interruptor.
Para ello esperar un tiempo llamado debounceDelay para comprobar que el cambio de estado se mantiene y no son rebotes (ruido).
Más información https://www.arduino.cc/en/Tutorial/Debounce
Solución Ejercicio02: https://github.com/jecrespo/aprendiendoarduino-Curso_Arduino_Avanzado_2017/tree/master/Ejercicio02-Detectar_Flanco_Debounce
Otra forma de solucionar los rebotes por código:
http://miarduinounotieneunblog.blogspot.com.es/2016/01/pulsador-antirrebote-con-contador-de.html ¿véis algún problema con esta solución?
Solución: El código puede quedarse durante mucho tiempo en la función antirrebote(), bloqueado Arduino para hacer otras tareas.
Solucionar rebotes por HW:
Calculadora de valores para debouncing: http://protological.com/debounce-calaculator/
Práctica: Medir valor de un Condensador
Usar un Arduino para medir el valor de un Condensador.
Ver: https://www.arduino.cc/en/Tutorial/CapacitanceMeter
Esquema de conexión:
¡ATENCIÓN! Poner un condensador de 100uF y asegurarse de poner correctamente la polaridad. Símbolo – (patilla con símbolo – – – -) a masa.
La resistencia R tiene un valor de 10Kohms
Al conectar un condensador en serie con una resistencia, a una fuente de tensión eléctrica (o comúnmente, fuente de alimentación), la corriente empieza a circular por ambos. El condensador va acumulando carga entre sus placas. Cuando el condensador se encuentra totalmente cargado, deja de circular corriente por el circuito.
Explicación del sketch:
- Configurar el pin de descarga a INPUT (alta impedancia de modo que no pueda descargar el condensador). Pin 11.
- Registre el tiempo de inicio con millis ()
- Establecer el pin de carga en OUTPUT y ponerlo a HIGH. Pin 13.
- Compruebe la tensión repetidamente en un bucle hasta que llegue a 63.2% de la tensión total.
- Después de cargar, restar el tiempo actual de la hora de inicio para averiguar cuánto tiempo le costó al condensador para cargar.
- Dividir el Tiempo en segundos por la resistencia de carga en ohmios para encontrar la Capacitancia.
- Imprimir por serial el valor con serial.print
- Descargue el condensador. Para hacer esto:
- Establezca el pin de carga en la entrada
- Configurar el de descarga en OUTPUT y haga que sea LOW
- Leer el voltaje para asegurarse de que el condensador está completamente descargado
- Loop y hacerlo de nuevo
Para asegurarse que el condensador está descargado, asegurarse de quitar alimentación cuando lo indique el sketch por pantalla.
Solución Ejercicio03: https://github.com/jecrespo/aprendiendoarduino-Curso_Arduino_Avanzado_2017/tree/master/Ejercicio03-Medidor_Condensadores
Para ampliar la explicación del ejercicio https://www.arduino.cc/en/Tutorial/CapacitanceMeter
Más Prácticas
Otros ejemplos sencillos de prácticas con Arduino en https://aprendiendoarduino.wordpress.com/2017/07/04/ejemplos-sencillos-arduino/, usando este montaje de prácticas https://aprendiendoarduino.wordpress.com/2017/07/02/montaje-practicas/
- Leer LDR
- Contar Pulsos
- Mover Servo