Trong bài hướng dẫn này, chúng ta sẽ cùng tìm hiểu cách điều khiển tốc độ quạt bằng cách lập trình Encoder và Yolo:Bit. Cụ thể, chúng ta sẽ sử dụng 4 mức:
- Mức 3: Quạt quay với tốc độ 100%
- Mức 2: Quạt quay với tốc độ 50%
- Mức 1: Quạt quay với tốc độ 25%
- Mức 0: Quạt quay với tốc độ 0% (tương ứng với quạt không quay)
Trong phần này, ta sẽ xoay module Rotary Encoder để chọn mức mà mình muốn. Bên cạnh đó, chúng ta sẽ kết hợp với màn hình LED của Yolo:Bit để hiện mức độ đã chọn.
Mục lục
Hướng dẫn lập trình Encoder trên Yolo:Bit
Thiết bị cần dùng
- Yolo:Bit và mạch mở rộng
- Module Rotary Encoder
- Quạt mini
Kết nối
- Kết nối module Rotary Encoder vào cổng (P10.P13)
- Kết nối quạt mini vào cổng (P14.P15)
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.
Lập trình Encoder với Yolo:Bit
Để lập trình Rotary Encoder với Yolo:Bit, trước tiên, ta cần phải thêm thư viện Rotary Encoder vào Yolo:Bit
Bạn có thể xem cách tải thư viện Rotary Encoder tại bài: “Hướng dẫn sử dụng module Rotary Enocder với Yolo:Bit “.
Bước 1: Tải thư viện AIoT
Bạn kết nối Yolo:Bit với OhStem App, sau đó nhấn vào MỞ RỘNG, tìm kiếm thư viện AIoT và tải thư viện:
Để làm việc với quạt, chúng ta sẽ sử dụng khối lệnh bật quạt chân — với tốc độ — trong thư viện AIoT:
Bước 2: Khởi tạo
Trước tiên chúng ta sẽ khởi tạo các chân, chế độ xoay và khoảng giá trị cho Encoder
Bước 3: Lập trình điều khiển quạt ở từng mức độ
Chúng ta sẽ quy ước, với từng giá trị của Encoder, quạt sẽ quay với tốc độ khác nhau. Nếu giá trị Encoder = 3, quạt quay với tốc độ 100%, đồng thời hiển thị mức độ quay của quạt ra màn hình LED trên Yolo:Bit:
Thực hiện tương tự với các mức còn lại, ta được chương trình hoàn chỉnh như sau:
Chương trình mẫu
Bạn có thể tải chương trình mẫu tại link sau:
https://app.ohstem.vn/#!/share/yolobit/2GyYxUuHdBu9ZAr9P3R1cGRaq0x