Tổng quan về giáo trình

Tài liệu "Hướng Dẫn Lý Thuyết và Thực Hành Điều Khiển Arduino" (hay "Tài liệu Lý thuyết + Thực hành Vi điều khiển Arduino") do ThS. Ngô Thanh Đông biên soạn tại Bình Dương năm 2023, là tài liệu giảng dạy và thực hành trong chương trình đào tạo kỹ thuật điện - điện tử, tự động hóa và cơ điện tử ở cấp độ đại học và cao đẳng. Về mặt vị trí chương trình đào tạo, tài liệu đóng vai trò là học liệu cơ sở chuyên ngành cho học phần Vi điều khiển, Kỹ thuật ghép nối thiết bị ngoại vi và Hệ thống nhúng ứng dụng.

Mục tiêu học tập (learning outcomes) được định lượng cụ thể qua từng đơn vị bài học:

  • Về kiến thức: Sinh viên trình bày được khái niệm, kiến trúc phần cứng vi điều khiển ATmega328 trên board Arduino Uno R3; hiểu rõ chức năng các khối ngoại vi (GPIO, PWM, ADC, UART, I2C, SPI) và nguyên lý hoạt động của các cảm biến, cơ cấu chấp hành.
  • Về kỹ năng: Cài đặt và sử dụng thành thạo môi trường lập trình Arduino IDE; thiết kế sơ đồ nối dây phần cứng chính xác; viết mã nguồn điều khiển theo thuật toán; xử lý tín hiệu ngoại vi và giao tiếp hệ thống.
  • Về thái độ: Rèn luyện tính tỉ mỉ, độ chính xác trong thao tác mạch điện tử, đảm bảo an toàn điện và quy chuẩn vệ sinh công nghiệp.

Cấu trúc giáo trình gồm hai phần: Phần lý thuyết và Phần thực hành (kéo dài 66 trang kèm danh mục tài liệu tham khảo). Tài liệu tiếp cận theo phương pháp học nhanh (fast-track tutorial): đi từ phân tích chi tiết cấu hình chân phần cứng, giải thích cú pháp hàm lập trình đến xây dựng các sơ đồ mạch ghép nối cụ thể đi kèm mã nguồn mẫu hoàn chỉnh.


Nội dung kiến thức cốt lõi

Các chương/chủ đề chính

Tài liệu được phân bổ thành các chủ đề nối tiếp nhau theo tiến trình sư phạm từ cơ bản đến chuyên sâu:

  1. Tổng quan phần cứng Arduino UNO R3 (Bài 1): Phân tích sơ đồ khối board Arduino Uno R3; khảo sát thông số vi điều khiển ATmega328 họ 8-bit (xung nhịp 16 MHz, điện áp hoạt động 5V DC, bộ nhớ Flash 32 KB với 0.5 KB bootloader, 2 KB SRAM, 1 KB EEPROM); chip chuyển đổi giao tiếp USB-to-Serial ATmega16U2; phân bố 14 chân Digital I/O (trong đó có 6 chân hỗ trợ điều chế độ rộng xung PWM), 6 ngõ vào Analog A0–A5 với bộ chuyển đổi ADC 10-bit; hệ thống cấp nguồn (cổng USB, jack nguồn ngoài 7–12V DC, chân 5V, 3.3V, Vin, GND); chân ngắt ngoài (chân 2, 3), cổng giao tiếp ICSP chuẩn SPI và hệ thống đèn LED chỉ thị trạng thái (ON, Tx, Rx, LED báo L tại chân 13).
  2. Cấu trúc chương trình và tập lệnh cơ bản (Bài 2): Khảo sát cấu trúc khung một bản phác thảo (sketch) trong Arduino IDE với hai hàm định chuẩn setup()loop(); chỉ thị tiền xử lý #define; các kiểu dữ liệu (int, float, unsigned long); các hàm xuất/nhập số cơ bản (pinMode(), digitalWrite(), digitalRead(), delay()); khối lệnh điều khiển cấu trúc rẽ nhánh (if-else, switch-case) và vòng lặp (for, while); xử lý tín hiệu tương tự bằng hàm analogRead() (thang đo 0–1023) và xuất tín hiệu băm xung qua hàm analogWrite() (thang điều chế duty cycle 0–255).
  3. Ghép nối cơ cấu đóng cắt và cảm biến môi trường (Bài 3):
    • Giao tiếp module Relay: Phân biệt module relay kích mức cao (transistor NPN) và kích mức thấp (transistor PNP); thông số tiếp điểm chịu tải (10A–250VAC, 10A–30VDC, 10A–125VAC, 10A–28VDC); quy chuẩn đấu nối chân COM, NO, NC.
    • Giao tiếp cảm biến nhiệt độ tương tự LM35: Tỷ lệ biến thiên điện áp tuyến tính 10 mV/°C, độ phân giải nhiệt độ phòng 1/4°C, công suất tiêu thụ 60 µA, công thức quy đổi điện áp sang nhiệt độ qua cổng ADC A0.
    • Cảm biến nhiệt độ - độ ẩm số DHT11: Tích hợp chuẩn giao tiếp dây tín hiệu đơn (Single-wire), đo dải độ ẩm 20–90% RH (sai số ±5%) và nhiệt độ 0–55°C (sai số ±2°C).
  4. Điều khiển truyền động động cơ DC và Động cơ bước:
    • Điều khiển động cơ DC: Ứng dụng kỹ thuật băm xung PWM để thay đổi điện áp trung bình đặt lên động cơ; ghép nối IC công suất cầu H đôi L298N (dải điện áp tải 5–35V, dòng điện đỉnh 2A/cầu, sụt áp nội xấp xỉ 2V); cấu hình các chân logic In1, In2, EnA và biến trở điều tốc để kiểm soát chiều quay và vận tốc.
    • Điều khiển động cơ bước lưỡng cực qua Driver vi bước A4988: Cấu hình 5 chế độ phân giải bước (Full step, 1/2, 1/4, 1/8, 1/16 microstep) bằng 3 chân logic MS1, MS2, MS3; phương thức điều khiển vị trí và vận tốc bằng xung qua hai chân STEPDIR; tụ lọc chống sốc điện áp 47–100 µF tại chân nguồn động cơ VMOT.
  5. Giao tiếp cảm biến quang học số và truyền thông không dây:
    • Cảm biến cường độ ánh sáng môi trường BH1750: Chuẩn truyền thông I2C (tần số SCL 400 kHz), dải đo 1–65535 lx, 3 chế độ phân giải (H-Resolution 0.5 lx, H-Resolution 1 lx, L-Resolution 4 lx); mạch hạ áp giao tiếp 3.3V–5V bằng IC đệm CD4050 hoặc điện trở 510 Ohm; cấu hình địa chỉ I2C 0x23 hoặc 0x5C qua chân ADDR; tích hợp thư viện Wire.hBH1750FVI.h.
    • Module truyền thông Bluetooth HC-05 / HC-06: Chuẩn giao tiếp nối tiếp UART (chân Rx/Tx cấu hình tốc độ baud 9600); cơ chế nhận mã lệnh điều khiển từ ứng dụng Android DroiDuino để đóng ngắt các chân ngõ ra Digital (chân 9, 10, 11, 12).
  6. Mở rộng ngoại vi nâng cao: Ghép nối IC thời gian thực DS1307 và module mạng viễn thông SIM900A phục vụ truyền thông dữ liệu từ xa.

Kiến thức nền tảng được xây dựng

Giáo trình cung cấp các nguyên lý kỹ thuật điện tử - lập trình:

  • Nguyên lý chuyển đổi tín hiệu Tương tự - Số (ADC): Cách thức lấy mẫu điện áp ngõ vào tương tự từ cảm biến (0–5V) sang giá trị số nguyên 10-bit (0–1023), kỹ thuật sử dụng điện trở pull-down (10 kΩ) hoặc tụ điện chống trôi áp ngõ vào chưa kết nối.
  • Nguyên lý điều chế độ rộng xung (PWM): Điều khiển công suất trung bình cung cấp cho tải (đèn LED, động cơ) thông qua việc điều chỉnh chu kỳ xung (duty cycle 8-bit từ 0 đến 255) mà không làm thay đổi tần số cơ bản.
  • Nguyên lý chuyển mạch công suất và mạch cầu H: Kỹ thuật chuyển tiếp đóng ngắt dòng điện một chiều bằng transistor BJT, MOSFET và cấu trúc cầu H bốn khóa bán dẫn nhằm đảo chiều dòng điện qua cuộn dây động cơ DC.
  • Chuẩn giao tiếp vi điều khiển: Nền tảng cấu hình bus nối tiếp không đồng bộ UART (chuẩn TTL), bus nối tiếp đồng bộ 2 dây I2C (SCL/SDA kèm địa chỉ slave) và giao thức SPI (thông qua chân ICSP).
[Khối Xử Lý Trung Tâm: ATmega328 / Arduino Uno R3]
       │
       ├── ADC (A0-A5) ──────────> Cảm biến Tương tự: LM35, Biến trở
       ├── PWM (Pin 3,5,6,9,10,11) > Driver Công suất: L298N (DC Motor), A4988 (Stepper)
       ├── GPIO Số (D0-D13) ────> Cơ cấu Đóng/Cắt: Module Relay (NPN/PNP), LED
       ├── Bus I2C (SDA/SCL) ────> Cảm biến Số: BH1750 (Ambient Light), RTC DS1307
       ├── UART (Tx/Rx D0/D1) ───> Mở rộng Truyền thông: Bluetooth HC-05/06, Module SIM900A
       └── Single-Wire GPIO ─────> Cảm biến Số: DHT11 (Nhiệt độ & Độ ẩm)

Kỹ năng phát triển

Thông qua nội dung tài liệu, người học hình thành các năng lực kỹ thuật:

  • Kỹ năng đo đạc và thiết kế mạch: Lựa chọn linh kiện trung gian phù hợp (điện trở hạn dòng, điện trở kéo, IC đệm logic chuyển đổi mức điện áp 5V–3.3V CD4050, tụ lọc nguồn phân cực chống sốc áp).
  • Kỹ năng lập trình nhúng C/C++: Viết mã lệnh điều khiển ngắt, tạo xung thời gian thực bằng delayMicroseconds(), xử lý chuỗi và ký tự nhận từ bộ đệm UART (Serial.read(), Serial.available()), tính toán ánh xạ giá trị thông qua hàm map().
  • Kỹ năng gỡ lỗi và phân tích hệ thống (Debugging): Sử dụng cổng Serial Monitor để theo dõi biến trạng thái, phân lập lỗi phần cứng phần mềm, xử lý hiện tượng dội phím (debounce button) trong lập trình điều khiển nút nhấn.

Phương pháp giảng dạy và học tập

Giáo trình áp dụng phương pháp sư phạm tiếp cận theo vấn đề kết hợp học tập qua thực nghiệm (Hands-on Learning):

  • Cách thức triển khai bài học: Mỗi bài học đều mở đầu bằng bảng mục tiêu học tập rõ ràng, tiếp theo là phần giới thiệu lý thuyết đặc tính kỹ thuật của module, phân tích sơ đồ chân cắm, cung cấp sơ đồ mạch ghép nối nguyên lý và kết thúc bằng đoạn mã nguồn mẫu kèm chú thích trực tiếp trên từng dòng lệnh.
  • Bài tập và tình huống thực hành: Các bài thực hành được thiết kế mang tính kế thừa logic:
    • Từ việc làm nhấp nháy 1 đèn LED đơn ở chân 13, mở rộng ra điều khiển 10 LED tuần tự bằng vòng lặp for.
    • Từ bài toán đọc biến trở Analog chuyển tiếp sang ứng dụng điều chế PWM điều khiển độ sáng bóng đèn hoặc tốc độ động cơ DC.
    • Tích hợp các module riêng lẻ: Ghép nối tín hiệu giải mã từ Bluetooth HC-05 với Module Relay để xây dựng hệ thống điều khiển thiết bị điện lưới 220VAC từ xa qua điện thoại thông minh Android.
  • Phương pháp tự học và tra cứu: Tác giả hướng dẫn cụ thể phương pháp cài đặt thư viện từ nguồn mở (GitHub), tự tra cứu sơ đồ nguyên lý trên trang chủ Arduino, và tự kiểm tra phân loại linh kiện (nhận biết relay kích mức cao/thấp dựa trên ký hiệu transistor NPN/PNP hoặc thử nghiệm cấp nguồn trực tiếp).

Điểm nổi bật và cập nhật

  • Cập nhật nền tảng phần cứng thông dụng: Tài liệu tập trung phân tích phiên bản Arduino Uno R3 trang bị chip nạp ATmega16U2 (thay thế dòng chip nạp đời cũ FTDI/CH340 trên các bản trước), đồng thời chỉ rõ vai trò của chân tham chiếu IOREF trong việc tự động điều chỉnh mức điện áp làm việc giữa vi điều khiển và các module mở rộng.
  • Tích hợp các module cảm biến và driver hiện đại: Cập nhật các module thông dụng trong công nghiệp và dân dụng như cảm biến cường độ ánh sáng số BH1750 (loại bỏ nhược điểm phi tuyến của quang trở LDR truyền thống), Driver động cơ bước A4988 có tích hợp bộ dịch bước và mạch bảo vệ quá nhiệt/quá dòng.
  • Giao tiếp thiết bị di động: Đưa ứng dụng Android DroiDuino vào bài học giao tiếp không dây qua Bluetooth HC-05/HC-06, gắn việc lập trình nhúng với giao diện điều khiển thực tế.

