Raspberry Pi Module Cảm Biến Ánh Sáng LDR

Module cảm biến ánh sáng LDR có thể xác định được lượng ánh sáng xung quanh. Nó có hai đầu ra: một đầu ra digital có thể ở mức thấp hoặc cao, và một đầu ra analog.

Hướng dẫn này chỉ bạn cách sử dụng Raspberry Pi và module cảm biến ánh sáng LDR để xác định lượng ánh sáng trong khu vực. Chúng ta sẽ thực hiện các bước sau:

ldr cảm biến ánh sáng module
image source: diyables.io

Sau này, bạn có thể thay đổi code để bật LED hoặc bóng đèn (sử dụng relay) khi phát hiện ánh sáng.

Nếu bạn muốn sử dụng cảm biến ánh sáng ở dạng thô, tôi khuyên bạn nên tìm hiểu hướng dẫn về Raspberry Pi - Cảm Biến Ánh Sáng.

Phần Cứng Cần Thiết

1×Raspberry Pi 5
1×Module Cảm Biến Ánh Sáng LDR
1×Dây Jumper
1×(Khuyến nghị) Screw Terminal Block Shield for Raspberry Pi
1×(Khuyến nghị) Raspberry Pi Prototyping Base Plate & Breadboard Kit
1×(Khuyến nghị) HDMI Touch Screen Monitor for Raspberry Pi

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về Module Cảm Biến Ánh Sáng LDR

Module cảm biến ánh sáng LDR có thể được sử dụng để xác định có ánh sáng hay không hoặc đo lường lượng ánh sáng có trong môi trường xung quanh. Nó có hai tùy chọn: một chân đầu ra digital và một chân đầu ra analog.

Sơ Đồ Chân

Module cảm biến ánh sáng LDR có bốn chân với các chức năng khác nhau:

  • Chân VCC: Kết nối với nguồn điện (từ 3.3V đến 5V).
  • Chân GND: Kết nối với đất (0V).
  • Chân DO: Đây là chân đầu ra digital. Nó ở mức HIGH khi tối và LOW khi sáng. Bạn có thể điều chỉnh ngưỡng giữa tối và sáng bằng biến trở tích hợp.
  • Chân AO: Đây là chân đầu ra analog. Giá trị đầu ra giảm khi ánh sáng sáng hơn và tăng khi ánh sáng tối hơn.
ldr cảm biến ánh sáng module sơ đồ chân
image source: diyables.io

Ngoài ra, module cảm biến ánh sáng LDR có hai đèn LED báo hiệu:

  • Đèn LED PWR-LED hiển thị trạng thái nguồn điện.
  • Đèn LED DO-LED hiển thị trạng thái ánh sáng trên chân DO. Nó sáng lên khi có ánh sáng và tắt khi tối.

Cách Thức Hoạt Động

Đối với chân DO:

  • Module cảm biến ánh sáng LDR có biến trở tích hợp cho phép bạn điều chỉnh độ nhạy hoặc ngưỡng phát hiện ánh sáng.
  • Khi cường độ ánh sáng xung quanh cao hơn ngưỡng đã đặt (được coi là sáng), chân đầu ra của cảm biến được đặt ở mức LOW, và đèn LED DO-LED sáng lên.
  • Khi cường độ ánh sáng xung quanh thấp hơn ngưỡng đã đặt (được coi là tối), chân đầu ra của cảm biến được đặt ở mức HIGH, và đèn LED DO-LED tắt.

Đối với chân AO:

  • Giá trị đọc từ chân AO giảm khi cường độ ánh sáng xung quanh tăng (được coi là sáng).
  • Giá trị đọc từ chân AO tăng khi cường độ ánh sáng xung quanh giảm (được coi là tối).

Điều quan trọng cần lưu ý là việc điều chỉnh biến trở không ảnh hưởng đến giá trị đọc từ chân AO.

Sơ Đồ Kết Nối

Vì module cảm biến ánh sáng có hai đầu ra, bạn có thể chọn sử dụng một hoặc cả hai, tùy thuộc vào nhu cầu của bạn.

  • Sơ đồ kết nối giữa Raspberry Pi và module cảm biến ánh sáng LDR.
Raspberry Pi ldr cảm biến ánh sáng module sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

LưU Ý:

  • Raspberry Pi không có chân đầu vào analog tích hợp, vì vậy chân AO có thể để trống. Để đọc giá trị analog từ module, cần có module ADC bên ngoài. Để biết thêm thông tin, tham khảo Cách sử dụng Raspberry Pi với module ADC

Code Raspberry Pi - Đọc giá trị từ chân DO

Các Bước Nhanh

  • Đảm bảo bạn đã cài đặt Raspbian hoặc hệ điều hành tương thích Raspberry Pi khác trên Pi của bạn.
  • Đảm bảo Raspberry Pi của bạn được kết nối với cùng mạng cục bộ với PC của bạn.
  • Đảm bảo Raspberry Pi của bạn được kết nối internet nếu bạn cần cài đặt một số thư viện.
  • Nếu đây là lần đầu tiên bạn sử dụng Raspberry Pi, hãy xem Raspberry Pi - Cài Đặt Phần Mềm
  • Kết nối PC của bạn với Raspberry Pi qua SSH bằng SSH client tích hợp trên Linux và macOS hoặc PuTTY trên Windows. Xem cách kết nối PC với Raspberry Pi qua SSH.
  • Đảm bảo bạn đã cài đặt thư viện RPi.GPIO. Nếu chưa, hãy cài đặt bằng lệnh sau:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Tạo file script Python ldr_module.py và thêm code sau:
# Mã Raspberry Pi này được phát triển bởi newbiely.vn # Mã Raspberry Pi này được cung cấp để sử dụng công khai, không có ràng buộc. # Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: # https://newbiely.vn/tutorials/raspberry-pi/raspberry-pi-ldr-module import RPi.GPIO as GPIO from time import sleep # Set the Raspberry Pi GPIO pin number connected to the DO pin of the ldr light sensor module DO_PIN = 7 # Set the GPIO mode and configure the ldr light sensor module pin as INPUT GPIO.setmode(GPIO.BCM) GPIO.setup(DO_PIN, GPIO.IN) try: while True: # Read the current state of the ldr light sensor module light_state = GPIO.input(DO_PIN) # Print whether the light is present or not if light_state == GPIO.LOW: print("The light is present!") else: print("The light is NOT present!") # Add a small delay to prevent continuous readings sleep(0.1) except KeyboardInterrupt: # Clean up GPIO settings when Ctrl+C is pressed GPIO.cleanup() print("\nExiting the program.")
  • Lưu file và chạy Python script bằng cách thực hiện lệnh sau trong terminal:
python3 ldr_module.py
  • Che và bỏ che module cảm biến ánh sáng LDR bằng tay hoặc vật gì đó
  • Xem kết quả trên Terminal.
PuTTY - Raspberry Pi
The light is present The light is present The light is NOT present The light is NOT present The light is NOT present The light is present The light is present The light is present

Script chạy trong vòng lặp vô hạn liên tục cho đến khi bạn nhấn Ctrl + C trong terminal.

Nếu bạn thấy trạng thái LED luôn bật hoặc tắt, ngay cả khi có ánh sáng, bạn có thể điều chỉnh biến trở. Việc điều chỉnh này cho phép bạn tinh chỉnh độ nhạy ánh sáng của cảm biến.

Ngoài ra, có thể thay đổi code để kích hoạt LED hoặc đèn khi phát hiện ánh sáng, hoặc thậm chí để cho phép quay servo motor. Thông tin chi tiết và hướng dẫn từng bước có thể tìm thấy trong các tutorial được cung cấp ở cuối hướng dẫn này.

Code Raspberry Pi - Phát Hiện Ánh Sáng

Hãy cùng thay đổi code trên để phát hiện sự thay đổi trạng thái ánh sáng.

Các Bước Nhanh

  • Tạo file script Python ldr_module.py và thêm code sau:
# Mã Raspberry Pi này được phát triển bởi newbiely.vn # Mã Raspberry Pi này được cung cấp để sử dụng công khai, không có ràng buộc. # Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: # https://newbiely.vn/tutorials/raspberry-pi/raspberry-pi-ldr-module import RPi.GPIO as GPIO from time import sleep # Set the Raspberry Pi GPIO pin number connected to the DO pin of the ldr light sensor module DO_PIN = 7 # Set the GPIO mode and configure the ldr light sensor module pin as INPUT GPIO.setmode(GPIO.BCM) GPIO.setup(DO_PIN, GPIO.IN) # Initialize the previous state variable with the current state prev_light_state = GPIO.input(DO_PIN) try: while True: # Read the current state of the ldr light sensor module light_state = GPIO.input(DO_PIN) # Check for a state change (LOW to HIGH or HIGH to LOW) if light_state != prev_light_state: if light_state == GPIO.LOW: print("Light detected!") else: print("Light is gone!") # Update the previous state variable prev_light_state = light_state # Add a small delay to prevent continuous readings sleep(0.1) except KeyboardInterrupt: # Clean up GPIO settings when Ctrl+C is pressed GPIO.cleanup() print("\nExiting the program.")
  • Lưu file và chạy Python script bằng cách thực hiện lệnh sau trong terminal:
python3 ldr_module.py
  • Che và bỏ che module cảm biến ánh sáng LDR bằng tay hoặc vật gì đó
  • Xem kết quả trên Terminal.
PuTTY - Raspberry Pi
Light detected! Light is gone!

Code Raspberry Pi - Đọc giá trị từ chân AO

Để đọc giá trị từ chân AO, bạn cần sử dụng Module ADC ADS1115 vì Raspberry Pi không có chân ADC nào. Xem cách sử dụng Module ADC ADS1115 với Raspberry Pi

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.