As this is my first post, I'd like to briefly introduce myself. My name is James and I'm presently a first - year graduate student in chemistry with a focus on electroanalytical chemistry and instrumental development. The present topic at hand is to use my arduino UNO board to create a computer controlled coffee roaster. My next arduino project will be to build a three electrode potentiostat / galvanostat for electrochemical research ... that, I imagine, will be far more difficult.
At face value, my request may seem quite odd but there is a good point to it ... it is no longer being used as a popcorn popper but rather a coffee roaster. Popping popcorn is as simple and ruthless as just heating it up - coffee on the other hand responds more lovingly to a tamer heating profile. I bought a popper at my local thrift store, took it apart, saw the coiled-resistive heater, and thought it would be spectacular if my little UNO board could vary the power and thus heat output of that heater as it's presently putting out too much power to control a coffee roast. Hence, I would like to interface my arduino UNO board to my computer and this popcorn popper and somehow write a roast profile which I'm envisioning as a voltage wave form consisting of a user-defined temperature gradient which then plateaus for a definable period of time then the heat is turned off leaving the fan on to cool the beans.
It is of important note that aside from Ohm's Law and P=IV, I know positively nothing about electronics and the only computer programming I've done is a little bit of codeacademy.com Python language and some arduino code from a little project booklet - hence, I humbly ask you to refrain from using advanced technical language. As an example of my ineptitude, I saw another post where someone was trying to control 120V with Arduino and Triacs were mentioned ... after looking at several sources, I still have no clue what a triac does in that context.
It may go without saying but the power to the resistive heater system is 120V AC @ 60Hz - I don't know the current coming out of the wall outlet except that it must be less than the 20A breaker, (I told you I don't know anything about this). The positive lead then connects to a metal bracket with two components attached, 1) a white block with numbers and letters on it, (will post those characters later as I don't have it in front of me), and 2) some smaller device which looks like it has brass contacts or the like, (I'd be happy to post pics if requested). The other end of this metal bracket then connects to the two heating coils - one significantly thicker than the other - the other ends of those coils go to two independent ground leads which connect to the fan motor and back to the original power cord. I'm going to buy a multimeter later today so that'll probably help me to figure out what that white block business does.
coffee on the other hand responds more lovingly to a tamer heating profile
You need a PID algorithm. You need to control 12+ Amps. Sounds very much like a reflow oven. Fortunately, Arduino + reflow oven is well documented and you have many examples if working software; just substitute your coffee roasting profile to the soldering profile. Just a few of the thousands of Google "hits":
Playing with mains power at your level of experience is foolish and may get you killed (or worse some one else!). Find some competent help on your campus! This is not a good starter project for you.
Shooter - As far as heat goes, I don't yet have a thermocouple with which I can quantitate the temp though I intend to look into purchasing one over the weekend. However, for my purposes, I can say with the confidence of 350 grams of roasted coffee beans that it indeed gets plenty hot. The problem at hand is that I have too much heat, not a shortage so that's fine. I've seen youtube videos of folks roasting coffee with popcorn poppers rated at 1100W.
Mark, I do very much appreciate your concern but I can say that I have worked plenty with installations on 480V & 277V three phase, 220V and 120V over the course of a 5yr job as a building and grounds maintenance director/project manager and safety officer at a warehouse before going to college and I lived to die another day. That said, I cannot tell you the physics and electrical engineering properties which differentiate 480V 3phase from 277V 3phase from 220V and 120V mains but I do know how to work with 120 VAC sources of power safely, (been 4yrs since I worked with three phase so I'm not gonna continue to claim I can work with that) ... suffice it to say, I'm confident that I have the common sense needed to survive. Sincerely though I do appreciate your concern as you do make a very valid point - arguably the most important point - that safety is paramount. To that effect, here's an interesting site regarding the lethality of electricity: Electrical Safety: The Fatal Current
Ray you're correct. According to P=IV, yes the system presently pulls 12A which then means that that white block I previously mentioned would be a 10-Ohm resistor, (based on Ohm's law), housed in a ceramic block to dissipate the heat and the brass contact looking mechanism is possibly a fuse. The goal at hand is to reduce that current to scale down the heat output right off the bat - say something along 8 - 9 amps max which I wish to controllably reduce via a potentiometer - though I am unsure as to whether or not I can simply hook up any ol' RadioShack potentiometer to a 120-VAC system. I have a pot for a different project and this pot gives a figure of "Rated Power: 3W" which leads me to believe I can't use this with 120-VAC as just 25mA would be the max current before 3W is reached.
The piece of this puzzle that I cannot picture, (which I know is do-able), is just physically hooking up the UNO board to the 120-VAC resistor coil given that good ol' common sense dictates that if I were to simply plug in 120V-AC leads into the UNO board, I'm gonna have a big problem on my hands when I plug it into the wall. Perhaps of equal value would be if the function of said physical components could be explained - as an example, as I research this objective, I see a lot of Triac and SSR terms being tossed about without anyone explaining why I need those or what they do. I'd feel way safer and more confident if I knew the purpose behind the part.
I presume you mean Nichrome Wire (typically used in electric heaters) ... it comes in different flavors you also need to take into account it's AC and the impedance ... i'll be honest i'd stay well away from this.
but, the resistance is based on how much coil you use ....
So, once you've measured the length of wire, calculated it's resistance, housed it in a safe manner to not execute yourself, all you'll need is a mechanical relay and a fuse (with a fuse inline with the nichrome wire) ... I really don't recommend using a TRIAC or DIAC or SCR's because they're mainly used to control the current flow, where as a mechanical relay or SSR would just switch it on and over and does with... a TRIAC is a lot more complicated.
Further more, electric blankets rectify the AC voltage via a couple of diodes, again I'm not sure why as i STAY AWAY from 240v applications it's just not worth it when you can buy a popcorn maker and sleep safe knowing if something happens you can sue them ]
I'm having difficulty seeing where you're coming from but it seems like you may be interpreting my objective as me wanting to build this whole system from scratch. If this is your impression, I must respectfully say you're mistaken. I already have the commercially made popper complete with heater housing that's got a fan underneath blowing air over the coil then into the chamber where the coffee beans lie waiting to be blown about with hot air. It is important to note here that I have no intention of modifying the heating element and/or its housing system or building my own, I'm just looking for an arduino UNO based means of controlling the current going into that coil so it's not so blazing hot, and, more importantly, I can program a "roast profile" in the form of a user-def temp vs time plot such as the following: Given current (I) as a function of time (t); I(t). Let's hypothetically say I(0sec)=0Amps (0W)--> I(10sec)=0.5Amps (60W) --> I(15sec)=1Amp (120W) -->I(30sec)=2Amps etc etc etc I(final time)=0Amps but the fan will remain on for like 3min to cool the beans off. So the way I see it is all I need to do is replace the existing resistor - which should be 10 Ohm based on wattage and potential - with a variable resistor that is like 14 Ohm minimum (about 1030W output max) and this variable resistor needs to be controlled by the arduino board.
As the first responder indicated in this post, the effective goal of my project has been done ... just not for roasting coffee. Problem is, all I gleaned from the research I've seen so far is programming PID stuff which is great, but I need to physically interface everything first. I'm continuously researching this when I have time but given my lack of experience, I find myself repeatedly confused despite the fact that part of me sees this as a very simple project for someone who knows the fit and function of all these components. I'm more of a learn as I go kinda guy and I need to learn how to build an electronic electrochemical instrument from scratch for a major component of my Ph.D. thesis research so I see this present project as a joint means of caffeinating myself and learning a thing or two about electronics.
Thanks again for your insight!
James
P.S. Reading your reply again, would my interpretation be accurate to say that an SSR would replace my idea of a variable resistor by simply killing all current to the coil and then opening it up again where the rate of this "on/off switching" would dictate the mean applied current over a given time interval? If this is the case, can the on/off rate of an SSR be controlled or is it fixed? If it's fixed, then I don't think that's gonna work.
This is a heater. Heaters take time, usually several seconds, to heat or cool, so rather than "Pulse Width Modulation", you use a "simmerstat" function which is to say, you turn the heater on and off for varying duty cycles over one or more seconds rather than milliseconds. In the case of a simple free-air heating coil, a cycle time of half to one second sounds about right
This means that you do not need to design a special switching system, you just get a Solid State Relay (SSR) of the required rating "off the shelf", control it from a port your Arduino and write the code to switch it on and off for more-or less even multiples of one-sixtieth (America) of a second.
cJ, no worries man, thanks for your input! I'll look into this option.
Paul, as well, thank you for your help. The way I see this is that I would be leaving everything essentially the same on the heater setup, (resistor and wiring), and just install an SSR between the 120V main and the resistor ... is this correct or do I cut out the resistor and replace it with an SSR? thereby relying on the SSR to manage the current all on its own. I can see this working in either case - unless I'm missing something.
Thanks,
JD
P.S. I apologize for my delayed reply - arduino forums suddenly decided it doesn't want to work with my internet explorer browser at home.
OK, then, I have looked at your previous information.
The two components in series with the heating coils are a thermostat to regulate the temperature, and an over-temperature safety cutout (which will be labelled with its operating temperature - a photograph or two of all these components would be very helpful in advising of course). If you wished to operate at a higher temperature, you would have a problem but for the moment the important thing is that these components are for safety and should remain.
Now you have described the circuit splitting into two parts. The heater with the finer wire is in series with the fan motor (which probably has a bridge rectifier mounted on it as it would operate on DC, but that need not concern you), and this circuit operates continuously providing a modest amount of heat.
The other part of the circuit with the heavier wire is the main heater and the thermostat is in series with this to regulate the temperature, turning on and off as I described before over some seconds. If you add a SSR, it needs to be in series with this again - essentially, between the safety cutout and the thermostat. At your lower temperature, the thermostat will not function as it will not need to be limiting the temperature. So this is the only part of the circuit you need to modify, breaking the present circuit and putting the SSR in series.
Well everyone, thanks very much for your replies - I simply incorporated an SSR into one of the heater leads - I operated it with a very simple PWM program on Arduino, (on 1/2 sec off 1 sec), just to give me a proof-of-concept test. IT WORKS - perfectly if I may say so myself. Because the whole fan, bridge rectifier, and heater were all wired in series and I wanted to have the fan always on - or at least controlled separately from the heater - I clipped out the bridge rectifier system and wired the fan separately to a 32VDC power supply I picked up from radio shack. I now have the system (pictured) setup such that the components, (heater and fan), are controlled by a simple 125VAC - 15A light switch which powers an outlet into which the 32VDC power supply is plugged as well as a cord for the heater. From the heater cord, there is another switch which turns it on separately, (so I can have the fan on and heater off), then from the 2nd switch, one lead of the heater goes through the SSR - maybe overkill with switches but it works and this whole operation taught me a great deal about working with electricity - I never once got zapped!!! Even if I don't necessarily know what I'm doing, I do have an adequate level of common sense to work safely with electricity. Thanks again for your help and time.