我把HC-05连接到Arduino的Serial 3.我也能够成功配对车内的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 327v”
其他时候我收到“4105 5A>”的正确回复
当我输入0100或任何其他PID代码时,我得到相同的结果。
请问是否有人知道可能导致此问题以及如何解决问题。
谢谢
首先,请记住,默认情况下,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
)而变化。