Сразу прошу прощения за статью. Тяжело назвать статьей. Но думаю некоторые моменты людям станут интересны. Схема прилагаемая не полная, нехватает в ней полевых транзисторов, серво приводов, но полностью работоспособна. Все выходы и входы описаны, поэтому чертить схему нет смысла. Мало ли кто и чем захочет обвязать контроллер.
Итак, это устройство разрабатывалось для карбюраторной ВАЗ21099. Таким образом не имеет никаких шин данных с внешним миром. Так как у меня сломалась в очередной раз тяга управления краном отопителя, а заслонки сломались еще раньще, то мне это очень надоело, постоянно менять эти части, я решил их выбросить, а вместо них поставить один энкодер. Плюс ко всему датчик топлива сдох успешно, интересно знать какое напряжение на аккумуляторе,кран отопителя начал капать и тут я решил собрать вот такое устройство. Задача устройства:
1. Измерять бортовое напряжение сети
2. Температуру Салона
3. Температуру двигателя
4. Температуру за бортом
5. Измерять Уровень топлива в баке
6. Ручное управление заслонками : Servo
7. Ручное и автоматическое управление краном печки : Servo
8. Изменять скорость врещения вентилятора печки по средствам энкодера в % 0-100
9. Демонстрировать все измерения по кругу C ПОМОЩЬЮ ЭНКОДЕРА
10.Притухание дисплея, при ночной езде.
11.ПИ РЕГУЛИРОВАНИЕ ПЕЧКОЙ (скорость вентилятора и кран отопителя).
Измеритель уже 2 раза подвергался значительным изменениям как в аппаратной части, так и в программной.
Из внешнего управления устройство имеет один выключатель и энкодер с кнопкой.
Изоб.1
Дисплей, энкодер и выключатель вынесены на переднюю панель, а контроллер находится возле отопителя. Соединено все с помощью шлейфа 16 проводного. Длина линии составляет примерно метр. На обоих концах шлейфа обжаты female pin.
Теперь начинается менее приятная часть - это изменение агрегатных узлов салона. Так как двигатель отопителя достаточно мощный, то было решено полевые транзисторы и драйвер IR4427 установить в то место, где до них стояли проволочные резисторы, которые в свою очередь регулировали скорость вентилятора.
Изоб.2
Изоб.3
Изоб.4
Серво покупал в Китае, стоит около 200р. Что меня в них заинтересовало, так это полностью металлический редуктор и усилие до 12 кг.
В процессе эксплуатации заметил, что шумноваты сервопривода, по сравнению с брендовыми. Перед установкой решил сразу все смазать, а то китайцы вечно экономят на смазке.
Изоб.5
Изоб.6
Одна из самых простых задач решена. Теперь идет менее приятное, так как отопитель в ВАЗ210ххх проектировал не очень хороший человек, по крайней мере он не думал о том, как дальше эксплуатировать и обслуживать это детище. В первой и второй версии устройства кран отопителя управлялся серво, который установлен был прямо на кране (Кран использовал Luzar. Достаточно качественный, разборной, имеет керамические части и возможность в дальнейшем заменить сальник.).
Изоб.7
Изоб.8
Из-за того, что кран имеет не линейную зависимость открытия, то было решено уменьшить шаг серво с 20% на 10% и соединиться тросом для меньшего усилия. В последней версии я снял привод с крана и подключил серво с помощью тросика. К сожалению фото нет.
Такие же манипуляции проводились и с двумя заслонками.
Изоб.9
Изоб.10
Все остальное уже намного проще. Измерение температур происходит с помощью DS18B20, подключенных на одну шину. Выбрал именно этот способ, чтобы меньше тащить проводов. В коде есть целая метка, которая читает ID датчиков и записывает их в eeprom. Но так как в первых двух версиях код был значительно больше, то пришлось заморозить этот код и прописать все ID в ручную. Но при желании можно все восстановить. Комменты вроде есть. Немного времени и можно будет сувать любой датчик, нужно будет его только записать в память мк.
Теперь немного опишу работу. На основном экране отображается уровень топлива, код ошибки и напряжение сети. Если начать и удерживать кнопку энкодера примерно 3 сек, то происходит переход в меню настроек. В меню настроек 2 экрана. Первый - это калибровка датчика топлива, второй - настройка коэф. Регулятора. Калибровка происходит в ручную, но один раз в жизни. Мало приятного, но мы же хотим точности. Сначала нужно установить авто на ровной поверхности, полностью слить весь бензин. После зайти в меню настройки бака и отбить первую точку 0 литров. Затем залить один литр и отбить вторую точку. И так 40 раз. При этом энкодером можно изменить номер литра (на всякий случай), но после отбития точки, номер литра увеличивается автоматически. После того как отбиты все точки эти параметры записываются в eeprom. Я для страховки подключил девайс к компу и слил все, что было в eeprom. Да, процедура мерзкая, но все остальные методы не точны, так как датчик имеет не линейную характеристику (очень не линейную).
Настройка регулятора происходит тоже один раз, но тут все проще. У меня эти значения такие: Kp =11; Ki=0.9; Kd=0. Можно изменить в любую минуту.
На втором экране салонная температура, уставка, и выходное воздействие. Чтобы изменить уставку, нужно нажать кнопку энкодера и крутить влево-вправо.
3 - отображение температуры за бортом и температуры двигателя.
4 - экран ручное управление вентилятором.
5-7 управление серво.
В приложенной схеме есть возможность полазить во всех меню. Только задать надо не 3 сек для входа в настройки, а чуть больше. протеус одним словом.
Ссылка на проект
Спасибо за внимание!
|