OBD-II URAT适配器能将UART数据传输到OBD-II上。适配器的车辆实时输出数据是接入OBD-II端口和稳压电源的,接入的电源能够保证Arduino和附属的其他设备正常工作。此适配器可和Arduino或其它5V微控制器一起使用。
OBD是车载自动诊断系统的英文缩写,它是汽车行业的专业术语,表示汽车自我诊断和报告的能力。OBD系统能让车主或维修技工了解到汽车各种子系统的健康状态。自上世纪80年代发明了车载计算机后,OBD就得到了广泛的应用,而通过OBD所输出的诊断信息的形式也相继变得多样化。
第二代OBD(OBD-II)用于控制汽车排放量,它通过运行电脑系统来达到一系列标准。它于1994年首次引入美国,并成为1996年美国新生产车辆中的必备系统。加拿大,欧盟部分地区,日本,澳大利亚,巴西等其他国家也采取了类似做法。大多数的现代车都支持OBD-II或者OBD系统。
OBD-II要求每辆车都应装有标准诊断连接器(DLC),并且能够用标准方式来描述它同汽车的计算机(电子控制单元)通信。大部分信息能够通过接入OBD总线来获取,包括故障指示灯的状况(MIL),诊断故障码,检查与维修信息,冻结帧,车辆识别号码,各种实时参量等。
基于STM32的单芯片(CAN 版本)
内置直接插入汽车OBD-II端口的OBD接头
支持CAN总线(大多数现代车都使用OBD),J1939,J1850,ISO9141等
2孔型Rx/Tx接头,能轻易连接Arduino的UART接口
2孔型电源接头,可提供反向保护的5V直流电(电流最高可达500毫安)
可扩大的Arduino数据库,能显示车辆数据,并可供Arduino板使用
大小:72x48x28毫米
质量:70克
电线长度:1米
硬件简介
适配器的插入OBD端口通常在方向盘下方或略向左的位置。
在另一端,4线(6线模型B)率领的适配器到2(3为模型B)连接器如下图所示(单独或一体机连接器需要额外提供)。
数据线定义:
黄色:Tx(连接到 Arduino’s UART Rx/ D0)
蓝色:Rx(连接到Arduino’s UART Tx/ D1)
红色:VCC (连接到Arduino’s VCC)
黑色 (或绿色):GND (连接到Arduino’sGND)
灰色:SDA(仅提供于模型B)
褐色:SCL(仅提供于模型B)
当连接在一个Arduino,黄线应该连接到D0(Arduino的UART Rx)和蓝线D1(Arduino的UART Tx)。电源线可以连接任何Arduino的VCC和GND的引出线,这样Arduino电路板就会被供电,而不需要额外的外部电源输入。
一个专用的Arduino库用来开发和维护,提供一组易于使用的API来检索实时数据从车辆。
下面的示例代码是一个简单的发动机转速指示器,它使用13针 LED(建在每个Arduino电路板)表明是否引擎是高于5000 RPM。
#include<OBD.h>
COBD obd;
void setup()
{
// we'll use the debug LED as output
pinMode(13, OUTPUT);
// start serial communication at the defaultadapter baudrate
Serial.begin(OBD_SERIAL_BAUDRATE);
// initiate OBD-II connection until success
while (!obd.Init());
}
void loop()
{
int value;
// save engine RPM in variable 'value',return true on success
if (obd.ReadSensor(PID_RPM, value)) {
// light on LED on Arduino board when theRPM exceeds 5000
digitalWrite(13, value > 5000 ? HIGH :LOW);
}
}
当前版本定义的PID:
Vehicle speed(PID_SPEED) //车速
EngineRPM(PID_RPM) //发动机每分钟转速
Throttleposition(PID_THROTTLE) //节流阀位
CalculatedEngineload (PID_ENGINE_LOAD) //理论发动机负荷
AbsoluteEngineload (PID_ABS_ENGINE_LOAD) //绝对发动机负荷
Enginecoolanttemperature (PID_COOLANT_TEMP) //发动机冷却液温度
Intaketemperature(PID_INTAKE_TEMP) //进气温度
IntakeMAP(PID_INTAKE_PRESSURE)//进气压力
MAFflowpressure (PID_MAF_FLOW)//最低听阈流动压
Fuelpressure(PID_FUEL_PRESSURE) //燃油压力
Fuellevel(PID_FUEL_LEVEL) //燃油油位
Barometricpressure(PID_BAROMETRIC)//气压
Ignition timingadvance(PID_TIMING_ADVANCE)//点火提前时间
Enginerunningtime (PID_RUNTIME)//发动机运行时间
Vehiclerunningdistance (PID_DISTANCE)//车辆运行距离
由汽车ECU提供的其他定义可以被添加到OBD-IIPID。完整的代码和库在GitHub.