Trong bài học này, bạn sẽ học cách sử dụng 8 đèn LED với UNO mà không cần dùng đến 8 chân đầu ra! Mặc dù bạn có thể nối 8 đèn LED, mỗi đèn có điện trở vào chân UNO, nhưng bạn sẽ nhanh chóng bắt đầu hết chân trên UNO của mình. Nếu bạn không có nhiều thứ được kết nối với UNO của mình. Bạn có thể làm như vậy - nhưng thường thì chúng ta muốn có các nút, cảm biến, servo, v.v. và trước khi bạn biết điều đó, bạn đã không còn chân. Vì vậy, thay vì làm điều đó, bạn sẽ sử dụng một chip có tên là 74HC595 (IC dịch bit). Con chip này có tám đầu ra (hoàn hảo) và ba đầu vào mà bạn sử dụng để đưa dữ liệu vào nó đôi khi.
(1) x Arduino Uno R3
(1) x Breadboard MB-102
(8) x LED (2 đỏ, 2 xanh biển, 2 vàng, 2 xanh lá)
(8) x 220Ω
(1) x IC 74HC595
(17) x dây cắm đực - đực
IC 74HC595 là một IC thông dụng với khả năng dịch bit và ghi nhớ tạm thời 8-bit. Với khả năng đó, IC 74HC595 có khả năng mở rộng số lượng chân vốn đã ít của Board mạch Arduino.
Chức năng các chân của IC:
VCC là chân nối điện cực dương
GND là chân nối đất
ENABLE là chân có cho phép IC chạy hay không, khi ở trạng thái LOW, IC được phép chạy
RESET khi chân này ở trạng thái HIGH, toàn bộ bộ nhớ trong IC bị xóa sạch
Q0 → Q7 là các chân tượng trưng cho 8 bit trong vùng nhớ của IC
INPUT là chân đưa dữ liệu vào IC
LATCH khi chân ở trạng thái từ LOW chuyển sang HIGH thì IC xuất dữ liệu từ ô nhớ ra các chân Q0 → Q7
CLOCK khi có một xung clock (1 lần LOW và một lần HIGH) thì dữ liệu được dịch vào một bit theo trạng thái hiện tại của chân INPUT
QH IC có vùng nhớ 8 bit, nếu như truyền vào IC nhiều hơn 8 bit thì sẽ tràn vùng nhớ và bit bị tràn truyền qua QH này
Ví dụ nếu ta muốn truyền vào IC 1 byte tương đương 8 bit có giá trị là 5 thì các chân từ Q0 → Q7 sẽ có giá trị như sau:
Với các chân có giá trị 0 tương ứng chân đó có hiệu điện thế là 0v, còn các chân có giá trị 1 sẽ có hiệu điện thế là 5v. Dựa vào đặc tính này ta dễ dàng mở rộng số lượng chân cho Arduino.
Trong bộ complier mà Arduino cung cấp, ta đã có sẵn hàm shiftOut() để thực hiện thao tác này.