Bluetooth OBDII/ELM выдает повторяющиеся данные в качестве ответа

Я HC-05, подключенный к серийному номеру 3 Arduino. Я также смог успешно соединиться с адаптером OBD2-ELM в автомобиле,

В моем эскизе есть код для простой связи с OBD/ELM.

if (Serial3.available()) {
    Serial.write(Serial3.read());
}
if (Serial.available()) {
    Serial3.write(Serial.read());
}

Проблема заключается в следующем:
Если я набираю ATZ, я получаю "ELM327 v2.1>"
Я набираю ATTP5, я получаю "OK>"
Набираю ATRV, возвращает "12.6"
Но если Я набираю 0105 и получаю разные ответы, такие как:
"LM327410v2 ELMv241 M2.11099" или "OK>LM7v41A" или "OK> OK > 41055.1 327 В"

В других случаях я получаю правильный ответ "4105 5A>

Я получаю тот же результат, когда набираю 0100 или любой другой код PID.

Пожалуйста, кто-нибудь знает, что может быть причиной этого и как это исправить.

Спасибо


person shups    schedule 18.07.2018    source источник


Ответы (1)


Во-первых, помните, что по умолчанию завершение ответа адаптера ELM327 равно \r>. Прямая печать этого на консоли приведет к проблемам. Попробуйте заменить \r на \n, и тогда вы увидите лучший вывод, например:

>ATRV
11.9V

>0100
18 DA F1 10 06 41 00 B8 7B 30 10 00
18 DA F1 17 06 41 00 80 00 80 03 00

Фактический вывод, конечно, зависит от того, отправляете ли вы PID (например, 0100) или внутреннюю команду ELM327 (например, ATRV).

person DrMickeyLauer    schedule 02.09.2018