3 x 3 cubo de LED programación consejos (basado en Arduino) (6 / 8 paso)

Paso 6: ¿Qué hago ahora?

Ahora tenemos una secuencia programada de Marcos y transforma el código a un formato que vamos a ejecutar dentro de nuestro sketch de Arduino. '¿Qué sketch' pides? El sketch de Arduino que usa para conducir mi cubo se ve así:

/*
Basado en ledcube.c de hacer: podcast de fin de semana de 07 de septiembre de 2007
http://blog.Makezine.com/Archive/2007/09/make_a_pocket_led_cube_we.html

Animación personalizada programada por Mark Boszko, http://stationinthemetro.com
*/

#include < avr/pgmspace.h > / / permite el uso de PROGMEM para almacenar patrones de flash

#define CUBESIZE 3
#define PLANESIZE CUBESIZE * CUBESIZE
#define PLANETIME 3333 / / tiempo de cada plano se muestra en nosotros -> refresco de 100 Hz
#define TIMECONST 5 / / multiplica DisplayTime para obtener ms - = ¿por qué no 100?

Tabla de patrón de LED en PROGMEM - la última columna es tiempo de visualización en unidades de 100ms
TODO esto podría ser mucho más compacto, pero no con la representación del patrón binario
prog_uchar PROGMEM PatternTable [] = {}

B101, B010, B101, B000, B000, B000, B000, B000, B000, 50,
B000 B000, B000, B000, B010, B000, B000, B000, B000, 50,
B000 B000, B000, B000, B000, B000, B101, B010, B101, 50,
B000 B000, B000, B000, B010, B000, B000, B000, B000, 50,
}

/*
** Definición de pines de matriz facilita cambiar cómo se cablea el cubo
** Ajustar números aquí hasta que parpadean en orden - L a R, T a B
** Nota que entradas analógicas 0-5 también son salidas digitales 14-19.
** Pin DigitalOut0 (serial RX) y AnalogIn5 se dejan abierta para futuras aplicaciones
*/

int LEDPin [] = {16, 3, 1, 15, 4, 6, 14, 5, 7};
int LEDPin [] = {2, 3, 4, 5, 6, 7, 8, 9, 10};

int [] PlanePin = {19, 18, 17};
int PlanePin [] = {12, 13, 11};

inicialización de
void setup()
{
int pin;      contador de bucle
configura pines del LED como salida (activo alto)
para (pin = 0; pin < PLANESIZE; pin ++) {}
pinMode (LEDPin [pin], salida);
}
configurar pines plano como salidas (activo bajo)
para (pin = 0; pin < CUBESIZE; pin ++) {}
pinMode (PlanePin [pin], salida);
}
}

muestra patrón en mesa hasta DisplayTime es cero (y repetir)
void loop()
{
declarar variables
byte PatternBuf [PLANESIZE];      guarda el patrón actual de PatternTable
int PatternIdx;
byte DisplayTime;        tiempo * 100ms para mostrar configuración
EndTime largo sin firmar;
plano de int.      contador de bucle para actualización de cubo
int patbufidx;   índices que byte del buffer patrón
int ledrow;    cuenta con LEDs en bucle de actualización
int ledcol;    cuenta con LEDs en bucle de actualización
int ledpin;    cuenta con LEDs en bucle de actualización

Inicializar PatternIdx al principio de la tabla patrón
PatternIdx = 0;
lazo sobre las entradas de tabla de patrón - mientras DisplayTime > 0
{}
Lee el patrón de PROGMEM y guardar en array
memcpy_P (PatternBuf, PatternTable + PatternIdx, PLANESIZE);
PatternIdx += PLANESIZE;
leer DisplayTime del índice PROGMEM y el incremento de
DisplayTime = pgm_read_byte_near (PatternTable + PatternIdx ++);
calcular EndTime del actual tiempo (ms) y DisplayTime
EndTime = millis() + ((unsigned long) DisplayTime) * TIMECONST;

bucle mientras DisplayTime > tiempo 0 y actual < EndTime
mientras que (millis() < EndTime) {}
patbufidx = 0;    reiniciar contador de índice al principio del buffer
lazo sobre planos
para (plano = 0; plano < CUBESIZE; plano ++) {}
Apague el plano anterior
Si (plano == 0) {}
digitalWrite (PlanePin [CUBESIZE-1], LOW);
} else {}
digitalWrite (PlanePin [plano-1], LOW);
}

datos actuales de patrón plano de carga en puertos
ledPin = 0;
para (ledrow = 0; ledrow < CUBESIZE; ledrow ++) {}
para (ledcol = 0; ledcol < CUBESIZE; ledcol ++) {}
digitalWrite (LEDPin [ledpin ++], PatternBuf [patbufidx] & (1 << ledcol));
}
patbufidx ++;
}

encender el avión actual
digitalWrite (PlanePin [avión], alto);
retrasar PLANETIME nos
delayMicroseconds (PLANETIME);
} / / avión
} / / mientras < EndTime
} mientras (DisplayTime > 0);        leer patrones hasta el momento = 0 que indica el final
}

Artículos Relacionados

Cubo de LED de 3 x 3 con Arduino UNO

Cubo de LED de 3 x 3 con Arduino UNO

este instructable le dará instrucciones sobre cómo construir un cubo de LED de 3 X 3. En el paso 1 he incluido una lista de materiales utilizados incluyendo sus precios y donde se adquirieron. Paso 2 le dará instrucciones detalladas sobre cómo deben
Juego de Pong de matriz de LED de bi-color basados en Arduino

Juego de Pong de matriz de LED de bi-color basados en Arduino

Hemos creado dos instructables proyecto de juego hasta ahora con los kits jolliFactory de Bi-color LED matriz conductor módulo bricolaje que hemos diseñado. Este módulo de matriz de LED está diseñado para ser capaz de cadena así que usted puede encad
Tutoriales de programación simples basados en Arduino: 1 con LED

Tutoriales de programación simples basados en Arduino: 1 con LED

esto es solo el comienzo de toda una increible serie! impresionantes todavía cosas por venir!Paso 1: A pocos pasos... Básicamente se trata de programación absolutamente simple;int led = 13; declarado el led en el pin 13;void setup() {}pinMode(led,OUT
Matriz de LED 24 x 10 (basado en Arduino)

Matriz de LED 24 x 10 (basado en Arduino)

He visto un buen montón de instructables que muestra cómo crear matrices de LED, pero me gustaría destacar dos de ellos, como esta construcción se basa en que dos estructuras.Hacer una matriz de LED 24 X 6 por Syst3mXyHacer un cartel gigante de LED!
Fotosensible infrarrojo LED de Control sistema basado en Arduino

Fotosensible infrarrojo LED de Control sistema basado en Arduino

ICStation equipo presentarles este fotosensible infrarrojo LED sistema de control de la sincronización. Este sistema utiliza un voltaje DC5V para trabajar. Cuando la intensidad de la luz es débil y alguien aparece en la zona infrarroja, el LED estará
El 4 x 4 x 4 cubo del LED (Arduino)

El 4 x 4 x 4 cubo del LED (Arduino)

en este instructable le mostraré cómo hacer un 4 x 4 x 4 cubo del LED que será controlado por un Arduino Demulionove. ahora sí que podríamos decir"que Arduino tiene sólo 14 pines I/O bien también los pines analógicos 6 puede utilizarse como pernos de
Bi-color LED matriz Flappy juego de aves basados en Arduino

Bi-color LED matriz Flappy juego de aves basados en Arduino

Hemos construido varios proyectos usando el módulo de controlador de matriz de LED de bicolor (rojo y verde) los kits de jolliFactory y han publicado como instructables aquí. Cada uno de estos módulos utiliza dos MAX7219 Display Driver ICs para contr
BRICOLAJE | 3 x 3 x 3 cubo del LED para Arduino Nano +

BRICOLAJE | 3 x 3 x 3 cubo del LED para Arduino Nano +

Hi todo el mundo!Mi nombre es RGBFreak y he creado un canal en YouTube hace poco.Me encanta el bricolaje y me gusta sobre todo LED, por lo que decidí hacer mi propia 3 x 3 x 3 cubo del LED!Usted necesitará los siguientes elementos para hacer este cub
Clásico cubo de LED (especie de :-)

Clásico cubo de LED (especie de :-)

OK, ese no es el clásico 3 * 3 * 3 un-color-LED cubo pero un 4 * 4 * 4 cubos RGB, pero al menos en una especie de clásico diseño ^^.Usé todas las herramientas principales en el fablab de estos objetos: molino del pcb, cortador del laser e impresora 3
Cubo del LED con Arduino y PCB personalizado

Cubo del LED con Arduino y PCB personalizado

este instructivo detalla el diseño y construcción de proceso para un 5 x 5 x 5 cubo del LED, controladas con un Arduino, que reside en un tablero de circuito impreso personalizado.Videos, fotos e información adicional pueden encontrarse en mi sitio w
5 x 5 x 5 cubo del LED funcionar con Arduino Uno

5 x 5 x 5 cubo del LED funcionar con Arduino Uno

Hola amigos, esta es mi opinión sobre un 5 x 5 x 5 cubo del LED, permite comenzar.Lo primero que debemos hacer es conseguir todos nuestros suministros.Vamos a necesitar...:125 LEDs (Asegúrese de que son rojo o amarillo o el arduino no será capaz de e
3 x 3 x 3 cubo del LED con Arduino Lib

3 x 3 x 3 cubo del LED con Arduino Lib

hay otros Instructables sobre la construcción de cubos de LED, éste es diferente por varias razones:1. se construye con un bajo número de componentes estándares y ganchos directamente a Arduino.2. una clara, fácil de reproducir circuito diagrama está
Cubo de LED de media pulgada: Arduino había controlado 3 x 3 x 3 con LEDs SMD!

Cubo de LED de media pulgada: Arduino había controlado 3 x 3 x 3 con LEDs SMD!

Tomando la tarea comenzó con mí pensando 'bueno, podría hacer un cubo de LED más pequeños mediante LEDs SMD".   Sí, la idea era soldar los LEDs de montaje superficial en el espacio!    Y sí lo hice (sigue siendo la pregunta "Por qué").  Vid
Hacer su propio sencillo 5 x 5 x 5 cubo del LED RGB

Hacer su propio sencillo 5 x 5 x 5 cubo del LED RGB

En este proyecto le mostrará cómo construir una versión más simple de un 5 x 5 x 5 cubo del LED RGB. El circuito controlador consiste solamente de un Arduino Nano y la programación es bastante simple debido a la biblioteca de FastLED. Vamos a empezar