shiftOut()

Giới thiệu

shiftOut() có nhiệm vụ chuyển 1 byte (gồm 8 bit) ra ngoài từng bit một. Bit được chuyển đi có thể được bắt đầu từ bit nằm bên trái nhất (leftmost) hoặc từ bit nằm bên phải nhất (rightmost). Các bit này được xuất ra tại chân dataPin sau khi chân clockPin được pulsed (có mức điện thế là HIGH, sau đó bị đẩy xuống LOW).

Lưu ý: Nếu bạn đang giao tiếp với một thiết bị mà chân clock của nó có giá trị được thay đổi từ mức điện thế LOW lên HIGH (rising edge) khi shiftOut, thì bạn cần chắc chắn rằng chân clockPin cần được chạy lệnh này: digitalWrite(clockPin,LOW);

Cú pháp

shiftOut(dataPin, clockPin, bitOrder, value) 

Tham số

dataPin: pin sẽ được xuất ra tín hiệu (int)

clockPin: pin dùng để xác nhận việc gửi từng bit của dataPin (int)

bitOrder: một trong hai giá trị MSBFIRST hoặc LSBFIRST.
(Bắt đầu từ bit bên phải nhất hoặc Bắt đầu từ bit bên trái nhất)

value: dữ liệu cần được shiftOut. (byte)

Chú ý

shiftOut() chỉ xuất được dữ liệu kiểu byte. Nếu bạn muốn xuất một kiểu dữ liệu lớn hơn thì bạn phải shiftOut 2 lần (hoặc nhiều hơn), mỗi lần là 8 bit.

Trả về

không

Ví dụ

Điều khiển 8 đèn LED sáng theo ý muốn của bạn, dễ hay khó ?

Reference Tags: 
lên
9 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Lưu các biến CHỈ ĐỌC với PROGMEM

Trong bài Tiết kiệm RAM trong Arduino?, chúng ta đã biết cách lưu chuỗi hằng vào bộ nhớ FLASH thay cho việc lưu hết bọn chúng vào RAM. Như vậy, một hằng chuỗi có thể được lưu vào bộ nhớ FLASH thay vì lưu vào RAM. Vậy, câu hỏi đặt ra là, những biến hằng khác (hằng số, hẳng mảng, hẳng số thực) có thể được lưu vào FLASH thay vì vào RAM hay không?

Trong thực tế, các biến hằng (trừ hằng chuỗi) hầu hết chỉ tốn vài chục byte để lưu trữ nên RAM, nên chúng ta cũng chưa gặp vấn đề gì trong việc lưu trữ hằng số hay hằng mảng cả. Nhưng thỉnh thoảng, có những lúc, ta phải tìm cách lưu trữ chúng ở một nơi khác, ví dụ Bài 12: Phát nhạc bằng Arduino với một cái loa hoặc buzzer.

Chần chừ gì nữa, biết muốn phám khá khả năng của Arduino - hay không?

lên
8 thành viên đã đánh giá bài viết này hữu ích.

ESP8266 kết nối Internet - Phần 4: Kết nối Internet cho dự án không cần NAT Port, không cần mua server, không cần Blynk

Ở 3 phần trước, mình đã hướng dẫn các bạn toàn bộ kỹ thuật để xây dựng một chương trình webapp để điều khiển, đọc cảm biến, điều khiển thiết bị trong mạng LAN (wifi). Và, bây giờ là lúc các bạn đưa sản phẩm của mình ra ngoài Internet! Và với cách của mình sẽ giới thiệu tiếp đây, các bạn sẽ không cần phải NAT port, không cần phải mua server hàng tháng và hơn hết là không cần phải dùng Blynk. 

lên
34 thành viên đã đánh giá bài viết này hữu ích.