Arduinoでクルマのエンジンが動く? オープンソースECU Speeduino (4)回転数の確認


クランク角センサ信号を入力し、回転数を確認する

前回記事

クランク角センサの疑似信号を用いて、Speeduinoでエンジン回転を認識するか確認します。

用意するもの

  • Arduino Mega
  • Arduino Uno、または、互換ボード

SpeeduinoのI/Oポート確認

util.inoに定義されています。

デフォルトのI/Oポートは、以下のように設定されています。

  • pin 19:クランク角センサ
  • pin 18:カムセンサ(2ndクランク角センサ)
utils.ino

    case 3:
      //Pin mappings as per the v0.4 shield
      pinInjector1 = 8; //Output pin injector 1 is on
      pinInjector2 = 9; //Output pin injector 2 is on
      pinInjector3 = 10; //Output pin injector 3 is on
      pinInjector4 = 11; //Output pin injector 4 is on
      pinInjector5 = 12; //Output pin injector 5 is on
      pinInjector6 = 50; //CAUTION: Uses the same as Coil 4 below. 
      pinCoil1 = 40; //Pin for coil 1
      pinCoil2 = 38; //Pin for coil 2
      pinCoil3 = 52; //Pin for coil 3
      pinCoil4 = 50; //Pin for coil 4
      pinCoil5 = 34; //Pin for coil 5 PLACEHOLDER value for now
      pinTrigger = 19; //The CAS pin
      pinTrigger2 = 18; //The Cam Sensor pin
      pinTPS = A2;//TPS input pin
      pinMAP = A3; //MAP sensor pin
      pinIAT = A0; //IAT sensor pin
      pinCLT = A1; //CLS sensor pin
      pinO2 = A8; //O2 Sensor pin
      pinBat = A4; //Battery reference voltage pin
      pinDisplayReset = 48; // OLED reset pin
      pinTachOut = 49; //Tacho output pin  (Goes to ULN2803)
      pinIdle1 = 5; //Single wire idle control
      pinIdle2 = 6; //2 wire idle control
      pinBoost = 7; //Boost control
      pinVVT_1 = 4; //Default VVT output
      pinFuelPump = 45; //Fuel pump output  (Goes to ULN2803)
      pinStepperDir = 16; //Direction pin  for DRV8825 driver
      pinStepperStep = 17; //Step pin for DRV8825 driver
      pinStepperEnable = 24; //Enable pin for DRV8825
      pinFan = 47; //Pin for the fan output (Goes to ULN2803)
      pinLaunch = 51; //Can be overwritten below
      pinFlex = 2; // Flex sensor (Must be external interrupt enabled)
      pinResetControl = 43; //Reset control output

結線

Arduino Mega(Speeduino)とArduino(Ardu-Stim)を以下のように結線します。

Speeduino Ardu-Stim
19:Crank 8:Crank
18:Cam 9:Cam
GND GND

Arduino Mega(Speeduino)とArduino(Ardu-Stim)をPCに接続

TunerStudio

  1. TunerStudioを起動し、前回作成したProjectを開く
  2. Arduino Mega(Speeduino)のシリアルポートを設定し、通信を接続
  3. File>Load Tuneより、reference/Base Tunes/Speeduino base tune.msqを開き、デフォルト設定データを書き込む

Device Druid

  1. Device Druidを起動
  2. Arduino (Ardu-Stim)のシリアルポートを設定し、通信を接続
  3. Wheel Options>Choose wheelsで25を入力
  4. Topメニューに戻り、Set Fixed RPMで回転数を入力(例えば1500)

TunerStudioでの確認

設定した回転数がメーターに表示されます。

回転数をスイープさせてみます。
1. Device DruidのSet Swept RPMで500,3000,1000を入力
2. TunerStudioのTuning>Real-Time Displayを開く

回転数の変化をプロッターで確認できます。
500<->3000 RPM(1000rpm/sec)

最後に

クランク角センサの信号を入力し、Speeduinoで回転数の確認ができました。
次回は、インジェクターとイグニッションの出力信号を確認します。