Меню

Схема трекера для солнца

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

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

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

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

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

Скетчи для Arduino

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

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

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

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

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

Источник

Солнечный трекер своими руками

Канал “тяп-ляп” показал, как сделать самодельный солнечный трекер для панелей. Они будут автоматически поворачивается вслед за солнцем, увеличивая КПД энергетической установки.

Понадобятся две солнечные батареи мощностью по по 3,5 ватт. На на выходе у одной более 6 вольт, что при последовательном соединении двух батарей даст более 12 вольт. На обратной стороне USB гнездо. Три выхода из трех сегментов батареи. Каждый из которых генерируют по 2 вольта. То есть при необходимости можно подключиться соответствующим образом и получить 2, 4, 6 вольт.

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

Начнем работу своими руками с электронной начинки. Схема трекера для солнечной панели ниже.
Электрическая схема, плата, программа для редактирования платы: https://cloud.mail.ru/public/DbmZ/5NBCG4vsJ
Схема очень простая и легкая для повторения. Она наиболее удачная из нескольких проверенных вариантов. Но даже ей автору пришлось немножко изменить. Пришлось изменить номиналы переменных и постоянных резисторов, была спроектирована схема печатной платы.

Для начала распечатаем схему печатной платы трекера на специальной бумаге. Это лазерно-утюжная технология. Бумага имеет глянцевый вид. С обратной стороны она обычная матовая. Печатать нужно на лазерном принтере на глянцевой стороне. После контакта с утюгом надо дать остыть и бумага легко отрывается от слоя.

Перед переносом текстолит обязательно нужно обезжирить. Лучше всего использовать мелкую наждачную бумагу. Прикладываем рисунок к плате и проглаживаем горячим утюгом 2 минуты.
Теперь нужно вытравить плату трекера. Можно использовать персульфат аммония. Продается в магазинах радиотоваров. Один и тот же раствор можно использовать несколько раз. Желательно перед применением подогрев жидкости до 45 градусов. Это сильно ускорит процесс травления. Через 20 минут правление успешно завершилось. Теперь нужно снять тонер. Опять используем наждачку или ацетон.

Теперь можно проделать отверстие в плате. Можно приступать к пайке деталей.

Сердце солнечного трекера – операционный усилитель lm324n. Два транзистора типа 41c, типа 42c. Один керамический конденсатор 104. Многие детали автор разработки заменил на smd тип. Вместо диодов 5408 использованные их аналоги smd типа. Главное использовать не менее 3 ампер. Один резистор на 15 килоом, 1 на 47 килоом. Два фоторезистора. 2 подстроечных резисторов на 100 и 10 килоом. Последний отвечает за чувствительность фото датчика.

Далее смотрите на видео об изготовлении своими руками трекера с 8 минуты

Устройство слежения за солнцем для солнечных панелей – гелиостат

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

Схема гелиостата состоит из тактового генератора (DD1.1, DD1.2), двух интегрирующих цепей (VD1R2C2, VD2R3C3), такого же числа формирователей (DD1.3, DD1.4), цифрового компаратора (DD2), двух инверторов (DD1.5, DD1.6) и транзисторного коммутатора (VT1—VT6) направления вращения электродвигателя М1, управляющего поворотом платформы, на которой установлена солнечная батарея. С поступлением питания генератор на элементах DD1.1, DD1.2 вырабатывает тактовые импульсы, следующие с частотой около 300 Гц. При работе устройства сравниваются длительности импульсов, сформированных инверторами DD1.3, DD1.4 и интегрирующими цепями VD1R2C2, VD2R3C3. Их крутизна меняется в зависимости от постоянной времени интегрирования, которая, в свою очередь, зависит от освещенности фотодиодов VD1 и VD2 (ток зарядки конденсаторов С2 и СЗ пропорционален их освещенности). Сигналы с выходов интегрирующих цепей поступают на формирователи уровня DD1.3, DD1.4 и далее — на цифровой компаратор, выполненный на элементах микросхемы DD2. В зависимости от соотношения длительностей импульсов, поступающих на входы компаратора, сигнал низкого уровня появляется на выходе элемента DD2.3 (вывод 11) или DD2.4 (вывод 4). При равной освещенности фотодиодов на обоих выходах компаратора присутствуют сигналы высокого уровня. Инверторы DD1.5 и DD1.6 необходимы для управления транзисторами VT1 и VT2. Высокий уровень сигнала на выходе первого инвертора открывает транзистор VT1, на выходе второго — VT2. Нагрузками этих транзисторов являются ключи на мощных транзисторах VT3, VT6 и VT4, VT5, которые коммутируют напряжение питания электродвигателя М1. Цепи R4C4R6 и R5C5R7 сглаживают пульсации на базах управляющих транзисторов VT1 HVT2. Направление вращения двигателя меняется в зависимости от полярности подключения к источнику питания. Цифровой компаратор не позволяет одновременно открыться всем ключевым транзисторам, и, таким образом, обеспечивает высокую надежность системы.

Утром с восходом солнца освещенность фотодиодов VD1 и VD2 окажется различной, и электродвигатель начнет поворачивать солнечную батарею с запада на восток. По мере уменьшения разницы в длительностях импульсов формирователей, будет уменьшаться длительность результирующего импульса, и скорость поворота солнечной батареи плавно будет замедляться, что обеспечит ее точное позиционирование на солнце. Таким образом, при импульсном управлении вращение вала электродвигателя можно передавать платформе с солнечной батареей непосредственно, без применения редуктора. В течение дня платформа с солнечной панелью будет поворачиваться за движением солнца. С наступлением сумерек длительности импульсов на входе цифрового компаратора окажутся одинаковыми, и система перейдет в дежурный режим. В этом состоянии потребляемый устройством ток не превышает 1,2 мА (в режиме ориентации он зависит от мощности двигателя).

Если дополнить конструкцию блоком вертикального отклонения, собранным по аналогичной схеме, можно полностью автоматизировать ориентацию батареи в обеих плоскостях. Если вдруг указанных на схеме микросхем не оказалось, их можно заменить на микросхемы серий К564, К176 (при напряжении питания 5…12 В). Транзисторы КТ315А заменимы любыми из серий КТ201, КТ315, КТ342, КТ3102, а КТ814А — любыми из серий КТ814, КТ816, КТ818, а также германиевыми П213—П215, П217. В последнем случае между эмиттерами и базами транзисторов VT3— VT6 следует включить резисторы сопротивлением 1…10 кОм, чтобы предотвратить их случайное открывание вследствие значительного обратного тока. Вместо фотодиодов ФД256 можно поставить кусочки от солнечных элементов (включенные с соблюдением полярности), фототранзисторы без цепей смещения, а также фоторезисторы, например, СФ2, СФЗ или ФСК любой модификации. Следует только подобрать (изменением сопротивления резистора R1) частоту тактового генератора по надежному срабатыванию цифрового компаратора. Для защиты фотодиодов от избыточного облучения применен зеленый светофильтр. Между фото датчиками помещают непрозрачную шторку. Ее закрепляют перпендикулярно плате с таким расчетом, чтобы при изменении угла освещения она затеняла один из фотодиодов.

Читайте также:  Витамины которые мы получаем от солнца

Источник

Народный трекер для солнечных панелей

В России в декабре 2019 года приняли закон о микрогенерации, одновременно стоимость элементов для строительства домашних Электростанций снижается. Поэтому рынок зелёной энергетики будет в нашей стране активно развиваться. Смотрим видео на моем канале youtube

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

Основные компоненты солнечной электростанции (СЭС)

  • Солнечные панели
  • Рэйлинги и крепеж
  • Провода и кабели
  • Гибридный/сетевой инвертор
  • Аккумуляторная система храниения энергии
  • Электрощит и автоматические выключатели
  • Солнечный трекер (поворотная платформа приводами наклона)
  • Анемометр (датчик ветра)
  • Контроллер солнечного трекера

Схема контроллера солнечного трекера на часах реального времени

Скетч и библиотеки

Я нашёл интересную библиотеку SolarLib, написанную Люком Миллером в 2012 году. Правда в аннотации автор прямо пишет, что из-за высокой точности вычислений либа работает только на мощных 32 битных ARM микроконтроллерах, а на всяком маломощном старье типа ардуино уно/нано она даже не компилится.

Однако, автор оставил ссылку на сайт американского национального управления Океанами и Атмосферой, на котором я нашёл много интересного про расчеты положения небесных тел.

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

Я решил принести миру немного пользы и на основе этих формул и частично либы Люка Миллера написал свою библиотеку SolarPos. Это простой пример использования моей библиотеки.

При инициализации объекта SolarPos ему передаются, часовой пояс и гео-координаты установки панелей, а методы getSEC_Corr() и getSAA() возвращают угол возвышения и азимут солнца в зависимости от текущего времени. Моя библиотека предназначена для работы совместно с часами реального времени, поэтому она использует объекты времени из библиотеки DS3231M.h. При этом, моя либа спокойно компилится под уно/нано и уж тем более под крутые еспшки и стмки, оставляя достаточно места под юзерский код.

Скетч найдёте на странице проекта на GitHub.

Описание режимов работы контроллера

Тут будет текст.

Поддержи Автора!

Это Проект большой и интересный. Чтобы довести его до ума понадобится много временных и материальных ресурсов, поэтому мне нужна ваша поддержка. Здесь будут выложены схемы, чертежи, 3D модели, полный список использованных компонентов и подробное руководство по сборке.

Если вам нравится идея проекта Народного трекера — поддержите автора!

Если проект народного трекера окажется востребованным, мы вместе сделаем Автономное электричество доступней.

статья находится в процессе написания…

124 комментария к « Народный трекер для солнечных панелей »

Добро!
методом исключение выяснил что проблема з библиотекой Timezone, когда добавляю выскакивают ошибки

ВСЕ СОБРАЛ НА ТРЕКЕРЕ ЗАПУСТИЛ
ВКЛЮЧАЕТСЯ РЕЛЕ ГОРИЗОНТАЛИ ПИН 8
БОЛЬШЕ НИЧЕГО
ПРОБОВАЛ КРУТИТЬ З САМОГО НАЧАЛА.
УГЛЫ И ИМПУЛЬСЫ ПОСТАВИЛ ВРОДИ ПРАВИЛЬНО

if (enc1Counter 99999) enc1Counter = 600; //счетчик для 1-го энкодера (горизонт)
if (enc2Counter 99999) enc1Counter = 45; //счетчик для 2-го энкодера (вертикаль)

if (old_Slegenie_G 99999) old_Slegenie_G = 450; //переменная направление для поворота по горизонту (180*10) 10-число импульсов на градус поворота
if (old_Slegenie_W 99999) old_Slegenie_W = 0; //переменная направление для поворота по вертикали

Можно попробовать еще здесь заменить все на нули, то сеть:

if (enc1Counter 99999) enc1Counter = 0; //счетчик для 1-го энкодера (горизонт)
if (enc2Counter 99999) enc1Counter = 0; //счетчик для 2-го энкодера (вертикаль)

if (old_Slegenie_G 99999) old_Slegenie_G = 0; //переменная направление для поворота по горизонту (180*10) 10-число импульсов на градус поворота
if (old_Slegenie_W 99999) old_Slegenie_W = 0; //переменная направление для поворота по вертикали

Спасибо, буду пробовать
Экранчик нужно, логика логикой, даже не знаю время правильно ли зашилось. Буду покупать в китае долго, буду искать по месту.
и сегодня было трудно подсчитать импульсы (в итоге поставил метку на «енкодере-герконе» маркером и сняли с женой видео потом просматривали 6 раз потом математика и калькулятор. Знаю точно (встречал где то на ютубе) что можно сделать проверочной прогон по осям для подсчета импульсов, траектория движение в градусах от и до программа уже знает. Легко вычислить. Прогон-проверку делать при нажатии какой то кнопочки (потом ее можно снять) а число записать в Епрон навсегда.

на столе, перестало включатся реле(LED на ардуино)
когда подключил к трекеру опять включилось реле
думаю правильно ли я подключаю пины:
d8,d9 реле горизонталь
d6 геркон горизонталь
d12,d13 реле вертикаль
d7 геркон вертикаль
txd — rxd- gps
rxd -txd gps
a4 — scl часы
a5 — sda часы

пересмотрел часы правильно
a5 — scl часы
a4 — sda часы
было подключено правильно

экран нашел оплатил жду пару дней почтой

Пины подключены правильно. Программу для проверочного прогона делать не обязательно. Достаточно просто подключить мотор актуатора к источнику питания напрямую и програнть от крайнего до максимального состояния. Число импульсов будет на экранчике. В ЕЕПРОМ так же не обязательно его записывать, достаточно ввести в скетч. Так как программа с открытым кодом, то есть есть исходник (скетч). В роли датчика положения трекера служит обычный геркон, потому нет точной привязки к координатам. После сброса питания трекер не понимает в каком положении он находится, куда направлен. Точка отсчета будет менятся. Для того чтобы запоминал координаты использую пин 2, подключенный к источнику питания 5в. А питание ардуины подключаю через диод и конденсатор достаточно большой емкости. Так же вместо кнопки, для записи координат в ЕЕПРОМ можно использовать реле, которое будет срабатывать при отключении питания. Это обязательно, или начнется чехорда…. Ну или вариант сделать как в принтерах например (или станках чпу), при включении питания трекер сначала возвращается в ноль, в крайнюю точку, а потом уже высчитывает координаты и поворачивается в свое рабочее положение.

экранчика нет но будет, увижу свои расчетные импульсы думаю погрешность 1-2 шт.
Наверное проще сделать второй вариант, так так электричество не часто пропадает можно и прогнать трекер

подключил экран, показывает в зеркальной отражении

Надо открыть файл lcd1202.cpp из библиотеки LCD1202 текстовым редактором найти подпрограмму инициализации дисплея и удалить или закоментировать две строки —

SendByte(LCD_C,0xC8); // mirror Y axis (about X axis)
SendByte(LCD_C,0xA1); // Инвертировать экран по горизонтали

ниже по тексту это как есть —

void LCD1202::Inicialize() <
pinMode(CS, OUTPUT);
pinMode(Data, OUTPUT);
pinMode(Clock, OUTPUT);

// Инициализация дисплея
dWrite(Clock, 0);
dWrite(Data, 0);
dWrite(CS, 0);
delay(20);
dWrite(CS, 1);

SendByte(LCD_C,0x2F); // Power control set(charge pump on/off)
SendByte(LCD_C,0xA4);
SendByte(LCD_C,0xC8); // mirror Y axis (about X axis)
SendByte(LCD_C,0xA1); // Инвертировать экран по горизонтали
SendByte(LCD_C,0xAF); // экран вкл/выкл
Clear_LCD();
Update();
>

https://drive.google.com/file/d/1TRqbJ1ODdGNgzMvQh5No_3x093yi_DZR/view?usp=sharing
вот время правильно показывает
азимут и склонение думаю так же правильно
сигнал GPS — НЕТ (наверное потому что в доме нет сигнала)
г:0 и в:0 — это импульсы.
и все время включается реле (выход с ардуино D8)
if (enc1Counter 99999) enc1Counter = 600; //счетчик для 1-го энкодера (горизонт)
if (enc2Counter 99999) enc1Counter = 45; //счетчик для 2-го энкодера (вертикаль
на нули поменял не сработало
Ардуино использую уже нормальную не WAVGAT (хотя с библиотеками под ее все завелось)

пока писал GPS сигнал уже ДА. ) хоть что то))))

Если не использовать сохранение координат в еепром по нажатию кнопки или падению напряжения, то в скетче надо удалить —

pinMode(2, INPUT);
// D2 это прерывание 0
// обработчик — функция SAVE_POS
// FALLING — при падении напряжения будет сигнал 0, его и ловим
attachInterrupt(0, SAVE_POS, FALLING);

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

GPS приемник имеет холодный старт и горячий. При первом включении (холодный старт) время поиска спутников может быть несколько минут.

Читайте также:  Купальный комбинезон для малышей с защитой от солнца

г: и в: — это импульсы, должны меняться при срабатывании геркона.

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

к вопросу сохранение координат вернёмся у меня нет реле и сколько это достаточная емкость конденсатора?
а от почему включается реле — это проблема номер 1

и такой вопрос когда нажимаю ресет или пропадает питание часы, координаты возвращаются к тем которые зашивались сначала
может такое быть что модуль не DS3231 а DS1307 или надо что то поменять в скетче?

Скетч с установкой часов надо прошить только один раз, после закоментировать строку с установкой часов и еще раз прошить. Иначе при каждом старте и ресете часы будут переустанавливаться. Ежели DS1307 работает нормально с библиотекой от DS3231, то ничего менять не надо. Отличия этих часов только в точности (пишут что DS3231 точнее) и в DS3231 есть датчик температуры, что иногда очень удобно. По факту мой модуль часов DS1307 за год ушел всего на три секунды, вероятно мне повезло. При сбросе питания координаты будут возвращаться к зашитым изначально. Емкость конденсатора надо подобрать методлм тычка, 1000 мкф может будет достаточно, а может и нет. Реле включается по сигналу с D8 — это правильно. Нет сигналов с геркона, Г:0 — это неверное значение для трекера, должно быть значение равное Азимут на число импульсов, или максимальный угол для горизонта или минимальный для горизонта, но никак не ноль….. Надо проверять прохождение импульсов.

часики после прошивки- закоментировки- прошивки затикали правильно даже после выключение -спасибо.
сначала заказал DS1307 а когда прочитал что DS3231 точнее заказал в Китае еще не пришли, но если 1 раз в месяц будет сихронизация с GPS не очень и нужно даже если отклонение буде на 10 минут)))
реле кажется работает не правильно: пробовал до восхода солнца и уже после.
В моем случае трекер имеет амплитуду (дугу) всего 70 градусов от 135 до 204. 1 импульс = 1 градус.
сейчас должно быть на экранчике 70 импульсов и реле должно выключится. Провел експеримент наклацал (назамыкал) 70 импульсов (пробовал и 130 импусьмов больше смысла нет) и должно было выкючится реле. Так как парковка у меня на max (204 градуса) а возврат на 135 градусов (0 испульсов) только утром.

я Вас понял мое количество импулсов для выключение реле 204 (провел экспиримент); вертикаль также поправил
реле выключилось
но боюсь вертикаль я не смогу пока что реализовать в механике (нужно актуатор). нужно как то его отключить
если угол в скетче поставить например и максимальный и минимальный на уровне 35 градусов в моем случае 35 импульсов. По идее реле вертикали не должно срабатывать
Дмитрий Вы молодець.

экран показывает ноли времени и ноли дата
часы не тикают
вопрос: часы реального времени накрылись?
скетч пробовал с правильным временем зашивать — не выходит
ДО ЭТОГО ВСЁ РАБОТАЛО ХОРОШО

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

Часы сегодня будут новые, пытался засунуть систему в коробочку для монтажа на трекер наверное что то закоротил (навсегда:))
а я думаю как подключить через пин 2. и как оно работает. если основное питание приходит 12в. а на 5в. и 3.3в запитаны часы и ЖПС. которые также будут «садить» конденсатор.
идея с прогоном перед работой хорошая только не пойму зачем концевик к андурино цеплять
если можно включить реле на 60 секунд (на возврат) — (количество секунд у кажного будет разное должно настраиваться) мотор выключится физически концевиком, упрется в минимальный азимут возможной механикой. А теперь ми можем опять позиционировать азимута и наклон по импульсах и SolarPos как уже умеем.

з драйвером так же можно поступить

идея возврата трекера на исходную проста и не нужно дополнительной механики
прописать в скетче для исполнение только один раз при загрузки (включении) ардуино и не нужно настраивать даже при первом включении в систему.

а да и при включении в скетче выставлять по умолчанию положение угол азимут в градусах*на импульсы (те что уже извесны как минимальное положение миханики) и будет счастье

собрал с новыми часами, все работает
нашел ошибку в скетче
// потому следующие строки прописывают примерные цифры, не выходящие за пределы возможностей трекера
if (enc1Counter 99999) enc1Counter = 49; //счетчик для 1-го энкодера (горизонт)
if (enc2Counter 99999) enc1Counter = 189; //счетчик для 2-го энкодера (вертикаль)
Когда в скетче ставлю: 189 вертикаль (как в примере) на экранчику при включении показывает «Г: 189»
49 горизонт на экранчику при включении показывает «В: -1»

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

1.
if (enc1Counter 99999) enc1Counter = 135; //счетчик для 1-го энкодера (горизонт)
if (enc2Counter 99999) enc2Counter = 35; //счетчик для 2-го энкодера (вертикаль)
на
enc1Counter = 135;
enc2Counter = 35;
теперь всегда при включении стоят мои минимальные показание

2.
с вертикалю я поступил так поставил
#define MIN_W 35 // устанавливаем минимальный угол для трекера по вертикали
#define MAX_W 35 // устанавливаем максимальный угол для трекера по вертикали
произвольное число (у меня приблизительно под таким градусом стоят)
и поставил
enc2Counter = 35;
теперь реле программно не будет включатся и в любой момент можно будет поменять по нужные цифры
Вариант рабочий уже проверил

3.
#define DEBOUNCE_1 25 // таймаут антидребезга, миллисекунды
для себя поставил 25 так как 50 пропустило почти половину импульсов — полезная настройка «под себя»

4.
при срабатывание реле (выключение) сходит с ума экранчик, может поставить конденсатор
нужен совет куда поставить в какую цепь и какой

Хор. Понял про настройки типа трекера (одна ось или две). Все оказалось гораздо проще. По поводу реле не знаю. Скорее всего «шумит» обмотка реле из-за эдс самоиндукции в момент выключения. В результате «глючит» или ардуина или экранчик. Можно попробовать повесить керамические конденсаторы на цепях питания экранчика и ардуины. И еще как вариант керамический конденсатор на пине «reset» экранчика. Емкость 0.1 мкф.

И еще как вариант керамические конденсаторы на пинах, которые управляют реле.

снова новости
— припаял конденсаторы — экран работает без проблем
— занялся настройкой трекер — то спешит то отстает — проблема нужно на 1 градус ставить 1,6 импульса а такого не бывает
— опять згорели часы походу совпало с выключением реле — горели з дымком как положено
— сгорел стабилизатор AMS1117-5.0 на ардуино

что сделано и будет сделано
-купить часы
-купить стабизизатор
-уже на питание припаял конденсатор 1000 мкф.

вычитал не очень пойму как диод ставить- у меня модуль там вроди все это есть
Для цепей постоянного тока обязательно ставить мощный диод обратно-параллельно нагрузке, максимально близко к клеммам реле. Диод примет (замкнёт) на себя индуктивный выброс от мотора/катушки;
Туда же, на клеммы реле, можно поставить RC цепочку, называемую в этом случае искрогасящей: резистор 39 Ом 0.5 Вт, конденсатор 0.1 мкФ 400V (для цепи 220В);

Диод впаивается параллельно катушке реле, катод к плюсу управляющего напряжения, анод к минусу. Стабилитрон вылетел по причине того, что в момент выключения ЭДС самоиндукции дало импульс в цепь питания +12V. Стабилитрон не выдержал. Пишут, что ардуину лучше не питать от 12 вольт, так как это почти предельное напряжение для AMS1117-5.0 (в режиме нагрузки, и еще этот стабилитрон как положен китайский, с характеристиками сильно отличающимися от даташитов). На всякий случай можно ставить мощный стабилитрон на 13 вольт параллельно питанию 12 вольт, он возьмет на себя импульс. Искрогасящая цепь на клемах реле нужна только для снижения импульсных помех и снижения вероятности пригорания контактов при коммутации больших токов.

Читайте также:  Хорошая косметика для защиты от солнца

В том случае, если на градус поворота приходится не целое число импульсов, то решения два. 1 — перенастроить механику. 2 — ввести коэффициент пропорциональности.
В Вашем случае ставить в программе не 1.6 импульс на градус поворота, а 1.6*0.4=0.64. То есть ставите 0.64 импульса на градус поворота. Программа перемножит, округлит до целого числа. Будет примерно точно. Ну или еще точнее 1.6*0.39 = 0.62

Обновил архив на яндекс диске. Добавил Ваш вапиант, без еепром.

Все скетчи выдают ошибку при компиляции ‘minute’ was not declared in this scope, потом и часы и т.д.

Fursic, нужно скачать библиотеку Timezone в архиве она корявая (ранее писал про проблему как ее я решал)

спасибо большое.
буду тестить
нужно немного время железо привести в порядок
лучше программно регулировать импульсы,
есть вопрос число 1,6 импульсы а 0,39 думал гадал не придумал что за цифра.

очень интересно как у Вас продвигается проект?
я своими «хотелками» совсем ушел от вашей первоначальной идеи
а ж не удобно как то.

Мой проект никак не продвигается. Тарелка спутниковая есть. Моторы — редукторы есть. Нет только нормальных шпилек с тропецевидной резьбой. Раньше думал купить в леруа обычные шпильки. Но как то упустил тот момент, когда резьба на таких шпильках стала совсем не по госту. Отвратительное качество. И сейчас занимаюсь водоснабжением дома и канлизацией. Это по важнее будет. На счет скетча, мне совсем не трудно переделывать и доделывать. Для меня важнее обкатать схему и прошивку.

Коэффициент пропорциональности получил методом простого расчета. Нужно чтобы трекер всегда поворачивался на целое число импульсов. Градусы не стал трогать, чтобы не путаться с вводом значений. Потому решил с импульсами помудрить. Формула расчета простая: 160° * 1.6 * X = 100 импульсов. То есть при повороте на 160 градусов при 1.6 импульсов на градус нужно 100 импульсов. Остается найти X, это и будет коэффициент пропорциональности. А дальше, чтобы не переписывать все программу (формулы расчета), просто 1.6*0.39=0.62. Это число и вводим в число импульсов на градус.

согласен вода и канализация важней.
http://linear-tech.ru/shariko-vintovye-peredachi-shvp.html — намного дороже чем в строительном но это уже специально для ЧПУ качество получше.
вот у меня сейчас руки чешутся сделать вторую «крутилку» — трекер, жена обижается что меня не видит а если видит я не присутствую, где то летаю:))))
за пояснение спасибо буду дальше настраивать. уже с умом.
и не могу скачать Proteus 8.10 нормальный. один нашел открывает проект с кучей ошибок типа нет библиотек и т.д те что по младше просто ругается что версия не подходящая

Чтобы протеус не ругался на отсутствие бибилиотек, надо скачать библиотеки и модели дисплея нокиа. Это не офф. библиотеки, а самоделки. На сайте Kazus надо искать, ну или в поисковике. Название — Nokia LCDs — Proteus VSM Models. http://kazus.ru/forums/showthread.php?p=286765

ЭКРАН ДОБАВИЛ, НО СКЕТЧ НЕ ДАЕТ ДОБАВИТЬ
Proteus думаю глючный

Скетч не надо добавлять (в мои проекты). Наводите курсор на микроконтроллер,щелкаете сначала правой мышкой, потом левой, выбираете прошику (.hex или .elf). Запускаете симуляцию. Можно и в протеусе проекты создавать сразу с компилятором ардуино, но у меня в какойто момент компиляции начались с ошибками, потому я раздельно делаю.

— восстановил железо, стабилитрон на 13 вольт есть но не припаял пока

— добавил в скетч начальные импульсы для «нулевого» положение трекера разрешен механикой
enc1Counter = 110;
enc2Counter = 35;

— попробую на практике у суботу (правда долго ждать. )
— симуляцию пробовал но как менять файлы *.HEX, *ELF что бы свои эксперименты проводить

После компиляции скетча ардуино во временной папке (Temp) надо искать папку «arduino_build_ «. В этой папке будут файлы с расширением *.HEX, *ELF и другие. Можно скопировать и скинуть в папку с проектом. После закрытия ARDUINO IDE временные файлы автоматически удаляются, потому компилятор закрывать можно только после копирования файлов.

Спасибо за информацию
Вы на все мои вопросы отвечаете:
— где берёте терпение?
— как вы это всё знаете?:)

Я не спец по электронике и программированию, любитель самоучка. Электроникам — увлечение с детства. И часто что то либо разрабатываю либо ломаю. Потому все это опытным путем закреплено в сознании. Терпение — это черта характера и состояние сознания. В любой непонятной ситуации — медитируй:)

добрый день.
Сделано:
— у меня блок питание двигателя 36в от него стояла «понижайка» на ардуино и реле на 12в.
Для того что бы не горел стабилизатор на ардуино подключил другую»понижайку» на питание реле. теперь питание реле — 12в и ардуино отдельно — 9в
— добавил на всякий случай стабилитрон 13в паралельно основного питание 12в — как предлагалось выше к питанию реле
— в скетче прописал высчитанный коэффициент теперь трекер крутится точно за солнцем. Супер.
— для удобства в скетче: поставил начальные импульсы нулевого (возможный угол механики) положение трекера
enc1Counter = 68;
enc2Counter = 21;
и перевел их в градусы так информативнее и понятней
lcd.print(15, 11, enc1Counter/IMP_G);
lcd.print(65, 11, enc2Counter/IMP_W);
теперь экранчик показывает расчетное положение солнца и реальный азимут трекера в градусах

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

Прогнал управление трекера на протяжение дня. Работает хорошо. После выключение электричества трекер возвращается на «0» и снова стает на правильный азимут солнца.

недоделано:
-глючит экран
-не проверял (настраивал) смену времени лето/зима
-не проверял (настраивал) управление наклона трекера — нет установленого актуатора (будет в будущем. )

Так что проект удался. Дмитрий большое спасибо.

Здравия! Рад, что моя задумка удалась! Зима/лето (перевод часов) нужна только для отображения часов. Трекер работает круглый год по одним часам (без перевода). Потому, чтобы корректно работали часы с переводом на лето и зиму, а трекер работал без перевода, нужно скетч доработать. У нас в (в Рашке) пока что отменен перевод часов на лето и зиму (и это абсолютно правильно), биологические часы у животных и людей не зависят от этого перехода. Переход — это только лишний стресс. Я сейчас с другим солнечным калькулятором прошивку делаю, там эта функция есть. Попробую «портировать». С экранчиком как быть точно не знаю. Можно попробовать вывод RESET еще подтянуть к +5 вольт через резистор от 1.5 кОм до 10 кОм. И еще то же самое сделать с выводом CLK и CS. И еще можно попробовать все выводы дисплейчика подключить к ардуино через резисторы от 100 до 300 Ом. Ну и провода должны быть как можно короче. И еще как вариант — это сам по себе глючный экранчик.

день 2-й, полет нормальный.
при восходе солнца трекер вернулся на исходную, положение в 11:20 трекера на солнце правильное

что можно сделать для простоты настройки:
-число импульсов на 1 градус (коэффициент импульса) заменить на формулу высчитывание прямо в скетче. Будет точнее считать

выкладывайте портированую прошивку буду тестировать:)

заметил, не часто но бывает
когда происходит возврат на утро, импульсы считает не правильно (меньше)
так и не понял проблема с механикой или с скетчем
как вышел исправил: после возврата на исходную утро меняю количество импульсов которое должно быть
место
Slegenie_G = MIN_G*IMP_G; //установить минимальный угол поворота для трекера
Slegenie_W = MIN_W*IMP_W; //установить минимальный угол по вертикали
ставлю ( числа мой минимальный угол в импульсах)
enc1Counter = 68;
enc2Counter = 21;

предполагаю что проблема в
#define DEBOUNCE_1 15 // таймаут антидребезга, миллисекунды
пробовал разные ставить показание на от 0 до 100 — считает по разному + при одинаковый значениях таймаута так же по разному.
Актуатор заводской проблем с ним не должно быть
Идеи кончились.

просто для информации. когда делал эксперименты с прошивкой спалил ардуино. не провильно в шилд уставиновил.

если Вы не против буду тестить новые варианты мне интересно. Можно как то с Вами связатся? вайбер, эл почта, скайп, ватсап
моя почта sirenko13@gmail.com

Приветствую, а можно использовать плату от 3D принтера, она наверно подойдёт для 32 битной программы, про которое вы писали выше.

Источник

Adblock
detector