Nguyên tắc hoạt động cảm biến ánh sáng và cách đọc dữ liệu từ quang trở

Nhắc đến quang trở, chúng ta nghĩ ngay đến một vật liệu điện tử phổ biến được sử dụng trong mạch cảm biến ánh sáng. Quang trở có thể được hiểu dễ dàng là một loại điện trở có giá trị điện trở thay đổi theo cường độ ánh sáng. Khi đặt trong môi trường có ít ánh sáng, bóng râm hoặc tối, giá trị điện trở của quang trở tăng cao. Trái lại, trong môi trường nắng hoặc có ánh sáng, giá trị điện trở sẽ giảm. Bài viết này sẽ hướng dẫn bạn xây dựng một cảm biến ánh sáng sử dụng quang trở và nguyên lý hoạt động thú vị của nó!

Giới thiệu và thông tin quan trọng

Quang trở là một loại vật liệu điện tử phổ biến trong mạch cảm biến ánh sáng. Cùng tìm hiểu cách xây dựng cảm biến ánh sáng sử dụng quang trở và nguyên lý hoạt động của nó.

Cách xây dựng cảm biến ánh sáng

Dưới đây là danh sách các linh kiện cần thiết để xây dựng cảm biến ánh sáng:

  • Arduino Uno
  • Một điện trở 560 Ohm (hoặc 220 Ohm hoặc 1kOhm)
  • Một đèn LED siêu sáng
  • Một biến trở 10K hoặc 1K
  • Breadboard
  • Dây cắm breadboard
  • Một điện trở 10 kOhm
  • Một tụ điện 100nF
  • Một chai nước ngọt (tự thưởng cho bản thân)
  • Quang trở

Thực hiện

Như đã giới thiệu ở trên, quang trở có thể điều chỉnh giá trị điện trở dựa trên cường độ ánh sáng. Vậy làm thế nào để đọc tín hiệu từ quang trở? Một phương pháp đơn giản là sử dụng phương pháp đọc hiệu điện thế từ cầu phân áp. Để biết thêm về cầu phân áp, bạn có thể tra cứu chi tiết (gợi ý: hãy coi quang trở là điện trở R1, kết nối đầu vào của mỗi chân Analog trên Arduino với một điện trở và xem đó như là điện trở R2 = 10k). Dưới đây là cách mắc linh kiện:

Cách mắc linh kiện

Sau khi mắc linh kiện, bạn hãy tải mã code sau lên Arduino và quan sát giá trị của quang trở. Để thấy sự thay đổi của quang trở, hãy thay đổi độ sáng trong môi trường xung quanh (chẳng hạn, bạn có thể che ánh sáng trực tiếp vào quang trở bằng bàn tay):

int quangtro = A5; // Thiết đặt chân analog đọc quang trở

void setup() {
  // Khởi tạo Serial 9600
  Serial.begin(9600);
}

void loop() {
  int giatriQuangtro = analogRead(quangtro); // Đọc giá trị quang trở
  Serial.println(giatriQuangtro); // Xuất giá trị ra Serial Monitor
}

Bây giờ, bạn có thể quan sát rằng khi bạn gần tay vào quang trở (giảm cường độ ánh sáng chiếu vào), giá trị hiệu điện thế giảm, và giá trị đọc được khoảng vài trăm. Tiếp theo, chúng ta sẽ sử dụng biến trở để xây dựng một ngưỡng (có thể thay đổi) và khi giá trị của quang trở nhỏ hơn ngưỡng này, đèn sẽ sáng; ngược lại, đèn sẽ tắt. Hãy thực hiện theo hướng dẫn bên dưới:

Cách mắc linh kiện

Tải mã code sau lên Arduino và điều chỉnh biến trở để kiểm tra sự thay đổi của đèn LED:

int quangtro = A5; // Thiết đặt chân analog đọc quang trở
int bientro = A4; // Thiết đặt chân analog đọc biến trở
int led = 2; // Thiết đặt chân digital cho đèn LED

void setup() {
  // Khởi tạo Serial 9600
  Serial.begin(9600);

  // Thiết lập chế độ OUTPUT cho pin LED
  pinMode(led, OUTPUT);
}

void loop() {
  int giatriQuangtro = analogRead(quangtro); // Đọc giá trị quang trở
  int giatriBientro = analogRead(bientro); // Đọc giá trị biến trở

  // Nếu giá trị quang trở <= giá trị biến trở thì bật đèn
  if (giatriQuangtro <= giatriBientro) {
    digitalWrite(led, HIGH);
  } else {
    digitalWrite(led, LOW);
  }

  // Xuất giá trị ra Serial Monitor
  Serial.print("Quang trở ");
  Serial.print(giatriQuangtro);
  Serial.print(", biến trở ");
  Serial.print(giatriBientro);
  Serial.print(" => ");
  Serial.println((giatriQuangtro <= giatriBientro) ? "Sáng" : "Tắt");
}

Thử thực hiện như trong video để kiểm tra kết quả.

Kết luận

Hãy thử lắp mạch và áp dụng cảm biến ánh sáng trên xe dò đường để xem kết quả. Hãy cùng đón đọc bài viết về xe dò đường bằng cảm biến ánh sáng trong thời gian tới!

FEATURED TOPIC

hihi