Arduino Solar Tracker sử dụng cảm biến LDR & Động cơ Servo
Arduino Solar Tracker
Năng lượng mặt trời là một trong những ngành phát triển nhanh nhất trên thế giới; ngày nay hơn 65 GW năng lượng được sản xuất bằng năng lượng mặt trời. Vì nó là năng lượng tái tạo được và sạch nên nó là một nguồn điện tốt và gần như là vô hạn, đặc biệt là đối với các nước đang phát triển.
Trong dự án này, các bạn sẽ hiểu rõ hơn cách tạo một bộ theo dõi năng lượng mặt trời bằng Arduino Nano . Bộ theo dõi bảng năng lượng mặt trời được thiết kế để theo dõi chuyển động của mặt trời để cường độ ánh sáng tối đa chiếu vào tấm pin mặt trời, do đó tăng hiệu quả sử dụng điện. Sử dụng mạch theo dõi năng lượng mặt trời trong lĩnh vực sản xuất năng lượng sẽ tăng hiệu suất của nó lên gần 25%. Hệ thống này cũng có thể được triển khai thành công trong các dự án sử dụng năng lượng mặt trời khác như máy nước nóng và tua bin hơi nước.
Về cơ bản có hai loại công cụ theo dõi ánh nắng bằng Arduino. Một trong số chúng là bộ theo dõi mặt trời trục đơn và bộ còn lại là trục kép. Hệ thống theo dõi mặt trời trục đơn di chuyển bảng điều khiển năng lượng mặt trời từ đông sang tây trong một ngày để chỉ theo hướng mặt trời. Máy theo dõi năng lượng mặt trời trục kép sử dụng động cơ để di chuyển tấm pin mặt trời theo cả bốn hướng (Bắc-Nam & Đông-Tây).Từ Nam lên Bắc không phải là một cách khả thi , bởi vì sự chuyển động này chỉ bao phủ 20 độ trong nửa năm và trong nửa năm còn lại, nó di chuyển từ Bắc vào Nam và chúng ta có thể thiết lập điều này theo cách thủ công trong một tuần. Vì theo dõi Đông-Tây quan trọng hơn, tôi sẽ giải thích thêm về bộ theo dõi mặt trời trục đơn.
Nguyên lý hoạt động của Arduino Solar Tracker
Trong dự án này, Arduino Nano được sử dụng, hoạt động như một đơn vị điều khiển. Hai LDR (Điện trở phụ thuộc ánh sáng) cũng được kết nối với các chân tương tự của Arduino. Một tấm năng lượng mặt trời giả được gắn song song với trục của động cơ servo và cả hai cảm biến được giữ trên tấm mặt trời giả như thể hiện trong hình bên dưới.
Sự sắp xếp được thực hiện theo cách sao cho chuyển động của mặt trời từ cảm biến 1 đến cảm biến 2, như thể hiện trong hình vẽ dưới đây.
Có ba điều kiện cần tuân theo:
Điều kiện 1:
Khi mặt trời ở phía bên trái thì ánh sáng trên cảm biến 1 cao do bóng của vật cản rơi vào cảm biến 2 nên tấm mặt trời chuyển động theo chiều kim đồng hồ.
Điều kiện 2:
Khi mặt trời ở phía bên phải thì ánh sáng trên cảm biến 2 cao do bóng của vật chắn rơi vào cảm biến 1 nên phim tấm mặt trời ngược chiều kim đồng hồ.
Điều kiện 3:
Khi mặt trời ở giữa thì ánh sáng trên cả hai cảm biến đều bằng nhau nên tấm sẽ không quay theo bất kỳ hướng nào.
Các thành phần được sử dụng
Mạch
Một PCB (Bảng mạch in) được thiết kế cho Arduino Solar Tracker này. Sử dụng breadboard hoặc Zero PCB cũng là những lựa chọn đơn giản hơn để tạo mạch theo dõi năng lượng mặt trời này. Để in PCB, hãy tham khảo thiết kế PCB được hiển thị bên dưới.
Trong mạch, hai cảm biến LDR (Điện trở phụ thuộc ánh sáng) được sử dụng để cảm nhận ánh sáng. Vì LDR là một cảm biến analog nên chúng được kết nối với các chân analog A0 và A1 của Arduino. Các cảm biến được mắc nối tiếp với điện trở 10k ohm.
Một động cơ servo cũng được kết nối với chân kỹ thuật số D10. D10 là chân PWM (điều chế độ rộng xung). Một công tắc tạm thời cũng được kết nối với chân kỹ thuật số D2, chủ yếu cho mục đích hiệu chuẩn. Khi công tắc được nhấn chân D2 sẽ đóng vai trò là tiếp đất (GND). Có thể sử dụng bộ chuyển đổi 12 volt hoặc pin 9 volt để cấp nguồn cho toàn bộ mạch này. Chân RAW trong Arduino Nano là chân nguồn.
Mã chương trình
Tải xuống chương trình
Chúng tôi đang sử dụng EEPROM và Servo Motor nên hai tệp tiêu đề “EEPROM.h” và “Servo.h” được sử dụng khi bắt đầu mã. Tiếp theo, một động cơ servo được định nghĩa bằng tên “myservo”. Hai số nguyên được xác định bằng tên sensor1 và sensor2. Công tắc hiệu chuẩn được kết nối với chân D2 để một số nguyên khác được xác định bằng "calswitch". Các số nguyên khác được xác định bởi các tên val1, val2, pos và error. Tất cả các trạng thái này được sử dụng cho các quy trình nội bộ.
Trong thiết lập void sensor1, sensor2 và calswitch được định nghĩa là đầu vào. Bây giờ servo được kích hoạt bởi chức năng “myservo.attach (10)”.
Trong phần void loop trước hết điều kiện “if” được sử dụng để hiệu chuẩn. Khi nhấn công tắc tạm thời, điều kiện “nếu” này trở thành đúng. Trong điều kiện này, động cơ sẽ ngừng hoạt động bởi chức năng “myservo.detach (10)”. Các giá trị tiếp theo của cảm biến được gán bằng số nguyên “val1” và “val2”. Theo giá trị của val1, val2 & error, trạng thái được lưu trong EEPROM bằng cách sử dụng hàm “EEPROM.write ()” và độ trễ 1 giây được sử dụng ở cuối vòng lặp này. Bây giờ quá trình hiệu chuẩn đã được thực hiện.
Trong vòng lặp khác “myservo.attach” được sử dụng để kích hoạt servo, val1 và val2 được đọc bằng cách sử dụng chức năng “analogRead”, sau khi trạng thái và lỗi đó được đọc từ EEPROM bằng cách sử dụng chức năng “EEPROM.read” sau khi lỗi đó được xóa khỏi val1 hoặc val2.
Ba điều kiện được mô tả trong quá trình làm việc của dự án, các điều kiện này được thực thi trong mã sử dụng điều kiện “nếu khác”, theo cách này, servo quay theo chiều kim đồng hồ hoặc ngược chiều kim đồng hồ theo ánh sáng mặt trời.
Chuyển động quay của tấm pin mặt trời không được giới hạn trong khoảng từ o đến 90 độ. Khi “pos” trở nên 90 độ thì điều kiện if được sử dụng để tạo 90 độ này và khái niệm tương tự được sử dụng khi nó trở nên nhỏ hơn 0 độ.
Hiệu chuẩn:
Dự án này có tính năng tự hiệu chuẩn nên nó không cần bất kỳ giá trị đặt trước hoặc biến trở nào để hiệu chuẩn; bạn chỉ cần nhấn một công tắc tạm thời. Để hiệu chuẩn, hãy nhấn và giữ công tắc được kết nối với chân D2 và xoay tấm pin mặt trời theo hướng mặt trời và thả ra sau 2-3 giây. Bằng cách sử dụng quy trình đơn giản này, Arduino đọc giá trị của các cảm biến và lưu trạng thái lỗi trong EEPROM. Hệ thống này cần hiệu chuẩn một lần.
Hotline: 0979 466 469