Bài 25. Bo mạch lập trình vi điều khiển
1. Khái niệm bo mạch lập trình vi điều khiển
Bo mạch lập trình vi điều khiển (microcontroller development board) là một bảng mạch in tích hợp vi điều khiển (MCU) cùng các thành phần hỗ trợ như nguồn, cổng giao tiếp, đèn LED, nút nhấn, và chân cắm mở rộng.
Người dùng có thể nạp chương trình vào bo mạch qua cổng USB để thực hiện các tác vụ điều khiển, thu thập dữ liệu hoặc truyền thông.
2. Các bo mạch phổ biến
Arduino Uno: Vi điều khiển ATmega328P, 14 chân digital, 6 chân analog, 5V, 16 MHz. Phù hợp cho người mới học.
Arduino Mega: ATmega2560, 54 chân digital, 16 chân analog, nhiều bộ nhớ và cổng giao tiếp hơn.
ESP32: Tích hợp Wi-Fi và Bluetooth, lõi kép 32-bit Xtensa LX6, GPIO đa năng, thích hợp cho IoT.
ESP8266: Wi-Fi SoC giá rẻ, thường dùng trong các dự án IoT cơ bản.
3. Cấu tạo chính của bo mạch
Vi điều khiển (MCU): Bộ xử lý trung tâm chứa CPU, RAM, ROM, và các ngoại vi tích hợp.
Cổng USB: Cấp nguồn và nạp chương trình.
Chân nguồn: 5V, 3.3V, GND cấp điện cho linh kiện ngoài.
Chân GPIO: Chân vào/ra số có thể cấu hình làm input hoặc output.
Chân analog: Đọc tín hiệu tương tự từ cảm biến.
Đèn LED tích hợp: Thường nối với chân số 13 (Arduino) để kiểm tra.
Nút Reset: Khởi động lại chương trình.
4. Môi trường lập trình Arduino IDE
Arduino IDE là môi trường phát triển tích hợp miễn phí, hỗ trợ ngôn ngữ C/C++ đơn giản hóa.
Giao diện gồm: trình soạn thảo mã nguồn, khu vực thông báo, thanh công cụ (Verify, Upload, Serial Monitor).
Cấu trúc chương trình: Hàm setup() chạy một lần khi khởi động, hàm loop() chạy lặp vô hạn.
Thư viện (Library) mở rộng chức năng cho cảm biến, màn hình, truyền thông,...
5. Kết nối và lập trình cơ bản
Kết nối: Cắm bo mạch với máy tính qua cáp USB, chọn đúng cổng COM và board trong Arduino IDE.
Viết chương trình: Sử dụng các hàm pinMode(), digitalWrite(), digitalRead(), analogRead(), delay().
Nạp chương trình: Nhấn nút Upload, IDE sẽ biên dịch và ghi vào bộ nhớ flash của MCU.
Serial Monitor: Công cụ giao tiếp giữa máy tính và bo mạch qua cổng serial để gỡ lỗi và hiển thị dữ liệu.
6. Ứng dụng thực tế
Tự động hóa gia đình (Smart Home): Điều khiển đèn, quạt, rèm cửa tự động qua cảm biến ánh sáng, nhiệt độ.
IoT (Internet of Things): ESP32/ESP8266 kết nối Wi-Fi gửi dữ liệu cảm biến lên cloud (Blynk, ThingSpeak).
Robot và xe tự hành: Sử dụng Arduino với động cơ DC, servo và cảm biến siêu âm.
Nông nghiệp thông minh: Hệ thống tưới tự động dùng cảm biến độ ẩm đất và module rơ-le.
Trạm thời tiết: Đo nhiệt độ, độ ẩm, áp suất khí quyển, hiển thị lên LCD hoặc gửi lên web.
7. Lưu ý an toàn và mở rộng
Điện áp: Không cấp quá 5V (hoặc 3.3V tùy bo) vào chân GPIO để tránh hỏng MCU.
Dòng điện: Mỗi chân GPIO chỉ cấp tối đa 20-40 mA, cần dùng transistor hoặc module rơ-le khi điều khiển tải lớn.
Chống nhiễu: Dùng tụ lọc nguồn, dây cáp ngắn, và tránh đặt bo mạch gần nguồn điện từ mạnh.
Mở rộng: Có thể kết hợp thêm shield (Arduino) hoặc module mở rộng để tăng chức năng.
Luyện tập trắc nghiệm
1 / 14Bo mạch lập trình vi điều khiển là: