Efectos con leds mejorado
El ejemplo anterior de las luces con el efecto del coche fantástico puede hacerse de una forma más eficiente con el uso de los arrays y la estructura de control for. Además hacer otros efectos de luces o cambios en el realizado es mucho más sencillo usando arrays.
Tutorial: https://www.arduino.cc/en/Tutorial/KnightRider
Solución:
- Estructura de control for: https://www.arduino.cc/en/Reference/For
- https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio17-CocheFantastico_2
- https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio17-CocheFantastico_3
Añadir el cambio de velocidad dentro del código al leer de un potenciómetro de forma que no haya que esperar a un ciclo de loop para cambiar la velocidad: “timer = analogRead(A0);”
O un LDR:
Probar a hacer otros efectos como: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio48-Efectos_Led
Manejar Strings
Aprender a manejar cadenas de caracteres es muy importante, a lo largo del curso se va a usar muy a menudo para comunicaciones y para interaccionar con el usuario.
Tutoriales para aprender a usar los Strings:
- http://arduino.cc/en/Tutorial/StringConstructors
- http://arduino.cc/en/Tutorial/StringCharacters
- http://arduino.cc/en/Tutorial/StringComparisonOperators
- http://arduino.cc/en/Tutorial/StringCaseChanges
- Y más tutoriales en https://www.arduino.cc/en/Reference/StringObject
Ejercicio Strings_vs_strings: Partiendo de la base del ejercicio StringsComparisonOperators intentar hacer las operaciones de comparación de igualdad y distinto de los StringOne y StringTwo con string en lugar de String. Ver como es más complicado y para iniciarse en la programación es mejor usar String (objeto) que string (char array).
Solución: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio18-strings/_5-String_vs_string
Ejercicio String Interactivo: Hacer un programa donde al iniciar Arduino pregunta que introduzca un string cualquiera y lo mando por puerto serie. Luego lo almacena en una variable y muestra lo leído por el puerto serie.
No olvidar poner en el setup() la inicialización del puerto serie: Serial.begin(9600);
Para leer por el puerto serie:
while (Serial.available() == 0){
//Ho hago nada
}
do{
caracter_leido = Serial.read();
cadena_Leida += caracter_leido;
delay(5);
} while (Serial.available() > 0);
Solución: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio18-strings/_6-interactivo
Ejercicio String Numeros: Hacer otra versión del ejercicio anterior donde me pide un número al iniciar Arduino y lo paso por el puerto serie. Luego multiplicar por 15 ese número y sacar por el puerto serie el resultado. En caso que lo introducido no sea un número sacar por pantalla el error.
Esto lo aplicaremos en la práctica de dimmer para manejar la luminosidad de un led con un valor que paso por el puerto serie más adelante.
Recordar que es necesario usar la función toInt(): http://arduino.cc/en/Reference/StringToInt
Solución: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio18-strings/_7-String_Numeros
Ejercicio coche fantástico 4: Sobre la versión 2 del coche fantástico, modificar el código para que el valor del tiempo que está encendido el led se pase por puerto serie y Arduino lo recoja y lo modifique para cambiar la velocidad a la que lucen los leds.
NOTA: Al igual que modificamos un valor con lo recibido por el puerto serie, la forma de trabajar si la comunicación es por wifi, bluetooth, XBee, etc… es la misma, Arduino está escuchando por el puerto de comunicación y cuando recibe una petición válida ejecuta una acción.
Solución: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio17-CocheFantastico_4
Pingback: Día 4. Programación Arduino I – Aprendiendo Arduino
Pingback: Día 5. Programación Arduino II – Aprendiendo Arduino