Giải Công nghệ 12 Điện - điện tử kết nối: Bài 25 Bo mạch lập trình vi điều khiển

Hướng dẫn giải Công nghệ 12 - Điện - điện tử kết nối tri thức: Giải bài 25 Bo mạch lập trình vi điều khiển. Bài được giải chi tiết, rõ ràng, dễ hiểu. Bài giải giúp học sinh nắm vững kiến thức trong sách giáo khoa, rèn kĩ năng giải bài tập và có phương pháp học tập hiệu quả.

Nội dung chi tiết

KHỞI ĐỘNG

Câu hỏi: Các thao tác lập trình trên máy tính truyền thống được thực hiện thông qua các thiết bị vào/ra tiêu chuẩn như bàn phím, chuột, màn hình (Hình 25.1). Vi điều khiển không có các thiết bị này, bằng cách nào ta có thể viết và nạp chương trình cho chúng?

KHỞI ĐỘNGCâu hỏi: Các thao tác lập trình trên máy tính truyền thống được thực hiện thông qua các thiết bị vào/ra tiêu chuẩn như bàn phím, chuột, màn hình (Hình 25.1). Vi điều khiển không có các thiết bị này, bằng cách nào ta có thể viết và nạp chương trình cho chúng?Giải chi tiết:1. Sử dụng mạch nạp:Mạch nạp là một thiết bị ngoại vi kết nối giữa máy tính và vi điều khiển, dùng để truyền chương trình đã biên dịch từ máy tính vào bộ nhớ của vi điều khiển.Có nhiều loại mạch nạp khác nhau, mỗi loại hỗ trợ một hoặc nhiều dòng vi điều khiển cụ thể.Quá trình nạp chương trình thường được thực hiện bằng phần mềm đi kèm với mạch nạp.2. Sử dụng bộ lập trình trong mạch (ISP):Một số dòng vi điều khiển hiện đại có hỗ trợ tính năng ISP, cho phép nạp chương trình trực tiếp từ máy tính thông qua cổng giao tiếp (như UART, SPI, JTAG) mà không cần sử dụng mạch nạp riêng.Ưu điểm của phương pháp này là tiết kiệm chi phí và đơn giản hơn so với sử dụng mạch nạp.Tuy nhiên, không phải tất cả các dòng vi điều khiển đều hỗ trợ ISP.3. Sử dụng bộ nạp bootloader:Bootloader là một chương trình nhỏ được ghi vào bộ nhớ flash của vi điều khiển.Khi khởi động, vi điều khiển sẽ thực thi bootloader, cho phép nạp chương trình ứng dụng từ các nguồn bên ngoài (như bộ nhớ flash, thẻ nhớ, v.v.).Ưu điểm của phương pháp này là đơn giản và linh hoạt.Tuy nhiên, bootloader cần được ghi vào vi điều khiển trước khi có thể sử dụng nó để nạp chương trình ứng dụng. I. GIỚI THIỆU VỀ BO MẠCH LẬP TRÌNH VI ĐIỀU KHIỂNII. CẤU TRÚC CỦA BO MẠCH LẬP TRÌNH VI ĐIỀU KHIỂNKẾT NỐI NĂNG LỰCCâu hỏi: Hãy tìm hiểu thêm các ứng dụng khác của bo mạch lập trình vi điều khiển trong cuộc sống. Trong ứng dụng mà em tìm được, vi điều khiển thực hiện chức năng đọc hay ghi dữ liệu trên các cổng vào/ra của nó.Giải chi tiết:Ví dụ về ứng dụng đọc/ghi dữ liệu:Hệ thống đo lường nhiệt độ và độ ẩm:Vi điều khiển được sử dụng để thu thập dữ liệu về nhiệt độ và độ ẩm từ các cảm biến.Dữ liệu này sau đó được xử lý và hiển thị trên màn hình LCD hoặc được ghi vào bộ nhớ.Vi điều khiển cũng có thể được sử dụng để điều khiển các thiết bị như quạt, máy điều hòa không khí để duy trì nhiệt độ và độ ẩm mong muốn. LUYỆN TẬPCâu hỏi 1: Trong ví dụ trên Hình 25.5, nếu muốn chuyển dữ liệu từ cảm biến vào vi điều khiển thông qua cổng A0 thay vì cổng A2 thì ta cần thay đổi như thế nào?Giải chi tiết:1. Thay đổi kết nối dây dẫn:Xác định vị trí chân A0 và A2 trên bo mạch Arduino Uno.Ngắt kết nối dây dẫn từ chân A2 của cảm biến và kết nối nó với chân A0.Giữ nguyên kết nối dây dẫn còn lại của cảm biến (thường là dây nguồn và dây tín hiệu) với bo mạch Arduino Uno.2. Chỉnh sửa chương trình:Mở chương trình Arduino đang sử dụng để đọc dữ liệu từ cảm biến.Xác định dòng code khai báo biến để lưu trữ giá trị đọc được từ cảm biến.Thay đổi tên cổng đọc dữ liệu từ  A2

