Stove control with Arduino

Job ID: 36145676

Budget: €30 – €250 EUR

I want to control my stove oven with two stepper motors, but my Arduino programming knowledge is only at the beginner level so I hope somebody made an similar project or can program it.

Let me try to describe the logic of the program.
1. If I push the K1 Pin on the display, the controller should start an reference drive to setup its end positions.
(Status: Reference)
2. Then the stepper motors has to drive to an predefined position (Status: Fire Up)
3. If the exhaust temperature rises over an temperature value for an predefined time, the controller should start working (Status: Normal)
4. Both stepper controllers must work in parallel
5. If the temperature or oxygen values are out of range, the stepper motor should control it
6. If the temperature or oxygen are in range, the stepper motor has to turn off (no overheating of the motor and controller)
7. If the water temperature or exhaust temperature are over an limit value, the buzzer should give an alarm (Status: Alarm)
8. If the exhaust temperature is going down for an predefined time, the buzzer should give one short acoustic signal (Status: Add Wood)
9. If the exhaust and water temperature are going under an predefined value, the motors must move to its close close position (Status: Fire Off).
10. The controller should work with three PID controllers. Two temperature PID’s are using the first stepper motor (Air flow) and the oxygen is going direct to the second stepper motor.
Normally the temperature controller is working only with the exhaust temperature, but if the water temperature is over an limit value, the controller should also try to reduce the air flow. I am not sure, but I think it’s only the minimum output value of two separate PID controllers or maybe it’s better to make an handover with an fixed water temperature.

Signals:
The exhaust temperature is measured with an MAX31865 RTD converter board.
Oxygen value is an simple voltage signal 0-5V = 0-21% Oxygen
Start the burning process with K1 on the LCD
Water temperature with KTY 10K Sensor

Display:
Two bars are showing difference to the actual set values on the left side and on the right side the digital values.
And the status of the controller (Reference, Fire Up, Fire Off, Add Wood, Normal and Alarm)
With the increment switch on the lcd display I want to setup the variable values, for example:

Temp. Fire Up
Time Fire Up
Default Fire Up Position Air
Default Fire Up Position Oxygen
Default Exhaust Temperature
Default Oxygen in Percent
Default Water Temp.
Max Water Temperature
Max Exhaust Temperature
Fire Off Temp Exhaust
Fire Off Temp Water
Time Fire Off
PID Parameter Exhaust Temp…
PID Parameter Water Temp…
PID Parameter Oxygen….

Hardware:
Ramps 1.6 Plus
LCD 2004 12864 Control Panel Smart Controller Display
AT MEGA 2560
A4988 Stepper Motor Driver
MAX31865 RTD converter
4 Endstop Sensors
Water temp sensor NTC 10k

Pin Setting:
Please use in your code the default settings from the controller board.