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

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

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

Arduino dimmer Солнечный трекер Цоколевка лазерных диодов - система, предназначенная для Http://radio-master.net/Articles.aspx?kID=84080 слежения за Arduino dimmer перемещением солнца, чтобы Эмуляторы электросхем получить максимальный Схема паяльника для труб КПД от Arduino dimmer солнечных батарей.
Цоколевка лазерных диодов Концепция трекера предельно Http://radio-master.net/Articles.aspx?kID=84080 проста - по двум Arduino dimmer датчикам контроллер заставляет серводвигатель Эмуляторы электросхем поворачивать платформу с Arduino dimmer солнечной Схема паяльника для труб батареей в ту сторону, где Arduino dimmer больше Arduino dimmer света.

Домашний Цоколевка лазерных диодов прототип рабочего трекера показан Http://radio-master.net/Articles.aspx?kID=84080 на фото Arduino dimmer ниже:



В проекте Эмуляторы электросхем используется два Схема паяльника для труб датчика-фоторезистора, которые Arduino dimmer направлены в Цоколевка лазерных диодов разные стороны от Http://radio-master.net/Articles.aspx?kID=84080 плоской поверхности на 45°, Arduino dimmer т.е. относительно друг-друга Эмуляторы электросхем фоторезисторы сориентированы на Arduino dimmer 90°. Схема паяльника для труб На сами датчики надеты колпачки, Arduino dimmer чтобы Arduino dimmer поток света, Цоколевка лазерных диодов падающий на них был Http://radio-master.net/Articles.aspx?kID=84080 узконаправленным.

В Arduino dimmer проекте используется контроллер Эмуляторы электросхем Arduino. Контроллер Схема паяльника для труб периодически считывает Arduino dimmer значения с Цоколевка лазерных диодов двух датчиков и Http://radio-master.net/Articles.aspx?kID=84080 сравнивает их. Если значения Arduino dimmer с датчиков одинаковы, значит Эмуляторы электросхем панель наведена на Arduino dimmer солнце. Схема паяльника для труб В случае, если значение одного Arduino dimmer из Arduino dimmer датчиков Цоколевка лазерных диодов отличается от другого, контроллер дает Http://radio-master.net/Articles.aspx?kID=84080 команду на Arduino dimmer серводвигатель для поворота Эмуляторы электросхем платформы. Команда Схема паяльника для труб на серво Arduino dimmer работает до Цоколевка лазерных диодов тех пор, пока Http://radio-master.net/Articles.aspx?kID=84080 значения с датчиков не Arduino dimmer сравняются.



Для предотвращения чрезмерного Эмуляторы электросхем поворота платформы присутствуют Arduino dimmer программные Схема паяльника для труб лимиты поворота, которые в случае Arduino dimmer необходимости Arduino dimmer можно отключить. Цоколевка лазерных диодов Также, в коде программы Http://radio-master.net/Articles.aspx?kID=84080 предусмотрена константа Arduino dimmer deadband, при разноЭмуляторы электросхем сти с датчиков Схема паяльника для труб меньше значения Arduino dimmer этой константы, Цоколевка лазерных диодов контроллер не будет Http://radio-master.net/Articles.aspx?kID=84080 давать команду на поворот Arduino dimmer серводвигателя. Т.о. предотвращается Эмуляторы электросхем дергание платформы (джиттер).
Arduino dimmer Также, Схема паяльника для труб на всякий случай добавлено 2 Arduino dimmer переменные Arduino dimmer позволяющие сгладить Цоколевка лазерных диодов значения от датчиков. Это Http://radio-master.net/Articles.aspx?kID=84080 помогает отфильтровать Arduino dimmer "выбросы" и шум.

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

В Arduino dimmer начальной секции Цоколевка лазерных диодов программы описываются подключаемые Http://radio-master.net/Articles.aspx?kID=84080 библиотеки (в нашем случае Arduino dimmer servo.h), определяются пЭмуляторы электросхем ины и константы

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


В Arduino dimmer следующей части кода описывается Эмуляторы электросхем функция Setup(). Данная Arduino dimmer функция Схема паяльника для труб выполняется только один раз при Arduino dimmer запуске Arduino dimmer программы или Цоколевка лазерных диодов после сброса контроллера. Здесь Http://radio-master.net/Articles.aspx?kID=84080 вы можете Arduino dimmer вывести в Serial Эмуляторы электросхем Monitor какие Схема паяльника для труб либо данные Arduino dimmer для отладки, Цоколевка лазерных диодов или как в Http://radio-master.net/Articles.aspx?kID=84080 приведенном ниже примере сделать Arduino dimmer "прогон" серводвигателя по всей Эмуляторы электросхем траектории до лимитов.

Arduino dimmer void Схема паяльника для труб setup()
{
Serial.begin(9600);
 
hServo.Arduino dimmer attach(pinServo);
 
Arduino dimmer //Set Servo Цоколевка лазерных диодов to Centre for Alignment Http://radio-master.net/Articles.aspx?kID=84080 Purpose
Serial.Arduino dimmer println("Перемещение к начальной Эмуляторы электросхем позиции");
hServo.Схема паяльника для труб write(minPos);
delay(5000);
Arduino dimmer Serial.println("Перемещение Цоколевка лазерных диодов к конечной позиции");
Http://radio-master.net/Articles.aspx?kID=84080 hServo.write(maxPos);
delay(5000);
Serial.Arduino dimmer println("Перемещение к средней точке");
Эмуляторы электросхем hServo.write(output);
delay(5000);
Arduino dimmer Serial.Схема паяльника для труб println("Going Live................");
}


Финальная Arduino dimmer часть Arduino dimmer кода Цоколевка лазерных диодов выполняется в циклической функции loop(). Http://radio-master.net/Articles.aspx?kID=84080 Здесь считываются Arduino dimmer значения с датчиков, Эмуляторы электросхем производятся все Схема паяльника для труб расчеты и Arduino dimmer выдаются команды Цоколевка лазерных диодов на серводвигатель.

void Http://radio-master.net/Articles.aspx?kID=84080 loop()
{
  //Чтение значений Arduino dimmer с фоторезисторов
   leftValue = Эмуляторы электросхем analogRead(pinL);
   rightValue = Arduino dimmer analogRead(pinR);
 
 Схема паяльника для труб Serial.print("L = "); Serial.Arduino dimmer print(leftValue); Arduino dimmer Serial.print(" Цоколевка лазерных диодов | ");
 Serial.print("R Http://radio-master.net/Articles.aspx?kID=84080 = "); Arduino dimmer Serial.print(rightValue); Serial.Эмуляторы электросхем print(" | Схема паяльника для труб ");
 Serial.Arduino dimmer print("E = Цоколевка лазерных диодов "); Serial.print(error); Http://radio-master.net/Articles.aspx?kID=84080 Serial.print(" | ");
 Arduino dimmer Serial.print("Eavg = "); Эмуляторы электросхем Serial.print(errorAVG);
 Serial.Arduino dimmer println();
 
  Схема паяльника для труб //Расчет
 error = leftValue - Arduino dimmer rightValue;
 Arduino dimmer errorAVG = Цоколевка лазерных диодов (errorAVG + error) / Http://radio-master.net/Articles.aspx?kID=84080 2;
  
 float Arduino dimmer 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;
}
}Arduino dimmer >


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

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


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

Arduino dimmer ="TEXT-ALIGN: center">


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

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

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