Vamos a realizar un practico y muy sencillo ejercicio de Arduino luces rítmicas para darle secuencia a unos Leds, el ejercicio es la continuación del ejemplo llamado blink el cual tomaremos como base para iniciar, ya que las instrucciones son las mismas, solo que usamos más pines y led para activar.
Vídeo del circuito
A continuación encontraras un vídeo en donde se explica al detalle la solución del circuito.
¿Que es blink?
Es el ejercicio básico de Arduino, mas conocido como el hola mundo!, en donde se prende y apaga un led cada segundo.
¿Que vamos a hacer?
Hemos optimizado el ejercicio, ya que al repetir las instrucciones muchas veces no es la forma correcta de "codear" como se muestra en el código realizado anteriormente para ente ejemplo.
Resultado visual
● ○ ○ ○ ○ ○ ○
● ● ○ ○ ○ ○ ○
● ● ● ○ ○ ○ ○
● ● ● ● ○ ○ ○
...
Conocimiento previo
| Proyecto | Descripción |
|---|---|
| Introducción al arduino | En este post encontrarás links relacionados con proyectos que hemos realizado con la placa Arduino adicionalmente damos la introducción sobre este tema. |
| Arduino definición | Nada más la definición de Arduino y conocemos sus principales placas con las características de Hardware que posee. |
| Instalación de arduino en windows | En este post explicamos el paso a paso para instalar Arduino en el sistema operativo Windows. |
| pinMode() | Permite habilitar un pin del Arduino como entrada o salida. |
| digitalWrite() | Permite escribir en un pin digital un estado lógico. |
| arduino data types array | Una matriz es una colección de variables a las que se accede con un número de índice. |
Materiales
Estos son los materiales utilizados para este ejercicio de Arduino luces rítmicas.
| Material | Cantidad |
|---|---|
| Arduino de cualquier tipo | 1 |
| Leds de colores | 6 |
| Resistencias 330Ω | 6 |
| Cables conectores macho a macho | 6 |
Ensamble del circuito
Para el ensamble, colocamos los leds en la Protoboard, con las resistencias a tierra y cada led los colocamos desde el pin 2 al 7 del Arduino, como se muestra en la imagen.
Código
Ahora vamos con el código, en donde como mencione podemos tomar como base el ejemplo de blink, el cual es el de prender un led por el pin 13; para nuestro ejercicio lo vamos copiar las mismas lineas para los pines del 2 al 7.
Pero como mencione antes si repetimos las lineas no es muy eficiente, ya que nos queda un código muy largo.
int inputsPins[] = {2,3,4,5,6,7,8};
int totalPins = sizeof(inputsPins) / sizeof(inputsPins[0]);
void setup() {
for(int index = 0; index < totalPins; index ++){
pinMode(inputsPins[index], OUTPUT);
}
}
void loop() {
for(int index = 0; index < totalPins; index ++){
digitalWrite(inputsPins[index], HIGH);
delay(500);
}
for(int index = 0; index < totalPins; index ++){
digitalWrite(inputsPins[index], LOW);
delay(200);
}
}
Nota: Dejo el link del código por si quieren clonarlo con github.
Este programa en Arduino enciende y apaga secuencialmente los pines digitales 2 al 8.
int inputsPins[] = {2,3,4,5,6,7,8};
Crea un arreglo con los pines que se van a controlar.
int totalPins = sizeof(inputsPins) / sizeof(inputsPins[0]);
Calcula automáticamente cuántos pines hay en el arreglo (7).
setup()
for(int index = 0; index < totalPins; index++){
pinMode(inputsPins[index], OUTPUT);
}
Recorre el arreglo y configura cada pin como salida (OUTPUT).
loop()
Primer for:
digitalWrite(inputsPins[index], HIGH);
delay(500);
Enciende cada pin uno por uno, esperando 500 ms entre cada uno.
Segundo for:
digitalWrite(inputsPins[index], LOW);
delay(200);
- Apaga cada pin uno por uno, esperando 200 ms entre cada uno.
Resultado
- Los pines 2 → 8 se encienden de forma secuencial.
- Luego se apagan también de forma secuencial.
- El proceso se repite indefinidamente.