ARDUINO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Hướng dẫn điều khiển cảm biến ánh sáng trong Arduino

Trong bài viết này mình sẽ hướng dẫn các bạn cách điều khiển cảm biến ánh sáng (Light Sensor) trong Arduino.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Ví dụ chúng ta có thể áp dụng nó trong thực tế như sau: khi trời sáng thì đèn tắt, khi trời tối thì đèn bật. Dựa vào cảm biến ánh sáng thì ta có thể thực hiện điều này khá dễ dàng.

Các thiết bị cần thiết điều khiển cảm biến ánh sáng

Để điều khiển được cảm biến ánh sáng, chúng ta cần thêm một số thiết bị khác sau đây:

  • 1 x Arduino UNO.
  • 1 x Cap USB 2.0 loại A / B.
  • 1 x Cảm biến ánh sáng.
  • 1 x Điện trở 10k ohm.
  • 1 x Breadboard.
  • 3 x Dây đực đực.

Trên đây là một số thiết bị cần thêm để có thể điều khiển cảm biến ánh sáng. Bây giờ các bạn hãy xem sơ đồ chân của cảm biến ánh sáng dưới đây để hiểu rõ hơn.

Bài viết này được đăng tại [free tuts .net]

Sơ đồ chân của cảm biến ánh sáng trong Arduino

Một cảm biến anh sáng (điện trở quang) có hai chân. Vì nó là một loại điện trở nên chúng ta không cần phân biệt hai chân này.

arduino 01 png

Vậy làm thế nào để nó có thể hoạt động được?

Điện trở quang càng tiếp xúc nhiều ánh sáng thì điện trở của nó càng nhỏ. Do đó, bằng cách đo điện trở của photoresistor, chúng ta có thể biết được mức độ ánh sáng của ánh sáng xung quanh.

*Lưu ý: Giá trị của cảm biến ánh sáng chỉ phản ánh gần đúng cường độ ánh sáng. Nó không đại diện cho quang thông chính xác. Do đó nó chỉ nên sử dụng trong các ứng dụng không yêu cầu độ chính xác cao.

Sơ đồ mạch điện điều khiển cảm biến ánh sáng trong Arduino

Dưới đây là sơ đồ mạch điện để điều khiển cảm biến ánh sáng trong Arduino.

arduino 02 png

Giải thích sơ đồ:

  • Nối một chân của điện trở quang với chân A0 trên Arduino. Cũng là chân đó nhưng ta nối thêm điện trở rồi nối vào chân GND trên Arduino.
  • Nối chân còn lại vào chân 5V trên Arduino.

Chân A0 đến chân A5 của Arduino có thể hoạt động như đầu vào tương tự. Chân đầu vào tương tự chuyển đổi điện áp (giữa 0V và VCC) thành các giá trị nguyên (từ 0 đến 1023), được gọi là giá trị ADC.

Chúng ta có thể đọc giá trị ADC bằng cách sử dụng hàm analogRead(), sau đó ta có thể biết được mức độ ánh sáng một cách tương đối.

Hướng dẫn điều khiển cảm biến ánh sáng trong Arduino

Trong phần này mình sẽ thực hiện một chương trình để đọc giá trị ánh sáng hiện tại bằng cảm biến ánh sáng.

Chương trình sẽ đưa ra 5 trường hợp như sau: Tối (< 10), mờ (< 200), sáng nhẹ (< 500), sáng (800), rất sáng (>= 800) với các giá trị tương ứng.

void setup() {
  //khai báo cổng serial 9600
  Serial.begin(9600);
}

void loop() {
  //đọc giá trị đầu vào của chân analog A0 (giá trị từ 0 đến 1023)
  int analogValue = analogRead(A0);

  Serial.print("Analog đang đọc: ");
  Serial.print(analogValue);   // in giá trị analog ra cổng serial

  // chúng ta sẽ quy định một số điều kiện để thể hiện ánh sáng như sau
  if (analogValue < 10) {
    Serial.println(" - Dark");// nếu < 10 thì trời tối
  } else if (analogValue < 200) {
    Serial.println(" - Dim"); // nếu < 200 thì trời mờ
  } else if (analogValue < 500) {
    Serial.println(" - Light");// nếu < 500 thì trời sáng nhẹ
  } else if (analogValue < 800) {
    Serial.println(" - Bright");// nếu < 800 thì trời sáng
  } else {
    Serial.println(" - Very bright");// còn lại >= 800 thì trời sáng mạnh
  }
  delay(500);
}

Kết luận

Như vậy chúng ta đã cùng nhau tìm hiểu về cách điều khiển cảm biến ánh sáng trong Arduino. Hiện nay thì việc tự đồng hóa ngày càng được đặt lên hàng đầu, các bạn hãy tìm tòi khám phá dựa trên những thiết bị hữu ích này nhé. Ở bài tiếp theo mình sẽ hướng dẫn các bạn cách sử dụng màn hình LCD trong Arduino, các bạn chú ý theo dõi nhé !!!

với

Cùng chuyên mục:

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý chuỗi (string.h) trong C/C++

Các hàm xử lý chuỗi (string.h) trong C/C++

Thread Pools và Parallel Algorithms trong C++

Thread Pools và Parallel Algorithms trong C++

Tạo và quản lý các Multithreading trong C++

Tạo và quản lý các Multithreading trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Try, Catch, và Throw của Exception Handling trong C++

Try, Catch, và Throw của Exception Handling trong C++

Cách sử dụng Lambda Expressions trong C++

Cách sử dụng Lambda Expressions trong C++

Sử dụng weak_ptr trong C++

Sử dụng weak_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng unique_ptr trong C++

Sử dụng unique_ptr trong C++

Tổng quan về Smart Pointers trong C++

Tổng quan về Smart Pointers trong C++

Sử dụng Iterators trong STL của C++

Sử dụng Iterators trong STL của C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng trong List trong C++

[Iterator] Sử dụng trong List trong C++

[STL] Sử dụng Vector trong C++

[STL] Sử dụng Vector trong C++

Tổng quan về Iterators trong C++

Tổng quan về Iterators trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

Top