Thiết kế phần mềm

Một phần của tài liệu MÔ HÌNH TỰ ĐỘNG ĐIỀU KHIỂN PIN MẶT TRỜI (Trang 44 - 52)

3. Kiến thức chuyên môn:

4.4. Thiết kế phần mềm

Bắt đầu

Khởi tạo các thư viện Arduino Uno, servo

Có tín hiệu từ quang trở

S

Đ

Điều chỉnh góc quay Servo ( Tấm solar cell)

Nạp vào Ác quy

Kết thúc Tải xoay chiều

Bắt đầu chương trình ta cần phải khởi tạo các thư viện cho Arduino, Servo. Sau đó cảm biến ánh sáng quang trở hoạt động, dựa vào 4 quang trở để so sáng độ sáng giữa 4 hướng, nếu giá trị điện trở tại 4 quang trở khác nhau, arduino sẽ ra lệnh điều khiển servo thay đổi góc quay tấm pin đến khi giá trị điện trở tại 4 quang trở bằng nhau, tức là khi đó tấm pin solar đã quay đúng hướng sáng cần điều khiển.

Trong quá trình hoạt động, hướng sáng mặt trời không thay đổi thì giá trị điện trở tại 4 quang trở không thay đổi, vi điều khiển sẽ không điều khiển servo và khi đó tấm pin solar vẫn giữ nguyên phương hướng ban đầu.

4.4.2.Code điều khiển chương trình hướng kép pin mặt trời Arduno

#include <Servo.h>// include Servo library // 180 horizontal MAX

Servo horizontal; // horizontal servo

int servoh = 90; // 90; // stand horizontal servo int servohLimitHigh = 170;

int servohLimitLow = 5; // 65 degrees MAX

Servo vertical; // vertical servo

int servov = 45; // 90; // stand vertical servo int servovLimitHigh = 130;

int servovLimitLow = 5; // LDR pin connections // name = analogpin;

int ldrlt = 0; //LDR top left - BOTTOM LEFT <--- BDG int ldrrt = 1; //LDR top rigt - BOTTOM RIGHT

int ldrld = 2; //LDR down left - TOP LEFT int ldrrd = 3; //ldr down rigt - TOP RIGHT void setup()

// servo connections // name.attacht(pin); horizontal.attach(9); vertical.attach(10); horizontal.write(90); vertical.write(45); delay(3000); } void loop()

{ int lt = analogRead(ldrlt); // top left int rt = analogRead(ldrrt); // top right int ld = analogRead(ldrld); // down left int rd = analogRead(ldrrd); // down right

// int dtime = analogRead(4)/20; // read potentiometers // int tol = analogRead(5)/4;

int dtime = 10; int tol = 50;

int avt = (lt + rt) / 2; // average value top int avd = (ld + rd) / 2; // average value down int avl = (lt + ld) / 2; // average value left int avr = (rt + rd) / 2; // average value right

int dvert = avt - avd; // check the diffirence of up and down int dhoriz = avl - avr;// check the diffirence og left and rigt Serial.print(avt);

Serial.print(" "); Serial.print(avd); Serial.print(" "); Serial.print(avl);

Serial.print(" "); Serial.print(avr); Serial.print(" "); Serial.print(dtime); Serial.print(" "); Serial.print(tol); Serial.println(" ");

if (-1*tol > dvert || dvert > tol) // check if the diffirence is in the tolerance else change vertical angle

{ if (avt > avd) { servov = ++servov; delay(100); if (servov > servovLimitHigh) { servov = servovLimitHigh; } }

else if (avt < avd) { servov= --servov; delay(100); if (servov < servovLimitLow) { servov = servovLimitLow; } } vertical.write(servov); }

if (-1*tol > dhoriz || dhoriz > tol) // check if the diffirence is in the tolerance else change horizontal angle

{ if (avl > avr) { servoh = --servoh; delay(100); if (servoh < servohLimitLow) { servoh = servohLimitLow; } }

else if (avl < avr) {

servoh = ++servoh; delay(100); if (servoh > servohLimitHigh) { servoh = servohLimitHigh; } }

else if (avl = avr) { // nothing } horizontal.write(servoh); } delay(dtime); 4.2.3. Một số hình ảnh sản phẩm.

CHƯƠNG 4

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Sau khi hệ thống hoàn thiện và chạy thử nghiệm, đã đạt được một số kết quả sau: Ưu điểm:

- Hệ thống cảm biến phương hướng ánh sáng tới chính xác, điều khiển tấm pin mặt trời đúng theo hướng ánh sáng tới.

- Bộ phận sạc tự động sạc khi Ắc quy yếu.

- Inverter cho ra điện áp 220V AC ổn định, chạy được các thiết bị tải trong gia đình có cống suất vừa và nhỏ.

- Tín hiệu điện áp ra dạng sine wave Nhược điểm:

- Bộ phận Inverter công suất chưa cao, chỉ đáp ứng được các thiết bị tải nhẹ. - Tấm pin solar công suất nhỏ nên thời gian sạc cho bình Ắc quy khá lâu

Việt Nam vốn là một trong những vùng có cường độ bức xạ mặt trời tương đối cao trên thế giới. Hơn nữa, nước ta còn là một quốc gia đang phát triển, người dân nghèo còn nhiều, không phải ai cũng có khả năng sử dụng điện sinh hoạt với mức giá như hiện nay. Vì thế, năng lượng mặt trời được coi là một giải pháp hoàn toàn phù hợp nếu được ứng dụng rộng rãi trong đời sống hàng ngày. Sản phẩm góp phần vào giảm thiểu sự phụ thuộc của mỗi gia đình, nhà máy,…vào nguồn năng lượng điện quốc gia, hay các nguồn năng lượng không tái chế được. Đồng thời sản phẩm có thể được áp dụng vào học tập, thực hành, nghiên cứu và giảng dạy.

Với tình trạng và tốc độ sử dụng năng lượng hóa thạch hiện nay thì trong tương lai sẽ có nhiều hệ thống pin năng lượng mặt trời được đưa vào sử dụng không những ở Việt Nam mà trên toàn thế giới. Hệ thống Solar Tracker cần được nâng cấp về công suất sản sinh điện bằng cách mở rộng kích thước, mật độ các tế bào quang điện của tấm solar cell, đồng thời nâng cấp chất lượng hệ thống Inverter đảm bảo công suất cao, chuẩn Sin hơn. Bên cạnh đó nguồn năng lượng dự trữ Ắc quy cũng cần được phát triển để có thể lưu trữ năng lượng được nhiều hơn.

TÀI LIỆU THAM KHẢO

[1]. Kiều Xuân Thực, Vũ Thị Thu Hương và Vũ Trung Kiên, 2008. Vi điều khiển cấu

trúc lập trình và ứng dụng. Nhà xuất bản Giáo dục. Hà Nội. 199 trang.

[2]. Nguyễn Ngọc Cương, Nguyễn Đình Nghĩa, Đỗ Quốc Huy, Trần Nghi Phú và Phạm Thành Công, 2011. Giáo trình Ngôn ngữ lập trình C/C++. Nhà xuất bản Thông Tin Và Truyền Thông. Hà Nội. 191 trang.

[3]. Trần Thế San, Cơ sở nghiên cứu & sáng tạo robot, Nhà xuất bản Thống kê, 2003. [4]. http://www.arduino.cc/

Một phần của tài liệu MÔ HÌNH TỰ ĐỘNG ĐIỀU KHIỂN PIN MẶT TRỜI (Trang 44 - 52)

Tải bản đầy đủ (PDF)

(52 trang)