Преобразование диапазонов сопротивления датчика уровня топлива - хороший проект Arduino?

Я немного повозился с Arduino, поработал над некоторыми учебниками. У меня есть инженерное образование и опыт программирования, но электроника-не мой родной язык. Так что прошу прощения, если это глупый вопрос.

Вот в чем проблема. Я заменил двигатель GM 2007 года выпуска на более старый Toyota Land Cruiser. Мне нужно сделать так, чтобы он соответствовал эмиссионному оборудованию, которое изначально было установлено на автомобиле 2007 года выпуска. Большая часть этого довольно прямолинейна - каталитические нейтрализаторы, датчики O2, канистра с углем, электромагнитные клапаны продувки и вентиляции, датчик давления. Единственное, чего я еще не разобрался, - это уровень топлива. Система испарительных выбросов требует ввода уровня топлива в PCM (Модуль управления силовым агрегатом), чтобы она могла определить, когда и как провести проверку давления топливной системы - ту самую, которая включает контрольную лампочку двигателя, если газовый колпачок включен недостаточно плотно.

Одним из решений было бы установить датчик уровня топлива GM ... но это включает в себя слив резервуара, падение его, возможно, вырезание новых отверстий, больше проводов и т. Д. Я надеюсь, что смогу исправить это в программном обеспечении :)

Блок отправки уровня топлива GM считывает 0 Ом пустым и 90 Ом полным. Существующее отправляющее устройство Toyota должно быть 110 Ом пустым и 3 Ом полным.

Итак ... возможно ли построить проект на основе Arduino, который считывает сопротивление от передатчика Toyota (без вмешательства в датчик Toyota) и переводит его в диапазон, ожидаемый GM PCM?

Я думаю, что-то вроде этого лежит в основе этого: https://www.arduino.cc/en/Tutorial/LibraryExamples/DigitalPotControl Но я не знаю, чего я не знаю.

Спасибо, ребята - дополнительная информация, основанная на ответах:

Отправитель Toyota определенно представляет собой двухполюсник 12 В с двумя клеммами. Автомобильные электрические системы номинально имеют напряжение 12 В, но обычно работают примерно на 13,3 В.

Датчик GM также является двухполюсником. Согласно электрической схеме, одна клемма идет к низкому опорному контакту на ПКМ, а другая-к контакту на ПКМ с надписью сигнал уровня топлива.

Но это не говорит вам о напряжении, которое они прикладывают к этому контакту - может быть, просто 5 В, а другие вещи, выходящие из ПКМ, есть. Я также не смог найти процедуру тестирования. Я прикреплю этот разъем и посмотрю, что смогу измерить в следующий раз, когда буду там.

Сигнал уровня топлива используется в системе испарительных выбросов (evap) для двух целей.

  1. Вакуумный тест evap может быть проведен только тогда, когда резервуар заполнен примерно на 1/3 - 2/3.
  2. Вакуумный тест калибруется по тому, насколько полон бак - более низкий уровень топлива означает, что больше воздушного пространства в баке означает, что давление будет меняться медленнее по сравнению с более полным баком.

, 👍0

Обсуждение

у нас нет всех подробностей того, как каждый датчик/устройство "разговаривает" с другим, но в целом, да, это, вероятно, вполне возможно сделать с помощью микроконтроллеров Arduino и, возможно, небольшого количества вспомогательного оборудования, такого как ЦАП (или RC-фильтр), если это необходимо. Разбейте большую проблему на маленькие ступеньки и попросите помощи, если вы застряли на одной из них., @dandavis


1 ответ


1

Датчик Toyota может использовать 12 В вместо 5 В, что означает, что вам нужно будет использовать делитель напряжения, чтобы довести его до диапазона, который могут считывать аналоговые входы Arduino.

Вам нужно будет найти цифровой потенциометр, который может обрабатывать диапазон напряжений, который ГМ-контролер хочет посмотреть. Это может быть 0-12В, что было бы проблемой, так как AD5206 хорош только для 5В.

Однако, как подразумевает Дандавис в своем комментарии к RC-фильтру, вы можете смоделировать полный диапазон 0-12 В с помощью ШИМ, где вывод Arduino управляет транзистором, чтобы измельчить 12 В, а RC-фильтр сглаживает результат для блока управления GM. Это, наверное, ваш лучший подход.

В качестве альтернативы, если контроллер GM ищет только уровень go/no-go, вы можете использовать транзистор для переключения простого делителя напряжения, чтобы получить правильное напряжение от 12 В.

Датчики-это (предположительно) просто переменные резисторы (2-клеммные) , а не полные 3-клеммные потенциометры. Скорее всего, они будут использовать последовательный резистор для создания делителя напряжения, и блок управления (или датчик в Toyota) будет считывать результирующее напряжение. Вам нужно будет либо узнать значение последовательного резистора, либо измерить напряжение, которое видит датчик. Возможно, он уже находится в диапазоне 0-5В. Блок управления GM может иметь встроенный последовательный резистор (или использовать источник тока), и в этом случае вы должны измерить напряжение, которое видит вход его датчика, когда вы даете ему максимальное и минимальное сопротивление. Это будет полезно знать,когда вы попытаетесь управлять им по своей собственной схеме,

,

Спасибо - я добавил еще немного информации в оригинальный пост на основе этих ответов. Есть неплохой шанс, что GM PCM только толкает 5V к датчику, но я не смог найти его в документах до сих пор. Постараюсь его измерить., @CoAstroGeek