Saltar al contenido

Chaqueta de matriz de LED

julio 4, 2021
FX00Q82FUNOX8Y1

Paso 1: construcción de la matriz de LED

Construyendo la matriz de LED

Construir la matriz de LED es lo primero que querrá hacer. Es la parte más difícil y requiere más tiempo. Construir una matriz de LED desde cero es efectivamente una gran pérdida de tiempo. Pero si quieres que los leds estén a ras de la tela te vas a quedar atascado haciéndolo de esta manera. Alternativamente, puede coser en una matriz precompilada o tener en sus manos algunos chips de inmersión de matriz de 5×7 antiguos. Pero así es como lo hice.

Básicamente, desea seguir el diagrama de cableado MAX6952 y asegurarse de que sus matrices 5×7 coincidan con lo que necesita. He incluido una foto de la matriz completa.

Simplemente puse los leds a través de la tela y dentro de la placa de perforación. No es necesario que suelde los leds a la placa de perforación (ya que finalmente todos se soldarán juntos de todos modos), pero es posible que desee hacerlo si la tela es inestable. Usé mis alicates para doblar los pines e inspeccioné la matriz de LED con una lupa una vez completada. Probar la continuidad con un medidor también es una buena idea. Los problemas de la matriz de LED pueden ser difíciles de diagnosticar más adelante.

Paso 2: agregar el MAX6952

Adición del MAX6952Adición del MAX6952Adición del MAX6952

Conseguí un perfboard estilo protoboard para montar el max6952.

Para montarlo, simplemente empujé el zócalo de 40 pines a través de la chaqueta y dentro de la placa de perforación. Soldar y listo.

Ahora, si necesito lavar la chaqueta, puedo quitar el chip del controlador. Pero realmente no intentaría lavar esta cosa de la forma en que está construida.

Una vez que este tipo esté dentro, querrá conectar la matriz al max6952 como se establece en la hoja de datos de chips.

Es un proceso bastante sencillo. Pero, para mayor facilidad, he incluido un dibujo de los diseños de los pines del 6952 para cualquiera que no tenga ganas de traducir la hoja de datos.

Paso 3: la interfaz del microcontrolador

La interfaz del microcontroladorLa interfaz del microcontroladorLa interfaz del microcontrolador

Así que aquí está el diseño de la placa para el boarduino.

No utilicé los valores adecuados del condensador al construir la chaqueta. No quería ningún electrolítico en la mezcla. El 6952 es un chip bastante resistente y ha resistido bastante bien mi abuso.

Estoy proporcionando energía al boarduino directamente con la fuente de alimentación 4AA, y luego ejecuto 5v al max6952.

Y aquí hay un código de muestra para conectar el boarduino con el max6952:

// Código de ejemplo Max 6952 para Arduino
// Probado en Boarduino
// Matt Joyce @ NYC Resistencia

#define DATAOUT 11 // MOSI
#define DATAIN 12 // MISO – no se usa, pero forma parte del SPI incorporado
#define SPICLOCK 13 // sck
#define SLAVESELECT 10 // ss

char spi_transfer (datos de caracteres volátiles)
{
SPDR = datos;
// Iniciar la transmisión
while (! (SPSR & (1 << SPIF))) // Espera el final de la transmisión
{
};
return SPDR; // devuelve el byte recibido
}

configuración vacía ()
{
byte i;
byte clr;
pinMode (SALIDA DE DATOS, SALIDA);
pinMode (DATAIN, INPUT);
pinMode (SPICLOCK, SALIDA);
pinMode (SLAVESELECT, OUTPUT);
digitalWrite (SLAVESELECT, HIGH); // deshabilitar dispositivo
// SPCR = 01010000
// interrupción deshabilitada, spi habilitada, msb 1st, master, clk low cuando inactivo,
// muestra en el borde de ataque de clk, reloj del sistema / 4 (más rápido)
SPCR = 0b01010010;
clr = SPDR;
retraso (32);
// Configurar registro
write_led_twice (0x04,0x01);
// Panel de intensidad 1 y Panel 2
write_led_twice (0x01,0xFF);
write_led_twice (0x02,0xFF);
// Límite de escaneo
write_led_twice (0x03,0x01);

}

byte write_led (dirección int, valor int)
{
digitalWrite (SLAVESELECT, LOW);
// código de operación de 2 bytes
spi_transfer (dirección);
spi_transfer (valor);

retraso (36);
digitalWrite (SLAVESELECT, HIGH); // chip de liberación, transferencia de fin de señal
}

// Escribe n veces para n chips conectados en cadena.
byte write_led_twice (dirección int, valor int)
{
digitalWrite (SLAVESELECT, LOW);
// código de operación de 2 bytes
spi_transfer (dirección);
spi_transfer (valor);
spi_transfer (dirección);
spi_transfer (valor);
retraso (36);
digitalWrite (SLAVESELECT, HIGH); // chip de liberación, transferencia de fin de señal
}

bucle vacío ()
{
// Prueba del juego de caracteres de la ROM
write_led_twice (0x20,0x5e);
write_led_twice (0x21,0x5e);
write_led_twice (0x22,0x5e);
write_led_twice (0x23,0x5e);
retraso (4000);
// Prueba de espacio RAM programable
write_led_twice (0x05,0x80);
write_led_twice (0x05,0x42);
write_led_twice (0x05,0x61);
write_led_twice (0x05,0x51);
write_led_twice (0x05,0x49);
write_led_twice (0x05,0x46);
write_led_twice (0x20,0x80);
write_led_twice (0x21,0x80);
write_led_twice (0x22,0x80);
write_led_twice (0x23,0x80);
retraso (4000);
// Llamada de registro de prueba de Gred
write_led_twice (0x07,0x01);

retraso (1000);
// Desactivar el registro de prueba
write_led_twice (0x07,0x00);
}

Paso 4: la forma final

La forma finalLa forma final

Metí la mcu y la fuente de alimentación en un bolsillo y pasé el conector de 15 pines a través de un orificio en la parte posterior.

De todos modos. Así es como hice mi chaqueta LED.

Disfrutar.

Sé el primero en compartir

    3 comentarios

    0
    graznido
    graznido

    Hace 12 años en Introducción

    Oye, esto es genial. Iba a hacer una pulsera LED con texto en movimiento, pero hasta ahora no tenía ni idea. Muchas gracias. Esto realmente ayudó. 4.5 estrellas: D

    0
    PKM
    PKM

    Hace 12 años en Introducción

    ¡Muy agradable! ¿El chip que usó tiene suficiente espacio de código / datos para desplazarse por los mensajes? P.ej “Estimada TSA: No soy un terrorista, son solo LED. Relajarse.

    ¡Oh, y bienvenido al sitio! Como habrás podido deducir, nos encantan los LED aquí, y en realidad hay una competencia en este momento por cosas interesantes con LED. Creo que este proyecto podría funcionar bien, ¿tal vez pensarías en participar?

    – PKM

    0
    mosca abierta
    mosca abierta

    Responder hace 12 años el Introducción

    Sí, el max6952 lo hace, pero necesitaría reescribir continuamente la memoria de caracteres programables y luego mostrarla. Es factible ya que puede precargar búferes y luego mostrarlos. Es un poco más indirecto que el antiguo multiplexor -> controladores de matriz de registro de desplazamiento.

    Lo inscribí en el concurso. Ver si puedo hacer algunos proyectos de LED más antes del final = P

    close