Cara Menyambung Shift Shift Ke Arduino

Isi kandungan:

Cara Menyambung Shift Shift Ke Arduino
Cara Menyambung Shift Shift Ke Arduino

Video: Cara Menyambung Shift Shift Ke Arduino

Video: Cara Menyambung Shift Shift Ke Arduino
Video: 74HC595 Seven Segment 2 Digits LED Display with decimal points for Arduino 2024, Mungkin
Anonim

Dalam salah satu artikel sebelumnya, kami telah secara ringkas menyentuh penggunaan daftar pergeseran, khususnya 74HC595. Mari kita perhatikan lebih dekat kemampuan dan prosedur untuk bekerja dengan rangkaian mikro ini.

Daftar Shift 74HC595
Daftar Shift 74HC595

Perlu

  • - Arduino;
  • - shift shift 74HC595;
  • - wayar penyambung.

Arahan

Langkah 1

Shift register 74HC595 dan sejenisnya digunakan sebagai alat untuk menukar data bersiri menjadi selari, dan juga dapat digunakan sebagai "selak" untuk data, menahan keadaan yang dipindahkan.

Pinout (pinout) ditunjukkan dalam gambar di sebelah kiri. Tujuan mereka adalah seperti berikut.

Q0… Q7 - output data selari;

GND - tanah (0 V);

Q7 '- output data bersiri;

^ MR - tetapkan semula induk (aktif rendah);

SHcp - input jam register shift;

STcp - input denyut jam "selak";

^ OE - output diaktifkan (aktif rendah);

Ds - input data bersiri;

Vcc - bekalan kuasa +5 V.

Secara struktural, litar mikro dibuat dalam beberapa jenis kes; Saya akan menggunakan yang ditunjukkan dalam gambar di sebelah kanan - output - kerana lebih mudah digunakan dengan papan roti.

Shift register penampilan dan pinout
Shift register penampilan dan pinout

Langkah 2

Izinkan saya mengingat semula antara muka bersiri SPI, yang akan kami gunakan untuk memindahkan data ke shift shift.

SPI adalah antara muka bersiri dua arah dua wayar di mana tuan dan hamba mengambil bahagian. Tuan dalam kes kita adalah Arduino, hamba akan mendaftar 74HC595.

Persekitaran pembangunan untuk Arduino mempunyai perpustakaan terbina dalam untuk bekerja pada antara muka SPI. Semasa menerapkannya, kesimpulan digunakan yang ditandai pada gambar:

SCLK - output jam SPI;

MOSI - data dari tuan ke hamba;

MISO - data dari hamba ke tuan;

SS - pemilihan hamba.

Pin SPI standard papan Arduino
Pin SPI standard papan Arduino

Langkah 3

Mari kita susun litar seperti dalam gambar.

Saya juga akan menyambungkan penganalisis logik ke semua pin litar mikro shift shift. Dengan bantuannya, kita akan melihat apa yang berlaku pada tahap fizikal, isyarat apa yang akan pergi ke mana, dan kita akan mengetahui maksudnya. Ia semestinya kelihatan seperti foto.

Gambar rajah pendawaian untuk daftar shift 74HC595 ke Arduino
Gambar rajah pendawaian untuk daftar shift 74HC595 ke Arduino

Langkah 4

Mari tulis lakaran seperti ini dan muatkan ke dalam memori Arduino.

Pemboleh ubah PIN_SPI_SS adalah pemalar standard dalaman yang sesuai dengan pin "10" Arduino ketika digunakan sebagai induk antara muka SPI yang kita gunakan di sini. Pada prinsipnya, kita juga boleh menggunakan pin digital lain di Arduino; maka kita harus menyatakannya dan menetapkan mod operasinya.

Dengan memberi pin ini RENDAH, kami mengaktifkan shift shift kami untuk menghantar / menerima. Selepas penghantaran, kami menaikkan voltan ke TINGGI sekali lagi, dan pertukaran berakhir.

Lakaran untuk menunjukkan operasi daftar shift
Lakaran untuk menunjukkan operasi daftar shift

Langkah 5

Mari ubah litar kita menjadi berfungsi dan lihat apa yang ditunjukkan oleh penganalisis logik. Pandangan umum rajah masa ditunjukkan dalam gambar.

Garis putus-putus biru menunjukkan 4 garis SPI, garis putus-putus merah menunjukkan 8 saluran data selari dari daftar shift.

Titik A pada skala waktu adalah saat ketika nombor "210" dipindahkan ke daftar shift, B adalah saat ketika angka "0" ditulis, C adalah kitaran yang berulang dari awal.

Seperti yang anda lihat, dari A hingga B - 10.03 milisaat, dan dari B hingga C - 90.12 milisaat, hampir seperti yang kami tanyakan dalam lakaran. Tambahan kecil dalam 0, 03 dan 0, 12 ms adalah masa untuk memindahkan data bersiri dari Arduino, jadi kami tidak mempunyai 10 dan 90 ms di sini.

Gambarajah masa pertukaran Arduino dan daftar shift 74HC595
Gambarajah masa pertukaran Arduino dan daftar shift 74HC595

Langkah 6

Mari kita lihat lebih dekat bahagian A.

Di bahagian paling atas adalah nadi panjang dengan Arduino memulakan penghantaran pada garis SPI-ENABLE - pemilihan hamba. Pada masa ini, denyutan jam SPI-CLOCK mula dihasilkan (baris kedua dari atas), 8 keping (untuk memindahkan 1 bait).

Baris seterusnya dari atas adalah SPI-MOSI - data yang kami pindahkan dari Arduino ke shift shift. Ini adalah nombor kami "210" dalam binari - "11010010".

Setelah selesai perpindahan, pada akhir nadi SPI-ENABLE, kita melihat bahawa register shift telah menetapkan nilai yang sama pada 8 kakinya. Saya telah mengetengahkannya dengan garis putus-putus biru dan melabelkan nilai-nilai untuk kejelasan.

Menetapkan nombor 210 pada bas selari melalui SPI
Menetapkan nombor 210 pada bas selari melalui SPI

Langkah 7

Sekarang mari kita perhatikan bahagian B.

Sekali lagi, semuanya bermula dengan memilih hamba dan menghasilkan 8 denyutan jam.

Data pada baris SPI-MOSI kini "0". Maksudnya, pada masa ini kita menulis nombor "0" ke dalam daftar.

Tetapi sehingga pemindahan selesai, daftar menyimpan nilai "11010010". Ia adalah output ke pin selari Q0.. Q7, dan output apabila terdapat denyutan jam di garis dari output selari Q7 'ke garis SPI-MISO, yang kita lihat di sini.

Menetapkan nombor 0 pada bas selari melalui SPI
Menetapkan nombor 0 pada bas selari melalui SPI

Langkah 8

Oleh itu, kami telah mengkaji secara terperinci masalah pertukaran maklumat antara peranti induk, yang merupakan Arduino, dan daftar shift 74HC595. Kami belajar bagaimana menyambung daftar shift, menulis data ke dalamnya dan membaca data daripadanya.

Disyorkan: