Cách Kết Nối Thanh Ghi Shift Với Arduino

Mục lục:

Cách Kết Nối Thanh Ghi Shift Với Arduino
Cách Kết Nối Thanh Ghi Shift Với Arduino

Video: Cách Kết Nối Thanh Ghi Shift Với Arduino

Video: Cách Kết Nối Thanh Ghi Shift Với Arduino
Video: Arduino Tutorial #3 - Shift Registers (74HC595) 2024, Có thể
Anonim

Trong một trong những bài viết trước, chúng tôi đã đề cập ngắn gọn về việc sử dụng thanh ghi ca, cụ thể là 74HC595. Chúng ta hãy xem xét kỹ hơn các khả năng và quy trình làm việc với vi mạch này.

Đăng ký Shift 74HC595
Đăng ký Shift 74HC595

Cần thiết

  • - Arduino;
  • - đăng ký ca 74HC595;
  • - dây nối.

Hướng dẫn

Bước 1

Thanh ghi dịch chuyển 74HC595 và các loại tương tự được sử dụng làm thiết bị để chuyển đổi dữ liệu nối tiếp sang song song và cũng có thể được sử dụng như một "chốt" cho dữ liệu, giữ trạng thái được truyền.

Sơ đồ chân (sơ đồ chân) được thể hiện trong hình bên trái. Mục đích của chúng như sau.

Q0… Q7 - đầu ra dữ liệu song song;

GND - mặt đất (0 V);

Q7 '- đầu ra dữ liệu nối tiếp;

^ MR - thiết lập lại tổng thể (hoạt động ở mức thấp);

SHcp - đầu vào đồng hồ thanh ghi dịch chuyển;

STcp - đầu vào xung clock "chốt";

^ OE - cho phép đầu ra (hoạt động ở mức thấp);

Ds - đầu vào dữ liệu nối tiếp;

Vcc - nguồn điện +5 V.

Về mặt cấu trúc, vi mạch được tạo ra trong một số loại trường hợp; Tôi sẽ sử dụng cái được hiển thị trong hình bên phải - đầu ra - bởi vì nó dễ sử dụng hơn với breadboard.

Shift xuất hiện và sơ đồ chân
Shift xuất hiện và sơ đồ chân

Bước 2

Hãy để tôi nhắc lại một cách ngắn gọn về giao diện nối tiếp SPI, mà chúng ta sẽ sử dụng để truyền dữ liệu vào thanh ghi shift.

SPI là một giao diện nối tiếp hai chiều bốn dây trong đó chủ và phụ tham gia. Chủ trong trường hợp của chúng ta sẽ là Arduino, nô lệ sẽ là đăng ký 74HC595.

Môi trường phát triển cho Arduino có một thư viện tích hợp để làm việc trên giao diện SPI. Khi áp dụng nó, các kết luận được sử dụng được đánh dấu trong hình:

SCLK - Ngõ ra xung nhịp SPI;

MOSI - dữ liệu từ chủ đến tớ;

MISO - dữ liệu từ nô lệ đến chủ;

SS - lựa chọn nô lệ.

Chân SPI tiêu chuẩn của bảng Arduino
Chân SPI tiêu chuẩn của bảng Arduino

Bước 3

Hãy ghép lại mạch điện như trong hình.

Tôi cũng sẽ kết nối một bộ phân tích logic với tất cả các chân của vi mạch thanh ghi dịch chuyển. Với sự trợ giúp của nó, chúng ta sẽ thấy những gì đang xảy ra ở cấp độ vật lý, những tín hiệu nào đang đi đến đâu và chúng ta sẽ tìm ra ý nghĩa của chúng. Nó sẽ trông giống như bức ảnh.

Sơ đồ đấu dây cho thanh ghi shift 74HC595 tới Arduino
Sơ đồ đấu dây cho thanh ghi shift 74HC595 tới Arduino

Bước 4

Hãy viết một bản phác thảo như thế này và tải nó vào bộ nhớ Arduino.

Biến PIN_SPI_SS là hằng số tiêu chuẩn nội bộ tương ứng với chân "10" của Arduino khi được sử dụng làm chủ của giao diện SPI mà chúng tôi đang sử dụng ở đây. Về nguyên tắc, chúng tôi cũng có thể sử dụng bất kỳ chân kỹ thuật số nào khác trên Arduino; thì chúng ta sẽ phải khai báo nó và thiết lập chế độ hoạt động của nó.

