• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+
イイね!
2022年12月11日

Arduinoを使ったOBD2対応車両センサデータ読み取りユニットの作成

Arduinoを使ったOBD2対応車両センサデータ読み取りユニットの作成 ●これは何?
ArduinoのADCと割り込みを使って車速・回転数パルスや、外付けのブーストセンサー、水温センサー等を読み、USBやOBDII経由でセンサ情報を取り込むプログラムです。

●何ができるの?
○OBDII端子化がない旧車でOBDII対応の外付けメーターの取り付けが可能になる。
○OBDIIではなくUSB経由でデータを取り込む場合このプログラムのデータソースとして使用可能。(OBDII経由で取り込む場合よりも高速で取り込み可能)

●デモ#1
オートゲージのプーストセンサーをArduinoで取り込んでOBDIIでデータ転送した後、ELM327 Bluetoothアダプタでスマホで取り込んでTorqueで表示させています。


●デモ#2
デモ#1と同様オートゲージのブーストセンサー信号をArduinoで取り込んでいますが、こちらはOBDIIではなくUSB(Arduino内蔵のUSBシリアル変換)で取り込んでいます。こちらのほうが通信がシンプルな分応答が高速で可能です。
ブログ一覧 | メーター | 日記
Posted at 2022/12/11 12:44:03

イイね!0件



今、あなたにおすすめ

ブログ人気記事

岐阜が準々決勝に...。
138タワー観光さん

【ジムニーノマド】実用性・カスタム ...
YOURSさん

空調服マキタファンジャケットの修理
TWIZYコムス にゃんこRさん

晴れ、今日も猛暑日(あと8日)
らんさまさん

メルのために❣️
mimori431さん

2025.08.19 今日のポタ
osatan2000さん

この記事へのコメント

2022年12月21日 11:17
はじめまして。
OBD2のない車(セリカ)に乗っています。最近サーキットを走るようになりRaceChronoで記録しているのですが、どうにかして回転数、ブースト圧等を表示させられないかを調べていたところ、このブログを拝見しました。自分でも部品集めて作成することが出来るのでしょうか。もう少し詳しく教えて頂けたらと思います。
コメントへの返答
2022年12月21日 23:55
コメントありがとうございます。
もう少しわかりやすいドキュメントを書いてみようかと思いますが、それよりも前にまずRacerChronoで動作確認取れるかどうかを試しますので、しばしお待ちいただければと思います。
2022年12月22日 10:43
ご返答ありがとうございます。
最近自分で車をDIYしていますが、このブログをきっかけに機械工学から電子工学にチャレンジしてみようかと思います。ブログ更新お待ちしております。
コメントへの返答
2023年1月2日 23:17
おまたせしましてすみません。
整備手帳に詳細を書きましたのでご参照いただければと思います。
2023年2月20日 11:05
だいぶ時間かかってしまいましたが、ARDIUNO他、必要な物を揃え、sz2さんのブログ参考にしながら、チャレンジしてみました。まずは机上で回路造り、プログラム勉強し、RaceCronoに表示させるところまで出来ました。その際、調べたことを活かすため、温度センサーはNTCサーミスタをARDIUNOに接続、あと、スロットル開度を知りたくて、アナログにて取り込みしてみました。机上では何となくうまくいった(回転数はパルスの模擬発信できないので0のまま)ので、いざ、実車に接続してみました。が、うまくいきません・・
温度は表示されるのですが、他の値は何かおかしいのと、回転数が全く表示されません。そういえば、パルス電圧のことがsz2さんの整備記録にあったので、取り急ぎ調べて、手元のスターターキットにダイオードがあったので、クランプ回路なる物を作ってみましたが、変化無し。
今一度sz2さんのブログにある資料と比べたところ、OBD2の電源は12Vなのでバッテリーからと取ったのですが、アースはUNOに接続されていました。
GNDが変な風に混在してしまっているのか、まずはOBD2のGNDを取り直して、また、試してみます。
コメントへの返答
2023年2月23日 21:05
コメントありがとうございます

回転数が取得できない件について
お力になれずすみません
ST205の回転数パルス波形が分かると原因究明と対策が立てられるのですが、残念ながらネット上で探して見つかりませんでした。(カルディナのものはあったのですが…)

