¿Los registros de cambios de salida (74HC595) y los registros de cambios de entrada (CD4021B) comparten el mismo reloj y líneas de datos en Arduino usando SPI, con diferentes pines de bloqueo que "activan" cualquiera de las cadenas para cambios de entrada o salida?
Creo que esto debería funcionar, pero aún no tengo todas las partes que necesito para hacer un prototipo. Ya tengo todas esas partes para una solución que NO funciona, y estoy intentando omitir el paso de "opps, esto no funcionará". :-)
Actualmente estoy usando SPI de un Arduino Pro Micro (5v) para dirigir una cadena de 74HC595 registros de desplazamiento para un banco multiplexado de paneles de visualización de 7 segmentos. Cada "Tablero de visualización" tiene dos 74HC595 para manejar un conjunto de monitores, y se conecta mediante un cable plano al siguiente tablero (idéntico), que es el siguiente en una serie de tableros de exhibición encadenados. Esto está construido y funcionando muy bien. Uso un bucle de lo siguiente para escribir datos en los registros de desplazamiento 74HC595.
SPI.transfer(myByteOut);
Me gustaría agregar un sensor de IR (Vishay TSOP75356WTR) a cada placa. El Arduino podría detectar si el sensor IR en cada tablero encadenado es alto o bajo.
Mi plan es expandir la configuración del tablero de visualización existente agregando una cadena paralela de registros de cambio de entrada ( CD4021B ?) Para regresar al Arduino las lecturas del sensor IR de cada placa. Esto se haría a través de un bucle de
myByteIn = SPI.transfer(0);
¿Una cadena de 74HC595 y una de CD4021B pueden compartir los mismos datos y líneas de reloj, usando diferentes pines de "traba" para alternar entre la lectura de mi entrada (CD4021B) y la escritura de mi salida (74HC595)?
Se requiere alta velocidad, y Arduino solo tiene un par de alta velocidad basado en hardware, así que necesito compartir el reloj y los pines de datos. ¿Eso funcionará? ¿Algo malo con mi plan?