Okada
Banned
My project is Idle Air Control Valve Control.
I have to feedbacks that is engine temperature and cts voltage. Engine temperature varies from 0 to 40 degree and cts voltage varies from 0 to 3.5V
I need to map these values to valve angle that is stepper motor angle. stepper motor step angle is 15 degrees. I need max angle 45 degrees that is for 0 degree C and cts voltage 3.5V. For cts voltage 0 and temperature = 40 degrees I need stepper angle 15 degrees.
So, valve should operate between 15 and 45 degree so total angle of rotation needed is 30 degree.
problem is how to control one value that is stepper rotation angle based on two values namely cts voltage and temperature ?
Should I use if...else if() conditions like
Edit:
Here is the latest code
I have to feedbacks that is engine temperature and cts voltage. Engine temperature varies from 0 to 40 degree and cts voltage varies from 0 to 3.5V
I need to map these values to valve angle that is stepper motor angle. stepper motor step angle is 15 degrees. I need max angle 45 degrees that is for 0 degree C and cts voltage 3.5V. For cts voltage 0 and temperature = 40 degrees I need stepper angle 15 degrees.
So, valve should operate between 15 and 45 degree so total angle of rotation needed is 30 degree.
problem is how to control one value that is stepper rotation angle based on two values namely cts voltage and temperature ?
Should I use if...else if() conditions like
Code:
if(((engine_temperature >= 0.0) && (engine temperature < 40/3)) && ((cts_voltage >= 2.33)) {
stepper_angle = 15.0;
}
else if(((engine_temperature >= 40/3) && (engine temperature < ((40/3) * 2))) && ((cts_voltage >= 1.67) && (cts_voltage < 2.33)) {
stepper_angle = 30.0;
}
else if(((engine_temperature >= ((40/3) * 2)) && ((cts_voltage >= 0) && (cts_voltage < 1.67)) {
stepper_angle = 45.0;
}
Edit:
Here is the latest code
Code C - [expand] 1 2 3 4 5 6 7 8 9 10 11 12 if( ( (engine_temperature >= 0.0) && (engine_temperature < (ENGINE_WARM_TEMPERATURE / 3.0))) && ( (cts_voltage >= (CTS_V_HIGH / 3.0)) ) ) { stepper_angle = 15.0; } else if( ( (engine_temperature >= ((ENGINE_WARM_TEMPERATURE / 3.0) * 2.0)) && (engine_temperature < (ENGINE_WARM_TEMPERATURE / 3.0)) ) && ( (cts_voltage >= ((CTS_V_HIGH / 3.0) * 2.0)) && (cts_voltage < (CTS_V_HIGH / 3.0)) ) ) { stepper_angle = 30.0; } else if( (engine_temperature >= (ENGINE_WARM_TEMPERATURE)) && ( (cts_voltage >= 0) && (cts_voltage < (CTS_V_HIGH / 3.0)) ) ) { stepper_angle = 45.0; }
Last edited: