- Необходимые компоненты для Arduino Solar Tracker:
- Как работает одноосный солнечный трекер?
- Как построить вращающуюся солнечную панель с помощью Arduino:
- Принципиальная схема и пояснения:
- Одноосный солнечный трекер с использованием кода Arduino:
В этой статье мы собираемся создать солнечную панель слежения за солнцем с использованием Arduino, в которой мы будем использовать два LDR (светозависимый резистор), чтобы воспринимать свет, и серводвигатель для автоматического поворота солнечной панели в направлении солнечного света.. Преимущество этого проекта в том, что солнечные панели всегда будут следовать за солнечным светом, всегда будут смотреть на солнце, чтобы постоянно получать заряд и обеспечивать максимальную мощность. Прототип очень легко построить. Ниже вы найдете полное описание того, как это работает и как изготовлен прототип.
Необходимые компоненты для Arduino Solar Tracker:
Ниже приведены компоненты, необходимые для создания системы слежения за солнечным светом с использованием Arduino, большинство компонентов должны быть доступны в вашем местном магазине.
- Серводвигатель (SG90)
- Солнечная панель
- Ардуино Уно
- LDR 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 Arduino питается от батареи 9 В, а все остальные части питаются от Arduino. Рекомендуемое входное напряжение Arduino составляет от 7 до 12 вольт, но вы можете запитать его в диапазоне от 6 до 20 вольт, что является пределом. Попробуйте запитать его в пределах рекомендованного входного напряжения. Поэтому подключите положительный провод аккумулятора к Vin Arduino, а отрицательный провод аккумулятора к земле Arduino.
Затем подключите сервопривод к Arduino. Подключите положительный провод сервопривода к 5 В Arduino, а провод заземления - к заземлению Arduino, а затем подключите сигнальный провод сервопривода к цифровому выводу 9 Arduino. Сервопривод поможет в перемещении солнечной панели.
Теперь подключите LDR к Arduino. Подключите один конец LDR к одному концу резистора 10 кОм, а также подключите этот конец к A0 Arduino, подключите другой конец этого резистора к земле и подключите другой конец LDR к 5 В. Точно так же подключите один конец второго LDR к одному концу другого резистора 10 кОм, а также подключите этот конец к A1 Arduino, а другой конец этого резистора подключите к земле и подключите другой конец LDR к 5 В Ардуино.
Одноосный солнечный трекер с использованием кода Arduino:
Код для этого трекера солнечных панелей на базе Arduino прост и хорошо объяснен с помощью комментариев. Прежде всего, мы включим библиотеку для серводвигателя. Затем мы инициализируем переменную для начального положения серводвигателя. После этого мы инициализируем переменные для чтения с датчиков LDR и сервопривода.
#включают
Команда sg90.atach (servopin) будет читать сервопривод с вывода 9 Arduino. Затем мы устанавливаем контакты LDR в качестве входных контактов, чтобы мы могли считывать значения с датчиков и перемещать солнечную панель в соответствии с этим. Затем мы устанавливаем серводвигатель на 90 градусов, что является начальным положением сервопривода.
void setup () {sg90.attach (сервопин); // подключает сервопривод к выводу 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 = аналоговое чтение (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 = --initial_position; // Перемещаем сервопривод в сторону 0 градусов} if (R1 <R2) {initial_position = ++ initial_position; // Перемещаем сервопривод на 180 градусов}}
Вот как вы можете построить простой трекер солнечных батарей, который будет автоматически двигаться к свету, как подсолнух. Здесь мы использовали солнечную панель малой мощности, чтобы уменьшить вес. Если вы планируете использовать солнечную панель высокой мощности или тяжелую солнечную батарею, вам необходимо выбрать серводвигатель соответственно.