Giải chi tiết:

1. Sử dụng mạch nạp:

  • Mạch nạp là một thiết bị ngoại vi kết nối giữa máy tính và vi điều khiển, dùng để truyền chương trình đã biên dịch từ máy tính vào bộ nhớ của vi điều khiển.
  • Có nhiều loại mạch nạp khác nhau, mỗi loại hỗ trợ một hoặc nhiều dòng vi điều khiển cụ thể.
  • Quá trình nạp chương trình thường được thực hiện bằng phần mềm đi kèm với mạch nạp.

2. Sử dụng bộ lập trình trong mạch (ISP):

  • Một số dòng vi điều khiển hiện đại có hỗ trợ tính năng ISP, cho phép nạp chương trình trực tiếp từ máy tính thông qua cổng giao tiếp (như UART, SPI, JTAG) mà không cần sử dụng mạch nạp riêng.
  • Ưu điểm của phương pháp này là tiết kiệm chi phí và đơn giản hơn so với sử dụng mạch nạp.
  • Tuy nhiên, không phải tất cả các dòng vi điều khiển đều hỗ trợ ISP.

3. Sử dụng bộ nạp bootloader:

  • Bootloader là một chương trình nhỏ được ghi vào bộ nhớ flash của vi điều khiển.
  • Khi khởi động, vi điều khiển sẽ thực thi bootloader, cho phép nạp chương trình ứng dụng từ các nguồn bên ngoài (như bộ nhớ flash, thẻ nhớ, v.v.).
  • Ưu điểm của phương pháp này là đơn giản và linh hoạt.
  • Tuy nhiên, bootloader cần được ghi vào vi điều khiển trước khi có thể sử dụng nó để nạp chương trình ứng dụng.

I. GIỚI THIỆU VỀ BO MẠCH LẬP TRÌNH VI ĐIỀU KHIỂN

II. CẤU TRÚC CỦA BO MẠCH LẬP TRÌNH VI ĐIỀU KHIỂN

KẾT NỐI NĂNG LỰC

Câu hỏi: Hãy tìm hiểu thêm các ứng dụng khác của bo mạch lập trình vi điều khiển trong cuộc sống. Trong ứng dụng mà em tìm được, vi điều khiển thực hiện chức năng đọc hay ghi dữ liệu trên các cổng vào/ra của nó.

Giải chi tiết:

Ví dụ về ứng dụng đọc/ghi dữ liệu:

Hệ thống đo lường nhiệt độ và độ ẩm:

  • Vi điều khiển được sử dụng để thu thập dữ liệu về nhiệt độ và độ ẩm từ các cảm biến.
  • Dữ liệu này sau đó được xử lý và hiển thị trên màn hình LCD hoặc được ghi vào bộ nhớ.
  • Vi điều khiển cũng có thể được sử dụng để điều khiển các thiết bị như quạt, máy điều hòa không khí để duy trì nhiệt độ và độ ẩm mong muốn.

LUYỆN TẬP

Câu hỏi 1: Trong ví dụ trên Hình 25.5, nếu muốn chuyển dữ liệu từ cảm biến vào vi điều khiển thông qua cổng A0 thay vì cổng A2 thì ta cần thay đổi như thế nào?

Giải chi tiết:

1. Thay đổi kết nối dây dẫn:

  • Xác định vị trí chân A0 và A2 trên bo mạch Arduino Uno.
  • Ngắt kết nối dây dẫn từ chân A2 của cảm biến và kết nối nó với chân A0.
  • Giữ nguyên kết nối dây dẫn còn lại của cảm biến (thường là dây nguồn và dây tín hiệu) với bo mạch Arduino Uno.

2. Chỉnh sửa chương trình:

  • Mở chương trình Arduino đang sử dụng để đọc dữ liệu từ cảm biến.
  • Xác định dòng code khai báo biến để lưu trữ giá trị đọc được từ cảm biến.
  • Thay đổi tên cổng đọc dữ liệu từ "A2" sang "A0".
  • Lưu và biên dịch lại chương trình.

Câu hỏi 2: Trong ví dụ trên Hình 25.6, nếu muốn bật LED thì ta cần ghi giá trị nào ra cổng số 9? Biết giá trị 1 tương ứng với mức điện áp 5 V và giá trị 0 tương ứng với mức điện áp 0 V.

KHỞI ĐỘNGCâu hỏi: Các thao tác lập trình trên máy tính truyền thống được thực hiện thông qua các thiết bị vào/ra tiêu chuẩn như bàn phím, chuột, màn hình (Hình 25.1). Vi điều khiển không có các thiết bị này, bằng cách nào ta có thể viết và nạp chương trình cho chúng?Giải chi tiết:1. Sử dụng mạch nạp:Mạch nạp là một thiết bị ngoại vi kết nối giữa máy tính và vi điều khiển, dùng để truyền chương trình đã biên dịch từ máy tính vào bộ nhớ của vi điều khiển.Có nhiều loại mạch nạp khác nhau, mỗi loại hỗ trợ một hoặc nhiều dòng vi điều khiển cụ thể.Quá trình nạp chương trình thường được thực hiện bằng phần mềm đi kèm với mạch nạp.2. Sử dụng bộ lập trình trong mạch (ISP):Một số dòng vi điều khiển hiện đại có hỗ trợ tính năng ISP, cho phép nạp chương trình trực tiếp từ máy tính thông qua cổng giao tiếp (như UART, SPI, JTAG) mà không cần sử dụng mạch nạp riêng.Ưu điểm của phương pháp này là tiết kiệm chi phí và đơn giản hơn so với sử dụng mạch nạp.Tuy nhiên, không phải tất cả các dòng vi điều khiển đều hỗ trợ ISP.3. Sử dụng bộ nạp bootloader:Bootloader là một chương trình nhỏ được ghi vào bộ nhớ flash của vi điều khiển.Khi khởi động, vi điều khiển sẽ thực thi bootloader, cho phép nạp chương trình ứng dụng từ các nguồn bên ngoài (như bộ nhớ flash, thẻ nhớ, v.v.).Ưu điểm của phương pháp này là đơn giản và linh hoạt.Tuy nhiên, bootloader cần được ghi vào vi điều khiển trước khi có thể sử dụng nó để nạp chương trình ứng dụng. I. GIỚI THIỆU VỀ BO MẠCH LẬP TRÌNH VI ĐIỀU KHIỂNII. CẤU TRÚC CỦA BO MẠCH LẬP TRÌNH VI ĐIỀU KHIỂNKẾT NỐI NĂNG LỰCCâu hỏi: Hãy tìm hiểu thêm các ứng dụng khác của bo mạch lập trình vi điều khiển trong cuộc sống. Trong ứng dụng mà em tìm được, vi điều khiển thực hiện chức năng đọc hay ghi dữ liệu trên các cổng vào/ra của nó.Giải chi tiết:Ví dụ về ứng dụng đọc/ghi dữ liệu:Hệ thống đo lường nhiệt độ và độ ẩm:Vi điều khiển được sử dụng để thu thập dữ liệu về nhiệt độ và độ ẩm từ các cảm biến.Dữ liệu này sau đó được xử lý và hiển thị trên màn hình LCD hoặc được ghi vào bộ nhớ.Vi điều khiển cũng có thể được sử dụng để điều khiển các thiết bị như quạt, máy điều hòa không khí để duy trì nhiệt độ và độ ẩm mong muốn. LUYỆN TẬPCâu hỏi 1: Trong ví dụ trên Hình 25.5, nếu muốn chuyển dữ liệu từ cảm biến vào vi điều khiển thông qua cổng A0 thay vì cổng A2 thì ta cần thay đổi như thế nào?Giải chi tiết:1. Thay đổi kết nối dây dẫn:Xác định vị trí chân A0 và A2 trên bo mạch Arduino Uno.Ngắt kết nối dây dẫn từ chân A2 của cảm biến và kết nối nó với chân A0.Giữ nguyên kết nối dây dẫn còn lại của cảm biến (thường là dây nguồn và dây tín hiệu) với bo mạch Arduino Uno.2. Chỉnh sửa chương trình:Mở chương trình Arduino đang sử dụng để đọc dữ liệu từ cảm biến.Xác định dòng code khai báo biến để lưu trữ giá trị đọc được từ cảm biến.Thay đổi tên cổng đọc dữ liệu từ  A2

