Проход по ссылкам навигацииГлавная : Статьи :

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

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

Схема инвертора 5000 трансформатор Солнечный трекер Самодельные унч на 5000 ватт - система, предназначенная для Цифровой индикатор позиции механический слежения за Схема инвертора 5000 трансформатор перемещением солнца, чтобы Программные часы на ардуино получить максимальный Чертить на андроид КПД от Схема инвертора 5000 трансформатор солнечных батарей.
Самодельные унч на 5000 ватт Концепция трекера предельно Цифровой индикатор позиции механический проста - по двум Схема инвертора 5000 трансформатор датчикам контроллер заставляет серводвигатель Программные часы на ардуино поворачивать платформу с Схема инвертора 5000 трансформатор солнечной Чертить на андроид батареей в ту сторону, где Схема инвертора 5000 трансформатор больше Схема инвертора 5000 трансформатор света.

Домашний Самодельные унч на 5000 ватт прототип рабочего трекера показан Цифровой индикатор позиции механический на фото Схема инвертора 5000 трансформатор ниже:



В проекте Программные часы на ардуино используется два Чертить на андроид датчика-фоторезистора, которые Схема инвертора 5000 трансформатор направлены в Самодельные унч на 5000 ватт разные стороны от Цифровой индикатор позиции механический плоской поверхности на 45°, Схема инвертора 5000 трансформатор т.е. относительно друг-друга Программные часы на ардуино фоторезисторы сориентированы на Схема инвертора 5000 трансформатор 90°. Чертить на андроид На сами датчики надеты колпачки, Схема инвертора 5000 трансформатор чтобы Схема инвертора 5000 трансформатор поток света, Самодельные унч на 5000 ватт падающий на них был Цифровой индикатор позиции механический узконаправленным.

В Схема инвертора 5000 трансформатор проекте используется контроллер Программные часы на ардуино Arduino. Контроллер Чертить на андроид периодически считывает Схема инвертора 5000 трансформатор значения с Самодельные унч на 5000 ватт двух датчиков и Цифровой индикатор позиции механический сравнивает их. Если значения Схема инвертора 5000 трансформатор с датчиков одинаковы, значит Программные часы на ардуино панель наведена на Схема инвертора 5000 трансформатор солнце. Чертить на андроид В случае, если значение одного Схема инвертора 5000 трансформатор из Схема инвертора 5000 трансформатор датчиков Самодельные унч на 5000 ватт отличается от другого, контроллер дает Цифровой индикатор позиции механический команду на Схема инвертора 5000 трансформатор серводвигатель для поворота Программные часы на ардуино платформы. Команда Чертить на андроид на серво Схема инвертора 5000 трансформатор работает до Самодельные унч на 5000 ватт тех пор, пока Цифровой индикатор позиции механический значения с датчиков не Схема инвертора 5000 трансформатор сравняются.



Для предотвращения чрезмерного Программные часы на ардуино поворота платформы присутствуют Схема инвертора 5000 трансформатор программные Чертить на андроид лимиты поворота, которые в случае Схема инвертора 5000 трансформатор необходимости Схема инвертора 5000 трансформатор можно отключить. Самодельные унч на 5000 ватт Также, в коде программы Цифровой индикатор позиции механический предусмотрена константа Схема инвертора 5000 трансформатор deadband, при разноПрограммные часы на ардуино сти с датчиков Чертить на андроид меньше значения Схема инвертора 5000 трансформатор этой константы, Самодельные унч на 5000 ватт контроллер не будет Цифровой индикатор позиции механический давать команду на поворот Схема инвертора 5000 трансформатор серводвигателя. Т.о. предотвращается Программные часы на ардуино дергание платформы (джиттер).
Схема инвертора 5000 трансформатор Также, Чертить на андроид на всякий случай добавлено 2 Схема инвертора 5000 трансформатор переменные Схема инвертора 5000 трансформатор позволяющие сгладить Самодельные унч на 5000 ватт значения от датчиков. Это Цифровой индикатор позиции механический помогает отфильтровать Схема инвертора 5000 трансформатор "выбросы" и шум.

Программные часы на ардуино Скетчи для Чертить на андроид Arduino

В Схема инвертора 5000 трансформатор начальной секции Самодельные унч на 5000 ватт программы описываются подключаемые Цифровой индикатор позиции механический библиотеки (в нашем случае Схема инвертора 5000 трансформатор servo.h), определяются пПрограммные часы на ардуино ины и константы

#include <servo.h>
 
//IO Pins
int pinL Схема инвертора 5000 трансформатор = Схема инвертора 5000 трансформатор 5;              //IO Самодельные унч на 5000 ватт Pin левого фоторезистора
int Цифровой индикатор позиции механический pinR = Схема инвертора 5000 трансформатор 4;              //IO Pin Программные часы на ардуино правого фоторезистора
Чертить на андроид int pinServo Схема инвертора 5000 трансформатор = 11;         Самодельные унч на 5000 ватт //PWM pin серво
 
Цифровой индикатор позиции механический int leftValue = 0;         Схема инвертора 5000 трансформатор //Значение левого фоторезистора
int Программные часы на ардуино rightValue = 0;        Схема инвертора 5000 трансформатор //Значение Чертить на андроид правого фоторезистора
int error =0;              Схема инвертора 5000 трансформатор //Разница Схема инвертора 5000 трансформатор между показаниями Самодельные унч на 5000 ватт двух датчиков
int errorAVG Цифровой индикатор позиции механический = 0;          Схема инвертора 5000 трансформатор //Error Average - Программные часы на ардуино Rolling 2 Чертить на андроид Point
 
int Схема инвертора 5000 трансформатор deadband = Самодельные унч на 5000 ватт 10;         //Мертвая зона Цифровой индикатор позиции механический (защита от джиттера)
//Servo Схема инвертора 5000 трансформатор Stuff
Servo hServo;              //servo Программные часы на ардуино object
int Position Схема инвертора 5000 трансформатор = Чертить на андроид 45;         //Position to write out
 
Схема инвертора 5000 трансформатор int Схема инвертора 5000 трансформатор minPos = Самодельные унч на 5000 ватт 5;            //Min позиция
int Цифровой индикатор позиции механический maxPos = Схема инвертора 5000 трансформатор 150;          //Max позиция
 
Программные часы на ардуино float output Чертить на андроид = (maxPos Схема инвертора 5000 трансформатор - minPos) Самодельные унч на 5000 ватт /2;  //Initial output Цифровой индикатор позиции механический Position
</servo.h>


В Схема инвертора 5000 трансформатор следующей части кода описывается Программные часы на ардуино функция Setup(). Данная Схема инвертора 5000 трансформатор функция Чертить на андроид выполняется только один раз при Схема инвертора 5000 трансформатор запуске Схема инвертора 5000 трансформатор программы или Самодельные унч на 5000 ватт после сброса контроллера. Здесь Цифровой индикатор позиции механический вы можете Схема инвертора 5000 трансформатор вывести в Serial Программные часы на ардуино Monitor какие Чертить на андроид либо данные Схема инвертора 5000 трансформатор для отладки, Самодельные унч на 5000 ватт или как в Цифровой индикатор позиции механический приведенном ниже примере сделать Схема инвертора 5000 трансформатор "прогон" серводвигателя по всей Программные часы на ардуино траектории до лимитов.

Схема инвертора 5000 трансформатор void Чертить на андроид setup()
{
Serial.begin(9600);
 
hServo.Схема инвертора 5000 трансформатор attach(pinServo);
 
Схема инвертора 5000 трансформатор //Set Servo Самодельные унч на 5000 ватт to Centre for Alignment Цифровой индикатор позиции механический Purpose
Serial.Схема инвертора 5000 трансформатор println("Перемещение к начальной Программные часы на ардуино позиции");
hServo.Чертить на андроид write(minPos);
delay(5000);
Схема инвертора 5000 трансформатор Serial.println("Перемещение Самодельные унч на 5000 ватт к конечной позиции");
Цифровой индикатор позиции механический hServo.write(maxPos);
delay(5000);
Serial.Схема инвертора 5000 трансформатор println("Перемещение к средней точке");
Программные часы на ардуино hServo.write(output);
delay(5000);
Схема инвертора 5000 трансформатор Serial.Чертить на андроид println("Going Live................");
}


Финальная Схема инвертора 5000 трансформатор часть Схема инвертора 5000 трансформатор кода Самодельные унч на 5000 ватт выполняется в циклической функции loop(). Цифровой индикатор позиции механический Здесь считываются Схема инвертора 5000 трансформатор значения с датчиков, Программные часы на ардуино производятся все Чертить на андроид расчеты и Схема инвертора 5000 трансформатор выдаются команды Самодельные унч на 5000 ватт на серводвигатель.

void Цифровой индикатор позиции механический loop()
{
  //Чтение значений Схема инвертора 5000 трансформатор с фоторезисторов
   leftValue = Программные часы на ардуино analogRead(pinL);
   rightValue = Схема инвертора 5000 трансформатор analogRead(pinR);
 
 Чертить на андроид Serial.print("L = "); Serial.Схема инвертора 5000 трансформатор print(leftValue); Схема инвертора 5000 трансформатор Serial.print(" Самодельные унч на 5000 ватт | ");
 Serial.print("R Цифровой индикатор позиции механический = "); Схема инвертора 5000 трансформатор Serial.print(rightValue); Serial.Программные часы на ардуино print(" | Чертить на андроид ");
 Serial.Схема инвертора 5000 трансформатор print("E = Самодельные унч на 5000 ватт "); Serial.print(error); Цифровой индикатор позиции механический Serial.print(" | ");
 Схема инвертора 5000 трансформатор Serial.print("Eavg = "); Программные часы на ардуино Serial.print(errorAVG);
 Serial.Схема инвертора 5000 трансформатор println();
 
  Чертить на андроид //Расчет
 error = leftValue - Схема инвертора 5000 трансформатор rightValue;
 Схема инвертора 5000 трансформатор errorAVG = Самодельные унч на 5000 ватт (errorAVG + error) / Цифровой индикатор позиции механический 2;
  
 float Схема инвертора 5000 трансформатор newOutput = output Программные часы на ардуино + getTravel();
  
 Чертить на андроид if (newOutput > maxPos)
 {
   Serial.println("At Upper Limit");
   newOutput = maxPos;
 }
 else
 {
   if (newOutput < minPos)
   {
     Serial.println("At Lower Limit");
     newOutput = minPos;
   }
 }
    Serial.println("Writing output");
     
    //Вывод команды управления серво
    hServo.write(newOutput);
    output = newOutput;
}
}Схема инвертора 5000 трансформатор >


Также, в программе используется вспомогательная функция getTravel(), которая используется для вычисления, куда поворачивать серво - влево, вправо или вообще ничего не делать. Функция просто возвращает значение: 0 - ничего не происходит, -1 поворот влево, +1 поворот право.

int getTravel()
Самодельные унч на 5000 ватт {
  // -1 = Влево; +1 = Вправо
  
 if (errorAVG < (deadband * -1))
 {
   return 1;
 }
 else
 {
   Программные часы на ардуино if (errorAVG > deadband)
   Чертить на андроид {
     return -1;
   }
   else
   {
     //Ничего не делаем
     return 0;
   }
 }
}


Видео работы устройства:

Схема инвертора 5000 трансформатор ="TEXT-ALIGN: center">


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

Вы не можете скачивать файлы с нашего сервера скетч PDE

Чертить на андроид -ALIGN: right">Источник: http://www.codeproject.com/