Đối tượng sử dụng giáo trình

  1. Sinh viên đại học, cao đẳng: Dành cho sinh viên từ năm thứ nhất đến năm thứ ba thuộc các khối ngành Kỹ thuật Điện - Điện tử, Tự động hóa, Cơ điện tử, Kỹ thuật Máy tính và Công nghệ Thông tin.
  2. Điều kiện tiên quyết (Prerequisites): Người học cần có kiến thức cơ bản về Mạch điện (định luật Ohm, dòng điện một chiều/xoay chiều, tiếp điểm đóng ngắt), linh kiện bán dẫn (Diode, BJT, MOSFET) và cú pháp lập trình căn bản (ngôn ngữ C/C++).
  3. Giảng viên và cán bộ hướng dẫn: Dùng làm đề cương bài giảng lý thuyết và giáo án hướng dẫn thí nghiệm, thực hành xưởng vi điều khiển trong các học kỳ chuyên ngành.
  4. Kỹ sư và người nghiên cứu tự do: Làm tài liệu tra cứu nhanh về sơ đồ chân, cấu hình thanh ghi, lệnh giao tiếp và thông số vận hành của các linh kiện/module bán dẫn phổ biến.

Câu hỏi thường gặp

1. Giáo trình này phù hợp với ai?

Tài liệu phù hợp cho sinh viên ngành kỹ thuật, học viên các lớp kỹ năng nghề và kỹ sư muốn tiếp cận nhanh với hệ thống nhúng mã nguồn mở trên nền tảng vi điều khiển họ 8-bit AVR.

2. Cần kiến thức nền nào để học?

Người học cần nắm được các nguyên lý điện tử cơ bản (khái niệm điện áp, dòng điện, công suất, cách hoạt động của transistor) và tư duy lập trình C cơ bản (biến số, hàm, cấu trúc điều kiện if, vòng lặp for, while).

3. Điểm khác biệt so với các tài liệu vi điều khiển truyền thống?

Tài liệu lược bỏ các phần giải thích tập lệnh hợp ngữ (Assembly) phức tạp của vi điều khiển, tập trung trực tiếp vào việc khai thác thư viện hàm API chuẩn của Arduino IDE, phân tích cấu hình thực tế của các module ngoại vi sẵn có và giải quyết các bài toán ghép nối hệ thống tức thì.

4. Làm sao để tự học hiệu quả bằng tài liệu này?

Người học nên trang bị một bộ kit thực hành Arduino Uno R3 kèm các module (Relay, LM35, DHT11, BH1750, L298N, A4988, HC-05), tiến hành lắp mạch theo đúng sơ đồ chỉ dẫn, tự nạp mã nguồn mẫu vào phần mềm Arduino IDE, sau đó hiệu chỉnh các tham số thời gian, ngưỡng biến đo để quan sát trực quan sự thay đổi trạng thái của mạch.

5. Có tài liệu bổ trợ nào kèm theo?

Tài liệu cung cấp liên kết tới các kho lưu trữ mã nguồn mở trên GitHub (như thư viện BH1750FVI_Master, thư viện của tác giả CLAWS), website chính thức của Arduino và danh mục 66 trang tài liệu tham khảo kỹ thuật chuyên sâu.


Kết luận

Tài liệu "Hướng Dẫn Lý Thuyết và Thực Hành Điều Khiển Arduino" của ThS. Ngô Thanh Đông là tài liệu chuẩn hóa về lý thuyết và thực nghiệm ghép nối vi điều khiển cơ sở. Với bố cục gồm 66 trang trình bày hệ thống từ thông số phần cứng board Uno R3, cú pháp xử lý I/O đến các mạch ghép nối cảm biến và cơ cấu chấp hành (L298N, A4988, BH1750, HC-05, SIM900A), tài liệu cung cấp lộ trình học tập logic, đáp ứng đầy đủ yêu cầu giảng dạy và thực hành trong các chương trình đào tạo kỹ thuật nhúng và tự động hóa.