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

Как сделать блок плавного управления вентилятором радиатора на ВАЗ

В этой статье хочу поделиться опытом собственной разработки адаптивного контроллера охлаждения электровентилятора для инжекторных и карбюраторных ВАЗов. На рынке уже существуют несколько подобных вариантов, и наверное самый популярный из них это контроллер «Борей», производства фирмы «Силычъ». Устройство, описанное в этой статье, работает схожим образом. Назовем его «Надёжный контроллер вентилятора охлаждения ВАЗ2110 на базе «ардуино» (опыт разработки)».

Принцип работы

Таким образом, рабочая температура двигателя на малых скоростях и в летних пробках фактически не превышает 90-92 o C, за исключением конечно аномальной летней жары. За 9 месяцев работы контроллера (с апреля по декабрь) и 15 000 км пробега, на моём ВАЗ 2110 1.6 16V (+ГБО) двигатель ни разу не нагревался больше 95 o C, и соответственно ни разу не сработала штатная система охлаждения.

Разработка и реализация

За основу схемы управления был взят AVR микроконтроллер семейства Tiny, в моем случае – ATTiny85. Но также можно было использовать любой ардуино-совместимый микроконтроллер семейства AVR Tiny, MEGA, а также готовые ардуино-платы с небольшими дополнениями. Для силовой части был использован очень мощный мосфет-транзистор IRF1405 (можно использовать и менее мощный). С помощью отладочной ардуино-платы были сняты показания датчика при пороговых значениях температуры (90-95 С).

Истории наших читателей

«Гребаный таз. «

Всем привет! Меня зовут Михаил, сейчас расскажу историю о том, как мне удалось обменять двенашку на камри 2010г. Все началось с того, что меня стали дико раздражать поломки двенашки, вроде ничего серьезного не ломалось, но по мелочи, блин, столько всего, что реально начинало бесить. Тут и зародилась идея о том, что пора менять машину на иномарку. Выбор пал на таёту камри десятых годов.

Да, морально то я созрел, а вот финансово никак не мог потянуть. Сразу скажу, что я против кредитов и брать машину, тем более не новую, в кредит это неразумно. Зарплата у меня 24к в месяц, так что насобирать 600-700 тысяч для меня практически нереально. Начал искать различные способы заработка в интернете. Вы не представляете сколько там развода, чего только не пробовал: и ставки на спорт, и сетевой маркетинг, и даже казино вулкан, в котором удачно проиграл около 10 тысяч(( Единственным направлением, в котором мне, казалось, можно заработать — это торговля валютой на бирже, это называют форексом. Но когда начал вникать, понял что это оочень сложно для меня. Продолжил копать дальше и наткнулся на бинарные опционы. Суть та же, что на форексе, но разобраться намного проще. Начал читать форумы, изучать трейдерские стратегии. Попробовал на демо счете, потом завел реальный счет. Если честно начать зарабатывать удалось не сразу, пока понял всю механику опционов, слил около 3000 рублей, но как оказалось это был драгоценный опыт. Сейчас зарабатываю 5-7 тыс. рублей в день. Машину удалось купить спустя пол года, но как по мне это неплохой результат, да и дело не в машине, у меня изменилась жизнь, с работы естественно уволился, появилось больше свободного времени на себя и семью. Будете смеяться, но работаю прямо на телефоне)) Если ты хочешь изменить свою жизнь как я, то вот что советую сделать прямо сейчас:
1. Зарегистрируйтесь на сайте
2. Потренируйтесь на Демо-счете (это бесплатно).
3. Как только что-то будет получаться на Демо-счете, пополняйте РЕАЛЬНЫЙ СЧЕТ и вперед, к НАСТОЯЩИМ ДЕНЬГАМ!
Также советую скачать приложение на телефон, с телефона работать намного удобнее. Скачать тут.

Принцип регулировки оборотов вентилятора — обычный ШИМ. В двух словах, для тех, кто не знает, что такое ШИМ (широтно-импульсная модуляция) — это изменение ширины импульсов (в нашем случае постоянного тока с напряжением 12В) определённой частоты для регулировки силы тока на нагрузке (в нашем случае вентиляторе), что обеспечивает управление скоростью вращения любого электродвигателя постоянного тока (анимация и видео ниже):

