Автоматика для курятника. Проблемы с прерыванием.

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

тогда думаю только развод  и  2 отдельных контроллера, я что видел то поправил

Ze-pp
Offline
Зарегистрирован: 20.12.2018

Все равно спасибо!

ВН
Offline
Зарегистрирован: 25.02.2016

все функции что после LOOP, попробуйте переставить перед сетапом

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Ze-pp пишет:

 Суть в том (повторю), что скетч только диммера (из первого поста) работает без замечаний. Но стоит его внедрить в программу автоматики, и эта программа зависает.

 

Суть в том, что данная реализация приводит к тому, что у вас прерывания случаются до 25000 раз в секунду. Из-за этого вся система становится раком при попытке делать что-то еще.

Ну не знаю, это как рассекать по городу на машине исключительно на первой скорости, а на советы скорости попереключать отвечать, а зачем, ведь едет же!

bwn
Offline
Зарегистрирован: 25.08.2014

Baks пишет:

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

У меня взлетело с таким костылем. Но у ТС плюшек много больше, у меня фактически один LCD1602, AM2301 и два DS18B20. Походу, действительно не поспевает.

svm
Offline
Зарегистрирован: 06.11.2016

У меня была похожая проблема, тоже с курятником. Диммер на 8 каналов. Два вентилятора и 6 ламп. Управляется через NRF 24. По кускам все работало нормально и диммер и канал связи, но когда объединил два скетча появилось куча глюков. Возможно связано с тем, что прерывания диммеров и NRF 24 конфликтовали. Вдобавок и пинов у 328 на все мои нужды не хватало. В результате поставил две голых 328. Одна заведует каналом связи, другая обслуживает диммеры и датчики. Между собой связаны по COM порту.  В боевых условиях пока не испытывал, т.к. курятник для бройлеров и зимой он не работает. Но на макетках сутки проработал на расстоянии 70 метров. Сейчас пытаюсь реализовать интерфейс управления этим устройством, чтобы жена могла управлять. До весны что нибудь удобоваримое может быть получится, пока все хорошо управляется из терминала. Хочется сделать пульт управления с минимумом индикации и органов управления. Хотя есть идея вывести всю индикацию и меню на телевизор через микросхему OSD, а на пульте оставить несколько кнопок перемещения по меню.

Ze-pp
Offline
Зарегистрирован: 20.12.2018

svm пишет:

У меня была похожая проблема, тоже с курятником. Диммер на 8 каналов. Два вентилятора и 6 ламп. Управляется через NRF 24. По кускам все работало нормально и диммер и канал связи, но когда объединил два скетча появилось куча глюков. Возможно связано с тем, что прерывания диммеров и NRF 24 конфликтовали. Вдобавок и пинов у 328 на все мои нужды не хватало. В результате поставил две голых 328. Одна заведует каналом связи, другая обслуживает диммеры и датчики. Между собой связаны по COM порту.  В боевых условиях пока не испытывал, т.к. курятник для бройлеров и зимой он не работает. Но на макетках сутки проработал на расстоянии 70 метров. Сейчас пытаюсь реализовать интерфейс управления этим устройством, чтобы жена могла управлять. До весны что нибудь удобоваримое может быть получится, пока все хорошо управляется из терминала. Хочется сделать пульт управления с минимумом индикации и органов управления. Хотя есть идея вывести всю индикацию и меню на телевизор через микросхему OSD, а на пульте оставить несколько кнопок перемещения по меню.

Попробуйте сервис Remote XY. Там можно управлять и по блютутс, и вай-фай, и через облако и по проводу.

Ze-pp
Offline
Зарегистрирован: 20.12.2018

bwn пишет:

Baks пишет:

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

У меня взлетело с таким костылем. Но у ТС плюшек много больше, у меня фактически один LCD1602, AM2301 и два DS18B20. Походу, действительно не поспевает.

У вас тоже подключены диммеры? Конфигурация у нас почти одинаковая.

bwn
Offline
Зарегистрирован: 25.08.2014

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

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

В принципе ардуина может лекго управлять 6ю диммерами и делать при этом что нибудь еще полезное. Просто надо делать это по человечески, а не через ж.

SLKH
Offline
Зарегистрирован: 17.08.2015

Ze-pp пишет:

SLKH пишет:

Ze-pp пишет:

Тогда поставим вопрос так - если в канале диммера использовать оптрон МОС3041( со встроенным детектором ноля), избавить код от прерываний - пусть этим занимается оптрон. Можно будет реализовать подобие плавного пуска?

можно, пропуском полупериодов.

 

Каким образом это сделать?

например, включением zero-cross оптрона на 20 мс с паузой 80 мс. или 20/20. или 100%. - как нужно.

смотрим блинк без делэя.

SLKH
Offline
Зарегистрирован: 17.08.2015

asam пишет:

Делать диммер по такому алгоритму как у вас это изваращение. Вот нормальная реализация - https://playground.arduino.cc/Main/ACPhaseControl

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

Извращение - это фазоимпульсное управление нагревателями. да ещё и с таблицами для линейной регулировки мощности обогрева - на кой эта линейность в курятнике нужна? 

 

Ze-pp
Offline
Зарегистрирован: 20.12.2018

asam пишет:

В принципе ардуина может лекго управлять 6ю диммерами и делать при этом что нибудь еще полезное. Просто надо делать это по человечески, а не через ж.

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

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

SLKH пишет:

asam пишет:

Делать диммер по такому алгоритму как у вас это изваращение. Вот нормальная реализация - https://playground.arduino.cc/Main/ACPhaseControl

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

Извращение - это фазоимпульсное управление нагревателями. да ещё и с таблицами для линейной регулировки мощности обогрева - на кой эта линейность в курятнике нужна?

В ТЗ было сказано - "для плавного включения красной обогревательной лампы. "

У вас есть другие варианты реализации этого требования? Поделитесь pls.

svm
Offline
Зарегистрирован: 06.11.2016

Ze-pp пишет:

Попробуйте сервис Remote XY. Там можно управлять и по блютутс, и вай-фай, и через облако и по проводу.

У меня в конечном варианте управления как такового не требуется, работать будет практически автономно. Обратный канал связи нужен только для передачи сигнала о внештатной ситуации. Необходимость в нем больше нужна в процессе отработки алгоритма управления системой испарительного охлаждения. Есть правда вариант сидеть с компьютером в курятнике, подбирать параметры системы и следить за реакцией, но учитывая большую инерционность это тоскливо. Поэтому выбрал вариант с радиоканалом. На устройство передаются 13 параметров (скорости вращения вентиляторов, режимы работы насоса и уставки температур) в обратную передаются реальные температуры и состояние датчиков). Если все устраивает посылаю команду записи в ПЗУ, дальше устройство работает в автономе. Если что-то не устраивает, отсылаю новые данные, при этом сижу дома , а не в курятнике. Толкового описания работы системы испарительного охлаждения нет, поэтому приходится все делать методом тыка.

svm
Offline
Зарегистрирован: 06.11.2016

asam пишет:

В ТЗ было сказано - "для плавного включения красной обогревательной лампы. "

У вас есть другие варианты реализации этого требования? Поделитесь pls.

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

Ze-pp
Offline
Зарегистрирован: 20.12.2018

svm пишет:

Ze-pp пишет:

Попробуйте сервис Remote XY. Там можно управлять и по блютутс, и вай-фай, и через облако и по проводу.

У меня в конечном варианте управления как такового не требуется, работать будет практически автономно. Обратный канал связи нужен только для передачи сигнала о внештатной ситуации. Необходимость в нем больше нужна в процессе отработки алгоритма управления системой испарительного охлаждения. Есть правда вариант сидеть с компьютером в курятнике, подбирать параметры системы и следить за реакцией, но учитывая большую инерционность это тоскливо. Поэтому выбрал вариант с радиоканалом. На устройство передаются 13 параметров (скорости вращения вентиляторов, режимы работы насоса и уставки температур) в обратную передаются реальные температуры и состояние датчиков). Если все устраивает посылаю команду записи в ПЗУ, дальше устройство работает в автономе. Если что-то не устраивает, отсылаю новые данные, при этом сижу дома , а не в курятнике. Толкового описания работы системы испарительного охлаждения нет, поэтому приходится все делать методом тыка.

Посмотрите по ссылке http://remotexy.com/ru   В этом сервисе вы сами "собираете" необходимый вам интерфейс для управления, и контроля устройством на растоянии с экрана устройства, работающего под Андроид

Ze-pp
Offline
Зарегистрирован: 20.12.2018

svm пишет:

asam пишет:

В ТЗ было сказано - "для плавного включения красной обогревательной лампы. "

У вас есть другие варианты реализации этого требования? Поделитесь pls.

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

А вот это идея. я об этом не подумал. Нужно посмотреть схему. Спасибо за подсказку!

svm
Offline
Зарегистрирован: 06.11.2016

Ze-pp пишет:

 

Посмотрите по ссылке http://remotexy.com/ru   В этом сервисе вы сами "собираете" необходимый вам интерфейс для управления, и контроля устройством на растоянии с экрана устройства, работающего под Андроид

Спасибо! Надо попробовать, но не для этого проекта.

SLKH
Offline
Зарегистрирован: 17.08.2015

asam пишет:

SLKH пишет:

asam пишет:

Делать диммер по такому алгоритму как у вас это изваращение. Вот нормальная реализация - https://playground.arduino.cc/Main/ACPhaseControl

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

Извращение - это фазоимпульсное управление нагревателями. да ещё и с таблицами для линейной регулировки мощности обогрева - на кой эта линейность в курятнике нужна?

В ТЗ было сказано - "для плавного включения красной обогревательной лампы. "

У вас есть другие варианты реализации этого требования? Поделитесь pls.

питание 1-2 полупериода

пауза 6 - 8

питание 2-3

пауза 4

питание 2-3

пауза 4

питание 6

пауза 3

питание 100% 

или те соотношения, которые больше нравятся.