Ардуино для солнечных батарей

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Делаем плату Arduino автономной с питанием от солнечной батареи

Чтобы использовать плату Arduino в своих проектах где-нибудь за городом, например, на даче, желательно сделать ее автономной от сетевого питания и питания от батареек, которые часто приходится менять. В данном случае самым простым способом будет использование солнечной батареи и резервной батареи напряжением 9 В.

Это уникальный проект для тех любителей Arduino, которые интересуются повышением уровня автономности платы без необходимости использования компьютера и сетевого или заряжаемого источника питания.

Итак, для создания автономной платы Arduino с питанием от солнечной батареи нам потребуются следующие компоненты:

  • Плата Arduino
  • Аккумулятор или перезаряжаемая батарейка Крона 9В
  • Солнечная панель (примерно на 11 В)
  • Диод 1N4001
  • Электролитический конденсатор 100 мкФ 10 В
  • Разъем питания для Arduino

Все эти компоненты нужно подключить в соответствии с приведенной ниже схемой. Это довольно простое действие, поскольку схема не представляет никакой сложности. Не забудьте поменять джампер на плате Arduino в положение «»EXT».

Перед подключением штекера питания Arduino разберите его и установите, какой провод является плюсом питания (обычно красный), а какой «землей» (обычно черный).

В итоге вот такая может получиться плата, собранная «на коленке»:

Теперь Arduino можно использовать где-нибудь на природе и в местах, не слишком затронутых цивилизацией.

Источник

Солнечная панель на Arduino, отслеживающая местоположение Солнца

В этой статье мы рассмотрим проектирование солнечной панели на основе платы Arduino, отслеживающей местоположение Солнца (следующей за Солнцем) с целью максимизации количества энергии, вырабатываемой солнечной панелью (поскольку она всегда будет развернута в сторону света). Схема нашего устройства будет основана на использовании двух фоторезисторов (LDR — Light dependent resistor) для обнаружения света и сервомотора для автоматического поворота солнечной панели в направлении солнечного света.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Сервомотор sg90 (купить на AliExpress).
  3. Солнечная панель.
  4. Фоторезистор (2 шт.) (купить на AliExpress).
  5. Резистор 10 кОм (2 шт.) (купить на AliExpress).
  6. Батарея (от 6 до 12 В).

Как будет работать проект

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

В нашем проекте два фоторезистора будут помещены на обоих концах солнечной панели, а сервомотор будет использоваться для поворота солнечной панели. Сервомотор будет поворачивать солнечную панель в направлении того фоторезистора, чье сопротивление будет меньше, что будет означать что на него падает больше солнечного света. Если на оба фоторезистора будет падать одинаковое количество солнечного света, сервомотор не будет поворачивать солнечную панель. То есть сервомотор будет пытаться повернуть солнечную панель в такое положение, чтобы оба фоторезистора имели примерно одинаковое сопротивление, что будет означать что на них падает примерно одинаковое количество солнечного света. Если же сопротивление одного фоторезистора становится меньше чем сопротивление другого, то сервомотор будет поворачивать солнечную панель в направлении этого фоторезистора. Более детально все эти процессы можно посмотреть в видео, приведенном в конце статьи.

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

Для сборки конструкции нашего проекта необходимо выполнить следующую последовательность шагов.

Шаг 1. Возьмите небольшой кусок картона и сделайте в нем отверстие на одном из его концов. В дальнейшем мы будем вставлять в него шуруп чтобы зафиксировать сервомотор.

Шаг 2. Соедините вместе два небольших куска картона в форме буквы «V» с помощью клея. Прикрепите их к солнечной панели как показано на следующем рисунке.

Шаг 3. Затем прикрепите нижнюю часть этих скрепленных в форме буквы «V» кусков картона к тому куску картона, в котором вы ранее сделали отверстие.

Шаг 4. Затем через сделанное отверстие прикрепите к этому куску картона сервомотор с помощью шурупа (обычно данный шуруп идет в комплекте с сервомотором когда вы покупаете его).

Шаг 5. Теперь поместите сервомотор на другой кусок картона. Размер этого куска картона должен быть больше чем предыдущих использованных кусков картона чтобы на него могли поместиться собранная макетная плата с батареей.

Шаг 6. Прикрепите фоторезисторы по обоим сторонам солнечной панели с помощью клея. Припаяйте соединительные провода к их выводам, в дальнейшем к ним нужно будет подсоединять резисторы.

Шаг 7. Теперь поместите плату Arduino, батарею и макетную плату на лист картона и сделайте соединения, показанные на схеме, приведенной далее в этой статье. Финальный вид нашей конструкции показан на следующем рисунке.

Работа схемы

Схема устройства представлена на следующем рисунке.

В рассматриваемой нами конструкции солнечной панели, следующей за Солнцем, плата Arduino запитывается от батареи 9V, а вся остальная часть схемы запитывается от Arduino. Рекомендованное напряжение для питания платы Arduino составляет от 7 до 12 Вольт (хотя на самом деле можно подавать от 6 до 20 Вольт), поэтому наши 9 Вольт вполне укладываются в этот диапазон. Соедините положительный вывод батареи к контакту Vin платы Arduino, а отрицательный вывод батареи – к земле платы Arduino.

Затем соедините положительный контакт сервомотора с контактом 5V платы Arduino, а землю сервомотора – с землей Arduino. Сигнальный контакт сервомотора подсоедините к цифровому контакту 9 платы Arduino. Более подробно о подключении сервомотора к плате Arduino можно прочитать в этой статье.

Далее соедините один контакт фоторезистора с одним концом сопротивления 10 кОм и также соедините этот конец к контакту A0 платы Arduino, а другой конец резистора подсоедините к земле, а другой контакт фоторезистора – к 5V Arduino. Аналогично и для другого фоторезистора, только с использованием контакта A1 платы Arduino.

Исходный код программы

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

#include //подключение библиотеки для работы с сервомотором
Servo sg90; //даем имя нашему сервомотору, назовем его sg90
int initial_position = 90; //переменная для хранения начальной позиции сервомотора
int LDR1 = A0; //контакт, к которому подключен первый фоторезистор
int LDR2 = A1; // контакт, к которому подключен второй фоторезистор
int error = 5; //переменная для хранения ошибки
int servopin=9;

Команда sg90.attach(servopin) «подсоединяет» сервомотор к контакту 9 платы Arduino. Далее устанавливаем контакты, к которым подключены фоторезисторы, в режим ввода данных. Затем устанавливаем сервомотор в начальную позицию (90 градусов).

void setup()
<
sg90.attach(servopin); // присоединяет сервомотор к контакту 9
pinMode(LDR1, INPUT); // на ввод данных
pinMode(LDR2, INPUT); // на ввод данных
sg90.write(initial_position); //поворачиваем сервомотор в начальную позицию (90 градусов)
delay(2000); // задержка 2 секунды
>

Затем мы будем считывать значения с фоторезисторов и сохранять их в переменных R1 и R2. Далее мы будем вычислять разницу между этими значениями чтобы определить направление, в котором мы будем поворачивать серводвигатель. Если разница между ними будет равна 0 это будет означать что на оба фоторезистора будет падать одинаковое количество света, поэтому солнечную панель в этот момент времени поворачивать нет необходимости. Ранее мы объявили переменную для хранения ошибки и ее значение равно 5, назначение ее будет следующим – если разница между значениями двух фоторезисторов будет меньше значения этой переменной (5), то сервомотор не будет двигаться (изменять свое положение). А если больше – то сервомотор будет вращать солнечную панель в направлении того фоторезистора, на который падает больше света. То есть значение этой переменной как бы регулирует чувствительность нашего устройства и определяет ту минимальную границу, при превышении которой нам следует начинать вращать серводвигатель.

int R1 = analogRead(LDR1); // считывание значения с фоторезистора 1
int R2 = analogRead(LDR2); // считывание значения с фоторезистора 2
int diff1= abs(R1 — R2); // расчет разницы между значениями с фоторезисторов
int diff2= abs(R2 — R1);
if((diff1
//если разница меньше величины ошибки/погрешности (error) то не делаем ничего
> else <
if(R1 > R2)
<
initial_position = —initial_position; //поворачиваем серводвигатель в направлении 0 градусов
>
if(R1
<
initial_position = ++initial_position; //поворачиваем серводвигатель в направлении 180 градусов
>
>

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

Источник

Самодельный трекер для солнечных батарей на Arduino

Чтобы получить максимальную пользу от использования солнечных батарей применяют трекер. Его задача состоит в том, чтобы следить за нахождением солнца. Эту функцию выполняет серводвигатель, который выполняет свои вращательные движения благодаря двум датчикам. За счет своей простоты достигается высокий коэффициент полезности.

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

Трекер оснащен специальным контроллером фирмы Arduino, который служит для приема показаний с датчиков и их анализ. Эти значения показывают направленность к солнцу. Если они одинаковые, значит платформа правильно повернута на солнечную сторону. Когда они отличаются друг от друга, Arduino воздействует на серводвигатель, заставляя его поворачиваться в нужную светлую сторону. Платформа выполнят вращательные движения до тех пор, пока значения двух датчиков не будут равны между собой.

Чтобы не происходил чрезмерное вращение платформы, установлены специальные программные требования, которые в случае возникновения такой ситуации произведут ее остановку. В данной программе присутствует постоянная deadband , которая не дает платформе дергаться в разные стороны. Это может произойти из-за разных показателей. Константа позволит контроллеру не давать никаких указаний двигателю.

Также, конструкторами были разработаны две переменные, которые помогаю датчиками давать четкие значения.

Скетчи для Arduino

На начальном этапе установленные программы описывают библиотеки и определяют пины и константы.

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

Настройка заключительной части кода происходит с помощью функции loop. Благодаря ей показатели с датчиков поступают в контроллер, и только потом после тщательных расчетов выдается команда серводвигателю.

Программа обладает такой функцией как getTravel, которая определяет сторону поворота платформы.

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

Прикрепленные файлыLighttracker , СКЕТЧ

Автор: Симонов Константин. Россия, Москва.

Источник

Читайте также:  Контроллер дельта для солнечных батарей
Оцените статью