Cableado de LED RGB


13

Me preguntaba si es posible conectar 8 LED RGB individuales de forma muy similar a la tira adafruit . Vi el proyecto Pumpkin Pi y me gustaría construir uno. No tengo ningún LED amarillo o rojo, pero tengo una pequeña reserva de RGB.

Sé que para arduino usaría resistencias de 270ohm para cátodos RGB y controlaría cada brillo en una escala de 0a 255.

¿Hay alguna manera de hacer esto en la Raspberry Pi?


Actualizar


Así que he estado investigando esto un poco más. Tomé su idea de usar el TLC5940controlador LED.

Así que ahora estoy pidiendo ayuda de nuevo. Pensé que una pregunta larga que eventualmente resuelve esto es mejor que un montón disperso en todo el intercambio de pila. Ahora viene la parte del cableado. Estoy usando un tutorial de cableado de Arduino como un comienzo ya que estoy muy loco. También me refiero a la hoja de datos . Según el pin del diagrama 27 or VPRGme confunde. El diagrama de Arduino lo tiene conectado a tierra, así que estoy conectado a tierra. . . ¿Cómo conecto esto correctamente a la pi? También supongo que también necesito resistencias ...

Lo siento si esto suena realmente estúpido, pero soy un verdadero principiante en esto. Tienes que aprender a gatear antes de poder caminar.

¿Qué debo hacer para corregir este diagrama de cableado ? )?

El archivo de cableado fzz se puede descargar desde google aquí . TLC5940

ingrese la descripción de la imagen aquí


Actualización 2 - después del comentario


Teniendo en cuenta algunas de las respuestas y comentarios, ¿este sería el diagrama de cableado? 330ohm al ánodo. 2k ohmios para fijar 20. ¿Cómo llegan las entradas del pi al chip? ingrese la descripción de la imagen aquí


Ooohhh la calabaza pi =: 0
Piotr Kula

¿Podría aclarar algunas cosas? ¿Desea controlar todos los LED rojos, verdes y azules de 8 LED RGB (que tomarán 24 salidas, 8 más que las 16 proporcionadas por un TLC5940). ¿Qué LED RGB estás usando? Necesitamos saber si son un ánodo común o un cátodo común (su cableado parece un cátodo común, que no funcionará con un TLC5940, que solo puede hundir la corriente. El cátodo común necesitará un chip diferente). También es posible que el azul no se encienda con 3.3V, por lo que necesitará 5V. Debe ser a través de la electrónica del orificio (p. Ej. DIP), y no de montaje en superficie. ¿Te importa si usa 3 chips en lugar de uno?
Gbulmer

@gbulmer Lo siento por eso. No tengo el paquete en el que llegaron los LED, pero creo que estás en lo correcto en el cátodo común como para encenderlos en arduino. Escribí un ALTO. Recogeré algo de Ánodo Común de Radioshack esta noche. Tengo 5 chips TLC5940 y no me importa si los uso todos. La razón por la que voy con DIP es usar una placa de prueba (pasos pequeños). Después de hacerlo funcionar, cambiaré a montaje en superficie.
atrueresistance

Respuestas:


4

Veo dos cosas que deberían abordarse en esta pregunta:

  1. Cómo conectarse y comunicarse con el TLC5940

  2. Cómo conectar LED hasta el TLC5940 .

Para la primera parte, deberá conectarlo a los pines i2c del encabezado P1 de la Raspberry Pi (que son los pines 3 (datos) y 5 (reloj)). Luego puede usar el pin 1 (3.3 V) para el VCC del TLC5940 . Se recomienda de 3 V a 5,5 V para la entrada de acuerdo con la hoja de datos. También querrá conectar un pin de tierra desde P1 (por ejemplo, pin 5) al GND del TLC5940 . Y se necesita un GPIO adicional (por ejemplo, el pin 7) para conectarse a la TLC5940 señal XLAT 's para enganchar en el valor del registro de desplazamiento.

A continuación, tendrá que configurar el Pi para la comunicación I2C: raspbian asumiendo, retire i2c-bcm2708de /etc/modprobe.d/raspi-blacklist.conf, y cargarlo i2c-devy usted debe obtener /dev/i2c-0y /dev/i2c-1(i2c-1 es lo que tendrá que utilizar para el Modelo B Rev. 2 Pis).

Finalmente, necesitará usar una transacción i2c para establecer el valor del registro de desplazamiento interno y luego señalar el XLAT (si usa el pin 7, es GPIO 4).

También pasé por alto el pin GSCLK. Deberá proporcionar una entrada de reloj para que el contador interno se incremente, lo que se puede hacer desde otra línea GPIO si está configurado correctamente. Tampoco creo que el riel de 3.3 V proporcione suficiente corriente para esta aplicación ( 50 mA máx .). Si se mueve al riel de 5 V, puede extraer hasta ~ 300 mA , pero debe usar la lógica de 5 V para i2c en ese momento (y el GSCLK), lo que requiere más componentes.

Para la segunda parte, parecía que lo había manejado en algún proyecto anterior de Arduino, a menos que lo haya leído mal.


6

Si. Usaría los pines GPIO en modo PWM para controlar cada escala de brillo. Un ejemplo de los cables desde wiring.org.co . La utilidad y guías GPIO del Proyecto Gordons es otro lugar para comenzar

ingrese la descripción de la imagen aquí

Editar

Como señaló Alex Chamberlain , solo un pin GPIO admite PWM. Puede usar software para lograr PWM en otros pines GPIO. Información y ejemplos para C y Python .

Esto puede ser excesivo, ya que el proyecto Pumpkin Pi solo requiere luz naranja. Si tiene una reserva de RGB y tiempo para experimentar, puede iluminar un solo color de LED en el RGB y mezclarlos con otros para generar colores terciarios. Una proporción de 2 partes de rojo a 1 parte de verde aparecerá como naranja. Alternar la mitad de los LED rojos creará la ilusión de que el naranja parpadee en amarillo. Pero esa es una teoría del color ; que no lo he intentado


1
¿No hay una sola salida PWM?
Alex Chamberlain

Buena pregunta. eLinux afirma que todos los pines GPIO pueden reconfigurarse para PWM; sin embargo, General Wiring Functions establece que solo GPIO-1 (pin 18) admite PWM. La Sección 6.2 Asignaciones de funciones alternativas de BCM2835 enumera todos los pines PWM; de los cuales, solo uno está presente en el GPIO del pi.
Emcconville

El artículo de eLinux está mal escrito; está un poco mejor abajo.
Alex Chamberlain

1
Los pines GPIO realmente no pueden generar o absorber suficiente corriente para controlar los LED directamente
John La Rooy

1

Algo así como un TLC5940 es una buena manera de manejar múltiples LED PWM'd

Consulte también el TCA6507 en la nota "Programación de luces divertidas" , aunque no está disponible en DIP

Editar: está bien mantener el pin VPRG en el TLC5940 conectado a tierra. Esto simplemente significa que no puede usar la "corrección de puntos" para compensar las variaciones en sus LED. Si tiene muchos LED y desea pasar al siguiente nivel de complejidad, puede usar la corrección de puntos para que se iluminen de manera uniforme.

Se requiere la resistencia de 2k en el pin 20 para establecer la corriente de salida.

I OUT = 3.96 * R IREF
Los LED normales suelen tener 20 mA, por lo que la fórmula proporciona 2k para la resistencia


0

Esta es una reseña realmente útil que alguien hizo sobre cómo usar el TLC5940 con un AVR: https://sites.google.com/site/artcfox/demystifying-the-tlc5940

Es bastante útil para aprender sobre el proceso de aprender a escribir código que funcione con el TLC5940.

La primera versión del código de ejemplo es bastante general. Estoy trabajando para convertir todas las declaraciones #define y funciones de bajo nivel en algo que funcione en Raspberry Pi.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.