1 2 3 4 5 6 7 8 9 10 10/10 9,80оценок: 15

Автоматика управления ТТ котлами своими руками

Тема в разделе "Котлы, горелки, котельное об-е своими руками", создана пользователем Senkiivan, 28.03.14.

Метки:
  1. StF
    Регистрация:
    06.06.09
    Сообщения:
    426
    Благодарности:
    344

    StF

    Nobody is perfect

    StF

    Nobody is perfect

    Регистрация:
    06.06.09
    Сообщения:
    426
    Благодарности:
    344
    Адрес:
    Москва
    @Senkiivan,
    if (pogoda=HIGH){if (temp5>=5){setTmp7=60;}
    if (temp5<5)&&(temp5>=-5){setTmp7=65;}
    if (temp5<-5)&&(temp5>=-10){setTmp7=70;}
    if (temp5<-10)&&(temp5>=-15){setTmp7=75;}
    if (temp5<-15)&&(temp5>=-20){setTmp7=80;}
    if (temp5<-20){setTmp7=85;}}


    проще
    if (pogoda=HIGH) setTmp7=60-temp5;
    setTmp7=(setTmp7 > 85)? 85: (setTmp7 < 60)? 60: setTmp7;

    хотя в компиляции размер идентичен. :)
     
  2. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502
    Адрес:
    Боровичи
    @StF,
    Так проще и лучьше. Сейчас посмотрел со стороны, тоже самое только не ступенчато:)]
    Такой вариант самое то будет:super:
    Подправлю код:hndshk:
     
  3. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502
    Адрес:
    Боровичи
    В среде ардуино
    if (pogoda=HIGH){setTmp7=60-temp5;
    setTmp7=min (setTmp7,85);
    setTmp7=max (setTmp7,55);}
    else{setTmp7=setTmp1;}
     
  4. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502
    Адрес:
    Боровичи
    Ну если правильно, то каждый пишет программу по своему как видет. Разбираться в чужом коде вещь неблагадарная.
    Поэтому выложил как я сделал основные моменты, и привел библиотеки (в них примеры работы с ними)
    Сначала накидайте алгоритм потом его описать програмно.
    Тут все слова ложатся в код (если это-то чтото, если не это то вот это)

    Вы начните писать если что поправим.
     
  5. pasko2680
    Регистрация:
    10.01.15
    Сообщения:
    9
    Благодарности:
    1

    pasko2680

    Участник

    pasko2680

    Участник

    Регистрация:
    10.01.15
    Сообщения:
    9
    Благодарности:
    1
    Дело в том что программист с меня никакой и настряпать свою програмку без знаний разных тонкостей программирования очень сложно, а под корректировать под свои нужды уже рабочую програмку да ещё и спомощью профи вроде Вас (ежели конечно неоткажете в помощи..) мне было бы гораздо легче (ну по крайней мере мне так кажется.):)
     
  6. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502
    Адрес:
    Боровичи
    @pasko2680,
    Тогда выложи первый неомтимизированный вариат.
    Сейчас в работе уже шестой. Воюю с таймерами.
     
  7. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502
    Адрес:
    Боровичи
    @StF,
    Столкнулся с проблемой все библиотеки в работе используют таймер1
    Мода чтоли у них такая:)
    Какбуд то второй не прописать.
    Сейчас в коде когда идет запрос температуры далосов на вентилятор симистор открывается полностью на 0.2сек.
    Ибо таймер 1 в этот момент перехватывает библиотека далосов.
    Хотя выкинул их в фон и делаю запрос раз в секунду
    Вот ина вент раз в секунду пролетает пик.

    Вот теперь думаю может библиотеку на 2 таймер перекроить или забить на это?
    :) :) :) :) :)
     
  8. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502
    Адрес:
    Боровичи
    @pasko2680,
    Вот вам пища для ума;)
    И пример инструкции по работе
     

    Вложения:

  9. pasko2680
    Регистрация:
    10.01.15
    Сообщения:
    9
    Благодарности:
    1

    pasko2680

    Участник

    pasko2680

    Участник

    Регистрация:
    10.01.15
    Сообщения:
    9
    Благодарности:
    1
    :hello::)] Троекратное СПАСИБО! :hndshk:
     
  10. pasko2680
    Регистрация:
    10.01.15
    Сообщения:
    9
    Благодарности:
    1

    pasko2680

    Участник

    pasko2680

    Участник

    Регистрация:
    10.01.15
    Сообщения:
    9
    Благодарности:
    1
    У меня почему-то не подключается библиотека EEPROM2.h и PID_v1.h.
    Неподскажете в чём может быть дело, вроди бы все делал по инструкции, распаковал, закинул в папку libraries, но всё равно в скетче библиотеки остаются "неподсвеченными":(
     
  11. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502
    Адрес:
    Боровичи
    Версия оболочки какая, это для 1.04-1.06
     
  12. pasko2680
    Регистрация:
    10.01.15
    Сообщения:
    9
    Благодарности:
    1

    pasko2680

    Участник

    pasko2680

    Участник

    Регистрация:
    10.01.15
    Сообщения:
    9
    Благодарности:
    1
    У меня 1.5.2 сейчас попробую качнуть 1.04.
    Спасибо за инфу!
     
  13. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502
    Адрес:
    Боровичи
    На просторах тырнета нашёл шикарную библиотеки LeOS, LeOS2.
    Вот первоисточник.
    http://www.leonardomiliani.com/en/2012/leos-un-semplice-so-per-arduino/

    Возможномти открывает широкие. Первое направления экраны, второе меню, третие отрабатывание аварий и т. д.
    Теперь весь код перерабатывать надо, очередная версия получается:)]:aga:
     
  14. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502
    Адрес:
    Боровичи
    Вот небольшой видеоролик.
    При старте автоматики если команда пуск активна происходит подувка котла вент на полную 5 сек.(стряхиваем грязь, разгоняем смазку в подшипниках)
    Победил конфликт опроса даласов и фазового регулятора (пока на костылях потом посмотрим)
    Отслеживается каждый из 4 даласов при пропадании происходит корректировка части программы в которой участвует.
    Лампа висит -чтобы лучьше видеть все нестыковки и рывки при работе регулятора вентилятора.
    При прогоне всё ровненько.
    Оптимизируем дальше
     
  15. StF
    Регистрация:
    06.06.09
    Сообщения:
    426
    Благодарности:
    344

    StF

    Nobody is perfect

    StF

    Nobody is perfect

    Регистрация:
    06.06.09
    Сообщения:
    426
    Благодарности:
    344
    Адрес:
    Москва
    @Senkiivan,
    готовые библиотеки на самом деле немного зло. Когда их одна-две, то еще удается их сопрячь вместе. Когда количество становится больше - вылезают разной степени Ж@пы, которые иногда решить проще, написав библиотеку самому. Опять же - отсекая все ненужное получаем экономию памяти процессора + дополнительный скилл в понимании как же эта штука работает, при этом никто не мешает использовать существующий код как основу от которой отталкиваться)
    У меня, например, заново написаны функции работы с дисплеем (как у вас на видео, кстати он без русского в ПЗУ, бяка такая зато пару баксов всего.), DS18B20, радиопередаче (RCswitch) и PID. Cейчас застрял с автонастройкой PID: коэффициенты вручную подобрал и все работает, а вот автоподбор выдает ерунду (алгоритм - по разгонной кривой).

    По поводу таймеров могу сказать маленький hint: у меня 16 разрядный таймер используется раз в секунду для управления разными событиями неспешного течения (обновление дисплея при редактировании данных в меню пользователя, отсчета длинных задержек управления моторами), а в качестве короткого таймера (20мс) выступает внешнее прерывание из сети: по нему управляем нагрузкой через симистор, отрабатываем дребезг клавиш, считываем сигнал с датчиков огня и наличия пеллет (я пеллетную горелку ваяю).
    Теоретически у Arduino есть еще много внешних прерываний (PCIINT) PCIMSK регистр их настраивает - но у меня они отказываются работать при питании от сети 220в, при этом работают от батарейного питания, поэтому я их не использую.