Đây là một dự án tuyệt vời và rất hữu ích vì nó ngăn ngừa sự lãng phí điện năng.
Dự án này tự động bật đèn đường vào buổi tối và tắt vào buổi sáng. Nó cũng kiểm soát cường độ ánh sáng. Cường độ ánh sáng được điều chỉnh tự động theo thời gian và lưu lượng. Lượng xe rất thấp sau 12 giờ sáng. Ví dụ, cường độ ánh sáng yếu vào buổi tối và nó bắt đầu tăng cho đến 8 giờ tối Sau 8 giờ tối, ánh sáng phát sáng với cường độ tối đa và cường độ này sẽ không thay đổi. Nó phát sáng ở cường độ tối đa cho đến 12 giờ sáng và cường độ bắt đầu giảm sau 12 giờ sáng và đèn tắt hoàn toàn sau 6 giờ sáng. Cách tiếp cận này tiết kiệm năng lượng khoảng 30 phần trăm.
Trong mạch cũng sử dụng hai đèn LED, một đèn có màu Xanh lục và đèn LED màu đỏ. Đèn LED Đỏ cho biết buổi tối và Đèn LED xanh cho biết thời gian nửa đêm 12 giờ sáng. Arduino không được lập trình theo thời gian thực, vì chúng ta không thể quan sát những thay đổi trực tiếp. Do đó, thời gian trễ là rất thấp (1 giờ tương đương với 3 giây). Bạn có thể thay đổi thời gian trễ tùy theo nhu cầu sử dụng của mình. Bạn có thể thực hiện nhiều sửa đổi trong dự án tùy theo mục đích sử dụng của mình, bạn cũng có thể sử dụng RTC (Đồng hồ thời gian thực) trong dự án này.
Hoạt động
Trong mạch, một LDR (Điện trở phụ thuộc vào ánh sáng) được sử dụng, để phát hiện cường độ của đèn, khi cường độ ánh sáng đến dưới một giá trị cố định, đèn led sẽ BẬT. Nhưng ở thời điểm bắt đầu cường độ ánh sáng thấp vì thời gian là 5 giờ chiều. Bây giờ cường độ đang tăng dần theo thời gian và ánh sáng phát sáng với cường độ tối đa vào lúc 8 giờ tối.
Cường độ ánh sáng được điều khiển bằng cách sử dụng PWM (điều chế độ rộng xung). Arduino và các thiết bị kỹ thuật số khác không thể cho đầu ra tương tự; chúng chỉ có thể đưa ra đầu ra kỹ thuật số (Cao hoặc Thấp). Có nghĩa là chúng chỉ có thể TẮT và BẬT thiết bị, nhưng đôi khi chúng ta cần điện áp giữa Vcc và GND. PWM có thể đáp ứng yêu cầu này. PWM chỉ cần Bật và Tắt thiết bị đầu ra ở tần số cao. Bằng cách này, điện áp đầu ra trở thành dưới Vcc. Giá trị của điện áp đầu ra phụ thuộc vào thời gian “Bật” và thời gian “Tắt”, có thể được tính bằng hàm cho sẵn bên dưới
Các Arduino Nano có sáu chân PWM, tất cả đều 8 bit. Nói cách khác, chúng ta có thể thay đổi giá trị đầu ra từ 0 thành 255 trong đó 0 là thấp và 255 là Cao.
Hai đèn LED cũng được sử dụng trên mạch, chúng cho biết thời gian, đèn LED ĐỎ bật khi LDR vượt qua giá trị ngưỡng, trong trường hợp của tôi, tôi giả sử thời gian là 5 giờ chiều, lúc này đèn đường (đèn LED nguồn) của chúng tôi cũng bật nhưng cường độ chậm. Cường độ đang tăng dần và sẽ hoạt động với cường độ tối đa vào 8 giờ tối. Bây giờ cường độ không thay đổi cho đến 12 giờ sáng.
Sau 12 giờ sáng, đèn LED xanh lục được bật và cường độ của đèn LED nguồn trở nên thấp. Cường độ này không thay đổi cho đến 4 giờ sáng. Sau 4 giờ sáng, cường độ sáng bắt đầu giảm dần. Ngoài ra, nó sẽ tắt hoàn toàn lúc 6 giờ sáng.
Các thành phần
Các thành phần |
Thông số kỹ thuật |
Định lượng |
Arduino |
Nano |
1 |
Nguồn năng lượng |
Bộ chuyển đổi DC 12 volt |
1 |
LDR (Điện trở phụ thuộc vào ánh sáng) |
1 |
|
Đèn LED |
Xanh đỏ |
2 |
Đèn LED nguồn |
12 Volt |
1 |
Bóng bán dẫn |
Công nguyên 547 |
1 |
Điện trở |
330 Ohm |
2 |
Điện trở |
10 nghìn |
1 |
Điện trở |
1 nghìn |
1 |
Diode |
1N4007 / 1N4004 |
1 |
Mạch
Mạch rất đơn giản, bạn có thể làm mạch này trên breaboard hoặc ZERO PCB bằng mạch bên dưới.
Trong mạch Arduino Nano được sử dụng, chân PWM D9 được kết nối với chân cơ sở của bộ phát bóng bán dẫn (2N2222) chân được kết nối với GND. Chân Cathode của Power LED được kết nối với chân Collector của bóng bán dẫn và chân anode được kết nối với 12 volt, Một diode được kết nối song song với Power LED theo phân cực ngược.
LDR được kết nối với Vcc và GND thông qua điện trở 10k ohm, điểm giao nhau của LDR và Điện trở được kết nối với chân A5 của Arduino.
Hai đèn LED được kết nối với chân A4 và A3 của Arduino thông qua Điện trở 330 ohm. Mạch được cấp nguồn bởi bộ chuyển đổi 12 volt và dòng 12 volt cũng được kết nối với chân Vin của Arduino thông qua một Công tắc.
Code
Trong code, một số số nguyên được khai báo, số nguyên “cảm biến” được sử dụng cho chân LDR, LED1 và LED2 được sử dụng cho đèn LED “ĐỎ” và “XANH” và số nguyên “OUT” được khai báo cho đèn LED Nguồn. Số nguyên “del” được sử dụng để đưa ra độ trễ là 1 giờ (3 giây).
Trong cảm biến “void setup ()” được khai báo là INPUT và LED1, LED2 và OUT được khai báo là OUTPUT, sử dụng chức năng “pinMode”.
Trong “void loop ()” đầu tiên, “if condition” được sử dụng để so sánh giá trị của cảm biến LDR, khi giá trị “analogRead” của cảm biến LDR nhỏ hơn 50 thì “if condition” trở thành true.
Tiếp theo, “analogWrite (LED1,100)” bật đèn LED Nguồn ở cường độ thấp. LED1 cũng được bật bằng cách sử dụng “ghi kỹ thuật số (LED1, CAO)” và độ trễ được đưa ra cho thời gian “chậm”.
Sau đó, một số chức năng được sử dụng để thay đổi cường độ của đèn LED Nguồn sau mỗi giờ (độ trễ 3000ms). Lúc 12 giờ sáng, đèn LED2 (Đèn LED xanh lục) cũng được bật, ở phần cuối của mã LED1 và LED2 được tắt.
Hiệu chuẩn: hiệu chuẩn được sử dụng để bật đèn vào đúng thời điểm, trong dòng 20 thay đổi giá trị so với “analogRead (cảm biến)”, trong mã đã cho, nó là 50, bạn có thể đọc giá trị bằng cách sử dụng “AnalogReadSerial”
*CODE
int sensor = A5;
int LED1 = A4;
int LED2 = A3;
int OUT = 9;
int del = 3000;
void setup() {
pinMode(sensor, INPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(OUT, OUTPUT);
}
void loop() {
if (analogRead(sensor)<50){
analogWrite(OUT, 100); // 5:00 PM
digitalWrite(LED1, HIGH);
delay(del);
analogWrite(OUT, 150); // 6:00PM
delay(del);
analogWrite(OUT, 200); // 7:00 PM
delay(del);
analogWrite(OUT, 255); // 8:00 PM
delay(del);
analogWrite(OUT, 255); // 9:00 PM
delay(del);
analogWrite(OUT, 255); // 10:00 PM
delay(del);
analogWrite(OUT, 255); // 11:00 PM
delay(del);
analogWrite(OUT, 200); // 12:00 AM
digitalWrite(LED2, HIGH);
delay(del);
analogWrite(OUT, 200); // 1:00 AM
delay(del);
analogWrite(OUT, 150); // 2:00 AM
delay(del);
analogWrite(OUT, 150); // 3:00 AM
delay(del);
analogWrite(OUT, 100); // 4:00 AM
delay(del);
analogWrite(OUT, 100); // 5:00 AM
delay(del);
analogWrite(OUT, 0);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
}
}
Hotline: 0979 466 469