Вітаю✌
В продовження тем
Sensors\Gauges. Part 1. Dashboard.
Sensors\Gauges. Part 2. Control Unit. Software.
Частина третя - "мозок" системи. За основу обрав сучасну плату на основі esp32 з процессором на 2ядра по 240МГц і всима перефірійними плюшками (які мені не потрібні в данному випадку).
Оскільки і датчики і контроллер живляться від 5В, а в автомобілі ми маємо 12-14.6В то потрібен стабілізатор на 5В
Це кудись, в ідеалі, запихнути разом з усіма роз'ємами. Малюю\друкую корпус
І перша примірка - наче ок. Кусок текстоліту - для коммутації.
Далі паяльник в руки, дроти і треба то все обпаяти відповідно до коду, який був написаний в частині 2.
Готово. Заливаю прошивку, підключаю живлення, датчик температури, дисплей з першої частини і бачу на екрані якусь дічь. Починаю гуглити і трохи підвисаю. Справа в тому, що вся логіку тестувалася і софт писався на arduino uno, вона на 5В і має АЦП 5В. А он есп32 плати мають АЦП 3.3В, навіть якщо живлення у них 5В. А також сам ацп у них не 10біт, а 12біт. І якщо бітність то фігня (треба в коді де йде розрахунок вхідного сигналу просто замінити 1023 на 4095), то з рівнем напруги без переробки логіки нічого не зробиш. Озадачився. Спочатку хотів розпаяти все, і в додачу до вже існуючого ділителя напруги додати ще один, або переробити той що є і переписати трохи код. Але тут мені на очі трапилася arduino pro mini 5V, яка в мене валяэться без діла вже років 10. Я вирішив її заюзати чисто як АЦП заміть вбудованого в есп32. Перепаюю 6 дротів з аналогових портів есп32 в ардуіно, швиденько накидав скетч виміру напруги на портах і передаю значень по Tx-Rx в есп32. Далі есп32 по всім формулам, які були в другій частині, обраховує значення датчиків і передає на екран. Данні оновлюються раз в 300мс. Можна і швидше, але в тому нема сенсу. Хіба тільки для буста і то не обов'язково.
Софт поправлений, все розпаяно.
Підключаю датчик температури і....успіх)
Буст? Працює також
З урахуванням того що АЦП переїхав в ардуїну і від есп32 мені треба було всього 7 портів (тх-рх та і2с шина для ЕГТ сенсора) то можна було все переробити на вдвічі меньшу плату esp32 s2 mini. Але вже лынь було перероблювати корпус, хоча можно було зробити майже вполовину меньше. Друкую кришку вже до того, що є і на виході отримую таких ось блок...
По портам (розписував для себе, щоб не забуть потім що куди під'єднано):
Port1 (2-Pin) – Power port. Red - +12V. Black – GND.
Port2 (2-Pin) – Coolant temp sensor
Port3 (2-Pin) – AT oil temp sensor
Port4 (2-Pin) – Engine oil temp sensor
Port5 (2-Pin) – IAT sensor
Port6 (3-Pin) – Engine oil pressure sensor. Red - +5V. Black – GND. Yellow – SIG. Sensor(defi): Red – Vc, Black – GND, White – SIG.
Port7 (3-Pin) – MAP sensor. Red - +5V. Black – GND. Yellow – SIG. Sensor(bosch map 3bar): 1 – Vc, 2 – GND, 3 – SIG.
Port8 (6-Pin) – EGT sensor. Red - +5V. Black – GND. CLK (Blue) – GPIO18. CS (Green) – GPIO8. DATA (Yellow) – GPIO3.
Port9 (4-Pin) – Display. Red - +5V. Black – GND. Blue – Tx.
В ідеалі то, звісно, розвести на своїй платі і розпаяти, буде значно компактніше і, мабуть, краще. Але такої задачі не стояло. Ціль була зібрати, щоб працювало і воно працює.
Тепер треба то все інсталювати в авто. Я вже частково почав робити і це теж не дуже просто, розпишу пізніже окремо, коли дороблю.
Причому друга то 70%) Можливо я колись наважусь то запустити в продаж - тоді вже, звісно, доведеться робити плату.
А от ІАТ, думаю, найближчим часом поставлю і напишу фінальну 4ту частину цього балету. Треба тільки знайти в Сумах хто мені в інтеркулер приварить алюмінієву втулку в яку вкручується датчик)