Trong hướng dẫn này, OhStem sẽ giới thiệu đến bạn khái niệm Rotary Encoder là gì, cũng như cách dùng Rotary Encoder với mạch lập trình mini Yolo:Bit. Bạn sẽ hiểu được cách Rotary Encoder hoạt động, từ đó lập trình in giá trị của chúng trên cửa sổ nhập lệnh.
Mục lục
Rotary Encoder là gì?
Vậy, Rotary Encoder là gì? Đây là một loại cảm biến có thể biến các loại chuyển động như chuyển động tịnh tiến, chuyển động xoay quanh trục,… thành tín hiệu đầu ra (như tín hiệu số hoặc là xung).
Rotary Encoder còn có tên gọi tắt là Encoder.
Sau khi đọc khái niệm Rotary Encoder là gì trên, có thể nhiều bạn sẽ nhầm lẫn giữa Rotary Encoder và Analog Rotary. Ở đây, chúng ta cần làm rõ sự khác nhau giữa 2 khái niệm này.
Rotary Encoder và Analog Rotary sẽ khác nhau ở cách hoạt động và phần tín hiệu ngõ ra.
Rotary Encoder | Analog Rotary |
Không giới hạn góc xoay, xoay được 360 độ vô hạn | Góc xoay bị giới hạn trong 1 khoảng nhất định |
Có thể xoay được 1 khoảng chính xác theo từng nấc | Có thể xoay được 1 khoảng chính xác theo từng nấc |
Giá trị đọc được là số nấc đã xoay qua trái hoặc qua phải | Giá trị đọc được là dạng analog (từ 0 đến 4095 đối với Yolo:Bit) |
Tín hiệu ngõ ra là dạng số 0 hoặc 1 | Tín hiệu ngõ ra là tín hiệu số được truyền đi liên tục dưới dạng điện áp (mV) hoặc dòng điện (mA) |
Ưu điểm của Rotary Encoder là gì? Đó là chúng sử dụng dạng số, nên chúng ta có thể dễ dàng sử dụng cho nhiều mục đích xác định vị trí, với độ chính xác rất cao và có thể chính xác lên đến 100%.
Dựa vào các tín hiệu số đầu ra của Rotary Encoder này, chúng ta có thể ứng dụng vào nhiều dự án thú vị như: điều khiển tốc độ của quạt, điều khiển tốc độ di chuyển của xe, điều chỉnh độ sáng của đèn hoặc là điều chỉnh âm lượng,… tùy thích.
Cách dùng Rotary Encoder cùng Yolo:Bit
Thiết bị cần dùng
- Yolo:Bit và mạch mở rộng
- Module Rotary Encoder
Kết nối linh kiện
Kết nối cảm biến Rotary Encoder với chân P10.P13 trên mạch mở rộng Yolo:Bit.
Lưu ý: Vì module Rotary Encoder có 2 chân tín hiệu là chân CLK và chân DT. Do đó ta phải kết nối module Rotary Encoder vào các cổng có 2 chân tín hiệu trên mạch mở rộng Yolo:Bit.
Bạn không được kết nối module Rotary Encoder vào các port có 1 chân tín hiệu như port P0, port P1, port P2.
Thêm thư viện Rotary Encoder
Để có thể lập trình Rotary Encoder cùng với Yolo:Bit, OhStem có hỗ trợ thư viện Rotary Encoder.
Để thêm thư viện Rotary Encoder vào OhStem App, ta thực hiện:
Bước 1: Truy cập vào OhStem App tại link https://app.ohstem.vn, sau đó chọn mục Yolo:Bit >> Lập trình. Bạn tiến hành kết nối Yolo:Bit với máy tính, cho đến khi biểu tượng kết nối hiển thị màu xanh:
Bước 2: Tại danh mục khối lệnh bên trái, chúng ta nhấn vào mục MỞ RỘNG:
Bước 3: Copy đường link https://github.com/AITT-VN/yolobit_rotary_encoder.git và dán vào thanh công cụ tìm kiếm, sau đó nhấn biểu tượng kính lúp để tìm.
Thư viện Rotary Encoder sẽ hiển thị. Bạn click chuột vào thư viện và chọn OK để tiến hành cài đặt.
Sau khi cài đặt thư viện xong, trong danh mục khối lệnh bên trái sẽ xuất hiện danh mục chứa các khối lệnh bên dưới:
Giải thích các khối lệnh
Khối lệnh | Ý nghĩa |
---|---|
Khi kết nối Rotary Encoder với chân nào trên mạch mở rộng, bạn cần khởi tạo và gọi tên chân đó bằng khối lệnh này | |
Đọc được giá trị của Encoder tại vị trí tương ứng | |
Đặt giới hạn xoay nhất định cho Encoder | |
Thiết lập chế độ xoay cho Encoder xoay như thế nào. Có 3 chế độ trong khối lệnh này: 1. Không giới hạn 2. Reset khi quay tới max 3. Dừng tăng khi quay tới max Tùy vào mục đích sử dụng, ta sẽ chọn chế độ xoay cho phù hợp | |
Đặt giá trị ban đầu cho Encoder là một giá trị bất kỳ nào đó mà ta muốn |
Hướng dẫn lập trình Rotary Encoder với Yolo:Bit
Trước tiên, ta sẽ khởi tạo chân CLK và chân DT, đặt khoảng giá trị và chọn chế độ xoay của Encoder như hình:
Sau đó, ta sẽ in ra cửa sổ Serial giá trị Encoder đọc được. Chương trình hoàn chỉnh sẽ như sau:
Kết quả khi chạy chương trình:
- Trường hợp xoay sang phải:
- Trường hợp xoay sang trái
Chương trình mẫu
Bạn có thể tải chương trình hoàn chỉnh tại link:
https://app.ohstem.vn/#!/share/yolobit/2Gw3hYuQN6zXCsYXMi2uJC8V2I1