Dự án 09: Bơm nước tự động - MakerEdu Inventor Kit for Micro:bit
Jump to navigation
Jump to search
Mức độ: Trung bình ★★★★★☆☆☆☆☆
Danh sách thiết bị
- 1x [MKE-S13] - Độ ẩm đất
- 1x [MKE-M04] - Biến trở
- 1x Động cơ DC bơm nước (kèm ống nước)
- 1x MakerEdu Shield for micro:bit
- 1x Micro:bit
Sơ đồ kết nối
MakerEDU Shield | Thiết bị |
---|---|
Port P0 | [MKE-S13] - Độ ẩm đất |
Port P1 | [MKE-M04] - Biến trở |
Motor_A | Động cơ DC bơm nước |
Mô tả dự án
Trong dự án này, bạn sẽ học cách làm một bình bơm nước tự động, bằng cách dùng chính cảm biến Độ ẩm đất đấy.
Bên cạnh bạn có thể dùng biến trở để điều chỉnh tốc độ bơm phù hợp theo mong muốn.
Mực độ nước trong bình được thể hiện qua Led Matrix.
Chú ý: Để sử dụng được tính năng Driver tích hợp trên MakerEDU Shield, bạn cần cài đặt thêm Extension "MakerEdu_Hardware" vào dự án của mình (nếu chưa có) theo bài hướng dẫn này. Bên cạnh, để Motor hoạt động ổn định, các bạn cần cấp nguồn riêng 5V qua cổng microUSB trên Shield. |
Các bước thực hiện
Tạo code
- Tạo biến có tên "value".
→ Biến này để bạn lưu trữ giá trị Analog đọc từ cảm biến. - Tạo biến có tên "percent".
→ Biến này để bạn lưu trữ giá trị (%) tương ứng từ giá trị Analog. - Tạo biến có tên "pot".
→ Biến này lưu giá trị Analog đọc từ Biến trở. - Tạo biến có tên "speed".
→ Biến này để điều chỉnh tốc độ của bơm. - Tạo 1 khối forever như hình dưới.
→ Khối này thực hiện các công việc theo trình tự:- Đọc và lưu giá trị Analog đọc từ cảm biến vào trong biến "value".
- Đổi sang đơn vị (%) mực nước tương ứng và lưu vào biến "percent".
- Cho hiển thị mực nước lên Led Matrix.
- Đọc và lưu giá trị Analog đọc từ Biến trở vào trong biến "pot".
- Đổi sang đơn vị (%) tốc độ bơm tương ứng và lưu vào biến "speed".
- Kiểm tra có bật hay tắt bơm không. Nếu có bật bơm, thì điều khiển tốc độ bơm theo biến "speed".
Blocks
Javascript
let value = 0 let percent = 0 let pot = 0 let speed = 0 basic.forever(function () { value = pins.analogReadPin(AnalogPin.P0) percent = Math.round(Math.map(value, 450, 700, 100, 0)) led.plotBarGraph( percent, 100 ) pot = pins.analogReadPin(AnalogPin.P1) speed = Math.round(Math.map(pot, 0, 1023, 5, 50)) if (percent >= 95) { l9110.pauseMotor(l9110.Motor.MotorA) } else if (percent <= 5) { l9110.controlMotor(l9110.Motor.MotorA, l9110.Rotate.Forward, speed) } })
Nạp code
- Kết nối [MKE-S13] - Độ ẩm đất đến Port P0 của MakerEdu Shield.
- Kết nối [MKE-M04] - Biến trở đến Port P1 của MakerEdu Shield.
- Kết nối Động cơ DC bơm nước đến Motor_A của MakerEdu Shield.
- Nhấp vào Download để nạp code của bạn sang micro:bit.
- Đặt cảm biến vào thành bình nước và xem code có hoạt động như mong đợi không.
Kết quả
... hình dự án