Bài 7: Biến trở và analogRead

Mục tiêu bài học

  • Hiểu cách sử dụng chân analog để đọc tín hiệu cảm biến.
  • Sử dụng biến trở làm đầu vào điều chỉnh.
  • Hiển thị dữ liệu đọc được trên Serial Monitor.

Giới thiệu về analogRead()

Arduino có các chân analog input (A0 → A5) để đọc giá trị điện áp từ 0 đến 5V.

  • analogRead(pin) trả về giá trị từ 0 đến 1023.
  • Giá trị này tỷ lệ với điện áp (0V → 0, 5V → 1023).

Kết nối phần cứng

  • Biến trở 10kΩ có 3 chân: GND – VCC – Chân giữa (nối A0).
  • Hoặc thay bằng cảm biến ánh sáng quang trở (LDR).

Hướng dẫn nạp code

Bước 1: Kết nối Arduino Uno với máy tính

  • Sử dụng cáp USB (loại USB A to B, giống cáp máy in).

  • Cắm một đầu vào Arduino Uno, đầu còn lại vào cổng USB của máy tính.

Bước 2: Cài đặt phần mềm Arduino IDE

Bước 3: Mở Arduino IDE và thiết lập cấu hình

  1. Mở Arduino IDE.

  2. Vào menu Tools (Công cụ)Board (Bo mạch) → chọn Arduino Uno.

  3. Vào ToolsPort → chọn đúng cổng COM (thường là COM3, COM4,... tùy máy).

    Nếu không thấy cổng COM, hãy kiểm tra driver USB hoặc cài CH340 Driver nếu Arduino dùng chip CH340.

Bước 4: Cài đặt phần mềm Arduino IDE

  • Nhấn nút Upload (mũi tên →) trên thanh công cụ.

  • Quan sát thanh trạng thái, khi hiện "Done uploading" nghĩa là nạp thành công.

Code ví dụ


void setup() {
  Serial.begin(9600);  // Bắt đầu giao tiếp Serial
}

void loop() {
  int value = analogRead(A0);  // Đọc giá trị từ chân A0
  Serial.print("Giá trị biến trở: ");
  Serial.println(value);       // In ra màn hình Serial Monitor
  delay(500);
}
  

Quan sát dữ liệu

  • Mở Tools > Serial Monitor (hoặc nhấn Ctrl + Shift + M).
  • Chọn tốc độ 9600 baud.
  • Xoay biến trở để thấy giá trị thay đổi từ 0 đến 1023.
Giá trị hiện tại: 512

Serial Monitor:

Các hàm sử dụng

Hàm Chức năng
analogRead(pin) Đọc giá trị analog từ 0 đến 1023 (tương ứng 0–5V).
Serial.begin(9600) Khởi động truyền dữ liệu qua cổng Serial.
Serial.print(), Serial.println() In dữ liệu lên cửa sổ Serial Monitor.
delay(ms) Tạo khoảng nghỉ giữa các lần đọc.

Bài tập thêm

  • Dùng giá trị biến trở để điều khiển độ sáng LED bằng analogWrite().
  • Hiển thị giá trị điện áp (chuyển từ 0–1023 thành 0–5.00V).
  • Thêm biểu tượng biểu đồ đơn giản bằng ký tự trong Serial.

Nhận xét

Mới hơn Cũ hơn