Giải chi tiết:

Để bật LED bằng Arduino qua cổng số 9, ta cần ghi giá trị 1 ra cổng này.

Giải thích:

  • Trong ví dụ Hình 25.6, LED được kết nối với cổng số 9 của bo mạch Arduino Uno.
  • Khi ghi giá trị 1 ra cổng số 9, Arduino sẽ cấp điện áp 5 V cho LED, khiến nó sáng.
  • Ngược lại, khi ghi giá trị 0 ra cổng số 9, Arduino sẽ ngắt điện áp cho LED, khiến nó tắt.

III. CÔNG CỤ LẬP TRÌNH CHO BO MẠCH LẬP TRÌNH VI ĐIỀU KHIỂN

VẬN DỤNG

Câu hỏi: Cài đặt ứng dụng Arduino IDE lên máy tính, mở ứng dụng và chỉ ra vị trí của ba thành phần cơ bản trên giao diện của nó

Giải chi tiết:

Giao diện Arduino IDE bao gồm ba thành phần cơ bản:

1. Thanh công cụ:

  • Nằm ở phía trên cùng của cửa sổ, chứa các nút lệnh cho các thao tác cơ bản như mở tệp, lưu tệp, biên dịch, nạp chương trình, v.v.
  • Một số nút lệnh quan trọng:
    • Open: Mở tệp chương trình Arduino (.ino).
    • Save: Lưu tệp chương trình Arduino (.ino).
    • Verify: Biên dịch chương trình Arduino và kiểm tra lỗi cú pháp.
    • Upload: Nạp chương trình đã biên dịch vào bo mạch Arduino.
    • Serial Monitor: Mở cửa sổ giám sát cổng giao tiếp nối tiếp để theo dõi dữ liệu truyền tải giữa Arduino và máy tính.

2. Cửa sổ chỉnh sửa:

  • Nằm ở trung tâm của cửa sổ, là nơi bạn viết mã chương trình Arduino.
  • Môi trường viết mã hỗ trợ tô sáng cú pháp, tự động hoàn thành mã, v.v.

3. Cửa sổ thông tin:

  • Nằm ở phía dưới cùng của cửa sổ, hiển thị thông tin về quá trình biên dịch, nạp chương trình, thông báo lỗi, v.v.

THỰC HÀNH

Câu hỏi: Kết nối bo mạch lập trình vi điều khiển Arduino Uno với máy tính, mở ứng dụng Arduino IDE, soạn thảo đoạn mã dưới đây rồi nạp vào vi điều khiển và quan sát hiện tượng xảy ra trên LED L của bo mạch lập trình vi điều khiển. Nếu muốn thay đổi chu kì nháy của đèn thì ta cần thay đổi giá trị của biến nào trong đoạn mã?

