Citroen C5 (2G) (Малий)

Android: запуск підсилювача і перевизначення кнопок керма (продовження)

Я їжджу на Citroen C5 (2G)
Львів, Україна

У попередньому записі Android: запуск підсилювача і перевизначення кнопок керма я писав як я зміг запустити штатний підсилювач автомобіля і коректно передати йому налаштування по CAN шині. Працює все чудово вже деякий час і цього разу будемо вирішувати 2 основні проблеми які залишились від попередньої реалізації:

  • Досить велике енергоспоживання
  • Поганенький цифровий потенціометр, який імітував натискання кнопок

Додатково перепакував все в компактнішу коробочку, але все по черзі.

Енергоспоживання.

Плата Arduino Nano обладнана лінійним стабілізатором напруги, адаптером USB CH340 і індикатором живлення котрі споживають не мало енергії навіть в режимі енергоощадження. Схожі проблеми є й у CAN модуля на MCP2515: індикатор напруги та мікросхема TJA1050 котра взагалі не вміє спати.

Правильно було б замінити мікросхему TJA1050 на MCP2551 та провести невеликі зміни в конфігурації плати, але ми підемо трішки простішим шляхом: відпаяємо резистор індикатора живлення і понизимо робочу напругу до 3V. Так-так, саме до 3V. Інтернети кажуть, що для коректної роботи TJA1050 потрібно 5V, тільки от практичні тести показали, що все чудово працює від 3V. Тому беремо паяльник в руки та випаюємо резистори:

випаяний резистор індикатора живлення

На цьому маніпуляції з модулями MCP2515 завершені.

З платою Arduino Nano маніпуляцій трішки більше: потрібно випаяти стабілізатор напруги, замість нього кинути перемичку і, також, відпаяти резистор індикатора живлення:

маніпуляції з платою Arduino


маніпуляції з платою Arduino

В принципі це всі апаратні зміни в обладнанні.

Тепер, модуль живлення HW-613 налаштовуємо на 3V і робимо невеликі маніпуляції в Arduino IDE перед прошивкою мікроконтролера:

  • Обираємо плату "Arduino Pro or Pro Mini"
  • Процесор ATmega328P (3.3V, 8 MHz)

налаштування Arduino IDE

Це потрібно для того, щоб мікроконтролер стабільно працював на пониженій напрузі. Додатково в скетчі я поставив дільник частоти на 2, тобто, таймери і Serial будуть працювати коректно.

Також в скетчі реалізовано енергоощадження, котре опирається на "засинання" CAN шини. В моєму автомобілі шина засинає, орієнтовно, через 2 хв після вимкнення запалення. Arduino слухає момент коли пакети перестануть надходити, чекає ще 5 секунд і, якщо пакети таки не почали надходити, переводить мікроконтролер в режим power down. Коли шина "просинається" то модуль MCP2515 будить мікроконтролер і все починає працювати штатно.

Такі маніпуляції призвели до того, що з попередніх 30 мА, все це споживає 10 мА в активному режимі та 4.5 мА в режимі power down. Як на мене, то це не погано. Перепайка TJA1050 на MCP2551 могла б дати ще 1 - 2 мА економії, але це вже не суттєво на фоні отриманих результатів при тому, що ми залишили USB модуль на платі Arduino Nano.

Потенціометр.

Розпишу трішки про новий потенціометр MCP41100. Цей потенціометр має 256 кроків регулювання опору, що значно розширює можливості по налаштуваннях кнопок. Розпаяв я його прямо на мікроконтролері:

потенціометр на мікроконтролері

Дав каплю клею Stars-922 і короткими провідниками розпаяв до відповідних пінів. На фото, в принципі, видно що куди підпаювати:

  • 1 - D8
  • 2 - D13
  • 3 - D11
  • 4 - GND
  • 5 - 5V
  • 6 - GND
  • 7 - Key 1

Жовтий провідник (7 нога мікросхеми) підпаяв до піна, котрий раніше був виходом +5V, але після випаювання стабілізатора просто висить в повітрі. Від цього провідника виводжу на зовні клему, котра буде під'єднана до входу Key1.

Також провів практичні тести аби зрозуміти, які діапазони опорів сприймає магнітола для віртуальних "кнопок" і які діапазони "тапів" потенціометра їм відповідають:

діапазони віртуальних

Як читати:

  • Кнопка магнітол" - віртуальна кнопка, до якої магнітола відносить певний діапазон опорів на вході Key1 чи Key2
  • Початковий і кінцевий Tap потенціометра - відповідно кроки потенціометра які відповідають цій кнопці
  • Початковий та кінцевий опори - орієнтовний діапазон опорів, які магнітола відносить для цієї кнопки
  • Рекомендований Tap - крок потенціомерта, котрий мав би бути безпечним для відповідної кнопки (орієнтовно мав би попадати в середину діапазону опорів)

Як видно зі скріна, потенціометр здатен імітувати досить багато резистивних кнопок, чого повинно вистарчити навіть для самих сміливих проєктів. Опір понад 78 кОм магнітолою вже не сприймається.

Нова коробочка.

Знайшов на просторах інтернету коробочку, в яку поміщаються всі елементи й при тому, все досить компактно та акуратно:

ноіва і стара коробочки


ноіва і стара коробочки

Як видно, то різниця в розмірах суттєва. Нутрощі виглядають таким чином:

нутрощі нової коробочки

Модуль живлення HW-613 посадив на каплю термоклею з пістолета. Все інше cидить щільно без клею. Саму платку Arduino довелось трішки підпиляти, аби вона сіла на своє місце.

допилювання Arduino )

Тепер мені більше подобається як все працює, скетч оновив.

Пробіг 255000 км.
Опубліковано: 14 листопада 2023р. 09:14
Подія: 13 листопада 2023р. 22:42
0 0 1

Коментарі

Щоб залишати коментарі, потрібно авторизуватись.