Солнечный трекер – это устройство, которое может отслеживать положение солнца. На трекеры ставят солнечные панели, чтобы они могли аккумулировать больше энергии, благодаря изменению угла поворота в пространстве.
Данная реализация является моделью для прототипа. Описание полной сборки и настройки, как и сборки многих других занимательных устройств я описал в своей книге "Умная робототехника для начинающих. Разработка на Arduino".
Для создания работающей модели нам понадобяться прочный, но лёгкий материал, на котором будет производиться монтаж электрокомпонентов и сам он будет использоваться в качестве несущей конструкции. Можно выбрать вспенённый пвх лист 3 мм или листовой прозрачный пластик 1,5-3 мм. Так же подойдёт корпус из под лазерных дисков.
Нам нужны электрокомпоненты. Я возьму: arduino uno, два сервопривода- четыре фоторезистора, четыре резистора на 1 кОм, соединительные провода, плата для монтажа (можно беспаечную).
Чтобы производить монтаж электроники, вырезать и собирать конструкцию трекера нам нужны инструменты. Я воспользуюсь: канцелярским ножом и ножницами, клеем для пластика или термоклеем, карандашом, линейкой или штангенциркулем, наждачной бумагой мелкой фракции, паяльной станцией с припоем и канифолью.
Фоторезисторы в этом устройстве будут работать, как датчики света. Располагаться они должны по краям подвижной платформу. С какой стороны более яркий свет – в ту сторону и поворачивается устройство.
Рассмотрим схему конструкции.

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


Итак, согласно конструкции трекер вращается вокрук вертикальной оси, но при этом может наклонять верхнюю площадку.
К концам проводов фоторезистора можно припаять штекеры, для быстрого монтажа.
После сборки конструкции, нужно отметить расположение фоторезисторов на панели относительно порядка подключения.
После этого, необходимо определить положение сервоприводов – где у каждого положения либо , либо
. Здесь, вам понадобиться найти градус предельного положения платформы, для лучшей работы устройства, т.е. мы занимаемся калибровкой устройства.
В моём случае, первый сервопривод, который находится в основании, имеет промежуток вращения , второй сервопривод имеет интервал поворота
. Пометьте для себя в какую сторону фоторезистора поворачивается сервопривод при данных крайних точках диапазона.
В данной сборке второй сервопривод поворачивается от второго резистора (бл��жайшийк нам, см. рис.) в сторону четвёртого (самый дальний, см.рис), а первый сервопривод – от первого фоторезистора (крайний правыйсм. рис.) в сторону третьего (крайний левый, см. рис.).
Ниже представлен код программы на 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)); }
Загрузим программу и проверим работоспособность устройства. Ваша конструкция может не совпадать с конструкцией, представленной в статье из-за другого подключения фоторезисторов.
Видео на котором показан принцип работы солнечного трекера представлен здесь:
