- Необходими компоненти за Arduino Solar Tracker:
- Как работи едноосевият соларен тракер?
- Как да изградим въртящ се слънчев панел с помощта на Arduino:
- Електрическа схема и обяснение:
- Едноосен слънчев тракер, използващ Arduino код:
В тази статия ще направим слънчев панел за проследяване на слънцето, използвайки Arduino, в който ще използваме два LDR (зависим от светлината резистор), за да усетим светлината и серво мотор за автоматично завъртане на слънчевия панел по посока на слънчевата светлина. Предимството на този проект е, че слънчевите панели винаги ще следват слънчевата светлина, винаги ще бъдат обърнати към слънцето, за да се зареждат през цялото време и могат да осигурят на захранването максимална мощност. Прототипът е много лесен за изграждане. По-долу ще намерите пълното описание на това как работи и как е направен прототипът.
Необходими компоненти за Arduino Solar Tracker:
Следват компонентите, които се изискват за изграждане на слънчева система за проследяване с помощта на Arduino, като повечето от компонентите трябва да са налични в местния магазин.
- Серво мотор (sg90)
- Слънчев панел
- Arduino Uno
- LDR's X 2 (светлозависим резистор)
- 10K резистори X 2
- Батерия (6 до 12V)
Как работи едноосевият соларен тракер?
В този проект LDR работят като светлинни детектори. Преди да влезем в подробности, ще трябва да разберем как работи LDR. LDR (Light Dependent Resistor), известен също като фоторезистор, е чувствителното към светлина устройство. Съпротивлението му намалява, когато светлината попадне върху него и затова той често се използва в схема на тъмен или светлинен детектор. Тук проверете различните схеми, базирани на LDR.
Двата LDR са разположени от двете страни на слънчевия панел, а сервомоторът се използва за завъртане на слънчевия панел. Сервомеханизмът ще премести слънчевия панел към LDR, чието съпротивление ще бъде ниско, означава към LDR, върху който пада светлината, по този начин той ще продължи да следва светлината. И ако има малко количество светлина, падащо и върху двата LDR, тогава сервомеханизмът няма да се върти. Сервомеханизмът ще се опита да премести слънчевия панел в положението, при което и двата LDR ще имат еднакво съпротивление, което означава, че едно и също количество светлина ще падне и върху двата резистора и ако съпротивлението на един от LDR ще се промени, тогава той се завърта към по-ниско съпротивление LDR. Проверете демонстрационното видео в края на тази статия.
Как да изградим въртящ се слънчев панел с помощта на Arduino:
За да направите прототипа, ще трябва да изпълните следните стъпки:
Етап 1:
На първо място, вземете малко парче картон и направете дупка в единия край. Ще вмъкнем винта в него, за да го фиксираме със серво по-късно.
Стъпка 2:
Сега фиксирайте две малки парчета картон един с друг във форма V с помощта на лепило или горещ пистолет и поставете слънчев панел върху него.
Стъпка 3:
След това прикрепете долната страна на V-формата към другия край на малко парче картон, в което сте направили дупка в първата стъпка.
Стъпка 4:
Сега поставете винта в отвора, който сте направили на картона и го вкарайте през отвора в серво. Винтът се доставя със серво мотора, когато го купите.
Стъпка 5:
Сега поставете серво върху друго парче картон. Размерът на картона трябва да бъде достатъчно голям, за да можете да поставите Arduino Uno, макет и батерия върху него.
Стъпка 6:
Прикрепете LDR от двете страни на слънчевия панел с помощта на лепило. Уверете се, че сте запояли проводниците с краката на LDR. По-късно ще трябва да ги свържете с резисторите.
Стъпка 7:
Сега поставете Arduino, батерията и макетната плоча върху картона и направете връзката, както е описано в раздела Схеми и обяснения по-долу. Окончателният прототип е показан по-долу.
Електрическа схема и обяснение:
Пълната схема на схемата за слънчево проследяване на проекта arduino е показана по-долу. Както можете да видите схемата е много проста и лесно може да бъде изградена с помощта на малка макетна плоча.
В този Arduino Solar Panel Tracker Arduino се захранва от 9V батерия, а всички останали части се захранват от Arduino. Препоръчителното входно напрежение на Arduino е от 7 до 12 волта, но можете да го захранвате в диапазона от 6 до 20 волта, което е границата. Опитайте се да го захранвате в рамките на препоръчаното входно напрежение. Затова свържете положителния проводник на батерията към Vin на Arduino и отрицателния проводник на батерията към земята на Arduino.
След това свържете серво с Arduino. Свържете положителния проводник на серво към 5V на Arduino и заземяващия проводник към земята на Arduino и след това свържете сигналния проводник на Servo към цифровия щифт 9 на Arduino. Серво серво ще ви помогне при преместването на слънчевия панел.
Сега свържете LDR към Arduino. Свържете единия край на LDR към единия край на 10k резистора и също свържете този край към A0 на Arduino и свържете другия край на този резистор към земята и свържете другия край на LDR към 5V. По същия начин свържете единия край на втория LDR към единия край на другия 10k резистор и също свържете този край към A1 на Arduino и свържете другия край на този резистор към земята и свържете другия край на LDR към 5V от Arduino.
Едноосен слънчев тракер, използващ Arduino код:
Кодът за този базиран на Arduino Solar Panel Tracker е лесен и добре обяснен с коментари. На първо място, ще включим библиотеката за серво мотор. След това ще инициализираме променливата за началната позиция на серво мотора. След това ще инициализираме променливите за четене от LDR сензорите и Servo.
#include
Командата sg90.atach (servopin) ще прочете Servo от щифт 9 на Arduino. След това задаваме LDR щифтовете като входни щифтове, така че да можем да четем стойностите от сензорите и да преместваме слънчевия панел според това. След това задаваме серво мотора на 90 градуса, което е началната позиция на серво.
void setup () {sg90.attach (servopin); // прикрепя серво на щифт 9 pinMode (LDR1, INPUT); // Осъществяване на LDR щифт като входен pinMode (LDR2, INPUT); sg90.write (начална_позиция); // Преместване на серво при 90 градуса закъснение (2000); // дава забавяне от 2 секунди}
След това ще прочетем стойностите от LDR и ще запишем в R1 и R2. След това ще направим разликата между двата LDR, за да преместим серво съответно. Ако разликата между тях ще бъде нула, това означава, че едно и също количество светлина пада върху двете LDR, така че слънчевият панел няма да се движи. Използвахме променлива с име грешка и нейната стойност е 5, използването на тази променлива е, че ако разликата между двата LDR е по-малка от 5, серво няма да се движи. Ако не го направим, серво ще продължи да се върти. И ако разликата е по-голяма от стойността на грешката (5), тогава сервомеханизмът ще премести слънчевия панел по посока на LDR, върху който пада светлината. Проверете пълния код и демонстрационното видео по-долу.
int R1 = analogRead (LDR1); // четене на стойност от LDR 1 int R2 = analogRead (LDR2); // четене на стойност от LDR 2 int diff1 = abs (R1 - R2); // Изчисляване на разликата между int diff2 = abs (R2 - R1) на LDR; if ((diff1 <= error) - (diff2 <= error)) {// ако разликата е под грешката, тогава не правете нищо} друго {if (R1> R2) {Initial_position = --initial_position; // Преместете серво към 0 градуса} if (R1 <R2) {начална_позиция = ++ начална_позиция; // Преместете серво на 180 градуса}}
Така че можете да създадете прост Tracker за слънчеви панели, който автоматично ще се движи към светлината като слънчоглед. Тук използвахме соларния панел с ниска мощност, за да намалим теглото, ако планирате да използвате соларен панел с висока мощност или тежък, тогава трябва да изберете съответно серво мотора.