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

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

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

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

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

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

схема контроллера солнечного трекера
схема простого трекера на линейных актуаторах

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

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

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

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

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

#define timeZoneOffset 3            //часовой пояс
#define mylat 54.2192               // широта
#define mylon 37.6974               //долгота

#include "SolarPos.h"               //моя либа
#include "DS3231M.h"                //библиотека часов реального времени

DateTime now1;                    //текущее время
SolarPos sp1(timeZoneOffset, mylat, mylon);     //объект SolarPos

void setup() {
  Serial.begin(115200);
  now1 = DateTime(2020,3,4,12,47,0);
}

void loop() {
  float angle = sp1.getSEC_Corr( now1.unixtime() );
  float azimuth = sp1.getSAA( now1.unixtime() );
  Serial.print("Time: ");
  printDateTime(now1);
  Serial.print("Elevation: ");
  Serial.print(angle);
  Serial.print("Azimuth: ");
  Serial.print(azimuth);

  Serial.print("Sunrise: ");
  printDateTime(sp1.getSunriseTime(now1.unixtime()));
  Serial.print("Sunset: ");
  printDateTime(sp1.getSunsetTime(now1.unixtime()));
  Serial.print("Day length, minutes: ");
  Serial.println(sp1.getSunDuration(now1.unixtime()));
  Serial.println();
  now1 = now1 + TimeSpan(0,1,0,0); //увеличиваем текущее время на час
  delay(1000);
}

void printDateTime(DateTime t){       // Utility function to print time and date
  Serial.print(t.year());
  printDateDigits(t.month());
  printDateDigits(t.day());
  Serial.print(" ");
  Serial.print(t.hour());
  printDigits(t.minute());
  printDigits(t.second());
  Serial.println();
}

void printDateDigits(int digits){   // Utility function to print month/day digits nicely
  Serial.print("-");
  if(digits < 10) Serial.print("0");
  Serial.print(digits); 
}

void printDigits(int digits){     // Utility function for time value printing
  Serial.print(":");
  if(digits < 10)
    Serial.print('0');
  Serial.print(digits);
}

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

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

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

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

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

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

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

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

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

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

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

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

  3. 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; //переменная направление для поворота по вертикали

    Выставить трекер в ноль, то есть точно на север, если механика позволяет. И без обратной связи трудно понять что происходит с трекером. Для этого я и приделывал к нему дисплей. Нужен такой
    https://aliexpress.ru/item/4000375141482.html?spm=a2g0o.productlist.0.0.65547a3fAJDqiJ&algo_pvid=ac0d43ed-86a9-44a4-a82d-e737f373e52f&algo_expid=ac0d43ed-86a9-44a4-a82d-e737f373e52f-3&btsid=0b8b035915934612482117729e4aee&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_

    HX1230 96×68

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

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

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

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

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

  8. Надо открыть файл 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();
    }

  9. 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 (хотя с библиотеками под ее все завелось)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  22. 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;
    теперь реле программно не будет включатся и в любой момент можно будет поменять по нужные цифры
    Вариант рабочий уже проверил

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

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

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

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

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

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

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

  27. Диод впаивается параллельно катушке реле, катод к плюсу управляющего напряжения, анод к минусу. Стабилитрон вылетел по причине того, что в момент выключения ЭДС самоиндукции дало импульс в цепь питания +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

    https://yadi.sk/d/1JDuhYcNrxuYOw

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  37. добрый день!!!!
    Сделано:
    — у меня блок питание двигателя 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» и снова стает на правильный азимут солнца.

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

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

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

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

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

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Наверх