Hey there guys! Fresh Fish to the forum!! I recently came across a project that would require me to use one of these Arduino's. Just by looking at it, I knew I was in over my head but decided to take it one step at a time and see where this leads me.
I will give you a little background as to what got me to this point. Well my name is Jessica, and I am addicted to motorcycles. 8) I have been riding for the past 8 years on dirt, last 3 on street. I do all my own work and even powder coat my own parts as well as my friends. Recently I have been asked to powder a lot of parts that were just too big for a normal house oven. Instead of buying one, I have decided to BUILD one!!! Yay!! XD I love working with my hands even though I don't look like I get dirty too much. I have it in my blood. I am determined to make a bigger nicer oven so that I may expand my capabilities when it comes to painting more sexy machines!!
So here we are at the Project of building an Oven. Building the actual oven is not the hard part. Controlling the oven is where the fun begins. I chose to use a touch screen to interface with the oven. I aquired a 7" touch screen and micro controller, and have already designed and coded my GUI. Take note that I have ZERO experience in writing code. The display I am using was built by Reach Technology out of CA. The display uses SLCDx language and comes with an entire software reference PDF that makes it very easy use.
Now that I have my display up and running its over to the oven side of the problem. I do a lot of reading and studying on the Internet, this Is how I figure out how to do most things. Google is my best friend! The oven is going to have a K type thermocouple that will be ran to the thermocouple amplifier Max31855 breakout board and then to the arduino. The arduino will have to be programmed to monitor the thermocouple temperature and relay that information back to the display. The oven will have a Definate Purpose Contactor to switch on and off the elements. The arduino is going to control the DPContactor according to what the user sets the temperature to. The arduino will flip the Contactor on, monitor the temperature readings, cut off the contactor when +15 degrees over set temperature has been reached, cut on when temperature drops -10 degrees below set temperature, and so on. I believe with the +15 -10 threshold would do well to keep within range of temperature without switching on and off too often. I also have to think about wiring in 2 separate Contactor switches, so as to when temperature has been reached, it only needs to throw on 1 or 2 of the elements to maintain heat instead of all of them.
Whew I hope I didn't scare any of you away!!
So I haven't wrote any of the Arduino code yet because it is much much much harder than the touchscreen code. I do have a few questions. Hopefully you guys can point me in the right direction??
I am assuming that the touch screens micro controller and the Arduino communicate through to eachother via the TX (transmit) and RX (recieve) pins?
The display software only explains a few commands regarding com ports. They are basically Output Text String and Read Text String either from main comm port or aux port. So than I am guessing I would need to define what text strings or commands the arduino would be sending and receiving? For example, the user enters desired number for temperature into the display, upon pushing the SET button, a text string SETVALUENUMBER is sent out to the Arduino, upon which the SETVALUENUMBER command already defined to store that Number as the temperature.
I am really sorry! If I seem like I don't know what I'm talking about, it's because I really don't know!!
I will post of some pictures of my display, wiring diagrams, oven build progress, and arduino sketch if I can ever figure it out.
I am assuming that the touch screens micro controller and the Arduino communicate through to eachother via the TX (transmit) and RX (recieve) pins?
Correct.
The display software only explains a few commands regarding com ports. They are basically Output Text String and Read Text String either from main comm port or aux port. So than I am guessing I would need to define what text strings or commands the arduino would be sending and receiving?
Correct.
For example, the user enters desired number for temperature into the display, upon pushing the SET button, a text string SETVALUENUMBER is sent out to the Arduino, upon which the SETVALUENUMBER command already defined to store that Number as the temperature.
Shorter commands are less work. Maybe something like "S:###" where ### is the setpoint. You should also include "framing" characters; something to mark the beginning and ending of a command.
I am really sorry! If I seem like I don't know what I'm talking about, it's because I really don't know!!
Your problem description is one of the best I've ever read. I have no Earthly idea why you are apologizing or why you believe you don't know what you are talking about.
I also have to think about wiring in 2 separate Contactor switches, so as to when temperature has been reached, it only needs to throw on 1 or 2 of the elements to maintain heat instead of all of them.
If the total heat output of all the elements is very "large" then this is an excellent idea with a twist. What works best is to group heating units so each group is twice the size of the previous. Let's say you just happen to have seven heating units. You should group them like this...
Group #1: one heating unit
Group #2: two heating units
Group #3: four heating units
If that's not possible, anything similar will still help.
I am assuming that the touch screens micro controller and the Arduino communicate through to eachother via the TX (transmit) and RX (recieve) pins?
Correct with a caveat. The Arduino microcontroller uses TTL level voltages (0V for "low" or 5V for "high"). The touchscreen may have RS-232 serial ports which use much higher voltages (-12V or +12V). If that is the case, if the touchscreen has RS-232 serial ports, you will need a converter.
However, if the touchscreen has USB ports then you can simply connect the Arduino to a touchscreen USB port.
The project sounds great, but I can suggest an improvement to the temperature control strategy. What you're describing would produce a 'saw tooth' temperature profile as the temperature cycles above and below your set point. This is the same behaviour you'd get from an old fashioned mechanical thermostat. (By the way, scrounging one of these from an old oven would also be a viable approach.)
You can get much better behaviour by controlling the heater with a variable duty cycle fixed frequency signal - varying the duty cycle to maintain your target temperature. This is the approach used by many modern programmable central heating thermostats and is very effective at controlling the temperature over a wide range of temperature and power levels without letting the temperature fluctuate.
Very interesting and well explained post, I hope to see some details, I am curious how large your oven will be, materials, insulation, temperature, watts/BTU formulas, coding, etc.
Welcome to the forum Jessica. I noticed your location info and wondered if the 20 min total power failure I had this morning was you testing out your new oven design?
And I'm with PaulS, I too would rather not be powder coated.