Inicializar Pines en Arduino. ¡Hazlo como los expertos!

Algo en común para todos lo proyectos que hacemos en Arduino ya sea un proyecto grande, pequeño, simple o avanzado es que debemos de configurar los pines que vamos a utilizar y en ciertas circunstancias puede ser algo tedioso, es por eso que hoy veremos como inicializar pines en Arduino como los expertos .

Inicializar pines en Arduino es casi lo primero que aprendemos cuando nos iniciamos en este mundo, declarar variables, el tipo de dato, un nombre y un valor son cuestiones clave que debemos de atender cuando nuestra imaginación nos permite diseñar un nuevo proyecto.

Sin embargo, esta tarea puede ser ardua cuando nuestro proyecto requiere el uso de muchas entradas y salidas al mismo tiempo por lo que estar declarando cada pin a mano puede ser una actividad que nos ocupe mucho tiempo, espacio y memoria en un pequeño circuito integrado que podríamos aprovecharla en una nueva característica de nuestro flamante proyecto nuevo.

int led1 = 1;
int led2 = 2;
int led3 = 3;
int led4 = 4;

void setup(){
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
}
void loop(){

}

Inicializar pines en Arduino con un Array

Para esta nueva forma de inicializar los pines usaremos un Array de elementos, un Array no es más que una lista donde podemos almacenar distintos elementos separados por una «,» lo cual es ideal ya que nos va a permitir declarar en la misma línea de código cuantos pines necesitemos en nuestro proyecto y lo mejor de todo, sin necesidad de dar un nombre distinto a cada terminal que usemos.

//Definimos un array de pines para inicializar las variables
int leds []={8,9,10,11,12,13};

Definiendo como salidas digitales el array de pines

Una vez hemos creado el array es hora de declararlos como entrada o salida, para ello en el void setup usaremos un bucle for que recorrerá cada uno de los elementos del array y los declarará como salida digital en mi caso, si en tu proyecto necesitas entradas digitales puedes cambiar la palaba OUTPUT por la de INPUT y todo funcionará a la perfección.

void setup() {
  //Declaramos cada pin como una salida 
  for (int i =0;leds[i]<=5;i++){
    pinMode(leds[i],OUTPUT);
  }

}

Fíjate en como la variable leds[i] se refiere a cada elemento que ocupa el valor «i» dentro del array leds, declarándose como salida en la instrucción de dentro del bloque.

Void loop y el código principal de nuestro proyecto

Ahora es turno de darle la funcionalidad que queramos y es que en mi caso y para simplificar el ejemplo haremos un parpadeo de leds para ello y de manera similar al código anterior usaremos el bucle for para recorrer cada una de las salidas digitales previamente definidas, la cuales tendrán un 1 lógico por un segundo y luego volverán al 0 lógico.

void loop() {
 //Accedemos a cada uno de los LED's
 for (int i =0;leds[i]<=5;i++){
    digitalWrite(leds[i],HIGH);
    delay(1000);
    digitalWrite(leds[i],LOW);
  }

}

Código completo

Ahora te dejo el código completo para que puedas copiarlo e implementarlo tú mismo en tu proyecto

/*
  Programa Arduino para inicializar pines de entrada y salida como un experto

  En este programa declaramos un array con los pines que vamos a utilizar en nuestro
  Arduino, con un bucle for lo recorremos para inicializarlos como salidas digitales y 
  por último en nuestro loop volvemos a usar el bucle for para crear un parpadeo de un segundo
  con cada uno de ellos.

  Autor: Alexdevrep
  Fecha: 17/10/2024
  Más contenido interesante en:
    -Github: https://github.com/alexdevrep
    -Instagram: https://www.instagram.com/alexdevrep/
    -WordPress: https://eltallerdealexdevrep.com
    -Youtube: https://www.youtube.com/channel/UCNlqgVY-CaQ2Lgc5xJChaKA
*/

//Definimos un array de pines para inicializar las variables
int leds []={8,9,10,11,12,13};

void setup() {
  //Declaramos cada pin como una salida 
  for (int i =0;leds[i]<=5;i++){
    pinMode(leds[i],OUTPUT);
  }

}

void loop() {
 //Accedemos a cada uno de los LED's
 for (int i =0;leds[i]<=5;i++){
    digitalWrite(leds[i],HIGH);
    delay(1000);
    digitalWrite(leds[i],LOW);
  }

}

Acceso a un elemento específico del Array

Bien es muy posible que tras leer estas palabras te estés preguntando que pasa si quieres que cierto pin de Arduino tenga un comportamiento distinto al resto, para ello simplemente accederemos a un elemento en función de la posición que ocupe en el array, teniendo en cuenta que la primera posición es la 0

void loop(){
  digitalWrite(leds[2],HIGH); //Ahora el tercer elemento del array permanecerá encendido por 100ms
  delay(100);
  digitalWrite(leds[2],LOW);
}

A continuación te dejo un vídeo donde se explica todo de manera mucho más visual:

video explicativo

Esto es todo acerca de inicializar pines en Arduino, recuerda que puedes dejarme un comentario con tus impresiones, ¿Te has fijado en el arduino que utilizo en el vídeo de prueba? Puedes saber más acerca sobre ese proyecto la sección dedicada a el expansor I/O para el ESP8266 en este mismo blog, además te dejo mi perfil de github en el que puedes explorar muchos más proyectos de electrónica y programación como este.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio