Nota
¡Hola, bienvenido a la Comunidad de Entusiastas de Raspberry Pi, Arduino y ESP32 en Facebook! Profundiza en Raspberry Pi, Arduino y ESP32 junto a otros entusiastas.
¿Por qué unirse?
Soporte experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprender y compartir: Intercambia consejos y tutoriales para mejorar tus habilidades.
Vistas previas exclusivas: Obtén acceso anticipado a nuevos anuncios de productos y avances.
Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más nuevos.
Promociones festivas y sorteos: Participa en sorteos y promociones especiales de temporada.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo.
2.6 74HC595
Resumen
En esta lección, aprenderás a utilizar el 74HC595. Este circuito integrado consta de un registro de desplazamiento de 8 bits y un registro de almacenamiento con salidas paralelas de tres estados. Convierte la entrada serial en salida paralela, permitiéndote ahorrar puertos IO en un MCU.
Componentes necesarios
Circuito Fritzing
En este ejemplo, utilizamos el 74HC595 para controlar LEDs. Conecta cada pin de salida de datos (Q0-Q7) a una resistencia de 220 ohmios y luego a un LED. El diagrama de cableado es el siguiente:
Diagrama esquemático
Código
Nota
Puedes abrir el archivo
2.6_74HC595.inoen la rutasunfounder_vincent_kit_for_arduino\code\2.6_74HC595directamente.O copiar este código en el IDE de Arduino.
Al cargar el código en la placa Mega2560, verás que los LEDs se encienden uno tras otro.
Análisis del código
Declara un array para almacenar varios números binarios de 8 bits que se utilizan para cambiar el estado de funcionamiento de los ocho LEDs controlados por el 74HC595.
int datArray[] = {B00000000, B00000001, B00000011, B00000111, B00001111, B00011111, B00111111, B01111111, B11111111};
Configura STcp en nivel bajo primero y luego en nivel alto, generando así un pulso ascendente en STcp.
digitalWrite(STcp,LOW);
La función shiftOut() se utiliza para desplazar un byte de datos un bit a la vez, lo que significa mover un byte de datos en datArray[num] al registro de desplazamiento a través del pin DS. MSBFIRST indica que el desplazamiento comienza desde los bits más altos.
shiftOut(DS,SHcp,MSBFIRST,datArray[num]);
Después de ejecutar digitalWrite(STcp,HIGH), STcp estará en el borde ascendente. En ese momento, los datos en el registro de desplazamiento se moverán al registro de memoria.
digitalWrite(STcp,HIGH);
Un byte de datos se transferirá al registro de memoria después de 8 ciclos. Luego, los datos del registro de memoria se envían al bus (Q0-Q7). Por ejemplo, shiftOut「B00000001」encenderá el LED controlado por Q0 y apagará los LEDs controlados por Q1~Q7.
Imagen del fenómeno