Font size
WorksheetsÔn Tập Kỹ Thuật Vi Điều Khiển
Total questions: 95
Worksheet time: 32hrs 40mins
Nhiệm vụ chính của mạch điều kiện tín hiệu (signal conditioning)?
Lưu trữ tín hiệu
Khuếch đại và chuyển đổi tín hiệu
Xử lý tín hiệu số
Phân tích dữ liệu
Hàm analogRead() trong Arduino trả về giá trị nào?
Tín hiệu số từ 0 đến 255
Tín hiệu số từ 0 đến 1023
Điện áp thực tế từ 0V đến 5V
Điện áp thực tế từ 0V đến 3.3V
Công thức chuyển đổi giá trị đọc từ analogRead() thành điện áp thực tế là gì?
V=
V= Giá trị ADC x 5
Số bit của kết quả chuyển đổi ADC trong ATmega328 là bao nhiêu?
8-bit
10-bit
12-bit
16-bit
Bạn cần đo điện áp lớn hơn 5V bằng Arduino. Bạn sẽ làm gì?
Sử dụng trực tiếp hàm analogRead()
Khuếch đại tín hiệu điện áp
Sử dụng mạch chia điện áp
Thay đổi tham số analogReference()
Hàm map() trong Arduino được dùng để làm gì?
Đọc giá trị analog
Chuyển đổi giá trị từ một khoảng này sang khoảng khác
Gửi dữ liệu qua UART
Đọc trạng thái chân số
Khi sử dụng cảm biến nhiệt độ PT100, tín hiệu đầu ra cần được chuyển đổi như thế nào để phù hợp với ADC?
Dùng mạch khuếch đại và chuyển đổi dòng thành điện áp
Dùng mạch chia điện áp
Dùng bộ chuyển đổi điện áp sang dòng
Kết nối trực tiếp với ADC
Timer được sử dụng để làm gì trong các ứng dụng đo lường?
Đo khoảng cách
Đếm số sự kiện xảy ra
Tính toán thời gian trễ chính xác
Điều chỉnh tốc độ động cơ
Ứng dụng phổ biến của Counter là gì?
Điều chỉnh tín hiệu PWM
Đo tốc
Đếm số sự kiện xảy ra
Tính toán thời gian trễ chính xác
Điều chỉnh tốc độ động cơ
Ứng dụng phổ biến của Counter là gì?
Điều chỉnh tín hiệu PWM
Đo tốc độ hoặc số lượng sự kiện
Điều khiển động cơ bước
Gửi dữ liệu qua UART
PWM thường được sử dụng trong điều khiển gì?
Tín hiệu số
Tốc độ động cơ và độ sáng đèn LED
Đếm xung
Truyền thông nối tiếp
Chế độ nào của Timer cho phép tạo ra tín hiệu PWM?
Normal Mode
CTC Mode
Fast PWM Mode
Phase Correct PWM Mode
Trong các ứng dụng thực tế, Timer có thể được sử dụng để làm gì?
Chuyển đổi tín hiệu analog sang số
Tạo tín hiệu xung nhịp định kỳ
Khuếch đại tín hiệu cảm biến
Điều chỉnh giao tiếp SPI
Tín hiệu PWM có thể điều chỉnh được yếu tố nào sau đây?
Biên độ và tần số
Chu kỳ và biên độ
Chu kỳ và độ rộng xung
Tần số và độ rộng xung
Ứng dụng chính của Timer trong giao tiếp dữ liệu là gì?
Điều chỉnh tần số PWM
Tạo tốc độ baud cho UART
Điều khiển động cơ bước
Đếm tín hiệu từ cảm biến
Timer có thể được sử dụng trong việc kiểm tra độ chính xác của thiết bị nào?
Nhiệt kế
Đồng hồ đo thời gian
Cảm biến áp suất
Cảm biến siêu âm
Trong điều khiển động cơ, PWM giúp điều chỉnh gì?
Tốc độ và hướng
Biên độ và pha
Chu kỳ và nhiệt độ
Dòng điện và điện áp
Counter thường được sử dụng trong ứng dụng nào sau đây?
Gửi tín hiệu PWM
Điều khiển tín hiệu digital
Đếm số lượng xung từ cảm biến
Tạo tốc độ baud cho UART
Timer có thể được sử dụng để tạo ra tín hiệu gì trong giao tiếp UART?
Tín hiệu Start và Stop
Tín hiệu xung clock cố định
Tín hiệu PWM để truyền dữ liệu
Tín hiệu Reset
Timer có thể được sử dụng để tạo ra tín hiệu gì trong giao tiếp UART?
Tín hiệu Start và Stop
Tín hiệu xung clock cố định
Tín hiệu PWM để truyền dữ liệu
Tín hiệu Reset
Một ứng dụng phổ biến của PWM trong chiếu sáng là gì?
Thay đổi màu sắc của đèn
Điều chỉnh độ sáng đèn LED
Tắt đèn khi không dùng
Đổi tần số ánh sáng
Timer được sử dụng trong lập lịch (scheduling) để làm gì?
Đếm số lần thực thi
Quản lý thời gian giữa các tác vụ
Điều khiển tần số PWM
Chuyển đổi tín hiệu analog
Ứng dụng của Counter trong ngành công nghiệp sản xuất là gì?
Đếm số sản phẩm trên dây chuyền
Điều khiển nhiệt độ lò nung
Chuyển đổi tín hiệu cảm biến áp suất
Tạo tín hiệu điều khiển động cơ
Khi sử dụng PWM để điều khiển quạt, yếu tố nào được điều chỉnh?
Dòng điện qua quạt
Tốc độ quay của quạt
Hướng quay của quạt
Tần số hoạt động của quạt
PWM có thể được sử dụng để tạo ra tín hiệu nào trong âm thanh?
Tín hiệu tần số thấp
Tín hiệu âm thanh số
Tín hiệu analog dao động cao
Tín hiệu sóng vuông dao động
Ứng dụng của Timer trong bảo vệ hệ thống là gì?
Đếm số tín hiệu lỗi
Đặt thời gian chờ (timeout)
Điều khiển hoạt động cảm biến
Tăng tốc độ truyền dữ liệu
Một ứng dụng phổ biến của Timer trong hệ thống nhúng là gì?
Tính toán phép toán số học
Xử lý tín hiệu từ cảm biến
Định thời gian và lịch trình hoạt động
Gửi dữ liệu qua giao thức SPI
Ngắt là gì?
Một lệnh chờ trong chương trình
Một tín hiệu dừng hoạt động của CPU
Một cơ chế để CPU tạm dừng chương trình chính để xử lý sự kiện quan trọng
Một lỗi trong chương trình
Một cơ chế để CPU tạm dừng chương trình chính để xử lý sự kiện quan trọng?
Một lỗi trong chương trình
Một cơ chế để CPU tạm dừng chương trình chính để xử lý sự kiện quan trọng
Ví dụ nào sau đây là ngắt bên ngoài?
Timer Overflow
Serial Communication
Tín hiệu từ nút nhấn ngoài
Bộ đếm hết xung
Sự khác biệt chính giữa ngắt và polling là gì?
Ngắt xử lý sự kiện ngay lập tức, polling kiểm tra theo chu kỳ
Ngắt tiêu tốn CPU nhiều hơn polling
Polling nhanh hơn ngắt trong xử lý tín hiệu
Ngắt cần ít tài nguyên hơn polling
Khi nào ISR (Interrupt Service Routine) được thực thi?
Khi chương trình chính hoàn thành
Khi một ngắt xảy ra
Khi CPU không bận xử lý
Khi chân I/O thay đổi trạng thái
Lệnh nào được sử dụng để kết thúc ISR?
RET
RETI
BREAK
END
Ngắt bên ngoài INT0 được kích hoạt bằng chân nào trên ATmega32?
PB0
PD2
PC0
PA3
Bảng vector ngắt được dùng để làm gì?
Lưu trạng thái CPU khi ngắt xảy ra
Xác định địa chỉ bắt đầu của mỗi ISR
Lưu các thông số của ngắt bên ngoài
Cấu hình chế độ ngắt
Chế độ nào sau đây có thể kích hoạt ngắt INT0?
Chỉ mức thấp
Mức thấp, cạnh lên, hoặc cạnh xuống
Cạnh lên hoặc cạnh xuống
Cạnh xuống hoặc mức thấp
Bit nào trong thanh ghi GICR được dùng để kích hoạt ngắt INT1?
INT1
INTF1
ISC11
GICR1
Ngắt INT2 chỉ hỗ trợ chế độ nào?
Mức thấp
Cạnh xuống
Cạnh lên
Cạnh xuống và cạnh lên
Trong Arduino, hàm nào được sử dụng để đăng ký ngắt?
enableInterrupt()
registerInterrupt()
attachInterrupt()
setInterrupt()
Tại sao polling không hiệu quả bằng ngắt?
Polling tiêu tốn thời gian CPU hơn ngắt
Ngắt nhanh hơn vì không cần kiểm tra liên
Tại sao polling không hiệu quả bằng ngắt?
Polling tiêu tốn thời gian CPU hơn ngắt
Ngắt nhanh hơn vì không cần kiểm tra liên tục
Polling không hoạt động khi CPU bận
Polling không hỗ trợ các sự kiện phức tạp
Bit ISC00 và ISC01 trong MCUCR kiểm soát điều gì?
Chế độ ngắt INT0
Chế độ ngắt INT1
Tần số Timer
Mức xung của tín hiệu PWM
Lệnh nào được sử dụng để tạm thời vô hiệu hóa ngắt trong Arduino?
disableInterrupt()
cli()
detachInterrupt()
stopInterrupt()
Trong ví dụ đo tốc độ cao (high-speed measurements), ngắt được sử dụng để làm gì?
Đếm xung từ tín hiệu nhanh
Điều khiển tín hiệu PWM
Tạo trễ chính xác
Gửi tín hiệu đến UART
Tại sao cần sử dụng biến volatile trong ISR?
Để tăng tốc độ xử lý ISR
Để tránh tối ưu hóa của trình biên dịch
Để làm cho biến có thể ghi được nhiều lần
Để đảm bảo biến chỉ được sử dụng trong ISR
Ngắt có thể được kích hoạt bởi các yếu tố nào?
Chỉ tín hiệu mức thấp
Cạnh lên, cạnh xuống, mức thấp, hoặc tín hiệu từ thiết bị ngoại vi
Chỉ tín hiệu từ Timer
Chỉ tín hiệu từ bộ đếm
Khi ngắt xảy ra, CPU thực hiện bước nào đầu tiên?
Dừng chương trình chính và lưu trạng thái
Kích hoạt tín hiệu ngắt
Thực thi lệnh RETI
Tăng tốc độ xử lý
Lệnh RETI có chức năng gì?
Kích hoạt ngắt tiếp theo
Kết thúc ISR và khôi phục trạng thái CPU
Vô hiệu hóa tất cả ngắt
Tăng giá trị Timer
Trong lập trình Arduino, chế độ nào của attachInterrupt() kích hoạt ngắt khi chân chuyển từ HIGH sang LOW?
RISING
FALLING
CHANGE
LOW
Trong lập trình Arduino, chế độ nào của attachInterrupt() kích hoạt ngắt khi chân chuyển từ HIGH sang LOW?
RISING
FALLING
CHANGE
LOW
Cổng nào trên ATmega32 có thể được sử dụng làm đầu vào hoặc đầu ra?
PORTA
PORTB
PORTC
Tất cả các cổng trên
Để cấu hình một cổng làm đầu ra, cần làm gì với thanh ghi DDRx?
Ghi giá trị 0x00 vào DDRx
Ghi giá trị 0xFF vào DDRx
Kích hoạt bit kéo lên trong PORTx
Vô hiệu hóa thanh ghi PINx
Khi reset, trạng thái mặc định của các cổng I/O là gì?
Đầu vào
Đầu ra
Đầu vào với điện trở kéo lên
Trạng thái nổi
Nếu muốn sử dụng điện trở kéo lên nội bộ, cần làm gì với thanh ghi PORTx?
Ghi giá trị 0xFF vào PORTx
Cấu hình DDRx là đầu ra
Ghi giá trị 0x00 vào PORTx
Kích hoạt bit tương ứng trong PORTx
Điện trở kéo lên giúp giải quyết vấn đề gì?
Giảm dòng điện qua chân I/O
Ngăn trạng thái nổi trên đầu vào
Tăng tốc độ chuyển đổi của tín hiệu
Tăng độ chính xác của tín hiệu ADC
Để đọc dữ liệu từ một cổng, trước tiên cần làm gì với thanh ghi DDRx?
Ghi giá trị 0x00 vào DDRx
Ghi giá trị 0xFF vào DDRx
Kích hoạt bit tương ứng trong PORTx
Cấu hình DDRx làm đầu ra
Khi cấu hình cổng làm đầu vào, dữ liệu được đọc từ đâu?
Thanh ghi DDRx
Thanh ghi PORTx
Thanh ghi PINx
Không thể đọc dữ liệu
Nếu DDRC = 0xFF và PORTC = 0x3B, giá trị xuất ra là gì?
A. 0xFF
B. 0x3B
0x00
Không xác định
Trong ATmega32, mỗi cổng có bao nhiêu chân I/O?
6
8
10
12
Để kích hoạt tất cả các LED được nối với PORTC, cần giá trị nào trong thanh ghi PORTC?
0xFF
0x00
0x01
0x80
Nếu không cấu hình đúng DDRx, điều gì xảy ra khi ghi dữ liệu vào PORTx?
Không có gì xảy ra
Giá trị bị ghi sai
Giá trị được ghi
á trị nào trong thanh ghi PORTC?
0xFF
0x00
0x01
0x80
Nếu không cấu hình đúng DDRx, điều gì xảy ra khi ghi dữ liệu vào PORTx?
Không có gì xảy ra
Giá trị bị ghi sai
Giá trị được ghi nhưng không xuất ra
PORTx chuyển sang trạng thái nổi
Điện trở kéo lên nội bộ được kích hoạt bằng cách nào?
Ghi 1 vào PORTx và cấu hình DDRx là đầu vào
Ghi 0 vào PORTx và cấu hình DDRx là đầu ra
Ghi 1 vào DDRx và PORTx
Ghi 0 vào DDRx
Khi sử dụng công tắc với điện trở kéo lên, trạng thái nào được đọc khi công tắc không được nhấn?
HIGH
LOW
Trạng thái nổi
Không xác định
Nếu DDRB = 0x00 và dữ liệu tại chân PORTB là 0x75, giá trị nào sẽ được đọc từ PINB?
0x00
0x75
Không xác định
0xFF
Cách tốt nhất để điều khiển nhiều LED trên một cổng là gì?
Điều khiển từng chân bằng digitalWrite()
Điều khiển toàn bộ cổng bằng cách ghi giá trị vào thanh ghi PORTx
Dùng các điện trở nối tiếp từng LED
Sử dụng các transistor điều khiển từng LED
Khi PORTx = 0xFF, điều gì xảy ra với các chân đã được cấu hình làm đầu vào?
Các chân ở trạng thái HIGH
Các chân ở trạng thái LOW
Các chân bật điện trở kéo lên
Các chân không bị ảnh hưởng
Một cổng có thể đồng thời có cả chân đầu vào và đầu ra không?
Có
Không
Khi cấu hình LED trên PORTC, điều gì cần được thực hiện đầu tiên?
Ghi giá trị vào PORTC
Cấu hình DDRC làm đầu ra
Kích hoạt điện trở kéo lên
Gắn LED vào chân PORTC
Cấu hình DDRC làm đầu ra?
Kích hoạt điện trở kéo lên
Gắn LED vào chân PORTC
Khi sử dụng thanh ghi DDRx, giá trị nào được ghi để cấu hình một cổng làm đầu vào?
0x00
0xFF
0x01
0x80
Hàm loop() chạy bao nhiêu lần mỗi khi khởi động Arduino?
Một lần
Vô hạn lần
Hai lần
Không lần nào
Có đúng về mặt cú pháp khi viết hàm loop() trước hàm setup() khi viết chương trình Arduino không?
Có
Không
Lệnh digitalRead() có thể nhận dạng được tín hiệu điện áp tương tự (analog) hay không?
Có
Không
Nút RESET trên kit Arduino UNO có chức năng?
Tắt nguồn Arduino
Đưa Arduino về trạng thái ban đầu và khởi động lại chương trình
Xóa bộ nhớ của Arduino
Ngắt chương trình hiện tại
Lệnh analogRead() có thể dùng để thay thế cho lệnh digitalRead() không?
Có
Không
Hàm setup() chạy bao nhiêu lần mỗi khi khởi động Arduino?
Một lần
Hai lần
Vô hạn lần
Không lần nào
Lệnh analogRead() có bao nhiêu tham số?
Một tham số
Hai tham số
Không có tham số
Tùy thuộc vào ứng dụng
Độ phân giải khi đọc tín hiệu analog trên Arduino Uno là:
8 bit
10 bit
12 bit
16 bit
Có bao nhiêu mức điện áp được cấp ra chân Arduino khi dùng lệnh digitalWrite()?
1 mức
2 mức
10 mức
256 mức
Chương trình sau dùng để:
Gửi ký tự có mã ASCII là 40 qua cổng Serial.
Gửi số 40 dạng số nguyên qua cổng Serial.
In chuỗi ký tự "40" ra màn hình Serial
Gửi ký tự có mã ASCII là 40 qua cổng Serial.
Gửi ký tự có mã ASCII là 40 qua cổng Serial.
Gửi số 40 dạng số nguyên qua cổng Serial.
In chuỗi ký tự "40" ra màn hình Serial Monitor.
Lỗi cú pháp, chương trình không chạy được.
Đơn vị của thời gian trễ trong chương trình là:
ms
s
us
Lệnh pulseln() có tối đa bao nhiêu thông số?
1
2
3
Lệnh digitalRead() có bao nhiêu tham số?
1
2
Đầu ra của đoạn chương trình sau là:
Palindrome
Not a palindrome
Có bao nhiêu mức điện áp được cấp ra chân Arduino khi dùng lệnh digitalWrite()?
2 mức điện áp: HIGH(5V)
1 mức điện áp: LOW(0V)
Hai chế độ mà hàm pinMode() thiết lập cho một chân cụ thể là?
INPUT
OUTPUT
Linh kiện nào được hỗ trợ bởi thư viện Wire.h?
Màn hình LCD
EEPROM
Động cơ
Cảm biến
Module RTC
Tín hiệu đầu ra của chương trình sau có chu kỳ là: int pin = 10; void setup() { Serial.begin(9600); pinMode(pin, OUTPUT); } void loop() { digitalWrite(pin, HIGH); delay(10); digitalWrite(pin, LOW); delay(10); }
Tín hiệu HIGH kéo dài 10ms
Tín hiệu LOW kéo dài 10ms
Tổng thời gian của một chu kỳ là 20ms
Lệnh analogRead() có thể được dùng cho các chân digital?
Có
Không
