Paso 3: El Arduino sketch - parte uno
Así que cuando se mira desde el ángulo como se muestra arriba, tiene siete columnas verticales, cada una con cuatro niveles de LEDs. Así la fuerza de cada frecuencia puede dividirse en cuatro niveles y luego el LED apropiado encendido.
Después de esto se hace para cada banda, se apagan todos los LEDs y se repite el proceso.
Por simplicidad he utilizado del cubo biblioteca Arduino para activar los LEDs, que también hace más fácil comprender el bosquejo. El primer bosquejo de ejemplo sólo utiliza un solo color.
// ----------------------------------------------------------------------------------------------------------------------
Freetronics CUBE4: y analizador de espectro MSGEQ7
MSGEQ7 estrobo en A4, reset en D5, señal en A0
#include "SPI.h"
#include "Cube.h"
Cubo del cubo;
int res = 5; reajuste de pernos en D5
int a la izquierda [7]; almacenar los valores de la banda en estos arreglos de discos
int grupo;
void setup()
{
pinMode (res, salida); RESET
pinMode (A4, salida); luz estroboscópica
digitalWrite(res,LOW);
digitalWrite(A4,HIGH);
Cube.Begin (-1, 115200);
Serial.Begin(9600);
}
void readMSGEQ7()
Función para leer Ecualizadores de 7 bandas
{
digitalWrite (res, HIGH);
digitalWrite (res, LOW);
para (banda = 0; banda < 7; banda ++)
{
digitalWrite(A4,LOW); pin de Strobe en el escudo - comienza el IC hasta la siguiente banda
delayMicroseconds(30); //
izquierda [band] = analogRead(0); almacenar lectura de banda
digitalWrite(A4,HIGH);
}
}
void loop()
{
readMSGEQ7();
para (banda = 0; banda < 7; banda ++)
{
div cada banda fuerza en cuatro capas, cada banda entonces una de las diagonales impares
banda uno ~ 63 Hz
Si (a la izquierda [0] > = 768) {}
Cube.set (3,3,3, azul);
}
otra cosa
Si (a la izquierda [0] > = 512) {}
Cube.set (3,3,2, azul);
}
otra cosa
Si (a la izquierda [0] > = 256) {}
Cube.set (3,3,1, azul);
}
otra cosa
Si (a la izquierda [0] > = 0) {}
Cube.set (3,3,0, azul);
}
banda dos ~ 160 Hz
Si (a la izquierda [1] > = 768)
{
Cube.set (3,2,3, azul);
Cube.set (2,3,3, azul);
}
otra cosa
Si (a la izquierda [1] > = 512)
{
Cube.set (3,2,2, azul);
Cube.set (2,3,2, azul);
}
otra cosa
Si (a la izquierda [1] > = 256)
{
Cube.set (3,2,1, azul);
Cube.set (2,3,1, azul);
}
otra cosa
Si (a la izquierda [1] > = 0)
{
Cube.set (3,2,0, azul);
Cube.set (2,3,0, azul);
}
banda tres ~ 400 Hz
Si (a la izquierda [2] > = 768)
{
Cube.set (3,1,3, azul);
Cube.set (2,2,3, azul);
Cube.set (1,3,3, azul);
}
otra cosa
Si (a la izquierda [2] > = 512)
{
Cube.set (3,1,2, azul);
Cube.set (2,2,2, azul);
Cube.set (1,3,2, azul);
}
otra cosa
Si (a la izquierda [2] > = 256)
{
Cube.set (3,1,1, azul);
Cube.set (2,2,1, azul);
Cube.set (1,3,1, azul);
}
otra cosa
Si (a la izquierda [2] > = 0)
{
Cube.set (3,1,0, azul);
Cube.set (2,2,0, azul);
Cube.set (1,3,0, azul);
}
banda cuatro ~ 1 kHz
Si (a la izquierda [3] > = 768)
{
Cube.set (3,0,3, azul);
Cube.set (2,1,3, azul);
Cube.set (1,2,3, azul);
Cube.set (0,3,3, azul);
}
otra cosa
Si (a la izquierda [3] > = 512)
{
Cube.set (3,0,2, azul);
Cube.set (2,1,2, azul);
Cube.set (1,2,2-Trimethylpropyl, azul);
Cube.set (0,3,2, azul);
}
otra cosa
Si (a la izquierda [3] > = 256)
{
Cube.set (3,0,1, azul);
Cube.set (2,1,1, azul);
Cube.set (1,2,1, azul);
Cube.set (0,3,1, azul);
}
otra cosa
Si (a la izquierda [3] > = 0)
{
Cube.set (3,0,0, azul);
Cube.set (2,1,0, azul);
Cube.set (1,2,0, azul);
Cube.set (0,3,0, azul);
}
banda de cinco ~ 2.5 kHz
Si (a la izquierda [4] > = 768)
{
Cube.set (2,0,3, azul);
Cube.set (1,1,3, azul);
Cube.set (0.2.3, azul);
}
otra cosa
Si (a la izquierda [4] > = 512)
{
Cube.set (2,0,2, azul);
Cube.set (1.1.2, azul);
Cube.set (0,2,2, azul);
}
otra cosa
Si (a la izquierda [4] > = 256)
{
Cube.set (2,0,1, azul);
Cube.set (1,1,1, azul);
Cube.set (0,2,1, azul);
}
otra cosa
Si (a la izquierda [4] > = 0)
{
Cube.set (2,0,0, azul);
Cube.set (1,1,0, azul);
Cube.set (0,2,0, azul);
}
banda de seis ~ 6,25 kHz
Si (a la izquierda [5] > = 768)
{
Cube.set (1,0,3, azul);
Cube.set (0,1,3, azul);
}
otra cosa
Si (a la izquierda [5] > = 512)
{
Cube.set (1,0,2, azul);
Cube.set (0,1,2, azul);
}
otra cosa
Si (a la izquierda [5] > = 256)
{
Cube.set (1,0,1, azul);
Cube.set (0,1,1, azul);
}
otra cosa
Si (a la izquierda [5] > = 0)
{
Cube.set (1.0.0, azul);
Cube.set (0.1.0, azul);
}
banda 7 ~ 16 kHz
Si (a la izquierda [6] > = 768)
{
Cube.set (0,0,3, azul);
}
otra cosa
Si (a la izquierda [6] > = 512)
{
Cube.set (0,0,2, azul);
}
otra cosa
Si (a la izquierda [6] > = 256)
{
Cube.set (0.0.1, azul);
}
otra cosa
Si (a la izquierda [6] > = 0)
{
Cube.set (0,0,0, azul);
}
}
ahora claro el cubo, o si es demasiado lento - repetir el proceso pero apagar LEDs
Cube.All(Black);
}
// ----------------------------------------------------------------------------------------------------------------------
y un rápido vídeo demostrativo: