エコラン用ECUの自作 No.4 プログラム編


前回は,インジェクタを駆動するための回路を説明しました.

今回は,インジェクタを制御するための,ECUのプログラムを説明したいと思います.

 

  • マイコン

今回のECUの製作に使用したのは,Arduinoというマイコンです.このマイコンは,液晶ディスプレイやSDカードなどの機能を比較的簡単に使用できるという特徴があります.




 

  • プログラムの概要

インジェクタの制御といっても,やっていることは簡単です.
決められたガソリン噴射時間に沿って,インジェクタをオンオフするだけです.

具体的に言うと,噴射マップ(回転数と噴射時間の表)を作り,エンジンの回転数に応じた時間だけインジェクタに通電をします.

 

  • インジェクタのプログラム

インジェクタの制御をするプログラムの主な役割は,インジェクタのオンオフを正確に行うことです.

そのために,エンジンのセンサが感知したらインジェクションをオンにし,指定時間経過したのちにオフにするという処理が必要になります.

Arduinoにはdelay() という,指定時間プログラムを止めて待つという関数がありますが,これはdelayが終わるまでマイコンの他の処理を止めてしまいます.
また,他に時間のかかる処理がある場合は,その分だけオンにするのが遅れたりと,正確に噴射することができないので,delay()を使用するのはおすすめできません.

そこで,噴射の処理をするために,タイマ割り込みという機能を使用しました.タイマ割り込みを使用すれば,通常の処理を行いながら,指定時間になった瞬間に確実に処理が行われるので遅延がありません.また,センサの入力にも割り込みを使用することで,センサが感知した瞬間に処理がされます.

また,車速センサからの情報を使用して,一定速度になったらエンジンを停止するなどのプログラムも組んでみると便利かもしれません.

やり方はたくさんあるので,自分でいいプログラムを作ってみてください.
使う前には,オシロスコープなどで正確な噴射時間になっているか確認をするのをお勧めします.

 

  • 画面表示のプログラム

エコランで使用する場合は,ディスプレイに速度,燃費,平均速度,残り時間,噴射時間や空燃費などの情報を表示することで,ドライバーが走行に集中することができることができます.

LCD(液晶ディスプレイ)の使用はArduino純正のライブラリを使用すれば簡単に使うことができます.

使い方としては,走りながら残り時間や平均速度を確認したり,燃費の推移を確認することができます.

 

  • データロガーのプログラム

Arduinoでは簡単にSDカードの読み書きができます.よって,走行中の速度や燃費,噴射量,空燃費の情報が記録できます.これによって,大会の走行パターンの解析やエンジンの状態の解析など,さまざまな解析ができるよになりました.

特にこのデータロガーの機能はとても重要でした.燃費が記録されれば,走行毎に燃料タンクの重さを毎回測る必要がなく(誤差は2%以下でした),また,なぜ燃費が良かったのか(悪かったのか)をデータを見て解明することできます.

自分のECUでは1秒ごとの記録にしていましたが(速度変化はごくわずかなので),加速中はもう少しの分解能があったほうが便利だと思います.




 

  • 最後に

簡単に各機能の概要を説明してきました.単純な噴射のプログラムならそんなに難しくないので,作ってみるのもいいでしょう.プログラムも電気も全く関係ない機械科の自分でも自力で作れました.

5件のコメント

  1. こんにちは
    自分はエコランでカウル製作をしておりますが、ECUの自作にもとても興味を持ちました。
    もしよろしければ、画面表示のプログラムとデータロガーのプログラムについての詳細を教えてもらいたいです。

    1. コメントありがとうございます

      エコランをやっているんですね。

      詳細とは具体的にどのようなことでしょうか?
      プログラムの流れや具体的なプログラムなど、知りたい情報をお聞かせください。

返信を残す

メールアドレスが公開されることはありません。