Bằng cách cấp cho chân LOW này, chúng tôi kích hoạt thanh ghi dịch chuyển của chúng tôi để truyền / nhận. Sau khi truyền tải, chúng tôi nâng điện áp lên CAO một lần nữa, và quá trình trao đổi kết thúc.

Bản phác thảo để chứng minh hoạt động của sổ đăng ký ca làm việc
Bản phác thảo để chứng minh hoạt động của sổ đăng ký ca làm việc

Bước 5

Hãy biến mạch của chúng ta thành công việc và xem bộ phân tích logic cho chúng ta thấy những gì. Hình vẽ chung của sơ đồ thời gian được thể hiện trong hình.

Đường gạch ngang màu xanh hiển thị 4 dòng SPI, đường gạch ngang màu đỏ hiển thị 8 kênh dữ liệu song song của thanh ghi dịch chuyển.

Điểm A trên thang thời gian là thời điểm chuyển số “210” vào thanh ghi dịch chuyển, B là thời điểm ghi số “0”, C là chu kỳ lặp lại từ đầu.

Như bạn có thể thấy, từ A đến B - 10,03 mili giây và từ B đến C - 90,12 mili giây, gần như chúng tôi đã yêu cầu trong bản phác thảo. Một bổ sung nhỏ trong 0, 03 và 0, 12 ms là thời gian chuyển dữ liệu nối tiếp từ Arduino, vì vậy chúng tôi không có chính xác 10 và 90 ms ở đây.

Sơ đồ thời gian của thanh ghi chuyển đổi và trao đổi Arduino 74HC595
Sơ đồ thời gian của thanh ghi chuyển đổi và trao đổi Arduino 74HC595

Bước 6

Chúng ta hãy xem xét kỹ hơn phần A.

Ở trên cùng là một xung dài mà Arduino bắt đầu truyền trên dòng SPI-ENABLE - lựa chọn nô lệ. Lúc này, xung đồng hồ SPI-CLOCK bắt đầu được tạo ra (dòng thứ hai từ trên xuống), 8 cái (để truyền 1 byte).

Dòng tiếp theo từ trên cùng là SPI-MOSI - dữ liệu mà chúng tôi chuyển từ Arduino sang thanh ghi dịch chuyển. Đây là số của chúng tôi "210" trong hệ nhị phân - "11010010".

Sau khi hoàn thành việc chuyển giao, khi kết thúc xung SPI-ENABLE, chúng ta thấy rằng thanh ghi dịch chuyển đã đặt cùng một giá trị trên 8 chân của nó. Tôi đã đánh dấu điều này bằng một đường chấm màu xanh lam và gắn nhãn các giá trị cho rõ ràng.

Đặt số 210 trên xe buýt song song qua SPI
Đặt số 210 trên xe buýt song song qua SPI

Bước 7

Bây giờ chúng ta hãy chuyển sự chú ý của chúng ta đến phần B.

Một lần nữa, tất cả bắt đầu với việc chọn một nô lệ và tạo ra 8 xung đồng hồ.

Dữ liệu trên dòng SPI-MOSI hiện là "0". Tức là tại thời điểm này chúng ta ghi số "0" vào thanh ghi.

Nhưng cho đến khi quá trình chuyển hoàn tất, sổ đăng ký sẽ lưu trữ giá trị "11010010". Nó được đưa ra các chân song song Q0.. Q7 và được đưa ra khi có xung đồng hồ trong đường từ đầu ra song song Q7 'đến dòng SPI-MISO, mà chúng ta thấy ở đây.

Đặt số 0 trên xe buýt song song qua SPI
Đặt số 0 trên xe buýt song song qua SPI

Bước 8

Như vậy, chúng ta đã nghiên cứu chi tiết vấn đề trao đổi thông tin giữa thiết bị chính là Arduino và thanh ghi dịch chuyển 74HC595. Chúng tôi đã học cách kết nối thanh ghi dịch chuyển, ghi dữ liệu vào đó và đọc dữ liệu từ đó.

Đề xuất: