Зависает Arduino nano
- Войдите на сайт для отправки комментариев
Всех приветствую, столкнулся с проблемой( Ардуино нано на 328 меге занимается регулировкой температуры по средством управления симмистором. Датчик температуры термопара+MAX6675. Симмистор управляется через MOC3023. так же имеется схемка детектор нуля сети.Сначала управлял по средством нескольких ступеней мощности. Типа чем ближе к реаьная температура к заданию тем меньше мощности. Все заработало корректно и как надо, но слишком сложно и долго подбирать мощности на ступени, и в итоге всеравно плавает температура критично. Решил замутить ПИД регулятор. библиотека гуглится на "раз два"Внедрил в код библиотеку скомпилировалось с первого раза=) подал питание на ардуино, сеть подавать не стал, в порт вывел значение выхода пид регулятора. работает нормально, выход регулируется все хорошо. как только подаю сетевое питание и ардуина начинает обрабатывать детектор нуля все начинает тормозить...Вот ссылка на скетч.
Я подозреваю что ардуине не хватает производительности.. ПИД регулятор сжирает мощ, а тут еще и внешнее прерывание обрабатывать надо, да еще и по таймеру, вот она и сдается?
а вы его под наши сети адаптировали?
Кого именно? Детектор нуля работает исправно, вся схема управления симмистором работает корректно. пока не добавишь ПИД регулятор.
Кого именно? Детектор нуля работает исправно, вся схема управления симмистором работает корректно. пока не добавишь ПИД регулятор.
я о скетче, он под сети 60 герц
ПРиведите ваш зависающий скетч
в коментариях написано какие нужно ставить параметры для 60 герц. стоят на 50.
В общем перенастроил пид под релейный режим управления, отключил детектор нуля. просто подаю на мос3023 сигнал с выходя ПИД регуятора. Все работает, но при уставке 200 температура плавает от 180 до 280... кто подскажет про подбор коэффициентов?
никто, хрустального шара нету, разве непонятно, что без публикации рабочего скетча разговор ни о чём
Ты угараешь? Скетч в первом посте.
Скетч выглядит как-то так, в первом посте в упор этого не увидел
Клапауций вроде не запрещал жеж
ну ясно...
Не может быть.
С чего сделан вывод о зависании?
Вы в курсе, что MAX6675 требует время для преобразования не менее 0,22 сек по ДШ?
Что в качестве нагрузки? Тэн в воде или паяльный фен?
Гугл.
Самое простейшее - "ПИД управление в нестрогом изложении".
Я забирают данные с МАХ раз в 300мс по таймеру. В качестве нагрузки фен.
Вывод о зависание сделан из следующего: какттолько подарю сетевое питание данные в порт начинают сдаться намного медленнее при попытке регулировать задание, происходит очень медленно она. Задание задается потенциометром+АЦП кручу ручку и данные очень медленно обновляются на экранчике.
Все беды из-за delay-ев в прерывании - нормально работать не будет, т.к. почти всё процессорное время тратится на него.
Задержку относительно зеро-кросс нужно делать на аппаратном таймере.
У меня нано рулит паяльником (ШИМ), феном (ФИ) и всё это может работать одновременно, не мешая друг-другу.
Можно на код взглянуть?
Тут
ЗЫ. С MAX6675 температура будет измеряться с погрешностью, чем выше вы зададите, тем больше будет разница температуры потока воздуха со значением, что выдаст 6675 (у меня она была до 60 град.)
Мне бы добиться равномерности температуры. А там уже вводить коррективы можно.