- Необхідні компоненти для Arduino Solar Tracker:
- Як працює одновісний сонячний трекер?
- Як побудувати обертову сонячну панель за допомогою Arduino:
- Електрична схема та пояснення:
- Одновісний сонячний трекер із використанням коду Arduino:
У цій статті ми збираємося зробити сонячну панель відстеження сонця за допомогою Arduino, в якій ми будемо використовувати два LDR (світлозалежний резистор) для відчуття світла та сервомотор для автоматичного обертання сонячної панелі у напрямку сонячного світла. Перевага цього проекту полягає в тому, що сонячні панелі завжди будуть слідувати за сонячним світлом, завжди будуть звернені до сонця, щоб постійно отримувати заряд і можуть забезпечити подачу максимальної потужності. Прототип дуже легко побудувати. Нижче ви знайдете повний опис того, як це працює і як виготовляється прототип.
Необхідні компоненти для Arduino Solar Tracker:
Нижче наведено компонент, необхідний для побудови сонячної системи відстеження за допомогою Arduino, більшість компонентів повинні бути доступні у вашому місцевому магазині.
- Сервомотор (sg90)
- Сонячна панель
- Arduino Uno
- LDR's X 2 (світлозалежний резистор)
- 10K резистори X 2
- Акумулятор (від 6 до 12 В)
Як працює одновісний сонячний трекер?
У цьому проекті LDR працюють як детектори світла. Перш ніж вдаватися до деталей, нам доведеться зрозуміти, як працює LDR. LDR (світлозалежний резистор), також відомий як фоторезистор, є світлочутливим пристроєм. Його опір зменшується, коли на нього падає світло, і тому його часто використовують у схемі темного або світлового детектора. Перевірте різні схеми на основі 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 живиться від батареї 9 В, а всі інші деталі - від Arduino. Рекомендована вхідна напруга Arduino становить від 7 до 12 вольт, але ви можете живити його в діапазоні від 6 до 20 вольт, що є граничним значенням. Спробуйте підключити його до рекомендованої вхідної напруги. Отже, підключіть позитивний провід акумулятора до Vin Arduino, а мінусовий провід акумулятора - до землі Arduino.
Далі підключіть сервопривід до Arduino. Підключіть плюсовий провід сервоприводу до 5В Arduino і заземлювальний провід до заземлення Arduino, а потім підключіть сигнальний провід сервоприводу до цифрового виводу 9 Arduino. Сервопривід допоможе у переміщенні сонячної панелі.
Тепер підключіть LDR до Arduino. Підключіть один кінець LDR до одного кінця резистора 10k, а також підключіть цей кінець до A0 Arduino, а другий кінець цього резистора підключіть до землі, а другий кінець LDR - до 5V. Подібним чином підключіть один кінець другого LDR до одного кінця іншого 10k резистора, а також підключіть цей кінець до A1 Arduino і підключіть інший кінець цього резистора до землі і підключіть інший кінець LDR до 5 В Ардуїно.
Одновісний сонячний трекер із використанням коду Arduino:
Код цього Arduino Solar Panel Tracker простий і добре пояснюється коментарями. Перш за все, ми включимо бібліотеку для сервомотора. Тоді ми ініціалізуємо змінну для початкового положення сервомотора. Після цього ми ініціалізуємо змінні для зчитування з датчиків LDR та сервоприводу.
#включати
Команда sg90.atach (сервопін) зчитує Серво з виводу 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, тому сонячна панель не рухатиметься. Ми використовували змінну з іменем error, і її значення дорівнює 5, використання цієї змінної полягає в тому, що якщо різниця між двома LDR буде менше 5, сервопривід не рухатиметься. Якщо ми цього не зробимо, сервопривід буде продовжувати обертатися. А якщо різниця більше значення похибки (5), сервопривід буде рухати сонячну панель у напрямку LDR, на який падає світло. Перевірте повний код та демонстраційне відео нижче.
int R1 = analogRead (LDR1); // зчитування значення з LDR 1 int R2 = analogRead (LDR2); // зчитування значення з LDR 2 int diff1 = abs (R1 - R2); // Обчислення різниці між значеннями LDR int diff2 = abs (R2 - R1); if ((diff1 <= error) - (diff2 <= error)) {// якщо різниця під помилкою, то нічого не робити} else {if (R1> R2) {початкова_позиція = --initial_position; // Перемістіть сервопривід у бік 0 градусів} if (R1 <R2) {початкова_позиція = ++ початкова_позиція; // Перемістіть сервопривід на 180 градусів}}
Ось так ви можете створити простий трекер сонячних панелей, який автоматично рухатиметься до світла, як соняшник. Тут ми використали сонячну панель низької потужності для зменшення ваги, якщо ви плануєте використовувати потужну або важку сонячну панель, тоді вам слід вибрати сервомотор відповідно.