Logo
latest

Cửa hàng

  • Đi tới cửa hàng

Máy tính lập trình Yolo:Bit

  • Làm quen với Yolo:Bit
  • Home:Bit - Bộ Kit nhà thông minh
  • Plant:Bit - Bộ Kit trồng cây thông minh
  • City:Bit - Bộ Kit thành phố thông minh
  • Phys:Bit - Kit học điện tử

AIoT Kit - Lập trình AI & IoT

  • Làm quen với AIoT KIT

Robot STEM Rover

  • Rover - Kit robot lập trình
  • Phụ kiện Rover - Servo Pack
  • Tay gắp Robot Gripper

Robot Arm

  • Robot Arm - Kit lập trình cánh tay robot

Robot lập trình xBot

  • Robot lập trình xBot
  • xBot Inventor Kit
  • Đầu gắp Gripper
  • Bộ Dump Truck
  • Đầu nâng ForkLift
  • Bộ bắn bóng

xBuild Creator Kit

  • Hướng dẫn lập trình MicroPython
    • 1. Giới thiệu về xBuild Creator Kit
    • 2. Hướng Dẫn Cài Đặt uPyCraft IDE
    • 3. Làm quen với phần mềm uPyCraft IDE
    • 4. Bài học 1: Hello world
    • 5. Bài học 2: Blink LED
      • Mục tiêu
      • Kiến thức mới
      • Kết nối phần cứng
      • Thiết bị cần sử dụng
      • Viết chương trình
      • Giải thích chương trình
    • 6. Bài học 3: Nhấn nút bật đèn LED
    • 7. Bài học 4: Điều khiển tốc độ chớp tắt đèn LED
    • 8. Bài học 5: Điều chỉnh độ sáng LED
    • 9. Bài học 6: Đèn LED RGB cảm ứng
    • 10. Bài học 7: Vỗ tay thay đổi màu đèn LED
    • 11. Bài học 8: Phát nhạc với còi báo
    • 12. Bài học 9: Cảm biến gia tốc góc nghiêng
    • 13. Bài học 10: Hiển thị thông tin lên màn hình LCD
    • 14. Bài học 11: Theo dõi nhiệt độ, độ ẩm trên LCD
    • 15. Bài học 12: Remote hồng ngoại
    • 16. Bài học 13: Điều khiển góc quay Servo
    • 17. Giới thiệu về dự án Nhà thông minh
    • 18. Project 1: Đèn điều khiển từ xa
    • 19. Project 2: Quạt thông minh
    • 20. Project 3: Đèn thông minh
    • 21. Project 4: Hệ thống chống trộm và báo động
    • 22. Project 5: Cửa thông minh
  • Hướng dẫn lập trình Arduino

Game Kit - Kit học lập trình game

  • Hướng dẫn lập trình GameKit

Các module mở rộng

  • Hướng dẫn cài đặt thư viện
  • Cảm biến
  • Hiển thị
  • Điều khiển đóng ngắt
  • Board mở rộng
  • Động cơ

API thư viện

  • Robot xBot và xController
OhStem Education Wiki
  • Hướng dẫn lập trình MicroPython
  • 5. Bài học 2: Blink LED
  • Edit on GitHub

5. Bài học 2: Blink LED

Mục tiêu

Sau khi hoàn thành chương trình đầu tiên để làm quen với Arduino trong bài trước, bây giờ, chúng ta hãy thử học cách điều khiển module đèn LED. Trong bài tập này, chúng ta sẽ lập trình cho module đèn LED bật và tắt liên tục (còn gọi là blink) sau mỗi giây.

Kiến thức mới

Các yếu tố cấu thành một hệ thống điều khiển

3 yếu tố cơ bản cấu thành nên một hệ thống điều khiển là:

Input: Thông tin đầu vào Control Unit: Trung tâm xử lý và điều khiển Output: Xuất ra thông tin hoặc hành động đã được lập trình sẵn

Trong chương trình bật/tắt LED, chúng ta sẽ chỉ sử dụng Output mà không sử dụng Input. xController chính là Control Unit - sử dụng tín hiệu Digital để điều khiển module Output là đèn LED .

Tín hiệu Digital là gì?

Có 2 loại tín hiệu cơ bản mà chúng ta sẽ làm việc với chúng trong lập trình điện tử, đó là tín hiệu Digital và tín hiệu Analog. Chúng ta sẽ tìm hiểu về Analog trong các bài học sau.

Tín hiệu Digital là tín hiệu chỉ có 2 giá trị là Tắt (còn gọi là LOW, 0V) và Bật (HIGH, 3.3V hay 5V tùy vào điện áp hoạt động của hệ thống, xController sử dụng 3.3V).

