Com Connectar El Registre De Canvis A Arduino

Taula de continguts:

Com Connectar El Registre De Canvis A Arduino
Com Connectar El Registre De Canvis A Arduino

Vídeo: Com Connectar El Registre De Canvis A Arduino

Vídeo: Com Connectar El Registre De Canvis A Arduino
Vídeo: Curso Visualino 2: Encendido Intermitente LED (Práctica 1) 2024, Maig
Anonim

En un dels articles anteriors, ja vam parlar breument sobre l’ús d’un registre de torns, en particular, el 74HC595. Vegem de prop les capacitats i el procediment per treballar amb aquest microcircuit.

Registre de torns 74HC595
Registre de torns 74HC595

Necessari

  • - Arduino;
  • - registre de torns 74HC595;
  • - cables de connexió.

Instruccions

Pas 1

El registre de desplaçament 74HC595 i similars s'utilitzen com a dispositius per convertir dades en sèrie en paral·lel, i també es poden utilitzar com a "tancament" de dades, mantenint l'estat transferit.

El pinout (pinout) es mostra a la figura de l'esquerra. El seu propòsit és el següent.

Q0 … Q7: sortides de dades paral·leles;

GND - terra (0 V);

Q7 ': sortida de dades en sèrie;

^ MR - reset master (actiu baix);

SHcp - entrada de rellotge de registre de desplaçament;

STcp: entrada de pols de rellotge "latch";

^ OE - habilitació de sortida (baixa activa);

DS: entrada de dades en sèrie;

Vcc - font d'alimentació +5 V.

Estructuralment, el microcircuit es fabrica en diversos tipus de casos; Utilitzaré el que es mostra a la figura de la dreta - la sortida - perquè és més fàcil d'utilitzar amb una taula de treball.

Aspecte del registre de desplaçament i fixació
Aspecte del registre de desplaçament i fixació

Pas 2

Deixeu-me recordar breument la interfície sèrie SPI, que utilitzarem per transferir dades al registre de desplaçament.

SPI és una interfície serial bidireccional de quatre fils en què participen un mestre i un esclau. El mestre en el nostre cas serà l’Arduino, l’esclau serà el registre 74HC595.

L’entorn de desenvolupament d’Arduino té una biblioteca integrada per treballar a la interfície SPI. A l’hora d’aplicar-lo, s’utilitzen les conclusions que es marquen a la figura:

SCLK: sortida de rellotge SPI;

MOSI: dades de mestre a esclau;

MISO: dades d'esclau a amo;

SS: selecció d'esclaus.

Placa Arduino pins SPI estàndard
Placa Arduino pins SPI estàndard

Pas 3

Muntem el circuit com a la imatge.

També connectaré un analitzador lògic a tots els pins del microcircuit del registre de desplaçament. Amb l’ajut d’això, veurem què passa a nivell físic, quins senyals van cap a on, i descobrirem què volen dir. Ha de tenir un aspecte semblant a la foto.

Esquema de cablejat del registre de canvis 74HC595 a Arduino
Esquema de cablejat del registre de canvis 74HC595 a Arduino

Pas 4

Escrivim un esbós com aquest i el carreguem a la memòria Arduino.

La variable PIN_SPI_SS és una constant estàndard interna que correspon al pin "10" de l'Arduino quan s'utilitza com a mestre de la interfície SPI que estem utilitzant aquí. En principi, podríem fer servir qualsevol altre pin digital a l'Arduino; llavors hauríem de declarar-lo i establir el seu mode de funcionament.

En alimentar aquest pin BAIX, activem el nostre registre de torns per transmetre / rebre. Després de la transmissió, tornem a elevar el voltatge a HIGH i l’intercanvi finalitza.

Un esbós per demostrar el funcionament del registre de torns
Un esbós per demostrar el funcionament del registre de torns

Pas 5

Transformem el nostre circuit en treball i vegem què ens mostra l’analitzador lògic. La vista general del diagrama de temps es mostra a la figura.

La línia discontínua blava mostra 4 línies SPI, la línia discontínua vermella mostra 8 canals de dades paral·leles del registre de desplaçament.

El punt A de l'escala de temps és el moment en què el número "210" es transfereix al registre de desplaçament, B és el moment en què s'escriu el número "0", C és el cicle que es repeteix des del principi.

Com podeu veure, de A a B - 10,03 mil·lisegons i de B a C - 90,12 milisegons, gairebé tal com vam demanar a l'esbós. Una petita addició a 0, 03 i 0, 12 ms és el moment de transferir dades de sèrie des de l’Arduino, de manera que no tenim exactament 10 i 90 ms aquí.

Diagrama de temps del registre Arduino d'intercanvi i desplaçament 74HC595
Diagrama de temps del registre Arduino d'intercanvi i desplaçament 74HC595

Pas 6

Vegem de prop la secció A.

A la part superior hi ha un pols llarg amb el qual l’Arduino inicia la transmissió a la línia SPI-ENABLE - selecció esclava. En aquest moment, es comencen a generar polsos de rellotge SPI-CLOCK (segona línia des de la part superior), de 8 peces (per transferir 1 byte).

La següent línia de la part superior és SPI-MOSI: les dades que transferim des de l’Arduino al registre de desplaçaments. Aquest és el nostre número "210" en binari: "11010010".

Després de completar la transferència, al final del pols SPI-ENABLE, veiem que el registre de desplaçament ha establert el mateix valor a les seves 8 potes. Ho he ressaltat amb una línia de punts blaus i he etiquetat els valors per a més claredat.

Configuració del número 210 en un bus paral·lel mitjançant SPI
Configuració del número 210 en un bus paral·lel mitjançant SPI

Pas 7

Passem ara la nostra atenció a la secció B.

Una vegada més, tot comença triant un esclau i generant 8 impulsos de rellotge.

Les dades de la línia SPI-MOSI ara són "0". És a dir, en aquest moment escrivim el número "0" al registre.

Però fins que no es completi la transferència, el registre emmagatzema el valor "11010010". S’efectua als pins paral·lels Q0.. Q7, i es produeix quan hi ha polsos de rellotge a la línia des de la sortida paral·lela Q7 ’a la línia SPI-MISO, que veiem aquí.

Configuració del número 0 en un bus paral·lel mitjançant SPI
Configuració del número 0 en un bus paral·lel mitjançant SPI

Pas 8

Per tant, hem estudiat amb detall la qüestió de l’intercanvi d’informació entre el dispositiu mestre, que era l’Arduino, i el registre de desplaçament 74HC595. Hem après a connectar un registre de torns, escriure-hi dades i llegir-ne dades.

Recomanat: