Я использую Arduino и пытаюсь заставить топливный соленоид впрыскивать топливо, когда напряжение датчика положения дроссельной заслонки увеличивается на 0,10. Я немного поясню, как система работает на двигателе.
Датчик положения дроссельной заслонки измеряет положение в основном того, насколько далеко вы нажимаете педаль газа на автомобиле.
Напряжение датчика положения дроссельной заслонки составляет 0,54 В, когда педаль газа не касается моей ноги.
Когда я нажимаю на педаль газа, напряжение датчика положения дроссельной заслонки увеличивается, чем больше я нажимаю на педаль.
Когда я поддерживаю постоянную скорость, моя нога все еще находится на педали, и, хотя она не ускоряется, напряжение датчика положения дроссельной заслонки по-прежнему ВЫСШЕ, чем 0,54 вольт, но оно не меняется, оно фиксируется на одном напряжении, потому что моя нога устойчива ,
Когда я прикладываю больше давления к педали газа, напряжение датчика положения дроссельной заслонки увеличивается, и двигателю требуется больше топлива, когда напряжение датчика положения дроссельной заслонки увеличивается на 0,10 или более. Требуется больше топлива только на полсекунды.
По сути, я не могу иметь что-то вроде следующего:
if (TPSvoltage >= 0.54 && TPSvoltage < 0.64){
digitalWrite(fuelSolenoid, HIGH); // turn the fuel solenoid on (HIGH is the voltage level)
Serial.println("Fuel Solenoid Turned on");
delay(500); // wait for half a second
digitalWrite(fuelSolenoid, LOW); // turn the fuel solenoid off by making the voltage LOW
Serial.println("Fuel Solenoid Turned off");
delay(1); // delay in between reads for stability
}
Мне нужно что-то, где, если только оно увеличится на 0,10 В независимо от текущего напряжения датчика положения дроссельной заслонки, оно включит топливный соленоид.
Может кто-нибудь помочь мне разобраться с этим кодом?
Большое спасибо.
Я думаю, что вы должны использовать 2 переменные вместо только 1.
первое будет содержать текущее значение, которое у вас есть, а второе будет хранить обновленное, а затем внутри оператора if, если разность двух переменных равна 0,10, как вы сказали, вы можете написать код для него, а в противном случае он будет пропущен код.
Надеюсь, это сработает для тебя.
Других решений пока нет …