Т.е. чем шире импульс, тем больше ток, и тем быстрее скорость вращения вентилятора и наоборот.

На видео «крутилка» (потенциометр) имитирует показания с датчика ОЖ. при повышении/понижении температуры.

Таким образом, цель разработки заключалась в реализации управления электровентилятора ШИМ-сигналом на основании показаний датчика температуры ОЖ. С серьезным подходом к программированию микроконтроллеров у меня пока проблемы ))), так что было решено использовать платформу ардуино с собственным и очень простым языком программирования для начинающих. И на основании многих примеров, взятых из интернета, была разработана программа для управления микроконтроллером.

Читайте также:  Как сделать рубль своими руками

Принципиальная схема устройства выглядит следующим образом:

Это уже доработанная схема с подстройкой порога температуры срабатывания. Питание осуществляется от вывода «D» генератора, что позволяет контроллеру работать только при заведенном двигателе, хотя это не критично и можно запитываться от «зажигания». В схеме реализована стабилизация питания микроконтроллера (5В) на базе преобразователя VR1. В роли драйвера силового транзистора-VT1 используется оптрон-DD2. Транзистор нуждается в охлаждении, так как через него проходят большие токи (около 10 Ампер). Подойдет любой радиатор площадью охлаждающей поверхности в 30 кв. см и выше.

Также обязательна установка предохранителей по «+» питания контроллера (не мене 100милиАмпер), и по цепи массы – не менее 20 Ампер (так как коммутация вентилятора силовым транзистором осуществляется именно по «массе»)! Номиналы всех радиодеталей должны быть четко соблюдены. Частота ШИМ-сигнала была подобрана экспериментальным путем во избежании низкочастотных помех в бортовой сети, а также для снижения шумов обмоток электродвигателя вентилятора при малых оборотах, и составляет 100Гц.

Печатная плата проектировалась «на коленке», поэтому корпус и проводка собрана из подручных материалов:

Рисунок печатной платы не принципиальный, кому интересно все материалы в архиве.

Подключение. Крыльчатка вентилятора используется 8-лопасная, так как от стандартной 4-лопасной крыльчатки эффекта на низких оборотах очень мало + лишня вибрация никогда не добавляла комфорта.

Видео испытаний, подключение:

По итогам сборки заморочек получилось, конечно, много, но себестоимость устройства составила около 10 у.е.))) и это хорошо! Любые вопросы пишите в комментариях.

Читайте также другие доработки пуска и работы вентилятора радиатора автомобилей ВАЗ.

Как лучше доработать пуск вентилятора двигателя?

Источник

Интеллектуальное реле управления вентилятором охлаждения двигателя

Прочитав пост mrsom о пересадке микроконтроллерной начинки в ретротахометр от Жигулей, решил рассказать об одной своей давней микроконтроллерной разработке (2006 год), сделанной для плавного управления электровентилятором охлаждения двигателей переднеприводных моделей ВАЗа.

Надо сказать, что на тот момент уже существовало немало разнообразных решений — от чисто аналоговых до микроконтроллерных, с той или иной степенью совершенства выполняющих нужную функцию. Одним из них был контроллер вентилятора компании Силычъ (то, что сейчас выглядит вот так, известной среди интересующихся своим автоматическим регулятором опережения зажигания, программно детектирующим детонационные стуки двигателя. Я некоторое время следил за форумом изготовителя этих устройств, пытаясь определить, чтов устройстве получилось хорошо, а что — не очень, и в результате решил разработать свое.

По задумке, в отличие от существующих на то время решений, новый девайс должен был a) помещаться в корпус обычного автомобильного реле;
б) не требовать изменений в штатной проводке автомобиля; в) не иметь регулировочных элементов; г) надежно и устойчиво работать в реальных условиях эксплуатации.

История появления девайса и алгоритм работы первой версии обсуждалась здесь — для тех, кто не хочет кликать, опишу ключевые вещи инлайн:

-1. Алгоритм работы устройства предполагался следующий: измерялось напряжение на штатном датчике температуры двигателя; по достижении нижней пороговой температуры вентилятор начинал крутится на минимальных оборотах, и в случае дальнейшего роста линейно увеличивал скорость вращения вплоть до 100% в тот момент, когда по мнению ЭСУД (контроллера управления двигателем), пора бы включать вентилятор на полную мощность.
То есть, величина температуры, соответствующая 100% включению могла быть получена при первом включении устройства, т.к. оно имеет вход, соответствующий выводу обмотки штатного реле.
Нижний порог в первой версии нужно было каким-то образом установить, проведя таким образом через две точки линейную характеристику регулирования.

0. При токах порядка 20А очевидно, что для плавного регулирования применяется ШИМ, а в качестве ключевого элемента — мощный полевик.

1. Размещение устройства в корпусе обычного реле означает практическое отсутствие радиатора теплоотвода. А это в свою очередь накладывает жесткие требования к рассеиваемой ключевым элементом мощности в статическом (сопротивление канала) и динамическом (скорость переключения) режимах — исходя из теплового сопротивления кристалл-корпус она не должна превышать 1 Вт ни при каких условиях

2. Решением для п.1 может являться либо применение драйвера полевика, либо работа на низкой частоте ШИМ.
В отличие от аналогов, из соображений компактности и помехозащищенности был выбран вариант с низкой частотой ШИМ — всего 200 Гц.

3. Работа устройства со штатной проводкой и датчиком температуры неминуемо приводит к ПОС, т.к. ТКС штатного датчика температуры — отрицательный, а при включенном вентиляторе из-за конечно сопротивления общего провода и ‘проседания’ бортсети измеряемое на датчике напряжение неминуемо падает. Стабилизировать же, или использовать четырехпроводную схему включения нельзя — изменения в штатной проводке запрещены.
С этим решено было бороться программно — измерением напряжения на датчике только в тот момент, когда ключ ШИМ выключен — то есть паразитное падение напряжения отсутствует. Благо, низкая частота ШИМ оставляла достаточно времени для этого.

Читайте также:  Как назвать то что делаешь своими руками

4. Программирование порога включения устройства должно быть либо очень простым, либо быть полностью автоматическим. Изначально в устройстве был установлен геркон, поднесением магнита к которому сквозь корпус программировался нижний порог (значение естественно, запоминалось в EEPROM). Верхний порог устанавливался сам в момент первого импульса от контроллера ЭСУД.
В дальнейшем я придумал и реализовал алгоритм полностью автоматической установки порогов, основанный на нахождении термостабильной точки двигателя (точки срабатывания термостата) в условиях отсутствия насыщения по теплопередаче радиатор-воздух.

5. Устройство должно предоставлять диагностику пользователю. Для этого был добавлен светодиод, который промаргивал в двоичном коде два байта — текущий код АЦП и слово флагов состояния.

Устройство было собрано частично навесным монтажом прямо на выводах бывшего реле, частично на подвернувшейся откуда-то печатной платке.
Силовой MOSFET выводом стока был припаян прямо к ламелю вывода реле, что увеличило запас по рассеиваемой мощности. Устройство без глюков проработало на ВАЗ-2112 c 2006 по 2010 год, когда я его снял перед продажей, и побывало не только в холодном питерском климате, но и на горных крымских дорогах (да еще на машине в наддувном варианте — стоял у меня на впуске приводной компрессор), несмотря на монтаж уровня прототипа и контроллер в панельке.

Вот оригинальная схема (рисовал только на бумаге):

А это вид устройства изнутри:

Устройство было повторено несколькими людьми, один из них (офф-роудер Геннадий Оломуцкий из Киева) применил его на УАЗе, нарисовав схему в sPlan и разведя печатную плату — в его варианте это выглядит так:

А вот кусок из переписки с одним из повторивших этот девайс — в нем впервые детально выписан алгоритм (!) — до этого писал прямо из мозга в ассемблер:
Теперь идея и реализация собственно алгоритма автоустановки (все шаги ниже соответствуют неустановленным порогам):

1. Ждем сигнала включения вентилятора от ЭСУД (либо от датчика температуры в радиаторе в варианте Геннадия)
2. Запоминаем температуру в момент появления сигнала как T1 (реально запоминается код канала АЦП оцифровки сигнала датчика — назовем его C1)
3. Включаем вентилятор на 100%. Ставим флаг «режим автоустановки активен (бит 3)»
4. Через 3 секунды считываем код АЦП (назовем его C1′). Это действие нужно для того, чтобы определить величину компенсации значения температуры из-за влияния тока, протекающего через вентилятор, и вызванного им падения напряжения в измерительной цепи, на оцифрованное значение температуры. Реально за 3 секунды мотор не успевает охладиться, зато вентилятор стартует и выходит на номинальный ток.
5. Вычисляем коррекцию АЦП для 100% мощности вентилятора (назовем ее K100 = C1 — C1′). Запоминаем К100.
6. Ждем снятия сигнала включения вентилятора от ЭСУД (либо отключения датчика в радиаторе).
7. Плавно снижаем мощность с 75% до 12% примерно на 1.5% в секунду.
8. Выключаем вентилятор, ждем 60 секунд.
9. Запоминаем температуру как T2 (код АЦП С2).
10. Корректируем нижний порог (увеличиваем на 1/8 разницы между верхним и нижним), для того, чтобы он был выше термостабильной точки термостата. T2 = T2 + (T1 — T2) / 8. В кодах АЦП это C2 = C2 — (C2 — C1) / 8, т.к. напряжение на датчике с ростом температуры падает.
11. Сохраняем C1, C2, K100 во внутреннем EEPROM реле.
12. Устанавливаем флаг «пороги установлены» (бит 5), снимаем флаг «режим автоустановки активен», выходим из режима автоустановки в рабочий режим

Идея алгоритма в том, что он продувает радиатор до термостабильной точки термостата, но дует не сильно, чтобы не остужать двигатель прямым охлаждением блока и головки. Затем вентилятор выключается и реле дает мотору чуть нагреться — таким образом мы автоматически получаем точку для начала работы вентилятора.

Во время автоустановки реле воспринимает сигнал с геркона в течение шагов 7 и 8 — поднесение магнита к реле в эти моменты вызывает последовательность шагов 9, 11, 12. Коррекция порога на шаге 10 при этом не производится).

Если во время автоустановки нарушились некоторые ожидаемые реле условия, устанавливается флаг «ошибка автоконфигурации (бит 4)» и реле выходит из режима автоустановки. Чтобы реле опять смогло войти в этот режим по условию шага 1, надо выключить и включить питание реле.

Ошибки ловятся такие:
Шаг 2 — значение АЦП вне диапазона (слишком низкое или высокое). Диапазон автоконфигурации по коду АЦП 248..24 (11111000. 00011000). В этом случае реле просто не входит в режим автоконфигурации без установки флага ошибки.
Шаг 4 — в течение времени ожидания 3 секунд обнаружено снятие внешнего сигнала включения вентилятора.
Шаг 7 — во время снижения оборотов обнаружен активный внешний сигнал включения вентилятора Шаг 8 — во время ожидания обнаружен активный внешний сигнал включения вентилятора Шаг 11 — установленные пороги вне диапазона 248..24, либо разница C2 — C1 C1 — например, когда вентилятор на самом деле не срабатывает, и температура продолжает расти)

Читайте также:  Жидкое стекло для столешницы своими руками

Теперь рабочий режим:

Расчет требуемой мощности (Preq)
1. Если внешний сигнал активен — Preq = 100% 2. Если неактивен, то смотрится текущий код АЦП © и соответствующая ему температура T:
T C2): Preq = 0%
T > T1 (C = C >= C1): Preq = Pstart + (100% — Pstart) * (C2 — C) / (C2 — C1), где Pstart = начальная мощность (12%)

