Bài 4: Đèn ngủ thông minh - MakerEdu Inventor Kit for Micro:bit

From MakerLab Wiki
Jump to navigation Jump to search

Mô tả dự án

Trong bài này các bạn sẽ học cách sử dụng "cảm biến ánh sáng" tích hợp sẵn trên mạch Micro:bit để làm ứng dụng đèn ngủ thông minh bật tắt tự động theo ánh sáng phòng.

... hình thumnail

Các bước thực hiện

Danh sách thiết bị

Sơ đồ kết nối

MakerEDU Shield Thiết bị
Port P0 [MKE-M01] - LED Trắng

Chuẩn bị trước dự án

Các bước thực hiện

  1. Tạo một dự án mới trong phần mềm MakeCode.
  2. Bạn có thể lập trình kéo thả từng mã khối theo hình dưới trong mục [Blocks] hoặc copy đoạn code dưới và paste vào mục [JavaScript] để tiến hành nhanh hơn.
  3. Nạp chương trình vào Micro:Bit.

Blocks

B4 MicrobitEdu.png

Javascript

// Khai báo các biến
let valueLight = 0

// Khối "on start" - thực hiện 1 lần khi khởi động
basic.showIcon(IconNames.Happy)
basic.pause(1000)
basic.clearScreen()

// Khối "forever" - vòng lặp chính của chương trình
basic.forever(function () {
  valueLight = Math.map(input.lightLevel(), 0, 255, 0, 100)
  led.plotBarGraph(
    valueLight,
    100
  )
  if (valueLight >= 50) {
    pins.digitalWritePin(DigitalPin.P0, 1)
  } else {
    pins.digitalWritePin(DigitalPin.P0, 0)
  }
})

Giải thích code

Chương trình sẽ hoạt động như sau:

Trong khối [ on start ]:

  • Micro:bit hiển thị "mặt cười" trong 1 giây rồi tắt.

Phần khởi động này nói cho chúng ta biết Micro:bit đã sẵn sàng.

Trong khối [ forever ]:

  1. Micro:bit đọc giá trị cảm biến ánh sáng từ khối [ light level ] với giá trị trả về trong khoảng "từ 0 đến 255".
  2. Sau đó giá trị được "ánh xạ" bằng khối [ map... ] sang thang đo (%) "từ 0% đến 100%" để lưu vào biến "valueLight".
  3. Cho hiển thị mức giá trị trong biến "valueLight" lên màn hình Led bằng khối [ plot bar graph of... ].
  4. Cuối cùng, nếu giá trị valueLight ≥ 50% thì điều khiển chân P0 xuất mức HIGH, để bật module Led đang kết nối. Ngược lại là mức LOW, để tắt module Led.

Kết quả

...

... hình dự án