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 0
a 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 TLC5940
controlador 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 VPRG
me 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í .
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?
Respuestas:
Veo dos cosas que deberían abordarse en esta pregunta:
Cómo conectarse y comunicarse con el TLC5940
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-bcm2708
de/etc/modprobe.d/raspi-blacklist.conf
, y cargarloi2c-dev
y usted debe obtener/dev/i2c-0
y/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.
fuente
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
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
fuente
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.
Los LED normales suelen tener 20 mA, por lo que la fórmula proporciona 2k para la resistenciafuente
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.
fuente