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

Данная реализация является моделью для прототипа. Описание полной сборки и настройки, как и сборки многих других занимательных устройств я описал в своей книге "Умная робототехника для начинающих. Разработка на Arduino".

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

Нам нужны электрокомпоненты. Я возьму: arduino uno, два сервопривода- четыре фоторезистора, четыре резистора на 1 кОм, соединительные провода, плата для монтажа (можно беспаечную).

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

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

Рассмотрим схему конструкции.

Схема подключения электрокомпонентов: сервоприводы, фоторезисторы, резисторы и плата arduino
Схема подключения электрокомпонентов: сервоприводы, фоторезисторы, резисторы и плата arduino

Как видно на схеме, показания с фоторезисторов будут отправляться на пины A0, A1, A2 и A4. Фоторезисторы в купе с резисторами образуют делители напряжения. Этот вариант помогает лучше отследить изменения показаний.

Сборка конструкции

Конструкция позволяет перемещать площадку трекера в пространстве ограниченной цилинром.

Инструменты и материалы
Инструменты и материалы
Конструкция платформы
Конструкция платформы

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

К концам проводов фоторезистора можно припаять штекеры, для быстрого монтажа.

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

В моём случае, первый сервопривод, который находится в основании, имеет промежуток вращения10^0- 180^0 , второй сервопривод имеет интервал поворота 10^0- 120^0 . Пометьте для себя в какую сторону фоторезистора поворачивается сервопривод при данных крайних точках диапазона.

В данной сборке второй сервопривод поворачивается от второго резистора (бл��жайшийк нам, см. рис.) в сторону четвёртого (самый дальний, см.рис), а первый сервопривод – от первого фоторезистора (крайний правыйсм. рис.) в сторону третьего (крайний левый, см. рис.).

Ниже представлен код программы на arduino ide, сохраним как sun_trecer.ino.

#include <Servo.h>
// вводим переменные для фоторезисторов, углов и сервоприводов
Servo myservo1;  
Servo myservo2; 

int foto1 =A0;
int foto2 =A1;
int foto3 =A2;
int foto4 =A3;
int i=10;
int j =20;
int k=0;

void setup() {
  // назначение пинов и скорость передачи данных
  myservo1.attach(13);
  myservo2.attach(12);
  pinMode(foto1, INPUT);
  pinMode(foto2, INPUT);
  pinMode(foto3, INPUT);
  pinMode(foto4, INPUT);
  Serial.begin(9600);
}

void loop() {
 // проверяем условие между первым и третьем фоторезистором
if ( analogRead(foto1)>analogRead(foto3))
 {
    if (analogRead(foto1)-analogRead(foto3)>40){
    i=i+1;
    myservo1.write(i);
    delay(20);
           }
    }
else {
    
    if (analogRead(foto3)-analogRead(foto1)>40){
    i=i-1  ;
    myservo1.write(i);
    delay(20);
          }
       }
  
// проверяем условие между вторым и  четвёртым фоторезистором
 if ( analogRead(foto2)>analogRead(foto4))
 {
    if (analogRead(foto2)-analogRead(foto4)>40){
    j=j+1;
    myservo2.write(j);
    delay(20);
           }
          }
  else {
     if (analogRead(foto4)-analogRead(foto2)>40){
    j=j-1  ;
    myservo2.write(j);
    delay(20);
          }
       }
// проверка граничных условий    
if (i<=10){
  i=10;
  }
else if (i>=180){
    i=180;
    }
if (j<=10){
  j=10;
  }
else if (j>=120){
    j=120;
    }
  
    // вывод значений для самопроверки
Serial.println("i=");
Serial.println(i);
Serial.println("foto1 =");
Serial.println(analogRead(foto1));
delay(300);
Serial.println("foto3 =");
Serial.println(analogRead(foto3));
Serial.println("j=");
Serial.println(j);
Serial.println("foto4 =");
Serial.println(analogRead(foto4));
Serial.println("foto2 =");
Serial.println(analogRead(foto2));
}

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

Видео на котором показан принцип работы солнечного трекера представлен здесь: