Солнечный трекер ардуино. Солнечный трекер на Arduino: принцип работы и пошаговая инструкция по сборке

Как работает солнечный трекер на Arduino. Из каких компонентов он состоит. Какие преимущества дает использование трекера для солнечных панелей. Как собрать двухосевой солнечный трекер своими руками пошагово. Какой код нужно загрузить в Arduino для управления трекером.

Содержание

Принцип работы солнечного трекера на Arduino

Солнечный трекер — это устройство, которое позволяет солнечной панели следить за положением солнца в течение дня. Это позволяет значительно повысить эффективность выработки энергии солнечной батареей. Рассмотрим, как работает солнечный трекер на базе Arduino:

  • 4 фоторезистора (LDR) используются в качестве датчиков освещенности. Они расположены по углам солнечной панели.
  • Arduino считывает показания с фоторезисторов и определяет, с какой стороны освещенность выше.
  • На основе этих данных Arduino подает команды двум сервоприводам, которые поворачивают панель по горизонтали и вертикали.
  • Панель постоянно ориентируется на максимальную освещенность, следуя за солнцем.

Таким образом, солнечная панель всегда находится под оптимальным углом к солнечным лучам, что повышает ее КПД.


Компоненты для сборки солнечного трекера

Для создания солнечного трекера на Arduino понадобятся следующие компоненты:

  • Плата Arduino UNO
  • 4 фоторезистора (LDR)
  • 4 резистора 10 кОм
  • 2 сервопривода
  • Двухосевой подвес для крепления панели
  • Солнечная панель
  • Провода для соединений
  • Макетная плата

Важно правильно подобрать сервоприводы, способные выдержать вес солнечной панели. Для небольших панелей подойдут стандартные микросервоприводы.

Преимущества использования солнечного трекера

Использование трекера для солнечных панелей дает ряд существенных преимуществ:

  • Увеличение выработки энергии на 30-40% по сравнению со стационарными панелями
  • Более стабильная выработка энергии в течение всего светового дня
  • Возможность использования панелей меньшей площади для получения того же количества энергии
  • Повышение эффективности работы солнечной электростанции в утренние и вечерние часы
  • Увеличение срока окупаемости солнечной электростанции

Основной недостаток — усложнение конструкции и необходимость обслуживания механических узлов. Однако преимущества обычно перевешивают этот минус.


Пошаговая инструкция по сборке солнечного трекера

Рассмотрим последовательность действий по сборке двухосевого солнечного трекера на Arduino:

  1. Закрепите солнечную панель на двухосевом подвесе.
  2. Установите 4 фоторезистора по углам панели.
  3. Подключите фоторезисторы к аналоговым входам Arduino A0-A3 по схеме делителя напряжения с резисторами 10 кОм.
  4. Подключите сервоприводы к цифровым выходам 9 и 10 Arduino.
  5. Соедините питание компонентов с выходами 5V и GND Arduino.
  6. Загрузите скетч для управления трекером в Arduino.
  7. Проверьте работу системы и при необходимости откалибруйте положение сервоприводов.

Важно надежно закрепить все компоненты и обеспечить защиту электроники от влаги, если трекер будет использоваться на улице.

Код для управления солнечным трекером на Arduino

Вот пример базового кода для управления двухосевым солнечным трекером на Arduino:

«`cpp #include Servo servoHorizontal; Servo servoVertical; int ldrTL = A0; // верхний левый LDR int ldrTR = A1; // верхний правый LDR int ldrBL = A2; // нижний левый LDR int ldrBR = A3; // нижний правый LDR void setup() { servoHorizontal.attach(9); servoVertical.attach(10); servoHorizontal.write(90); servoVertical.write(90); delay(500); } void loop() { int tl = analogRead(ldrTL); int tr = analogRead(ldrTR); int bl = analogRead(ldrBL); int br = analogRead(ldrBR); int avgTop = (tl + tr) / 2; int avgBot = (bl + br) / 2; int avgLeft = (tl + bl) / 2; int avgRight = (tr + br) / 2; int diffVertical = avgTop — avgBot; int diffHorizontal = avgLeft — avgRight; if (abs(diffVertical) >
10) { int currentAngle = servoVertical.read(); if (diffVertical > 0) { servoVertical.write(currentAngle — 1); } else { servoVertical.write(currentAngle + 1); } } if (abs(diffHorizontal) > 10) { int currentAngle = servoHorizontal.read(); if (diffHorizontal > 0) { servoHorizontal.write(currentAngle + 1); } else { servoHorizontal.write(currentAngle — 1); } } delay(10); } «`

Этот код считывает показания с 4 фоторезисторов, вычисляет разницу освещенности по вертикали и горизонтали, и соответственно управляет сервоприводами для ориентации панели на максимальную освещенность.


Калибровка и настройка солнечного трекера

После сборки и загрузки кода необходимо провести калибровку системы:

  1. Установите панель в горизонтальное положение и запишите начальные углы сервоприводов.
  2. Проверьте, правильно ли трекер реагирует на изменение освещенности с разных сторон.
  3. При необходимости скорректируйте пороговые значения в коде для более точной работы.
  4. Настройте ограничения углов поворота, чтобы избежать столкновений конструкции.
  5. Протестируйте работу системы в течение дня и убедитесь, что она корректно отслеживает солнце.

Правильная калибровка позволит добиться максимальной эффективности работы солнечного трекера.

Возможные улучшения конструкции солнечного трекера

Базовую конструкцию солнечного трекера на Arduino можно усовершенствовать несколькими способами:

  • Добавить датчик времени для возврата панели в исходное положение на ночь
  • Использовать более мощные сервоприводы для работы с большими панелями
  • Реализовать удаленный мониторинг и управление через Wi-Fi модуль
  • Добавить датчик ветра для перевода панели в безопасное положение при сильном ветре
  • Использовать алгоритмы машинного обучения для оптимизации работы трекера

Эти улучшения позволят создать более надежную и эффективную систему слежения за солнцем.



Солнечный трекер на Ардуино Очень Простой способ Solar Tracker

Собрать систему слежения за солнцем очень просто и сейчас буквально за 10 минут я вам расскажу как это можно сделать.
Что же такое Солнечный трекер? Это устройство позволяющее следить за перемещением солнца и всегда поворачиваться к нему лицом.  Слежение за солнцем (Solar Tracker) соберём на Ардуино и подключим к нему солнечную батарею. Для движения за солнцем я использую шаговый двигатель 28BYJ-48 так как он дешёвый и часто применяется в Ардуино проектах. А ещё нам понадобятся 2 фоторезистора, но в конце я расскажу как можно и их убрать. Собрать прибор слежения за солнцем своими руками и использовать его как альтернативный источник энергии это в духе нашего времени.

Сегодня соберём Солнечный трекер. Если не знаете, что это, то это устройство, которое поворачивается за солнцем как подсолнух. Это может пригодиться, например для установки солнечной панели и она будет всегда направлена на солнце. В этом видео я покажу как собрать солнечный трекер своими руками. 
Нам понадобятся только Ардуино, шаговый двигатель, и пара фоторезисторов. А в конце я расскажу, как можно обойтись и без фоторезисторов.

Давайте посмотрим, что у меня получилось, а потом разберёмся как можно этот пример повторить. Это совсем не сложно.
Сразу хочу извиниться за качество съёмки и собранную модель, но главное, что схема работает и видно, как солнечная батарея движется в сторону света. 
Я специально взял не узконаправленный луч, а обычную лампу, так свет сразу попадает на оба фотоприёмника и это ближе к солнечному свету.
Теперь расскажу принцип работы.
Код программы считывает значения верхнего и нижнего фоторезистора и сравнивает их. Если на верхний попадает больший поток света, то мотор начинает движение вверх, и будет двигаться пока значения не сравняются. Тогда мотор остановится на десять секунд. Это значение можно поменять в скетче. А затем, если свет переместился, то начнётся движение в сторону света. 
Скорость перемещения можно изменить. Я специально сделал маленькую скорость, так как свет явление статичное и солнце двигается медленно. Про десятисекундную задержку я расскажу дальше в видео. Просто скажу, что когда свет сравняется, то малейшее колебания света вызывает срабатывание мотора и он может дергаться в диапазоне 1 градус вверх, вниз. Эта задержка устранит эту неприятность.
А теперь отвечу на вопрос почему я использовал шаговый двигатель, а не сервопривод. Всё, просто, шаговик более дешёв, менее капризен, способен работать с большими нагрузками, и потребляет меньше электричества. Правда и у него есть недостатки, но для этого проекта они не так важны.
Ну, вот всё что хотел рассказал. А теперь, тем кто заинтересовался, милости просим в техническую часть.
Я разбил её на несколько примеров. Я расскажу, как правильно подключить и настроить фоторезисторы. Научу управлять шаговым двигателем, и в конце расскажу, как собрать себе такой же трекер.

Сначала надо проверить фоторезисторы.
Для этого подключаем их к Аналоговым входам Ардуино и считываем значения. Вначале я подключил их по схеме с постоянным резистором. Можно взять любые, но я обычно использую номиналом от 4,7 кОм до 10 кОм. Прошиваем скетч и смотрим какие значения выдают ваши фоторезисторы. Они должны быть приблизительно одинаковые, и чем меньше они отличаются, тем проще будет потом настроить скетч.
Сразу скажу. Такие значения вполне могли бы подойти, но потом я вспомнил, что я сжёг эти Аналоговые порты, а когда подключил на другие, то разница была намного больше.
Резисторы и фоторезисторы даже из одной партии, могут значительно отличаться. Можете посмотреть вот это видео, там я подробно рассказываю о фоторезисторах.
И так как разница оказалось очень большая, то я решил подключить фоторезисторы через переменные резисторы, и настроить их как можно точнее.


Смотрим скетч с подключенными переменными резисторами.

Здесь я подключил фоторезисторы к аналоговым входам А3 и А4 и в выводе указал, какой из них будет нижний, а какой верхний. Прошиваем и смотрим.
 Сначала у меня получились вот такие значения. Они не пригодны для работы в скетче управления движением за солнцем. Поэтому надо их подогнать.
Сначала я настрою нижний фоторезистор. Вращением переменного резистора, вы можете настроить любые начальные значения. Желательно настраивать в полутёмном помещении, чтобы сразу указать порог, при котором у вас отключится мотор и не будет искать солнце. Какой смысл искать, то, чего нет. Например, вечером.

Так как у нас минимальное значение 0 а максимальное 1023, то я установил равно по средине, ну или почти посередине. Теперь также настроим верхний фоторезистор.
Вращаем переменный резистор и добиваемся как можно более точного совпадения с нижним фоторезистором. Как только установили, то можно считать, что первичную настройку закончили, и теперь можно переходить к работе с шаговым двигателем.
У меня получились вот такие значения. Они довольно близки к середине, и имеют маленький разброс.

Теперь подключим шаговый двигатель. Здесь я расскажу только самое основное, кому интересно, то могут посмотреть вот эти видео. В одном много теории и описаны разные библиотеки, а во втором управление двигателем с телефона, при помощи ползунка.

Рассмотрим скетч.
Он, как всегда, прокомментирован, и лежит в архиве на моём сайте. Ссылка в описании.
Первое условие означает, что если предыдущая команда выполнена, или ничего другое не выполняется, то сделать 2 оборота против часовой стрелки, со скоростью 15 оборотов в минуту.
После окончания поменять значение переменной на TRUE.

Затем сразу же изменить скорость на 5 оборотов в минуту и сделать поворот на 360 градусов по часовой стрелке. После выполнения изменить значение переменной на TRUE.

Последнее условия – это вращение со скоростью 15 оборотов в минуту против часовой стрелки до тех пор, пока другая команда не отменит это условие.
И последняя команда – это запуск шагового двигателя. Это обязательная команда, без неё мотор не будет работать.

Рассмотрим ещё один скетч.
Я назвал его качели. Для слежения за солнцем, необязательно устанавливать фоторезисторы. Достаточно просто установить солнечную батарею в нужное время в нужное место. И вам необязательно даже устанавливать для этого часы. Можно взять один из моих примеров, где я делал часы без модуля часов. Так, как большая точность здесь не важна, то этот пример как нельзя лучше сюда подойдёт.

Замерев в каком положении должно быть солнце в определённое время можно заранее установить батарею в это положение, и не важно есть ли на улице тучи, ваша солнечная станция всегда будет смотреть в нужное место и собирать те крохи солнца, которые есть в нашей средней полосе.

Ну и наконец дошло дело до главного скрипта дня. 
Как подключить шаговик, вы уже знаете. Фоторезисторы сверху и снизу от солнечной батареи так и называются. BOTTOM и UP, то есть низ и верх.
Всё остальное как и в предыдущем скетче, только скорость я сделал 5 оборотов в минуту.

В цикле LOOP происходит вся основная магия слежки.
Сначала считываем данные с фоторезисторов и присваиваем переменным. 
Чтобы не работать с большими числами, я в функции map перевёл значения от 0 до 1023 в диапазон от 0 до 100. Это более грубые данные и с ними проще работать. Меньше будет дёрганий мотора.
Вычисляет абсолютную величину (модуль) числа.

Так мы выводим полученные значения в монитор порта. Это очень сильно пригодиться для настройки. Например, для определения, когда уже солнца ждать не стоит. 
Сначала идут просто считанные данные с фоторезисторов, а дальше уже обработанные, с ними мы и будем дальше работать.

В этом условии задаём значение меньше которого уже ждать солнца не стоит. Вам надо здесь указать свои значения.
Если свет попадает на верхний и нижний фоторезистор одинаково, я сделал паузу в 10 секунд, а то на этом пограничном состоянии мотор начинает часто срабатывать.
Если на верхний фоторезистор поступает больше солнца, то движемся вверх, если наоборот, то вниз.
Этот delay() нужен только для замедления отображения в мониторе, можно убрать.

Это функции обработчики фоторезисторов. Здесь указано куда крутиться и на сколько градусов.

Схема подключения
Фоторезистор с постоянным резистором подключается вот так. Это обычная схема делителя напряжения, где один вывод фоторезистора подключается к питанию, а второй, через дополнительный резистор подключается к другому полюсу питания. Не важно, как вы подключаете фоторезистор к плюсу или к минусу, просто в скетч будут приходить данные от 0 до 1023 или от 1023 до 0. Вам надо будет только написать другое условие. Величина резисторов также не важна. Я использую резисторы 4,7 ком или 10 кОм, так как они самые распространённые в работе с микроконтроллерами.

Переменные резисторы подключаются так. 
Для этого примера, желательно производить настройку с переменными резисторами. Так будет проще сравнивать значения в скетче.


 

солнечный трекер на Arduino | AlexGyver Community

BKurman
✩✩✩✩✩✩✩