KHỞI ĐỘNGCâu hỏi: Các thao tác lập trình trên máy tính truyền thống được thực hiện thông qua các thiết bị vào/ra tiêu chuẩn như bàn phím, chuột, màn hình (Hình 25.1). Vi điều khiển không có các thiết bị này, bằng cách nào ta có thể viết và nạp chương trình cho chúng?Giải chi tiết:1. Sử dụng mạch nạp:Mạch nạp là một thiết bị ngoại vi kết nối giữa máy tính và vi điều khiển, dùng để truyền chương trình đã biên dịch từ máy tính vào bộ nhớ của vi điều khiển.Có nhiều loại mạch nạp khác nhau, mỗi loại hỗ trợ một hoặc nhiều dòng vi điều khiển cụ thể.Quá trình nạp chương trình thường được thực hiện bằng phần mềm đi kèm với mạch nạp.2. Sử dụng bộ lập trình trong mạch (ISP):Một số dòng vi điều khiển hiện đại có hỗ trợ tính năng ISP, cho phép nạp chương trình trực tiếp từ máy tính thông qua cổng giao tiếp (như UART, SPI, JTAG) mà không cần sử dụng mạch nạp riêng.Ưu điểm của phương pháp này là tiết kiệm chi phí và đơn giản hơn so với sử dụng mạch nạp.Tuy nhiên, không phải tất cả các dòng vi điều khiển đều hỗ trợ ISP.3. Sử dụng bộ nạp bootloader:Bootloader là một chương trình nhỏ được ghi vào bộ nhớ flash của vi điều khiển.Khi khởi động, vi điều khiển sẽ thực thi bootloader, cho phép nạp chương trình ứng dụng từ các nguồn bên ngoài (như bộ nhớ flash, thẻ nhớ, v.v.).Ưu điểm của phương pháp này là đơn giản và linh hoạt.Tuy nhiên, bootloader cần được ghi vào vi điều khiển trước khi có thể sử dụng nó để nạp chương trình ứng dụng. I. GIỚI THIỆU VỀ BO MẠCH LẬP TRÌNH VI ĐIỀU KHIỂNII. CẤU TRÚC CỦA BO MẠCH LẬP TRÌNH VI ĐIỀU KHIỂNKẾT NỐI NĂNG LỰCCâu hỏi: Hãy tìm hiểu thêm các ứng dụng khác của bo mạch lập trình vi điều khiển trong cuộc sống. Trong ứng dụng mà em tìm được, vi điều khiển thực hiện chức năng đọc hay ghi dữ liệu trên các cổng vào/ra của nó.Giải chi tiết:Ví dụ về ứng dụng đọc/ghi dữ liệu:Hệ thống đo lường nhiệt độ và độ ẩm:Vi điều khiển được sử dụng để thu thập dữ liệu về nhiệt độ và độ ẩm từ các cảm biến.Dữ liệu này sau đó được xử lý và hiển thị trên màn hình LCD hoặc được ghi vào bộ nhớ.Vi điều khiển cũng có thể được sử dụng để điều khiển các thiết bị như quạt, máy điều hòa không khí để duy trì nhiệt độ và độ ẩm mong muốn. LUYỆN TẬPCâu hỏi 1: Trong ví dụ trên Hình 25.5, nếu muốn chuyển dữ liệu từ cảm biến vào vi điều khiển thông qua cổng A0 thay vì cổng A2 thì ta cần thay đổi như thế nào?Giải chi tiết:1. Thay đổi kết nối dây dẫn:Xác định vị trí chân A0 và A2 trên bo mạch Arduino Uno.Ngắt kết nối dây dẫn từ chân A2 của cảm biến và kết nối nó với chân A0.Giữ nguyên kết nối dây dẫn còn lại của cảm biến (thường là dây nguồn và dây tín hiệu) với bo mạch Arduino Uno.2. Chỉnh sửa chương trình:Mở chương trình Arduino đang sử dụng để đọc dữ liệu từ cảm biến.Xác định dòng code khai báo biến để lưu trữ giá trị đọc được từ cảm biến.Thay đổi tên cổng đọc dữ liệu từ  A2

Giải chi tiết:

Để thay đổi chu kỳ nháy thành 2 giây, hãy sửa đổi đoạn mã như sau:

void setup() {

// Khởi tạo cống điều khiển LED Lở mode ra

pinMode(LED_BUILTIN, OUTPUT);

}

void loop() {

digitalWrite(LED_BUILTIN, HIGH); // Bật LED

delay(2000); // Chờ 2 giây

digitalWrite(LED_BUILTIN, LOW); // Tắt LED

delay(2000); // Chờ 2 giây

}