УСОВЕРШЕНСТВОВАНИЕ ПРИВОДА СЛЕЖЕНИЯ ЗА СОЛНЦЕМ НА БАЗЕ ARDUINO

XXIX Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

УСОВЕРШЕНСТВОВАНИЕ ПРИВОДА СЛЕЖЕНИЯ ЗА СОЛНЦЕМ НА БАЗЕ ARDUINO

Медетова А.А. 1
1МАОУ лицей №110
Токмакова Н.В. 1
1МАОУ лицей №110
Автор работы награжден дипломом победителя III степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

Цель моего проекта – доработка ранее собранной действующей модели устройства слежения за положением Солнцем на базе микроконтроллера Arduino, способного управлять зеркалом, отражающим лучи от движущегося Солнца в выбранную точку, с целью устранения конструктивных недостатков, а также возможности дистанционного управления и получения информации о текущем состоянии привода система дополнена Wi-Fi модулем.

Задачи:

  • Анализ существующей информации о существующих решениях подобной задачи;

  • Проектирование устройства, способного исполнять поставленную цель;

  • Написание программы для устройства на языке С++;

  • Сборка действующей модели;

  • Испытание устройства.

Методы исследования: анализ информационных ресурсов, анализ аналогов, моделирование устройства, исследование созданного прототипа, обобщение информации.

В работе рассмотрено устройство позиционирования зеркал гелиостанции на приёмник (мишень) на основе микроконтроллера ARDUINO.

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

Актуальность темы

Жизнь без энергии невозможна, но традиционные источники (нефть, газ, уголь) скоро исчерпаются, что обостряет проблему их замены. Также сжигание углеводородов наносит вред экологии, поэтому необходимо искать альтернативные экологически чистые источники энергии. Самые популярные и известных - это ветряные электростанции и солнечные батареи. Безуглеродная энергетика – это направление развития энергетической отрасли, которое стремится к снижению или исключению выбросов углекислого газа в процессе производства энергии. Использование солнечной энергии – одно из ключевых достижений человечества в области энергетики. Однако сейчас главная проблема заключается не столько в сборе солнечной энергии, сколько в её хранении и распределении. Если получится преодолеть эти трудности, традиционные предприятия, работающие на ископаемом топливе, смогут уйти на заслуженный отдых.

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

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

Общим недостатком этих методов является:

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

- не высокий КПД, в настоящий момент не превышает 22%.

Идея накопления солнечной энергии заключается в том, чтобыпреобразовать её в тепловую и уже тепло хранить в нагретом массивном теле. В качестве этого тела выступает расплавленная соль [Dorota Anna Krawczyk 2019г., стр. 30-31]., которая используется для хранения энергии в солнечных тепловых установках (рис.1). Сотни гелиостатов больших зеркал, сориентированных на Солнце, собирают солнечное излучение, нагревают и плавят соль. Затем расплавленная соль, нагретая более 560 градусов, направляется в накопительный резервуар. В дальнейшем с помощью парогенератора получают пар, который вращает турбину, вырабатывая электроэнергию традиционным способом. Эта технология помогает продлевать время работы электростанции и давать электричество в то время, когда нет Солнца.

Создание и изготовление рабочей модели привода слежения за Солнцем:

Описание устройства

Прототип гелиостата представляет собой платформу с двумя рамками, с расположенными на каждой, пары шаговых двигателей. Каждый двигатель поворачивает платформу с зеркалом (рис. 7, 8) или датчиком направления (рис.3, 4, 5) во взаимно перпендикулярных направлениях. Принцип действия следящего привода основан на вычислении угла между направлением на Солнце и приёмником (резервуар с солью) с помощью датчика и микроконтроллера ARDUINO. [С. Монк 2017. Глава 12.]

На основании вычислений микроконтроллер управляет моторами привода колонн на одной из которых находятся конструкция с фоторезисторами (датчик направления) следящими за Солнцем, а на второй колонне находится зеркало, концентрирующее солнечные лучи на выбранной точке.

Принцип действия привода

Принцип действия привода основан на законе оптики о равенстве угла падения углу отражения (рис. 2). В момент восхода Солнца, датчик слежения определяет направление на Солнце. Так как положение «мишени» относительно зеркала известно, контроллер вычисляет угол «Солнце – зеркало – мишень», после этого контроллер производит вычисления и поворачивает зеркало на половину угла, измеренного датчиком. Измерение и поворот производится в двух плоскостях: вертикальной (высота Солнца над горизонтом) и горизонтальной (движение Солнца с востока на запад).

Вычисление угла происходит следующим образом:

- контроллер считает количество шагов двигателя относительно направления на «мишень», необходимое для точного направления датчика на Солнце;

- так как на шаговый двигатель делает за один полный оборот ровно 2048 шагов мы можем вычислить угол, на который поворачивается двигатель за один шаг и с помощью этого мы можем измерить угол, на который повернулся датчик направлении Солнце относительно направления на «мишень».

Устройство датчика направления на Солнце показано на рис. 3, внешний вид на рис. 4, 5. Датчик состоит из двух пар фоторезисторов, каждая пара контролирует направление на Солнце: одна пара по горизонтали другая по другая по вертикали.

Так как сопротивление фоторезистора зависит от уровня его освещенности, поэтому если оба фоторезистора от освещены одинаково значит ось датчика в этом направлении направлена точно на Солнце. ARDUINO контролирует напряжение на каждом из фоторезисторов в паре и при их различии контроллер поворачивает шаговый двигатель в сторону более освещённого фоторезистора, при равенстве напряжений, контроллер даёт команду на остановку двигателя. [Бондаренко, И. Б. Часть 1., 2012г. Глава 4.4].

Условие точного направления на Солнце:

UR1 – UR2 = 0 и UR3 – UR4 = 0

  • когда условие выполняется, вычисляется количество шагов шаговых двигателей М1 и М2.

  • вычисляется угол между направлением на Солнце и приёмником.

  • подаётся сигнал на двигатели М3 и М4 и зеркало направляет солнечные лучи на приёмник.

После захода Солнца, уровень освещённости падает и датчик общей освещённости даёт команду на поворот в сторону востока и цикл повторяется.

Общий вид устройства показан на рисунках 4 – 8, чертежи модели для 3D принтера на рисунках 9 – 16.

Внешний вид интерфейса программы управления приводом показан на рисунке 19, алгоритм работы на рисунке 20.

Аналоги и прототипы

SolarReserve[Wikipedia – The free encyclopedia / SolarReserve /] - компания, предлагающая использовать расплавленную соль в солнечных электростанциях. Вместо использования солнечной энергии для выработки электроэнергии и дальнейшего хранения её в аккумуляторных батареях, SolarReserve предлагает перенаправлять её на тепловые накопители (башни). Накопленное тепло в дальнейшем используется в производстве электроэнергии с помощью паровой турбины. Проект Solar Two мощностью 10 МВт успешно функционировал в течение нескольких лет и был выведен из эксплуатации в 1999 году, подтвердив жизнеспособность идеи.

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

Солнечная электростанция (рис.17) использует 10 347 зеркал (гелиостатов), установленных на 647,5 гектар (это 900 с лишним футбольных полей), чтобы сконцентрировать солнечный свет на центральной башне высотой в 195 метров и заполненной солевой «начинкой». Эта соль нагревается солнечными лучами до 565 °C, и тепло хранится, а затем используется для преобразования воды в пар и для работы генераторов, производящих электричество. Зеркала называются гелиостатами, так как каждое из них может наклоняться и поворачиваться, чтобы точно направлять свой луч света. Расположенные в концентрических кругах, они фокусируют солнечный свет на «приемнике» в верхней части центральной башни. Горячая соль стекает в резервуар из нержавеющей стали ёмкостью 16 тыс. м³.

Солнечный трекер EcoFlowSolarTracker

Cолнечный трекер потребительского класса EcoFlow Solar Tracker (рис. 18) предназначен для того, чтобы определить лучший угол размещения солнечной панели по отношению к Солнцу. Для определения параметров трекер будет вращаться и поворачиваться по двум осям. Однако он не решает задачу концентрации солнечной энергии. Стимость EcoFlow Solar Tracker € 2850.

Заключение

В ходе выполнения работы я получила следующие результаты:

  1. Изучив литературу, и рассмотрев прототипы, узнала, что в основном создаются устройства для фотоэлектрических панелей. Их задача повернуть панель на Солнце, а не направить отражение на «мишень»;

  2. Собрана действующая модель (прототип) привода, модель показала свою работоспособность,

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

  4. Написана программа для устройства на языке С++ позволяющей управлять приводом;

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

Список литературы

  1. Хабр / Could4y /Cолёная солнечная энергия/[электронный ресурс] – режим доступа: https://habr.com/ru/companies/cloud4y/articles/477004/ (Дата обращения: 02.12.2025)

  2. Dorota Anna Krawczyk (ed.),Mirosław Żukowski, Antonio Rodero Serrano, David Bullejos Martín / Buildings 2020+ : Energy sources / Printing House of Bialystok University of Technology. — Białystok ; Córdoba ; Vilnius, 2019г. - ISBN 978-83-65596-72-7, eISBN 978‑83‑65596‑73‑4, (глава 1.2.3 Solar energy. CSP. стр. 30-31).

  3. С. Монк Программируем Arduino. Профессиональная работа со скетчами. - СПб.: Питер, 2017. (Глава 12.) ISBN 978-5-496-02385-6

  4. Бондаренко, И. Б. Электрорадиоэлементы. Часть 1. Резисторы. СПб.: Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики. 2012г. глава 4.4 Фоторезисторы. УДК: 62 ББК: 32.84

  5. Wikipedia – The free encyclopedia / SolarReserve / [электронный ресурс] – режим доступа: https://en.wikipedia.org/wiki/SolarReserve (дата обращения: 17.03.2026)

УСОВЕРШЕНСТВОВАНИЕ ПРИВОДА

СЛЕЖЕНИЯ ЗА СОЛНЦЕМ НА БАЗЕ ARDUINO

Приложения

Принципиальная схема гелиостанции

рис. 1

 

Принципиальная схема устройства

рис. 2

 
 

Принципиальная схема датчика

рис. 3

 
   

Привод датчика слежения

рис. 4

Датчик слежения в близи

рис. 5

   
   

Общий вид устройства до и после доработки
рис. 6

   

Привод зеркала

рис. 7

Привод датчика слежения

рис. 8

 
   

Чертёж рамки

рис. 9

Чертёж плиты

рис. 10

   

Чертёж основания

рис. 11

Чертёж закрепочной детали

рис. 12

   
   

Рамка

рис. 13

Плита

рис. 14

   

Основание

рис. 15

Общая сборка конструкции

рис. 16

 

Общий вид гелиостанции [электронный доступ]

режим доступа - https://theconversation.com/batteries-wont-cut-it-we-need-solar-thermal-technology-to-get-us-through-the-night-203545?utm_medium=organic&utm_source=yandexsmartcamera

рис. 17

 

Солнечный трекер EcoFlowSolarTracker [электронный доступ]

режим доступа - https://ecoflow-russia.com/products/solnechnyj-treker-ecoflow-solar-tracker?etext=2202.MKtUUsuUsmn0ZeoCMrQ1XVIlMlD6ouDaZ_sE6ScGaAlcMpdA7E469FzomIKc1PxFy87ut1Z40JPF7RgFc0C2XnNmYWh4eGF0d3Rmd3l2Z3M.4b883e757c45540dd04aa4335a0d47ac9169a253&yclid=1496347720920596479&ybaip=1

рис. 18

     

Калибровка положения «0»

Установка положения «0»

Контроль положения

Вид окна программы

рис.19

 
 

Блок-схема работы устройства

рис. 20

 

Фрагмент кода программы

// Исходные подключения контактных выводов

constint FIRST_X_IN1 = 47; constint FIRST_X_IN2 = 49;

constint FIRST_X_IN3 = 51; constint FIRST_X_IN4 = 53;

 

constint FIRST_Y_IN1 = 46; constint FIRST_Y_IN2 = 48;

constint FIRST_Y_IN3 = 50; constint FIRST_Y_IN4 = 52;

 

constint SECOND_X_IN1 = 22; constint SECOND_X_IN2 = 24;

constint SECOND_X_IN3 = 26; constint SECOND_X_IN4 = 28;

 

constint SECOND_Y_IN1 = 23; constint SECOND_Y_IN2 = 25;

constint SECOND_Y_IN3 = 27; constint SECOND_Y_IN4 = 29;

 

// Фоторезисторы для определения направления

const int RIGHT_PHOTO_PIN = A0; // Правый фоторезистор (ось X)

constint LEFT_PHOTO_PIN = A1;  // Левыйфоторезистор (ось X)

constint UP_PHOTO_PIN = A2;    // Верхнийфоторезистор (ось Y)

constint DOWN_PHOTO_PIN = A3;  // Нижнийфоторезистор (ось Y)

 

// Датчикобщейосвещенности

constint LIGHT_SENSOR_PIN = 10;

 

// Время ожидания между шагами

unsigned long interval = 2; // мс

 

// Таблицы шагов для двигателей

byte forward_sequence[] = {B0001, B0011, B0010, B0110, B0100, B1100, B1000, B1001};

byte reverse_sequence[] = {B1000, B1100, B0100, B0110, B0010, B0011, B0001, B1001};

 

// Индексыфаздвигателей

byte first_x_current_phase = 0;

byte second_x_current_phase = 0;

byte first_y_current_phase = 0;

byte second_y_current_phase = 0;

 

// Углыповоротаплатформ

float angleFirstX = 0.0f;

float angleSecondX = 0.0f;

float angleFirstY = 0.0f;

float angleSecondY = 0.0f;

 

// Начальныеуглыплатформ

float initialAngleFirstX = 0.0f; // начальный угол по оси X

float initialAngleFirstY = 0.0f; // начальный угол по оси Y

 

// Чувствительность фоторезисторов

#defineTHRESHOLD_DIFFERENCE70

 // Параметрыдлярасчетаугла

constfloat STEPS_PER_REVOLUTION = 4096.0f;

constfloat ANGLE_PER_STEP = 360.0 / STEPS_PER_REVOLUTION;

 

// Флаг активности режима низкой освещенности

bool lowLightActive = false; // активирован ли режим низкой освещенности

 

// Вспомогательная функция для поворота платформы к нужному углу

voidrotateTo(floattargetAngle){

  float currentAngle = angleFirstY; // текущийуголплатформыпооси Y

  float difference = targetAngle - currentAngle; // разницамеждуцелями

 

  if(difference > 0){

    while(angleFirstY < targetAngle){

      stepForward_FirstY();

      delay(interval);

    }

  }elseif(difference < 0){

    while(angleFirstY > targetAngle){

      stepBackward_FirstY();

      delay(interval);

    }

  }

}

 

// ***

 

// Инициализация

voidsetup(){

  // Настройка выводов двигателей и датчика освещенности

  pinMode(FIRST_X_IN1, OUTPUT); pinMode(FIRST_X_IN2, OUTPUT); pinMode(FIRST_X_IN3, OUTPUT); pinMode(FIRST_X_IN4, OUTPUT);

  pinMode(FIRST_Y_IN1, OUTPUT); pinMode(FIRST_Y_IN2, OUTPUT); pinMode(FIRST_Y_IN3, OUTPUT); pinMode(FIRST_Y_IN4, OUTPUT);

  pinMode(SECOND_X_IN1, OUTPUT); pinMode(SECOND_X_IN2, OUTPUT); pinMode(SECOND_X_IN3, OUTPUT); pinMode(SECOND_X_IN4, OUTPUT);

  pinMode(SECOND_Y_IN1, OUTPUT); pinMode(SECOND_Y_IN2, OUTPUT); pinMode(SECOND_Y_IN3, OUTPUT); pinMode(SECOND_Y_IN4, OUTPUT);

 

  pinMode(LIGHT_SENSOR_PIN, INPUT); // входбезподтяжки

 

  // Включаем сериал-порт для сообщений

  Serial.begin(9600);

  Serial.println("Устройство готово к работе.");

 

  // Запоминаем начальные углы платформ

  initialAngleFirstX = angleFirstX; // начальный угол по оси X

  initialAngleFirstY = angleFirstY; // начальныйуголпооси Y

}

 // Основной цикл программы

void loop() {

  // Проверяем датчик освещенности

  bool isDark = digitalRead(LIGHT_SENSOR_PIN) == HIGH; // высокий уровень при низкой освещенности

 

  if (!lowLightActive && isDark) {

    // Низкий уровень освещенности обнаружен впервые после дневного периода

    float relativeRotation = initialAngleFirstY - 90.0f; // поворотна 90 градусовнавосток

    rotateTo(relativeRotation); // выполняемповорот

    lowLightActive = true; // ставим флаг активной низкой освещенности

  } else if (lowLightActive && !isDark) {

    // Свет вернулся - сбрасываем флаг, чтобы повторно отреагировать на следующую ночь

    lowLightActive = false;

  }

 

  // Обычное функционирование системы при достаточном свете

  if (!lowLightActive || (lowLightActive && !isDark)) {

    // Получаем значения с фоторезисторов

    int right_value = analogRead(RIGHT_PHOTO_PIN);   // значениеправогофоторезистора

    int left_value = analogRead(LEFT_PHOTO_PIN);     // значениелевогофоторезистора

    int up_value = analogRead(UP_PHOTO_PIN);         // значениеверхнегофоторезистора

    int down_value = analogRead(DOWN_PHOTO_PIN);     // значениенижнегофоторезистора

 

Просмотров работы: 4