Cómo Conectar Shift Register A Arduino

Tabla de contenido:

Cómo Conectar Shift Register A Arduino
Cómo Conectar Shift Register A Arduino

Video: Cómo Conectar Shift Register A Arduino

Video: Cómo Conectar Shift Register A Arduino
Video: Как добавить выходы в #Arduino с помощью регистра сдвига - схема обучения 2024, Mayo
Anonim

En uno de los artículos anteriores, ya mencionamos brevemente el uso de un registro de desplazamiento, en particular, el 74HC595. Echemos un vistazo más de cerca a las capacidades y el procedimiento para trabajar con este microcircuito.

Registro de cambio 74HC595
Registro de cambio 74HC595

Necesario

  • - Arduino;
  • - registro de desplazamiento 74HC595;
  • - cables de conexión.

Instrucciones

Paso 1

El registro de desplazamiento 74HC595 y similares se utilizan como dispositivos para convertir datos en serie en paralelo, y también se pueden utilizar como un "pestillo" para los datos, manteniendo el estado transferido.

El pinout (pinout) se muestra en la figura de la izquierda. Su propósito es el siguiente.

Q0… Q7 - salidas de datos en paralelo;

GND - tierra (0 V);

Q7 '- salida de datos en serie;

^ MR - reiniciar maestro (activo bajo);

SHcp - entrada de reloj de registro de desplazamiento;

STcp - entrada de pulso de reloj "latch";

^ OE - habilitación de salida (activo bajo);

Ds - entrada de datos en serie;

Vcc - fuente de alimentación +5 V.

Estructuralmente, el microcircuito se fabrica en varios tipos de casos; Usaré el que se muestra en la figura de la derecha, el resultado, porque es más fácil de usar con una placa de pruebas.

Aspecto de registro de cambios y distribución de pines
Aspecto de registro de cambios y distribución de pines

Paso 2

Permítanme recordar brevemente la interfaz serial SPI, que usaremos para transferir datos al registro de desplazamiento.

SPI es una interfaz serial bidireccional de cuatro cables en la que participan un maestro y un esclavo. El maestro en nuestro caso será el Arduino, el esclavo será el registro 74HC595.

El entorno de desarrollo de Arduino tiene una biblioteca incorporada para trabajar en la interfaz SPI. Al aplicarlo se utilizan las conclusiones que se marcan en la figura:

SCLK - Salida de reloj SPI;

MOSI - datos de maestro a esclavo;

MISO - datos de esclavo a maestro;

SS - selección de esclavos.

Pines SPI estándar de la placa Arduino
Pines SPI estándar de la placa Arduino

Paso 3

Armemos el circuito como en la imagen.

También conectaré un analizador lógico a todos los pines del microcircuito del registro de desplazamiento. Con la ayuda de él, veremos qué está sucediendo a nivel físico, qué señales van hacia dónde y descubriremos qué significan. Debería parecerse a la foto.

Diagrama de cableado para el registro de cambio 74HC595 a Arduino
Diagrama de cableado para el registro de cambio 74HC595 a Arduino

Paso 4

Escribamos un boceto como este y cargámoslo en la memoria Arduino.

La variable PIN_SPI_SS es una constante estándar interna que corresponde al pin "10" del Arduino cuando se usa como el maestro de la interfaz SPI que estamos usando aquí. En principio, también podríamos usar cualquier otro pin digital en el Arduino; entonces tendríamos que declararlo y configurar su modo de funcionamiento.

Al alimentar este pin en BAJO, activamos nuestro registro de desplazamiento para transmitir / recibir. Después de la transmisión, volvemos a subir el voltaje a ALTO y finaliza el intercambio.

Un boceto para demostrar el funcionamiento del registro de desplazamiento
Un boceto para demostrar el funcionamiento del registro de desplazamiento

Paso 5

Convirtamos nuestro circuito en trabajo y veamos qué nos muestra el analizador lógico. La vista general del diagrama de tiempos se muestra en la figura.

La línea discontinua azul muestra 4 líneas SPI, la línea discontinua roja muestra 8 canales de datos paralelos del registro de desplazamiento.

El punto A en la escala de tiempo es el momento en que el número "210" se transfiere al registro de desplazamiento, B es el momento en que se escribe el número "0", C es el ciclo que se repite desde el principio.

Como puede ver, de A a B - 10.03 milisegundos, y de B a C - 90.12 milisegundos, casi como pedimos en el croquis. Una pequeña adición en 0, 03 y 0, 12 ms es el tiempo para transferir datos en serie desde el Arduino, por lo que no tenemos exactamente 10 y 90 ms aquí.

Diagrama de tiempo de intercambio Arduino y registro de cambio 74HC595
Diagrama de tiempo de intercambio Arduino y registro de cambio 74HC595

Paso 6

Echemos un vistazo más de cerca a la sección A.

En la parte superior hay un pulso largo con el que Arduino inicia la transmisión en la línea SPI-ENABLE: selección de esclavo. En este momento, comienzan a generarse pulsos de reloj SPI-CLOCK (segunda línea desde arriba), 8 piezas (para transferir 1 byte).

La siguiente línea desde la parte superior es SPI-MOSI: los datos que transferimos del Arduino al registro de desplazamiento. Este es nuestro número "210" en binario - "11010010".

Una vez completada la transferencia, al final del pulso SPI-ENABLE, vemos que el registro de desplazamiento ha establecido el mismo valor en sus 8 patas. He resaltado esto con una línea punteada azul y etiquetado los valores para mayor claridad.

Configuración del número 210 en un bus paralelo a través de SPI
Configuración del número 210 en un bus paralelo a través de SPI

Paso 7

Ahora dirijamos nuestra atención a la sección B.

Nuevamente, todo comienza con la elección de un esclavo y la generación de 8 pulsos de reloj.

Los datos de la línea SPI-MOSI ahora son "0". Es decir, en este momento escribimos el número "0" en el registro.

Pero hasta que se complete la transferencia, el registro almacena el valor "11010010". Se envía a los pines paralelos Q0.. Q7, y se envía cuando hay pulsos de reloj en la línea desde la salida paralela Q7 'a la línea SPI-MISO, que vemos aquí.

Configuración del número 0 en un bus paralelo a través de SPI
Configuración del número 0 en un bus paralelo a través de SPI

Paso 8

Por lo tanto, hemos estudiado en detalle el tema del intercambio de información entre el dispositivo maestro, que era el Arduino, y el registro de desplazamiento 74HC595. Aprendimos cómo conectar un registro de desplazamiento, escribir datos en él y leer datos de él.

Recomendado: