Arduino OBD II 适配器


产品简介

 

OBD-II URAT适配器能将UART数据传输到OBD-II上。适配器的车辆实时输出数据是接入OBD-II端口和稳压电源的,接入的电源能够保证Arduino和附属的其他设备正常工作。此适配器可和Arduino或其它5V微控制器一起使用。

OBD是车载自动诊断系统的英文缩写,它是汽车行业的专业术语,表示汽车自我诊断和报告的能力。OBD系统能让车主或维修技工了解到汽车各种子系统的健康状态。自上世纪80年代发明了车载计算机后,OBD就得到了广泛的应用,而通过OBD所输出的诊断信息的形式也相继变得多样化。

 

第二代OBDOBD-II)用于控制汽车排放量,它通过运行电脑系统来达到一系列标准。它于1994年首次引入美国,并成为1996年美国新生产车辆中的必备系统。加拿大,欧盟部分地区,日本,澳大利亚,巴西等其他国家也采取了类似做法。大多数的现代车都支持OBD-II或者OBD系统。

 

OBD-II要求每辆车都应装有标准诊断连接器(DLC),并且能够用标准方式来描述它同汽车的计算机(电子控制单元)通信。大部分信息能够通过接入OBD总线来获取,包括故障指示灯的状况(MIL),诊断故障码,检查与维修信息,冻结帧,车辆识别号码,各种实时参量等。

特点

 

基于STM32的单芯片(CAN 版本)

内置直接插入汽车OBD-II端口的OBD接头

支持CAN总线(大多数现代车都使用OBD),J1939J1850ISO9141

2孔型Rx/Tx接头,能轻易连接ArduinoUART接口

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(ArduinoUART Rx)和蓝线D1(ArduinoUART Tx)。电源线可以连接任何ArduinoVCCGND的引出线,这样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.

 

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Arduino可以读取汽车的OBD(On-Board Diagnostics,车载诊断系统)数据OBD是一种车辆监测系统,通过汽车的OBD接口,可以获取到各种关键的车辆信息,如车速、引擎转速、冷却液温度等。利用Arduino的串口通信功能,我们可以连接OBD接口和Arduino板子,从而获取这些信息。 首先,需要有一个OBD-II适配器,该适配器可以将OBD接口中的数据转换成Arduino可以读取的格式。一旦适配器Arduino连接好,我们就可以使用Arduino的串口通信库实现与适配器的通信。通过发送特定的命令,Arduino可以向适配器请求车辆信息,并接收适配器返回的数据。 接收到数据后,我们可以在Arduino的程序中进行进一步处理。可以使用Arduino的“Serial”库来解析接收到的数据,从中提取出所需的信息。数据可以通过串口输出,也可以通过其他输出方式进行显示,例如连接液晶显示屏或者通过无线方式传输到其他设备上。 需要注意的是,不同车辆的OBD接口可能不同,所以在连接适配器时要确保选择适合的适配器类型,以保证正常的通信和数据读取。此外,还需要了解和学习相关的OBD-II协议和命令,以便正确地与适配器进行通信。 总结来说,Arduino可以通过串口通信可以读取车辆的OBD数据。通过连接OBD适配器Arduino,向适配器发送命令来请求车辆信息,并通过解析数据获取所需的信息。这样可以为我们进行汽车监测和诊断提供便利。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值