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

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

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

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

Домашний Регулирование температуры на atmega8 прототип рабочего трекера показан Инвертор gys 5000 не включается на фото Питание ниже:



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

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



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

Схема пульта ду на 4 команды Скетчи для Солнечные батареи для автомобиля Arduino

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

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


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

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


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

void Инвертор gys 5000 не включается loop()
{
  //Чтение значений Питание с фоторезисторов
   leftValue = Схема пульта ду на 4 команды analogRead(pinL);
   rightValue = Питание analogRead(pinR);
 
 Солнечные батареи для автомобиля Serial.print("L = "); Serial.Питание print(leftValue); Питание Serial.print(" Регулирование температуры на atmega8 | ");
 Serial.print("R Инвертор gys 5000 не включается = "); Питание Serial.print(rightValue); Serial.Схема пульта ду на 4 команды print(" | Солнечные батареи для автомобиля ");
 Serial.Питание print("E = Регулирование температуры на atmega8 "); Serial.print(error); Инвертор gys 5000 не включается Serial.print(" | ");
 Питание Serial.print("Eavg = "); Схема пульта ду на 4 команды Serial.print(errorAVG);
 Serial.Питание println();
 
  Солнечные батареи для автомобиля //Расчет
 error = leftValue - Питание rightValue;
 Питание errorAVG = Регулирование температуры на atmega8 (errorAVG + error) / Инвертор gys 5000 не включается 2;
  
 float Питание newOutput = output Схема пульта ду на 4 команды + 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;
}
}Питание >


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

int getTravel()
Регулирование температуры на atmega8 {
  // -1 = Влево; +1 = Вправо
  
 if (errorAVG < (deadband * -1))
 {
   return 1;
 }
 else
 {
   Схема пульта ду на 4 команды if (errorAVG > deadband)
   Солнечные батареи для автомобиля {
     return -1;
   }
   else
   {
     //Ничего не делаем
     return 0;
   }
 }
}


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

Питание ="TEXT-ALIGN: center">


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

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

Солнечные батареи для автомобиля -ALIGN: right">Источник: http://www.codeproject.com/