Lập Trình Giao Tiếp Cảm Biến LDR Với Board Mạch Arduino - Góc Học IT

1. Đặc điểm của cảm biến LDR

Cảm biến LDR (Light Dependent Resistor) là một cảm biến ánh sáng dựa trên điện trở. Cảm biến LDR còn gọi là quang trở.

Cảm biến LDR

Cảm biến LDR nhận điện áp 5V để hoạt động. Tín hiệu ánh sáng được lấy ra từ LDR nằm trong khoảng 0-1023. Tín hiệu này là tín hiệu analog nên phải kết nối LDR với chân analog của Arduino (A0 – A5).

2. Thiết kế mạch giao tiếp với cảm biến LDR

Mạch giao tiếp LDR với Arduino gồm 1 board Arduino, 1 cảm biến LDR và 1 điện trở 10kΩ. Để hoạt động, cảm biến LDR phải được cấp nguồn ở 1 chân (LDR không phân biệt chân dương và chân âm). Chân còn lại nối với một chân analog của Arduino và có 1 điện trở 10kΩ nối vào chân này.

Sơ đồ mạch giao tiếp LDR với Arduino

Có thể sử dụng mạch giao tiếp giả lập trên Proteus.

Sơ đồ mạch Proteus giao tiếp LDR với Arduino

3. Chương trình bật tắt đèn tự động với cảm biến LDR

Sử dụng hàm analogRead() để lấy giá trị ánh sáng từ cảm biến LDR. Giá trị này nằm trong khoảng 0 – 1023. Dựa vào giá trị này mà điểu khiển đèn sáng tắt theo yêu cầu.#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); int ldr = A0;//chân analog kết nối LDR int led = 9; void setup() { lcd.begin(16, 2); pinMode(ldr, INPUT); pinMode(led, OUTPUT); } void loop() { int ldrValue = analogRead(ldr);//lấy giá trị độ sáng từ 0 đến 1023 lcd.setCursor(0, 0); lcd.print("LDR VALUE:"); lcd.print(ldrValue); if(ldrValue <= 200){ digitalWrite(led, HIGH); }else{ digitalWrite(led, LOW); } }

Kết quả

4. Bài tập

Bài tập 1: Thiết kế mạch gồm 1 Arduino kết nối với 1 LDR, 1 LCD. Cứ 1s thì sẽ in giá trị ánh sáng lên LCD 1 lần.

Bài tập 2: Thiết kế mạch quản lý đèn ở nhà, trời tối thì tự động bật đèn, trời sáng thì tự động tắt đèn (sinh viên dùng đèn led).

Bài tập 3: Thiết kế mạch gồm 1 Arduino, 1 LDR, 1 button điều khiển bật tắt cảm biến. Nếu công tác mở và cảm biến ánh sáng yếu thì mở đèn, ánh sáng mạnh thì tắt đèn. Nếu công tắc tắt thì đèn luôn mở.

  • Trait là gì? Cách sử dụng Trait trong PHP
  • Hàm lambda trong Python là gì?
  • Hàm uniqid() trong PHP
  • Chương trình tìm dãy số Fibonacci trong Java
  • Các biến superglobals trong PHP
5/5 - (1 bình chọn)Bài trước và bài sau trong môn học<< Lập trình giao tiếp cảm biến LM35 với board mạch ArduinoLập trình giao tiếp cảm biến DHT với board mạch Arduino >>

Từ khóa » Cảm Biến Quang Trở Trong Proteus