Контролер вентиляторів з регулюванням обертів і плавним пуском своїми руками

Aleksandr Bashkirev, 28 years old
I drive BMW 3 series мужітскій конструктор
Volgograd, Russia

Добридень!
Хочу розповісти про те як я робив контролер вентиляторів для своєї машини.

Насамперед розповім передісторію даної схеми. У мене в машині з заводу стоїть вязкомуфта, але після встановлення не рідного двигуна вона не влізла. Довелося ставити електро вентилятор і вибір припав на здвоєні вентилятори від ниви. Підключив я їх через реле і датчик ТМ-108. Однак досить швидко з'явився ряд проблем з цим всім:
1) Датчик температури відмовився працювати.
Я його поміняв, але через місяць він знову вийшов з ладу. А заміна датчика у мене та ще пісня так як коштує він в патрубку і що б його поміняти треба зняти патрубок ті злити ОЖ, а для цього зняти захист ДВС і пильовик. Загалом я плюнув і поставив кнопку в салоні. Але їздити з кнопкою як ви розумієте так собі задоволення.
2) Другим слабкою ланкою стало реле. За рік я їх поміняв вже п'ять штук. не витримують (Треба звичайно було два реле поставити на кожен вентилятор окреме реле) Але справа в тому що схема з реле мені не подобалася в принципі. І справа тут в наступному пункті.
3) Шум. Вентилятори від ниви пекельно шумлять. Я вже ниву в потоці вгадую по звуку вентиляторів. А одного разу я приїхав на заправку. заправник довго дивився на машину, а потім відбувся діалог:
Заправник: У тебе вентилятори від ниви чи що.
Я так.
Заправник: А зрозуміло.
При цьому машину спереду він не бачив, вгадав по звуку.
4) І останнє. При включенні вентилятора світло притухає, навіть обертів у двигуна падають чуть чуть. Пусковий струм у них величезний. Відповідно необхідний як мінімум плавний пуск.

Загалом думав я думав що з усім цим робити і надумав. Потрібен контролер який буде керувати роботою вентиляторів. Функціонал контролер повинен бути наступний:
1) можливість швидкої і простої настройки під будь-які вентилятори і датчик (Bluetooth і мобільний додаток або USB і Win додаток на ноут?)
2) робота з будь-якими датчиками
3) робота з будь-якими вентиляторами, ті запас по потужності
4) плавне регулювання обертів вентилятора
5) відсутність механічних контактів в ланцюзі вентилятора.

Мозок контролера - мікро контролер
Очевидно, що без мікроконтролера тут не обійтися. Вибір припав на stm32f103 просто тому, що налагоджувальні плати з ним у мене були в наявності і крім того я знайомий тільки з stm32. AVR з PICамі обійшли мене стороною, а Ардуіно ... занадто нудно воно.

Фото 1. stm32f103 Board

Силова частина схеми
Наступний момент це вибір силових ключів, очевидно що єдиний варіант це потужні КМОП транзистори. Вони бувають n-канальні і p-канальні. Причому n-канальні завжди могутніше відсотків на 20-30. Це пов'язано з технологією виготовлення і від цього нікуди не дітися. Найпростіший спосіб використання польових транзисторів це n-канальний транзистор в нижньому плечі, а p-канальний в верхньому плечі. Ті виходить, що оскільки n-канальні польовики могутніше, то потрібно зробити схему нижнього плеча і все буде відмінно. Але, увага на малюнок.

Фото 2. відмінності верхнього та нижнього плеча.

Як видно з малюнка в схемі нижнього плеча плюс завжди підключений до навантаження а комутація відбувається підключенням маси. Мене це не влаштовувало абсолютно. Тягнути постійний плюс від акумулятора на вентилятори неправильна затія на мою думку. А брати плюс головного реле або замка запалювання ідея ще гірше так як знову будуть проблеми з навантаженням на реле або контактну групу. Використовувати ж p-канальні польовики все ж не хотілося бо граничні струми у них відчутно менше.
Такими міркуваннями я прийшов до пошуку схеми включення n-канального польовика в верхньому плечі. Все виявилося досить просто і придумано до нас (що в загальному-то не дивно) і так драйвер n-канального польовика верхнього плеча: IR2117:

Фото 3. Типове підключення верхнього плеча з польовим транзистором - Ir2117


Даний драйвер здійснює накачування напруги на затворі транзистора до приблизно 30 вольт таким чином напругу ЗІ виходить рівним 15 В що відповідає повному відкриття транзистора.
Однак не все так просто як здається. Справа в тому, що накачування напруги здійснюється за рахунок заряду запасеного в бутстрапном конденсаторі. Але цей конденсатор потрібно ще й заряджати. Ті дана схема працює тільки в імпульсному режимі. У моменти відсутності сигналу заряджається бутстрапная ємність. Мої експерименти показали, що при харчуванні від 12-13 В максимальна шпаруватість дорівнює 70%. Ті за допомогою даної схеми ми не можемо розігнати вентилятори більш ніж на 70% максимальної швидкості. Це зрозуміло не прийнятно.

Подальше гугленіе привело мене до схеми накачування бутстрапной ємності за допомогою таймера n555. Дана схема складена інженерами компанії IR. Використовувати її безпосередньо звичайно не варто, по-перше драйвер у нас інший та й навіщо нам зовнішній таймер коли у нас є мікроконтролер.

Фото 4. Схема накачування бутстрапной ємності за допомогою зовнішнього таймера.

Вхідна ланцюг сигналу датчика температури

Останньою завданням була обробка датчика температури.
Типова залежність опору резистивного датчика від температури виглядає приблизно так:

Фото 5. Залежність опору резистивного датчика від температури.

Для управління вентиляторами нам не потрібно вимірювати температури менше градусів 70, але в той же час вони займають більшу частину діапазону датчика. Відповідно якщо підключати датчик до АЦП через резистивную ланцюжок, точність вимірювання температури буде мала і домогтися плавного регулювання обертів буде проблематично. Тому було вирішено використовувати диференційний підсилювач на ОП. Причому на НЕ інвертується вході задати напруга відповідне потрібної мінімальній температурі вимірювання. І підібрати коефіцієнт підсилення такого, що б при максимальній температурі на виході ОУ було опорна напруга АЦП. Така схема дозволяє відкинути непотрібний діапазон вимірювань. Звичайно для забезпечення універсальності схеми діапазон доведеться розширити проте точність при цьому все одно на порядок більше.

схема
Ну вступна частина закінчена перейдемо до слайдів)

Фото 6. Схема пристрою.

Ось така схема у мене вийшла в підсумку. Тут два канали ШІМ керованих від одного датчика. В даній схемі не відображена можливість настройки, тобто нету ні Bluetooth ні USB. Справа в тому, що для початку потрібно визначитися з корпусом, А для цього потрібно визначитися наскільки сильно будуть грітися ключі. Можливо доведеться використовувати алюмінієвий корпус і тоді про блютуз можна забути. І постане питання забезпечення пило і волого захисту для USB роз'єму.

І так, трохи про те як що і для чого на схемі. Транзистори Q5 і Q6 працюють в ключовому режимі і потрібні для конвертації виходу мікроконтролера з рівнем одиниці рівним 3.3В у вхід драивер ir2117 з рівнем одиниці 12В.
Транзитором Q7 Q8 так само працюють в ключовому режимі і забезпечують накачування бутстрапной ємності драйверів. Резистор R4 задає мінімальну температуру вимірювану системою, чим більше опір тим менше мінімальна вимірювана температура. Діоди D2 D4 захисні діоди Шотки, що розсіюють індуктивну енергію накопичену в котушках мотора при відключенні мотора від напруги живлення. Харчування мікроконтролера і ОУ зібрано на стабілізаторі LM7805.

плата
Перші тести схеми проходили на отладочной платі:

Фото 7. Фінальний вид отладочной плати з контролером вентилятора.


Ворох всього а це ж тільки один канал)
Але ж так добре все починалося:

Фото 8. Перші тести контролера n-канальний транзистор в нижньому плечі і реостат безпосередньо підключений до МК.

Після того як на отладочной платі все запрацювало, появилсь необхідність перевірити схему під навантаженням в реальних, так би мовити бойових, умовах. Тому вирішив спочатку зібрати все в DIP для простоти доробок в разі чого.

Фото 9. Бета версія контролера. на тлі датчик 23.3838 від пріори. Саме його буду використовувати спільно з контролером.

Фото 10. Встановлюю на машину.

Відразу ж при установці зрозумів, що не передбачив вимкнення живлення схеми при виключенні запалюванні. Ті передбачалося що харчування на схему буде йти на пряму з акумулятора що б уникнути будь-яких механічних вмикачів на шляху струму. Однак при такій схемі контролер завжди включений і споживає близько 30 мА, що не є добре. Довелося порізати доріжку і живити всю логіку окремо, взявши плюс з головного реле.
Другим істотним мінусом виявилося те, що ключі при повного навантаження сильно гріються. А при частковому навантаженні гріються захисні діоди. Справа в тому що передбачалося створити схемою яка потребує охолодження, що б було досить пластмасового корпусу. Вирішив допаять ще по одному елементу в паралель. Плату переробляти не став, все одно ж тестова.

Фото 10. Другий ряд ключів і діодів.

Однак ключі і діоди все одно відчутно гріються, не дивлячись на те що у ключів максимальний струм 110 А, а імпульсний 300А! На платі їх чотири штуки. Ті теоретично схема повинна бути в змозі пропускати до 440А постійного струму і до 1200 в імпульсі! У той час як реальна навантаження при повному включенні близько 30А постійного струму. Ті 14и кратний запас по потужності, але ключі все одно гріються! Відповідно потрібно вирішувати на рахунок алюмінієвого корпусу. Або досить поставити радіатори всередині пластмасового корпусу як зараз стоїть на стабілізаторі.
Час покаже, а поки катаюся так, подивимося скільки проживе.

Загалом робота в процесі.

2 m Tags: охолодження ДВС, контролер вентилятора, шим, stm32, кмоп, польовий транзистор.

Куди на драйвер? На вхід звичайний сигнал Шиман.
А схема дозарядки бутстрапного конденсатора розряджає інший конденсатор (в схемі це с9 і с10) на бутстрапний з частотою більшою ніж частота основного Шім'а. За рахунок цього підтримуючи на бутстрапном необхідну напругу.
За фактом я осциллографом дивився напруга затвор витік при стовідсотковій скаважності і там немає навіть сумнівів ніяких стабільні 11 вольт.
Крім того навіть якби бутстрапная ємність розряджається, ви ж самі сказали що драйвер відключить транзистор для запобігання роботи в лінійному режимі і ніякого нагрівання транзистора не буде. Так я теж так пробував, при спробі відкрити транзистор стовідсоткової скавжностью без підкачки, виходить шпаруватість 70% з частотою 5кГц так працює сам драйвер. Так що ваше припущення як не дивися неправильне.

- Припустимо, що транзистор відкритий, на навантаженні - напруга живлення 12В. Стільки ж на початку, очевидно. На затворі потрібно мати + 22В.

- дивився напруга затвор витік при стовідсотковій скаважності і там немає навіть сумнівів ніяких стабільні 11 вольт.

Ви плутаєте напруга затвор-витік і напруга затвор-маса! Якщо на навантаженні напруга 12В а напруга затвор-витік = 11 вольт, то напруга затвор-маса 23В. Все зійшлося Карл!

За це відповідає сам дравер IR2117, всередині нього є транзистори які підтягують затвор до витоку. Крім того я дивився напруга ЗІ осциллографом, там ідеальні фронти. Ну і плюсом до всього найсильніше гріються транзистори саме при максимальній швидкості ті коли ніякого Шиман нету і транзистор повністю відкритий. При 70% Шім'ї нагріву майже немає.

У Datasheet IR2117 є опір в затворі MOSFET. Приблизно 15-20 Ом. Є сенс поставити, щоб не перевантажувати драйвер.

да поставлю. Дякую за зауваження!

Схожі статті