Datos multiplex y pin LED

0

Estoy considerando realizar una conversión de chip para el Sparkfun LED RingCoder . El código de muestra proporcionado con el producto funciona bien en un Arduino UNO, pero utiliza un pin para cada E / S: 5 pines para los registros de desplazamiento y 6 pines para el codificador rotatorio RGB. Lo que quiero hacer es usar un 6 I / O Tiny85 en lugar de un UNO en toda regla.

ATTiny85 compartiendo pines con LED, codificador rotatorio (Swtich / RE A / RE B) y registros de desplazamiento:

simular este circuito : esquema creado usando CircuitLab

Por lo tanto, me gustaría reutilizar 5 de los 6 pines disponibles y delegar entre los estados FSM. Dicho esto, parece que los tres LED RGB tendrán que compartir una línea con los datos del registro de desplazamiento / latch / clk, etc.

Mi pregunta: ¿la colocación de un LED en una línea de datos del registro de desplazamiento dañará los datos?

    
pregunta emc

1 respuesta

1

No podrías hacer esto sin uno o dos adicionales. El más simple sería un Port Expander. Un expansor de puertos I2C o SPI sería fácil de codificar, y proporcionaría tanto salidas como entradas. Se podría usar un solo expansor de puertos i2c de 8 bits para los registros de desplazamiento y las salidas del codificador, usando solo 2 pines, si utiliza el sondeo para verificar las interrupciones del codificador. Tres pines si utiliza un expansor de puerto con un pin de interrupción. Los otros tres pines de su ATTiny podrían manejar el pwm led del codificador directamente.

O puede agregar un controlador led i2c rgb para manejar el pwm led. O usa un expansor de 16 bits para manejar todo.

La sobrecarga adicional para i2c o spi no sería mucho en un ATTiny85.

    
respondido por el Passerby

Lea otras preguntas en las etiquetas