../../_images/ls-2-11.png

Module LED hoạt động dựa vào tín hiệu Digital:

../../_images/ls-2-21.png

Kết nối phần cứng

../../_images/ls-2-31.png

Thiết bị cần sử dụng

../../_images/device-21.png

Viết chương trình

  • Mở phần mềm uPyCraft.

  • Tạo một file chương trình mới (File > New) và lưu với tên main.py bằng cách chọn menu File > Save….

  • Copy đoạn code sau, click vào nút DownloadAndRun để chạy chương trình.

import time
while True:
  pin11.write_digital(1)
  time.sleep(1)
  pin11.write_digital(0)
  time.sleep(1)

Sau khi chạy chương trình, bạn sẽ thấy đèn LED phát sáng và tắt liên lục mỗi 1 giây.

Giải thích chương trình

pin11.write_digital(1)

Câu lệnh này cấu hình chế độ hoạt động của chân IO (nối với module LED) thành DIGITAL OUTPUT để có thể điều khiển được.

Lưu ý: Một chân IO có thể được sử dụng với các chế độ hoạt động khác nhau:

  • Tín hiệu Digital hoặc Analog

  • Có thể là Input (nếu nhận thông tin từ các module như module cảm biến) hoặc Output (nếu dùng để điều khiển bật tắt module gắn vào).

Do tính đa năng như vậy, nên các chân IO còn được gọi là General Purpose Input Output (các chân IO đa mục đích), hay gọi tắt là GPIO.

Lệnh khởi tạo một Object Pin Digital đầy đủ như sau:

pin[X][Y].write_digital((STATE))

- ``X`` Có giá trị từ ``1 ~ 6`` đại diện PORT 1 đến PORT 6 của xController.
- ``Y`` Có giá trị là ``1`` hoặc ``2`` tương ứng với 2 đường tín hiệu logic đối với mỗi PORT. Đối với một số module output thì mặc định là 1.

Lưu ý: Trên board xController có 6 cổng mở rộng, được đánh số từ 1 đến 6. Mỗi cổng gồm 4 đường tín hiệu:

  • 2 đường tín hiệu dành cho nguồn điện là GND (nguồn âm, 0V) và VCC (nguồn dương, 3.3V)

  • 2 đường tín hiệu logic, có thể sử dụng cho tín hiệu Digital (cả 6 cổng) hoặc Analog (chỉ hỗ trợ trên cổng 4, 5 và 6)

Sau đó, dùng một vòng lặp while với biểu thức điều kiện luôn luôn trả về True. Điều này tương tự như hàm loop () trong Arduino IDE:

while True:
  # Các lệnh cần thực hiện

Để điều khiển object led, ta dùng value(state), với state là đối số truyền vào giá trị cho led b``ật hoặc tắt.

pin11.write_digital(1)

Xuất ra tín hiệu mức HIGH cho chân IO nối với module LED.

Nếu chân IO được khai báo mode write_digital, thì điện áp xuất ra sẽ là 3.3V (hoặc 5V trên board sử dụng 5V) đối với mức HIGH, và 0V đối với mức LOW.

Câu lệnh trên sẽ xuất ra tín hiệu mức HIGH (3.3V). Khi đó, LED sẽ được bật do có điện.

pin11.write_digital(0)

Tương tự, câu lệnh này xuất tín hiệu LOW cho chân IO nối với module LED, tương ứng với mức điện áp 0V. Khi đó, LED sẽ được tắt.

time.sleep(1)

Dừng chương trình trong một khoảng thời gian (đơn vị giây).

Câu lệnh sleep() có cú pháp như sau:

time.sleep(s)

Tham số truyền vào:

s: số giây chương trình tạm dừng.

Chúng ta cần tạm dừng chương trình trong khoảng thời gian 1 giây để có thể nhìn rõ được hiệu ứng bật và tắt đèn LED. Nếu không, đèn LED sẽ được bật và tắt một cách chớp nhoáng, mắt người không nhìn rõ được.

Vậy là bạn đã làm quen với khái niệm tín hiệu Digital và biết cách điều khiển module LED. Ở bài học sau, bạn sẽ kết hợp thêm các tín hiệu Input khác để làm những bài học nâng cao hơn.

Previous Next

© Copyright 2022, OHSTEM. Revision 410301d5.

Built with Sphinx using a theme provided by Read the Docs.
Read the Docs v: latest
Versions
latest
Downloads
pdf
html
epub
On Read the Docs
Project Home
Builds