Đã được đăng vào 10/12/2020 @ 14:22
Đèn năng lượng mặt trời dùng Arduino
Đây là bộ đèn dùng năng lượng mặt trời để sạc pin
Sử dụng cảm biến ánh sáng phân biệt ngày – đêm, bật tắt bằng relay và lập trình bằng Arduino.
Các bạn có thể ứng dụng mạch này trong nhiều trường hợp khác.
Chức năng chính là tự động bật đèn khi trời tối, năng lượng cấp cho đèn từ Pin Lithium 18650.
Pin này được sạc thông qua pin năng lượng mặt trời vào ban ngày.
Xem thêm: Bật Tắt Đèn bằng cảm biến ánh sáng sử dụng Arduino
Trong trường hợp không muốn lập trình Arduino, các bạn có thể đọc bài này (Chạy hoàn toàn không dùng code):
Sơ lược về cảm biến ánh sáng quang trở (CDS)
Cảm biến ánh sáng quang trở thay đổi điện trở dựa vào cường độ ánh sáng chiếu vào
Cảm biến sử dụng Photoresistor nên cho độ nhạy cao, tín hiệu ổn định.
Ưu điểm
- Mạch thiết kế nhỏ gọn.
- Độ chính xác cao.
- Linh hoạt trong việc điều chỉnh độ nhạy của cảm biến (thông qua biến trở được tích hợp trên mạch).
- Lưu ý: Khi xoay biến trở theo chiều kim đồng hồ thì sẽ làm giảm cường độ nhận biết của cảm biến, tức là môi trường phải ít ánh sáng thì cảm biến mới đọc giá trị digitalRead() là 1.
- Để hiểu hơn về cách thức làm việc của hàm digitalRed() các bạn xem bài viết này nhé: Xem ngay.

Pin năng lượng mặt trời 6V
Tấm pin này sẽ cung cấp năng lượng để sạc cho pin Lithium 18650 vào ban ngày.
Rất dễ dàng tìm mua trên các trang thương mại điện tử.
Giá cả khoảng ~ 30-40k.

Khối mạch sạc Pin và nâng áp
Ở đây mình sử dụng 1 mạch sạc pin 3.7V và 1 mạch nâng áp 3.7V ->>> 5V.
Mục đích nâng áp lên để đủ điện áp cấp cho mạch Arduino và đèn.


Các linh kiện cần thiết cho dự án
- Arduino Nano
- Module cảm biến ánh sáng
- Module Relay 1 kênh (5VDC)
- Module sạc pin TP4056
- Module nâng áp 5v
- Tấm pin năng lượng mặt trời 6V – 1W
- Đèn LED 5V
- Diode 1N4007 (Lắp nối tiếp vào dây + của pin mặt trời như sơ đồ dưới)
- Pin Lithium 18650
Sơ đồ nguyên lý
Bình thường vào ban ngày đèn sẽ tắt
Pin được sạc bằng tấm năng lượng mặt trời.
Khi tối đến, mạch sử dụng năng lượng từ pin 18650.
Relay được Arduino điều khiển bật ON -> Đèn LED sáng!
CODE
#define LIGHT 7 // define pint 7 for sensor #define RELAY 4 // define pin 4 as for relay void setup() { // Light LDR Sensor Code Serial.begin(9600);// setup Serial Monitor to display information pinMode(LIGHT, INPUT_PULLUP);// define pin as Input sensor pinMode(RELAY, OUTPUT);// define pin as OUTPUT for relay } void loop() { // Light LDR Sensor Code int L =digitalRead(LIGHT);// read the sensor if(L == 1){ Serial.println(" light is ON"); digitalWrite(RELAY,HIGH);// turn the relay ON }else{ Serial.println(" === light is OFF"); digitalWrite(RELAY,LOW);// turn the relay OFF } delay(500); // Light LDR Sensor Code }
Giải thích Code
Như mọi khi, bước đầu tiên chúng ta đi vào khai báo chân cho từng thiết bị.
#define LIGHT 7 // define pint 7 for sensor #define RELAY 4 // define pin 4 as for relay
Tiếp theo, trong Vòng lặp loop() ta đặt biến L làm giá trị để đọc cảm biến.
Nếu cảm biến ánh sáng quang trở nhận được giá trị là mức 1.
Chú ý: Lúc này cảm biến ánh sáng sẽ nhận giá trị mức 1 khi đang ở môi trường ánh sáng thấp.
Thì lúc này rơ le sẽ đóng và làm đèn sáng và ngược lại.
void loop() { // Light LDR Sensor Code int L =digitalRead(LIGHT);// read the sensor if(L == 1){ Serial.println(" light is ON"); digitalWrite(RELAY,HIGH);// turn the relay ON }else{ Serial.println(" === light is OFF"); digitalWrite(RELAY,LOW);// turn the relay OFF } delay(500); // Light LDR Sensor Code }
Trả lời