Ejemplos Arduino con Arrays y Strings

Efectos con leds mejorado

El ejemplo anterior de los LEDs 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.

Hacer el efecto del coche fantástico usando arrays y la estructura de control for.

Tutorial: https://www.arduino.cc/en/Tutorial/KnightRider

Estructura de control for: https://www.arduino.cc/en/Reference/For

Esquema de conexión:

Solución: https://github.com/jecrespo/aprendiendoarduino-Curso_Arduino_2017/tree/master/Ejercicio09-CocheFantasticoMejorado

Control Velocidad del Efecto de Leds

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);”

Esquema de conexión:

O usando un LDR para el control de velocidad:

Solución: quitar los comentarios de https://github.com/jecrespo/aprendiendoarduino-Curso_Arduino_2017/tree/master/Ejercicio09-CocheFantasticoMejorado

Probar a hacer otros efectos como: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio48-Efectos_Led

Leer Strings por Puerto Serie

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:

Hacer un programa donde al iniciar Arduino pregunta que introduzca un string cualquiera y lo mando a Arduino por puerto serie usando el monitor 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 usar este código:

 
String cadena_leida;

while (Serial.available() == 0){
    //No hago nada
  }
  do{
    caracter_leido = Serial.read();
    cadena_leida += caracter_leido;
    delay(5);
  }  while (Serial.available() > 0);

La función Serial.available() me devuelve el número de bytes (caracteres) disponibles para leer del puerto serie. Estos son datos que han llegado al puerto serie de Arduino y se almacenan en el buffer de lectura de la UART. Más información: https://www.arduino.cc/en/Serial/Available

Serial.read() lee un caracter del puerto serie y los quita del buffer. Más información: https://www.arduino.cc/en/Serial/Read

NOTA para entender lo que está haciendo poner la constante DEBUG a valor 1

Solución: https://github.com/jecrespo/aprendiendoarduino-Curso_Arduino_2017/tree/master/Ejercicio10-LeerStringSerie

Encender LED por Puerto Serie

Modificar el ejemplo anterior para que encienda el led de Arduino (pin 13) cuando mande la cadena “enciende” y lo apague cuando mande la cadena “apaga”.

Esquema de conexión:

Para comparar el texto introducido se proponen dos opciones, probar con ambas:

 
if (leido.startsWith("enciende"))

if (leido == "enciende")

Solución: https://github.com/jecrespo/aprendiendoarduino-Curso_Arduino_2017/tree/master/Ejercicio11-EncenderLedSerie

NOTA: Al igual que leemos y analizamos un valor con lo recibido por el puerto serie, la forma de trabajar si la comunicación es por ethernet, 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. Los módulos de comunicación hablan con el microcontrolador a través los puertos serie (UART), I2C o SPI, cuyo funcionamiento es similar a lo visto en estas dos últimas prácticas.

Anuncios

2 pensamientos en “Ejemplos Arduino con Arrays y Strings

  1. Pingback: Saber Más Programación | Aprendiendo Arduino

  2. Pingback: Saber Más Avanzado 2017 | Aprendiendo Arduino

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s