Trắc Nghiệm Công Nghệ Điện Tử 12 Cánh Diều Bài 25 là phần ôn luyện cuối cùng trong chương trình Công nghệ lớp 12, tập trung vào nội dung ứng dụng mạch điện tử trong hệ sinh thái thông minh như nhà thông minh, nông nghiệp tự động, và điều khiển năng lượng tái tạo. Đây là bộ đề trắc nghiệm môn Công nghệ Điện tử 12 Cánh Diều dạng đề tổng hợp đánh giá năng lực thực tiễn, được biên soạn năm 2024 bởi thầy Đặng Minh Tuấn – giáo viên Công nghệ tại Trường THPT Lương Thế Vinh, TP. Hà Nội. Đề thi giúp học sinh hệ thống hóa toàn bộ kiến thức từ linh kiện, mạch điều khiển, cảm biến đến giao tiếp không dây và tự động hóa, phù hợp với định hướng phát triển năng lực nghề nghiệp trong sách Công nghệ Cánh Diều 12.
Trắc nghiệm Công nghệ 12 trên detracnghiem.edu.vn cung cấp hệ thống câu hỏi tổng hợp đa dạng theo từng chủ đề, từ nhận biết đến vận dụng cao, kèm lời giải chi tiết và phân tích logic rõ ràng. Giao diện trực quan và chức năng theo dõi tiến độ học tập qua biểu đồ giúp học sinh dễ dàng đánh giá điểm mạnh, điểm yếu và điều chỉnh chiến lược ôn luyện hiệu quả. Đây là công cụ học tập thiết yếu cho học sinh lớp 12 trong giai đoạn chuẩn bị cuối năm. Trắc nghiệm ôn tập lớp 12.
Trắc Nghiệm Công Nghệ Điện Tử 12 – Cánh Diều
Phần II – Công Nghệ Điện Tử
Bài 25: Bo mạch lập trình vi điều khiển
Câu 1: Thành phần nào được coi là “trái tim” của một bo mạch lập trình vi điều khiển như Arduino Uno?
A. Vi điều khiển (ví dụ: họ AVR, ARM)
B. Khối cấp nguồn từ cổng USB
C. Các cổng vào/ra tín hiệu số
D. Khối tạo dao động thạch anh
Câu 2: Chức năng chính của “Khối truyền thông” trên bo mạch lập trình vi điều khiển là gì?
A. Cung cấp điện áp ổn định cho toàn bộ mạch hoạt động.
B. Tạo ra xung nhịp (clock) chính xác để đồng bộ hoạt động.
C. Điều khiển trực tiếp các thiết bị ngoại vi như động cơ.
D. Giao tiếp và nạp chương trình từ máy tính vào vi điều khiển.
Câu 3: Theo sơ đồ Hình 25.2, khối nào có nhiệm vụ tạo ra các xung tín hiệu có tần số ổn định để VĐK hoạt động đúng?
A. Khối nguồn
B. Khối truyền thông
C. Khối tạo dao động
D. Các cổng vào/ra
Câu 4: Môi trường phát triển tích hợp (IDE) dùng để lập trình cho bo mạch Arduino có tên là gì?
A. Visual Studio Code
B. Arduino IDE
C. Python IDLE
D. Eclipse
Câu 5: Trong Arduino IDE, chức năng của nút “Verify” (biểu tượng dấu tích ✓) là gì?
A. Nạp chương trình đã viết vào bộ nhớ của bo mạch.
B. Mở cửa sổ giao tiếp Serial để theo dõi dữ liệu.
C. Lưu chương trình đang soạn thảo vào một tập tin mới.
D. Biên dịch, kiểm tra lỗi cú pháp trong đoạn mã nguồn.
Câu 6: Trong cấu trúc một chương trình Arduino cơ bản, khối lệnh void setup() có đặc điểm gì?
A. Chỉ được thực thi một lần duy nhất khi bo mạch khởi động hoặc reset.
B. Lặp đi lặp lại vô hạn trong suốt quá trình bo mạch được cấp nguồn.
C. Chứa các lệnh khai báo thư viện và biến toàn cục cho chương trình.
D. Là nơi xử lí các lỗi phát sinh trong quá trình chạy của chương trình.
Câu 7: Lệnh digitalWrite(13, HIGH); trong Arduino có ý nghĩa gì?
A. Đọc trạng thái logic (1 hoặc 0) từ chân số 13.
B. Thiết lập chân số 13 hoạt động ở chế độ xuất tín hiệu.
C. Xuất ra chân số 13 một tín hiệu điện áp ở mức logic cao (thường là 5V).
D. Tạo một khoảng trễ 13 mili giây trước khi thực hiện lệnh tiếp theo.
Câu 8: Để chương trình tạm dừng trong 2 giây, ta cần sử dụng lệnh nào sau đây?
A. delay(2);
B. delay(2000);
C. pause(2000);
D. digitalWrite(pin, 2000);
Câu 9: Chức năng chính của khối lệnh void loop() trong một chương trình Arduino là gì?
A. Chứa các lệnh khởi tạo ban đầu cho các chân và biến.
B. Chỉ chạy một lần để kiểm tra phần cứng của bo mạch.
C. Thực thi các lệnh khai báo thư viện cần thiết cho dự án.
D. Chứa các lệnh chính của chương trình và được lặp lại liên tục.
Câu 10: Lệnh pinMode(pin, mode) trong lập trình Arduino có chức năng chính là gì?
A. Đọc giá trị điện áp tại một chân được chỉ định.
B. Gửi một tín hiệu logic mức cao hoặc thấp ra một chân.
C. Thiết lập chức năng cho một chân là cổng nhận dữ liệu (INPUT) hoặc cổng xuất dữ liệu (OUTPUT).
D. Tạo một khoảng thời gian trễ trong chương trình.
Câu 11: Trong Arduino IDE, vùng nào được dùng để hiển thị các thông báo lỗi, trạng thái biên dịch và nạp chương trình?
A. Vùng 4 (Vùng hiển thị thông tin)
B. Vùng 3 (Vùng soạn thảo chương trình)
C. Vùng 2 (Thanh biểu tượng)
D. Vùng 1 (Thanh menu)
Câu 12: Trong Bảng 25.1, lệnh nào được dùng để đọc trạng thái của một nút nhấn được kết nối vào chân số 2?
A. digitalRead(2)
B. digitalWrite(2, HIGH)
C. analogRead(2)
D. pinMode(2, OUTPUT)
Câu 13: Theo sách giáo khoa, ngoài Arduino, loại bo mạch lập trình vi điều khiển nào khác được đề cập?
A. Raspberry Pi
B. BeagleBone Black
C. ESP32
D. STM32F103RC
Câu 14: Công cụ nào trong IDE có chức năng dịch mã nguồn từ ngôn ngữ lập trình (C/C++) sang ngôn ngữ máy mà vi điều khiển có thể hiểu?
A. Editor (Trình soạn thảo)
B. Compiler (Trình biên dịch)
C. Debugger (Trình gỡ lỗi)
D. Serial Monitor (Trình giám sát)
Câu 15: Ứng dụng đo khoảng cách sử dụng cảm biến siêu âm (Hình 25.6) thuộc loại ứng dụng nào của bo mạch lập trình VĐK?
A. Chỉ dùng để hiển thị thông tin ra màn hình LCD.
B. Hệ thống giám sát và thu thập dữ liệu từ môi trường.
C. Điều khiển một thiết bị bay không người lái.
D. Tạo ra các hiệu ứng ánh sáng phức tạp.
Câu 16: Một học sinh muốn làm một đèn LED ở chân số 9 nhấp nháy. Em ấy cần đặt lệnh pinMode(9, OUTPUT); ở đâu trong chương trình?
A. Bên trong hàm loop()
B. Bên trong hàm setup()
C. Trước hàm setup()
D. Sau hàm loop()
Câu 17: Để điều khiển một thiết bị bay không người lái (drone – Hình 25.5), bo mạch VĐK nhận tín hiệu từ đâu để điều chỉnh động cơ?
A. Từ bộ cấp nguồn của drone.
B. Từ các cảm biến gia tốc, con quay hồi chuyển và bộ nhận tín hiệu từ xa.
C. Trực tiếp từ các cánh quạt của drone.
D. Từ đèn LED báo trạng thái trên bo mạch.
Câu 18: Một dự án cần đọc giá trị của một biến trở (thay đổi điện áp một cách liên tục). Lệnh nào phù hợp nhất để thực hiện việc này?
A. digitalRead(A0)
B. pinMode(A0, INPUT)
C. analogRead(A0)
D. digitalWrite(A0, HIGH)
Câu 19: Khi nạp chương trình, học sinh nhận được thông báo lỗi “Error compiling for board…”. Nguyên nhân có khả năng cao nhất là gì?
A. Bo mạch chưa được kết nối với máy tính qua cổng USB.
B. Cổng COM đã được chọn không chính xác trong menu Tools.
C. Nguồn điện cung cấp cho bo mạch không ổn định.
D. Mã nguồn chương trình có lỗi cú pháp chưa được sửa.
Câu 20: Một học sinh viết delay(500); vào chương trình. Điều này tương ứng với việc tạm dừng trong bao lâu?
A. 5 giây
B. 50 giây
C. Nửa giây
D. 5 mili giây
Câu 21: Nếu một học sinh đặt lệnh digitalWrite(8, HIGH); vào trong hàm setup() và không có lệnh nào khác liên quan đến chân 8 trong hàm loop(), đèn LED nối với chân 8 sẽ:
A. Sáng liên tục sau khi bo mạch khởi động.
B. Tắt liên tục sau khi bo mạch khởi động.
C. Nhấp nháy với tần số rất nhanh.
D. Sáng trong một khoảnh khắc rồi tắt.
Câu 22: Một học sinh viết chương trình sau:
void loop() {
digitalWrite(10, HIGH);
delay(1000);
digitalWrite(10, LOW);
}
Em ấy thấy đèn không tắt. Lỗi logic có thể nằm ở đâu?
A. Lệnh pinMode(10, OUTPUT); chưa được khai báo trong setup().
B. Lệnh delay(1000); phải được đặt trước digitalWrite(10, HIGH);.
C. Phải dùng digitalWrite(10, 0); thay vì digitalWrite(10, LOW);.
D. Thiếu một lệnh delay() sau lệnh digitalWrite(10, LOW);.
Câu 23: Sự khác biệt cơ bản giữa việc cấp nguồn cho bo mạch Arduino qua cổng USB và qua giắc cắm nguồn ngoài là gì?
A. Nguồn USB chỉ dùng để nạp code, không thể chạy mạch.
B. Nguồn ngoài cho phép bo mạch hoạt động độc lập mà không cần kết nối với máy tính.
C. Nguồn USB luôn cung cấp điện áp cao hơn nguồn ngoài.
D. Nguồn ngoài không thể cung cấp đủ dòng cho các ứng dụng công suất lớn.
Câu 24: Tại sao “Khối tạo dao động” lại quan trọng đối với các ứng dụng yêu cầu sự chính xác về thời gian như giao tiếp dữ liệu?
A. Vì nó cung cấp nguồn điện ổn định cho vi điều khiển.
B. Vì nó giúp tản nhiệt cho vi điều khiển khi hoạt động.
C. Vì nó giúp giảm kích thước vật lý của bo mạch.
D. Vì nó tạo ra các xung nhịp đều đặn, làm cơ sở cho mọi phép toán và định thời.
Câu 25: Một học sinh muốn điều khiển một đèn LED và đọc trạng thái một nút nhấn bằng cùng một chân I/O. Tại sao việc này không thể thực hiện đồng thời?
A. Vì nút nhấn và đèn LED yêu cầu hai mức điện áp khác nhau.
B. Vì một chân tại một thời điểm chỉ có thể được cấu hình là INPUT hoặc OUTPUT, không thể là cả hai.
C. Vì dòng điện yêu cầu của đèn LED sẽ làm hỏng nút nhấn.
D. Vì vi điều khiển không thể xử lí hai tác vụ này cùng lúc.
Câu 26: Trong Arduino IDE, nếu học sinh quên dấu chấm phẩy (;) ở cuối một dòng lệnh, công cụ nào sẽ phát hiện và báo lỗi này đầu tiên?
A. Debugger (Trình gỡ lỗi)
B. Editor (Trình soạn thảo)
C. Compiler (Trình biên dịch) khi nhấn “Verify”
D. Serial Monitor (Trình giám sát)
Câu 27: Một dự án yêu cầu đọc giá trị từ 5 nút nhấn khác nhau và điều khiển 8 đèn LED riêng biệt. Bo mạch lập trình vi điều khiển cần có tối thiểu bao nhiêu chân I/O kỹ thuật số?
A. 8 chân
B. 13 chân
C. 5 chân
D. 3 chân
Câu 28: Một học sinh viết chương trình điều khiển robot di chuyển, trong đó có lệnh delay(5000); để robot dừng lại. Trong khoảng thời gian 5 giây này, robot có thể đọc tín hiệu từ cảm biến va chạm để tránh chướng ngại vật không?
A. Có, vì việc đọc cảm biến và lệnh delay hoạt động song song.
B. Không, vì lệnh delay() sẽ làm vi điều khiển dừng mọi hoạt động khác, bao包括 cả việc đọc cảm biến.
C. Có, nhưng chỉ khi cảm biến được kết nối vào chân analog.
D. Chỉ có thể nếu giảm thời gian delay xuống dưới 1 giây.
Câu 29: Một hệ thống tưới cây tự động cần thực hiện 3 việc: (1) Đọc giá trị cảm biến độ ẩm đất (tương tự), (2) Đọc trạng thái nút bấm yêu cầu tưới ngay (số), (3) Bật/tắt máy bơm (số). Các lệnh nào sau đây là cần thiết cho 3 tác vụ trên?
A. Chỉ cần digitalRead() và digitalWrite().
B. Chỉ cần analogRead() và pinMode().
C. Cần digitalRead(), digitalWrite() và pinMode().
D. Cần analogRead(), digitalRead() và digitalWrite().
Câu 30: Một nhà thiết kế muốn tạo ra một thiết bị phản hồi nhanh, cần xử lí tín hiệu đầu vào và thay đổi đầu ra ngay lập tức. Việc sử dụng hàm delay() trong vòng lặp loop() có phải là một lựa chọn tốt không và tại sao?
A. Tốt, vì delay() giúp chương trình chạy ổn định hơn.
B. Tốt, vì delay() giúp tiết kiệm năng lượng cho vi điều khiển.
C. Không tốt, vì delay() là một hàm chặn (blocking function), làm chương trình không thể phản ứng với các sự kiện khác trong thời gian trễ.
D. Không tốt, vì delay() chỉ có thể được sử dụng trong hàm setup().