"Hãy là một tia sáng rực rỡ, tắt đèn cho đến khi trời tối!" đôi khi chúng ta quên tắt đèn gây lãng phí điện và chắc hẳn bạn cũng đã từng thấy đèn đường được bật vào ban ngày. Chúng tôi đã xây dựng một số mạch trên Máy dò tối trong đó đèn tự động tắt nếu bên ngoài sáng và BẬT nếu bên ngoài tối. Nhưng lần này, trong mạch này chúng ta không chỉ Bật và Tắt đèn dựa trên điều kiện ánh sáng mà còn thay đổi cường độ ánh sáng tùy theo điều kiện ánh sáng bên ngoài. Ở đây chúng tôi đã sử dụng khái niệm LDR và PWM với Arduino để tự động giảm hoặc tăng độ sáng của đèn LED Nguồn 1 watt.
Về cơ bản, PWM đề cập đến Điều chế độ rộng xung, tín hiệu đầu ra thông qua chân PWM sẽ là tín hiệu tương tự và được thu nhận dưới dạng tín hiệu số từ Arduino. Nó sử dụng chu kỳ nhiệm vụ của sóng kỹ thuật số để tạo ra giá trị tương tự tuần tự cho tín hiệu. Và, tín hiệu đó còn được sử dụng để điều khiển độ sáng của đèn LED Nguồn.
Vật liệu cần thiết
- Arduino UNO
- LDR
- Điện trở (510, 100k ohm)
- Tụ điện (0,1uF)
- Transistor 2N2222
- Đèn LED công suất 1 watt
- Kết nối dây
- Breadboard
Sơ đồ mạch
Mã và giải thích
Mã Arduino hoàn chỉnh cho bộ điều chỉnh độ sáng LED tự động được đưa ra ở cuối.
Trong đoạn mã dưới đây, chúng tôi đang xác định chân PWM và các biến sẽ được sử dụng trong mã.
int pwmPin = 2; // gán chân 12 cho biến pwm int LDR = A0; // gán đầu vào tương tự A0 cho biến pot int c1 = 0; // khai báo biến c1 int c2 = 0; // khai báo biến c2
Bây giờ, trong vòng lặp, đầu tiên chúng ta đọc giá trị bằng lệnh “analogRead (LDR)” sau đó lưu đầu vào tương tự vào một biến có tên là “value” . Bằng cách thực hiện một số phép tính toán học, chúng tôi đang tạo ra tín hiệu PWM. Ở đây, chúng tôi đang kiểm soát cường độ ánh sáng chỉ bằng PWM nếu giá trị tương tự nhỏ hơn 500 và nếu lớn hơn 500, chúng tôi tắt hoàn toàn đèn.
giá trị int = analogRead (LDR); Serial.println (giá trị); c1 = giá trị; c2 = 500-c1; // trừ c2 cho 1000 ans lưu kết quả trong c1 if (value <500) { digitalWrite (pwmPin, HIGH); delayMicroseconds (c2); digitalWrite (pwmPin, LOW); delayMicroseconds (c1); } if (value> 500) { digitalWrite (2, LOW); } }
Bạn có thể tìm hiểu thêm về PWM trong Arduino từ đây.
Cách nó tự động kiểm soát cường độ ánh sáng:
Theo sơ đồ mạch, chúng tôi đã làm một mạch phân áp sử dụng LDR và điện trở 100k. Đầu ra của bộ chia điện áp được cấp tới chân analog của Arduino. Pin tương tự cảm nhận điện áp và cung cấp một số giá trị tương tự cho Arduino. Giá trị tương tự thay đổi theo điện trở của LDR. Vì vậy, nếu tối trên LDR, điện trở của nó sẽ tăng lên và do đó giá trị điện áp (giá trị tương tự) giảm. Do đó, giá trị tương tự thay đổi đầu ra PWM hoặc chu kỳ nhiệm vụ và chu kỳ nhiệm vụ tỷ lệ thuận với cường độ ánh sáng của đèn LED nguồn. Vì vậy, ánh sáng trên LDR sẽ tự động điều khiển cường độ của Power LED. Dưới đây là sơ đồ dòng điều này sẽ hoạt động như thế nào, dấu hiệu mũi tên hướng lên cho biết "đang tăng" và dấu hiệu mũi tên xuống cho biết "đang giảm".
Cường độ ánh sáng (trên LDR) ↓ - Điện trở ↑ - Điện áp tại chân analog ↓ - Chu kỳ hoạt động (PWM) ↑ - Độ sáng của đèn LED nguồn ↑
Nếu bên ngoài sáng hoàn toàn (khi giá trị tương tự tăng hơn 500), đèn LED nguồn sẽ tắt.
Đây là cách bạn có thể kiểm soát cường độ ánh sáng tự động bằng LDR.
Kiểm tra thêm tất cả các mạch liên quan đến LDR của chúng tôi tại đây.