Микроконтроллеры | AVR начинающим - вопросы и ответы |
|
---|---|---|
chav1961, гуляет скорее всего не от отсутствия задержки, а от шума АЦП. if (Vdec>ZNACH_STAB+2) { if (Vdec<ZNACH_STAB-2) { Первый вариант немного снизит быстродействие, второй - точность установки. |
|
|
От шума, конечно, гуляет, но ПИД-регулятор в любом случае делать надо |
|
|
У меня в программе для АЦП стоит ФНЧ первого порядка. |
|
|
Интегральную составляющую можно реализовать суммированием, что вы и делаете в вышеприведенных примерах. Только желательно разрядность увеличить в этом случае. |
|
|
Да, но уменя используется OCR2 |
|
|
shemmer: У меня в программе для АЦП стоит ФНЧ первого порядка. По моим наблюдениям, этого часто бывает недостаточно. Всё равно шумит. shemmer: А когда сделал вот так: Вместо задержки можно просто пореже вызывать эту процедуру. Но если будет КЗ, то за 5мс всё сгорит нафиг shemmer: 8 битный счетчик у которого макс. значение это 255 Можно расширять не сам счётчик , а другую переменную, а в OCR грузить её с урезанием нескольких битов. Типа: unsigned int reaction; Здесь уже 9 бит. Если OCR2 = reaction >> 4; то 10. |
|
|
Нет все-таки с задержкой нестабильность до 200мА, |
|
|
А ток-то какой? Я перепутал reaction++ и reaction-- . Потому и насыщается. if (Vdec > ZNACH_STAB & reaction!=0) reaction--; А сравнения Ещё замечания. ФНЧ не работает, prev_res нужно объявить как static. delay_ms(7) в прерывании от АЦП как-то не очень смотрится. Ну и надо как-то опрос АЦП сделать более равномерным. А про ПИД пока не думай, его мало написать, его ещё настраивать потом надо |
|
|
Не что-то не получается. |
|
|
shemmer: ставлю ZNACH_STAB =0.5 А. Ок. shemmer: На индикаторе 0.1-0.2 Это в смысле, измеренный внутри устройства ток? ФНЧ исправил? Задержку из прерывания убрал? Кнопки в это время не нажимаются? |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |