Probé esto anoche para ver qué pasaría. Aquí estaba la configuración que usé.
5 VCC desde la fuente de alimentación externa al riel positivo del tablero de pan.
Conexión a tierra desde la misma fuente de alimentación hasta el riel negativo.
La tarjeta NodeMCU Dev 2.0 se alimenta a través del cable USB (marca HiLetgo).
- GPIO14 (Pin 5) (3.3 VDC) a SN75HC595 SER (PIN 14)
- GPIO0 (Pin 18) (3.3 VDC) a SN75HC595 ST_CP (PIN 12)
- GPIO2 (Pin 17) (3.3 VDC) a SN75HC595 SH_CP (PIN 11)
SN74HC595
- Conectado a NodeMCU (listado arriba)
- Riel de potencia VCC (PIN 16) a 5 VDC
- Riel eléctrico de MR (PIN 10) a 5 VDC
- OE (PIN 13) al riel a tierra
- GRD (PIN 8) al riel a tierra
- Q0 a través de Q7 a patas positivas de LED (resistencias a tierra)
Al presionar un bucle simple (para int i = 0; i < 255; i ++), la salida del led actuó de forma errática. Los LED se iluminarán fuera de orden y con resultados diferentes a los que el microcontrolador le ordenó hacer.
Entonces empecé a presionar el mismo valor con un retraso de 100 ms. Al principio estaba presionando el valor 255 (b11111111). Todos los LEDs permanecieron encendidos. Luego cambié a 0 (b00000000) con un retraso de 100 ms. A veces las luces se apagaban, otras se encendían todas, a veces solo unas pocas se encendían.
No estoy seguro de por qué el IC reaccionaba de esta manera. Cuando quité la fuente de alimentación de 5 VCC de la placa base y usé 3.3 VCC en el registro de cambios, las salidas de LED actuaron como se esperaba. Obtuve los resultados adecuados cada vez que cerré el IC.
La conclusión a la que llegué también fue utilizar los mismos voltajes para todas las entradas del registro de cambios SN74HC595. Si necesita aumentar el voltaje de Q0 - Q7, hágalo después de cambiar de nivel.
Espero que esto haya ayudado.