Lambda calculation
Lambda calculation added to the loop with the conversion of an analog value to a 0 to 5 voltage to return the lambda value.
This commit is contained in:
1 parent
a21bf160bc
commit
55f271f6ce
1 file changed
+16
@@ -3,9 +3,12 @@
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#include <Arduino.h>
|
||||
const byte interruptPin = 2;
|
||||
const byte lambdaPin = A0;
|
||||
volatile unsigned long timestamp1 = 0;
|
||||
volatile unsigned long timestamp2 = 0;
|
||||
volatile bool new_rpm = false;
|
||||
const unsigned long deltat_lambda = 100000;
|
||||
unsigned long last_lambda = 0;
|
||||
|
||||
void interrupt(){
|
||||
unsigned long now = micros();
|
||||
@@ -18,6 +21,7 @@ void setup() {
|
||||
// put your setup code here, to run once:
|
||||
Serial.begin(115200);
|
||||
pinMode(interruptPin, INPUT);
|
||||
pinMode(lambdaPin, INPUT);
|
||||
attachInterrupt(digitalPinToInterrupt(interruptPin),interrupt,FALLING);
|
||||
}
|
||||
|
||||
@@ -27,8 +31,20 @@ void loop() {
|
||||
unsigned long deltat = timestamp1 - timestamp2;
|
||||
float rpmhz = 500000.0 / deltat;
|
||||
new_rpm = false;
|
||||
Serial.print("Speed: ");
|
||||
Serial.println(rpmhz);
|
||||
}
|
||||
unsigned long now = micros();
|
||||
if (now > last_lambda + deltat_lambda){
|
||||
float output = analogRead(lambdaPin);
|
||||
float voltage = output / 204.6;
|
||||
float lambda = 0.56030161*voltage + 0.43969839;
|
||||
last_lambda = now;
|
||||
Serial.print("Voltage: ");
|
||||
Serial.println(voltage);
|
||||
Serial.print("Lambda:");
|
||||
Serial.println(lambda);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user