Parallel to Serial Conversion - TeachMeSoft

Parallel to Serial Conversion



Paralel ke Serial Shifting-In dengan CD4021BE


Shifting In (Menggeser Masuk) & the CD4021B
Terkadang Anda akan membutuhkan lebih banyak input digital daripada pin di Arduino Anda. Menggunakan register geser paralel ke serial, Anda dapat mengumpulkan informasi dari 8 switch atau lebih saat hanya menggunakan 3 pin pada Arduino Anda.

Contoh register paralel ke seri adalah CD4021B , kadang-kadang disebut sebagai 8-Stage Static Shift Register. Ini berarti Anda dapat membaca status hingga 8 input digital yang terpasang pada register sekaligus. Ini disebut Asynchronous Parallel Input. "Input" karena Anda mengumpulkan informasi. "Paralel" karena semuanya sekaligus, seperti mendengar kabel musik. "Asinkron" karena CD4021B melakukan semua pengumpulan data ini dengan langkahnya sendiri tanpa berkoordinasi dengan Arduino.

8 input diterjemahkan ke dalam serangkaian pulsa TINGGI dan RENDAH pada pin seri-keluar dari register geser. Pin ini harus dihubungkan ke pin input pada Arduino Board Anda, disebut sebagai pin data . Transfer informasi pada pin data disebut "Output Serial Sinkron" karena register geser menunggu untuk mengirimkan urutan data linier ke Arduino hingga Arduino memintanya. Synchronous Serial communication, baik input maupun output, sangat bergantung pada apa yang disebut sebagai pin jam. Pin jam adalah metronom percakapan antara register geser dan Arduino, inilah yang menjaga kedua sistem tetap sinkron. Setiap kali Arduino mengubah pin jam dari RENDAH ke TINGGI register geser mengubah status pin Output Serial, yang menunjukkan nilai sakelar berikutnya.

Pin ketiga yang terpasang pada Arduino adalah pin "Parallel to Serial Control". Ini disebut sebagai pin kait . Ketika pin kait tinggi, register geser mendengarkan 8 input paralelnya. Ketika pin kait RENDAH, ia mendengarkan pin jam dan meneruskan informasi secara seri. Itu berarti setiap kali latch pin bertransisi dari TINGGI ke RENDAH register geser akan mulai menyampaikan informasi sakelar terbarunya.

Kode pseudo untuk mengoordinasikan ini semua terlihat seperti ini:
  1. Pastikan register memiliki informasi terbaru dari input paralelnya (yaitu bahwa pin kait HIGH)
  2. Katakan pada register, Arduino siap untuk mendapatkan informasi secara serial (latch pin LOW)
  3. Untuk setiap input yang akan dibaca, nyalakan clockPin dan periksa untuk melihat apakah pin data LOW atau HIGH
  4. Ini adalah diagram dasar.

Ini adalah diagram dasar.

           _______  
switch ->  |     |
switch ->  |  C  |
switch ->  |  D  |
switch ->  |  4  | -> Serial Data to Arduino
switch ->  |  0  | 
switch ->  |  2  | 
switch ->  |  1  | <- Clock Data from Arduino
switch ->  |_____| <- Latch Data from Arduino

Ada informasi lebih lanjut tentang pengalihan dalam tutorial ShiftOut .

Sebelum Anda mulai memasang papan Anda di sini adalah diagram pin CD4021 dari Texas Instruments Datasheet



PIN 1,4-7, 13-15P1, P8 (Pin 0-7)Input Paralel
PIN 2, 12, 3Q6, Q7, Q8Pin Output Serial dari berbagai langkah dalam urutan. Q7 adalah pulsa di belakang Q8 dan Q6 adalah pulsa di belakang Q7. Q8 adalah satu-satunya yang digunakan dalam contoh ini.
PIN 8VssGND
PIN 9P / SCKontrol Paralel / Serial (pin kait)
PIN 10JAMGeser pin pin register
PIN 11SERIAL-INInput data serial
PIN 16VDDTegangan pasokan DC



Contoh 1: One Shift Register


Langkah pertama adalah memperpanjang Arduino Anda dengan satu register geser.


Sirkuit
1. Koneksi Daya
Buat koneksi berikut:
  • GND (pin 8) ke ground,
  • VDD (pin 16) ke 5V



2. Hubungkan ke Arduino
  • Q8 (pin 3) ke Ardunio DigitalPin 9 (kabel biru)
  • CLOCK (pin 10) ke ke Ardunio DigitalPin 7 (kabel kuning)
  • P / SC (pin 9) ke Ardunio DigitalPin 8 (kabel hijau)

Mulai sekarang mereka akan disebut sebagai dataPin, clockPin dan latchPin masing-masing.



3. Tambahkan 8 Switch


Diagram



Kode
Contoh Kode 1.1 Hello World
Contoh Kode 1.2 Apa Yang Ditekan?
Contoh Kode 1.3 Kombinasi Tombol Periksa
Contoh Kode 1.4 Apakah ditekan? (subfungsi)


Contoh 2: Multiple Shift Register


Dalam contoh ini Anda akan menambahkan register geser kedua, menggandakan jumlah pin input sementara masih menggunakan jumlah pin yang sama pada Arduino.

Jika menambah Arduino Anda dengan tambahan 8 input digital tidak akan cukup untuk proyek Anda, Anda dapat memiliki CD4021 kedua meneruskan informasinya ke CD4021 lain yang akan mengalirkan semua 16 bit informasi ke Arduino. Jika Anda tahu Anda perlu menggunakan beberapa register geser seperti ini, periksa apakah register shift yang Anda beli dapat menangani Input Serial Sinkron serta kemampuan Output Serial Sinkron standar. Synchronous Serial Input adalah fitur yang memungkinkan register shift pertama menerima dan mengirimkan output serial dari yang kedua. Contoh di bawah ini menjelaskan cara menggunakan sistem ini. Dengan alasan tertentu, Anda dapat terus memperpanjang rantai daisy register geser ini hingga Anda memiliki semua input yang Anda butuhkan.



1. Tambahkan register shift kedua.



2. Hubungkan 2 register.
Dua koneksi ini hanya memperpanjang sinyal jam dan kait yang sama dari Arduino ke register shift kedua (kabel kuning dan hijau). Kabel biru bergerak dari pin keluar seri (pin 9) dari register shift pertama ke input data serial (pin 14) dari register kedua.



3. Tambahkan satu set Switch yang kedua.
Perhatikan bahwa ada satu saklar sesaat dan sisanya adalah sakelar sakelar. Ini karena contoh kode akan menggunakan sakelar yang terpasang pada register shift kedua sebagai pengaturan, seperti file preferensi, bukan sebagai pemicu acara. Saklar sesaat akan memberi tahu mikrokontroler bahwa sakelar pengaturan sedang diubah.



Diagram


Kode
Contoh Kode 2.1 Hello World
Contoh Kode 2.2 Menggunakan byte kedua untuk pengaturan, Cetak semua
Sampel Kode 2.3 Menggunakan byte kedua untuk pengaturan, Mencetak hanya (menggunakan subfungsi)


SUMBER

  • [1] https://www.arduino.cc/en/Tutorial/ShiftIn


    Disqus comments