При этом, требуемая мощность не сразу подается на вентилятор, а проходит через алгоритм плавного разгона и органичения частоты пуска/останова вентилятора.
Этот алгоритм работает только в рабочем режиме и при отсутствии внешнего сигнала включения:
Пусть Pcurr — текущая мощность вентилятора
1. Если Pcurr > 0 и Preq = 0, либо Pcurr = 0 и Preq > 0 — то есть требуется запуск остановленного или останов работающего вентилятора, то:
— Смотрится время находжения вентилятора в данном состоянии (запущен или остановлен). Если время меньше порога — состояние вентилятора не меняется.
— При этом, если Pcurr > Pstart и Preq = 0, то на остаток времени запущенного состояния устанавливается Pcurr = Pstart (то есть вентилятор крутится на минимальных оборотах) 2. Если п.1 не выполняется, либо время нахождения в состоянии прошло, то:
— Если Preq Pcurr, то набор скорости вращения ограничивается сверху величиной примерно 1.5% в секунду (кроме случая, когда включение вентилятора запрашивается внешним сигналом) — то есть если Preq — Pcurr > Pdelta, то Pcurr = Pcurr + Pdelta, иначе Pcurr = Preq

Теперь про алгоритм оцифровки значения АЦП датчика и компенсации паразитной обратной связи при работе вентилятора:

При расчете мощности используется усредненное значение кода текущей температуры С (см. Расчет требуемой мощности), получаемое средним арифметическим последних 8 значений Сm1, Cm2, Cm3… Cm8. Усреднение происходит методом «скользящего окна» — то есть помещение нового значения в буфер из 8 значений выталкивает наиболее старое и вызывает пересчет среднеарифметического С. Цикл АЦП (и пересчет среднего) происходит каждые 640 мс.
«Сырое» (считанное из АЦП) значение Cadc, прежде чем попадет в буфер подсчета, участвует в следующем алгоритме:
1. Проверяется, что Cadc > Cdisc, где Cdics — макс. Значение АЦП для неподключенного измерительного вывода.
2. Если Cadc > Cdisc, то выставляется флаг «датчик не подключен (бит 6)», значение не попадает в буфер 8 последних значений, и пересчет среднего не выполняется.
3. Если Cadc >= Cdisc — то есть датчик подключен, то Сadc корректируется на определенную величину в зависимости от текущей мощности вентилятора и величины коррекции для 100% мощности (см. шаг 4 алгоритма автоустановки): Cadc = Cadc + Кcurr, где Кcurr = К100 * (Pcurr / 100%). Если при этом Кcurr > 0, то устанавливается флаг «значение АЦП скорректировано (бит 7)». Алгоритм коррекции работает только в рабочем режиме и не работает в режиме автоконфигурации.
4. Выполняется ограничение отрицательной динамики Cadc, чтобы подавить резкие снижения С из-за импульсной нагрузки в общих с датчиком температуры цепях питания автомобиля: Если C — Cadc > Сdelta, то Cadc = C — Cdelta. Ограничение не работает в течение первых 15 секунд после включения зажигания, для того, чтобы в буфере значений быстро сформировались правильные значения Cm1, Cm2. Cm8.
5. Скорректированное по мощности и динамике значение Cadc заталкивается в буфер значений для усреднения как Cm1..Cm8 в зависимости от текущего значения указателя головы буфера (буфер циклический, указатель головы принимает значения от 1 до 8).

Теперь про диагностику светодиодом:

Первый байт — это «сырой» код АЦП (в ранних версиях здесь индицировалось среднее значение C) Второй байт — слово состояния Между первым и вторым байтом пауза порядка 1.5 секунд.
Между циклами индикации пауза 3-4 секунды.
Байты индицируются побитно, начиная со старшего (бит 7, бит 6,… бит 0).
Длинная вспышка соответствует биту, установленному в «1», короткая — в «0».

Расшифровка слова состояния:
Бит 7 — значение АЦП откорректировано по текущей мощности вентилятора
Бит 6 — датчик температуры не подключен
Бит 5 — пороги установлены
Бит 4 — ошибка установки порогов
Бит 3 — режим автоконфигурации активен
Бит 2 — внутренний сброс процессора из-за зависания — нештатная ситуация
Бит 1 — внешний сигнал включения вентилятора активен
Бит 0 — режим продувки при остановке двигателя активен

Когда я описал алгоритм, то удивился как его удалось впихнуть в 1024 слова программной памяти tiny15. Однако, со скрипом, но поместился! ЕМНИП, оставалось всего пару десятков свободных ячеек. Вот что такое сила Ассемблера 🙂

Источник

Оцените статью