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.

Pistas:

int pinArray[] = {2, 3, 4, 5, 6};

for (int i = 0; i > 6; i++) {
    digitalWrite(pinArray[i], HIGH);
    delay(timer);
    digitalWrite(pinArray[i], LOW);
    delay(timer);
  }

O simplificado:

for (int i = 2; i < 6; i++) {
    digitalWrite(i, HIGH);
    delay(timer);
    digitalWrite(i, LOW);
    delay(timer);
  }

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

Arrays

Leer las entradas analógicas de la A0 a la A5 y almacenar en un array para mostrarlo cada 5 segundos. Hacer lo mismo con las entradas digitales de la 2 a la 7.

Solución: https://github.com/jecrespo/aprendiendoarduino-Curso_Arduino_2017/tree/master/Ejercicio49-Arrays

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 el programa 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.

4 comentarios en “Ejemplos Arduino con Arrays y Strings

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

  2. Pingback: Saber Más Iniciación Arduino 2019 | Aprendiendo Arduino

  3. Pingback: Saber Más Gestión de Proyectos con Arduino | Aprendiendo Arduino

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

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.