ST 205の回転数をパルス波形がわからないので外してるかもしれませんが、もしかしたら回転数パルスの最低電圧が0vから浮いていることが原因なのかもしれません。

当方が整備手帳に挙げた回路は回転数パルスを一旦NPNトランジスタで受けるのですが、この回路の弱点はパルスの最低電圧が0V付近にならないと正しく動作しないことです。NPNトランジスタがオフになるにはベースエミッタ間が0.7V以下にならなくてはならないのですが、パルスの最低電圧(底)が浮いているとNPNトランジスタはずっとONになってしまうため、次段のインバータにパルスが伝わらなくなります。

カプチーノの例を挙げている方がいらっしゃいますが、
https://minkara.carview.co.jp/smart/userid/1911868/car/1430108/4056289/note.aspx
この例でもオシロスコープで見た波形の底が0Vよりも浮いていますので、NPNトランジスタで受けるとパルスが拾えなくなってしまうかもしれません。
こういった場合は、上のリンクにある通り、保護抵抗、クランプダイオード、(ノイズ除去用)コンデンサを設置した上で、トランジスタに入れずシュミットトリガインバータに入れたほうが良いかもしれません。(CMOSインバータならVccの半分を跨げばオンオフが切り替わるので)

スロットルが拾えない件
スロットル開度はArduinoのADCで読んでおられるのでしょうか?
ADCで拾えているがOBD出力できていないのか、そもそもADCで電圧が拾えていないのかで対策が変わるかと思いますので、もしノートパソコンをお持ちてしたら、一度DUMPモードを使ってADCの生の読み値を確認するのが良いかもしれません。
(やり方は時間ができたら記事にしたいところです)
2023年2月24日 9:25
コメント返信ありがとうございます。
読み取れない原因は至って簡単で、ARDIUNOの電源を車内だったのでモバイルバッテリーにて取っていて、それが不安定だったようです。調べてみるとARDIUNOは12VOKだったので、バッテリーのOBD2の12Vラインから分岐し、DCプラグで供給したところ、回転数他、表示させることが出来ました。
次はsz2さんの整備記録にある12Vパルスに対して、シュミットトリガ他を秋月電子で取り寄せ、実走し、試してみようと思います。
そのときに機器廻りを整線しようと思うのですが、ここでGNDが最終的に車のバッテリーへと繋がることとなりました。この場合、シュミットトリガ、サーミスタ等のGNDはいったんARDIUNOに戻した方が良いのか、それとも回転数など車から直接来ている信号は介さずにバッテリー系統GNDの戻したほうが良いのか、いや、とにかくGNDは極端な話、深く考えず全て繋がっていれば問題ないのか、よろしければおしえていただけないでしょうか。
コメントへの返答
2023年2月25日 15:49
コメントありがとうございます。まずは動いたようで良かったです。

GNDに関しては車体側、OBDアダプタ、CANボード(MCP2515)、Arduinoボードおよびトランジスタとかいった付加回路の各々のGNDが電気的に繋がっていればまずは良いんじゃないかと思います。

回転数パルスやスロットルセンサーの信号電圧はあくまでも車体およびECUのGNDを基準とした電圧ですので、Arduino(および付加回路)のGNDが車体・ECUのGNDと分離されてしまっている場合は、パルスやセンサの電圧を違うように読んでしまう可能性はありえます(ArduinoのGNDと車体のGND繋がっていないなら同じ電位である保証がないので)

以上、ご参考になれば幸いです。また何かありましたらコメントください。
2024年12月18日 11:12
初めまして。(長文となります、すいません)
1991年製のケータハム スーパーセブンに乗っており、OBD2経由での車速情報の取り込みに対応したカーナビアプリ(カーナビタイム)の使用を目標としてこのブログ記事を参考に機器を組み立てています。

準備した機器は
・Arduino Uno R3(純正)
・MCP2515 CANバスモジュール
 (ブログ記事にて使用されている物と同じ基板)
・Veepeak OBDCheck BLE+ Bluetooth 4.0 OBD2アダプター
 (カーナビタイム公式動作確認済みの物を選定)
・DV5V動作近接センサー
・DC12V電源
 (ArduinoのDCプラグへ接続,OBD2の+12Vもここに接続)
です。

以上をGitHubに掲載されている回路図に沿って組み合わせ、
スケッチを書き込み、Arduino IDEのシリアルモニタで「CAN BUS Shield unit Init OK」の確認および、近接センサーをON/OFFしながらSerial interactive modeにて”S”コマンドを送信し、変数speedの値が返信される事を確認しました。(近接センサーのON/OFF速度に対して変化あり)

そこから、OBD2アダプター → Androidへの情報送信確認へと進み、OBD2アダプターのペアリング,RaceChronoのインストールを終わらせました。
その後、RaceChronoでの動作確認において、右上の歯車アイコン→OBD-IIリーダーを追加(VeepeakのOBD2アダプターを選択)→車両情報→接続テストと進み…
接続テストをONにすると「接続済み,0.1kbit/s(数値は0.nで変化)」となるのですが、時折「接続済み,デバイスからのデータがありません」となり、接続テストの下の行の「標準チャンネルを表示」をONにした後に出て来る項目の中の「速度」が空白で何も表示されていない状態でした。(その他の項目も全て空白)

Android ~ OBD2アダプター ~ RaceChrono間については、現行型プロボックスのOBD2にOBD2アダプターを接続し、その他同条件にて各種センサー値がRaceChrono上に表示されております。

使用している機器が違いますので、「環境による」かもしれませんが、何かトラブルシュートのヒントなどありましたらお願い致します。



現在はOBD2で速度情報を飛ばす所にフォーカスしていますが、アナログ入力(水温/油音/油圧)に対するワーニング出力等々への拡張にも使わせて頂こうと計画しております。
とても有用な情報の公開ありがとうございます。
2024年12月18日 13:23
コメントを記入した後に再度しげしげと眺めているとCANバスモジュールのジャンパ(ターミネーター切替)が外れていました…
ターミネーター有効化で何事も無かったように通信し、RaceChronoでの速度表示、カーナビタイムでの速度情報の有効化が確認出来ました。
お騒がせしましてすいませんでした。

セブンは現在塗装に出していて実装は来年になると思いますが、また報告に来たいと思います。
一先ずありがとうございました!
コメントへの返答
2024年12月20日 0:31
コメントありがとうございます。トラブル直ったようで良かったです。

当方海外駐在中の身分で手許に車両がなく、なかなか実車を使った検証が難しい中での開発となっております。

その中で実車でのレポートを頂けるのは、大変助かり、また励みになります。
ありがとうございました。

プロフィール

「一時帰国中にELM327のテスト http://cvw.jp/b/2575675/48215452/
何シテル?   01/19 22:06
車関係のソフトウエアを作っていますが車は持っていません。 ・15年前、インプレッサSTI(丸目GDB,2000年式)を購入。この時車載PCなるものに手を出...
みんカラ新規会員登録

ユーザー内検索

<< 2025/8 >>

     12
3456789
10111213141516
17181920212223
24252627282930
31      

ブログカテゴリー

リンク・クリップ

メーター製作① 
カテゴリ:その他(カテゴリ未設定)
2023/02/20 21:24:47
とりあえず公開します 
カテゴリ:その他(カテゴリ未設定)
2018/02/05 19:47:22
自作デジタルメーター マルチファンクションディスプレイ(MFD)もどき HTML5+Canvas  
カテゴリ:その他(カテゴリ未設定)
2016/02/29 22:19:20

愛車一覧

スバル インプレッサ WRX STI スバル インプレッサ WRX STI
手放しましたすみません。

過去のブログ

2025年
01月02月03月04月05月06月
07月08月09月10月11月12月
2024年
01月02月03月04月05月06月
07月08月09月10月11月12月
2023年
01月02月03月04月05月06月
07月08月09月10月11月12月
2022年
01月02月03月04月05月06月
07月08月09月10月11月12月
2018年
01月02月03月04月05月06月
07月08月09月10月11月12月
2017年
01月02月03月04月05月06月
07月08月09月10月11月12月
ヘルプ利用規約サイトマップ

あなたの愛車、今いくら?

複数社の査定額を比較して愛車の最高額を調べよう!

あなたの愛車、今いくら?
メーカー
モデル
年式
走行距離(km)
© LY Corporation