Show Posts
|
|
Pages: 1 [2] 3
|
|
16
|
Forum 2005-2010 (read only) / Interfacing / Re: High Volt, High Current Switching?
|
on: August 03, 2007, 01:18:50 pm
|
I'll be careful around 110v, certainly. I'm more concerned about frying my Arduino than my fingers, though (-: (especially since _everyone_ seems to be out of stock until the mysterious new revision ships, today) Here's a (crappy) photo of the relay:  I don't have my real camera, just the iSight. Anyway, I expect to connect the low voltage across pins +3 (bottom right) and 4, but 4 is missing (bottom left). Load is pins 1 and 2. As I mentioned, there's 20[ch937] (in both polarities) between pins 3 and 2. (the relay was in the surplus box at my local electronics shop) Thanks! S
|
|
|
|
|
17
|
Forum 2005-2010 (read only) / Interfacing / Re: High Volt, High Current Switching?
|
on: August 03, 2007, 12:48:26 pm
|
|
Turns out the relay I found can't quite sustain my load.
I found another that says it will do 30 amp. The pins are labeled 1,2 (load) and input: +3.
There's a place for the 4th pin, but the contact isn't there. I measured across the pins and found about 20[ch937] between pins 2 and 3. Do I just use #2 as my ground?
S
|
|
|
|
|
19
|
Forum 2005-2010 (read only) / Interfacing / High Volt, High Current Switching?
|
on: July 26, 2007, 07:32:44 pm
|
|
Hi,
I have a 3000 W, 240 V (AC) water heater element (12.5A-15A) that I'd like to turn on and off with my Arduino.
Obviously, I'll need some sort of heavy duty relay or triac to do this. Can someone please point me in the right direction? I'm not used to dealing with: AC, High Voltage (other than wiring) or high amps (again, other than wiring).
Thanks.
S
|
|
|
|
|
20
|
Forum 2005-2010 (read only) / Interfacing / Weird 3x8-segment LED?
|
on: August 02, 2007, 05:14:32 pm
|
Hi, I was stealing the power supply from an old PC case today, and I noticed that it had a 3x8-segment (3 digits + 3 decimals) display. I pulled this display out, and I'd like to interface with it if possible. I'm sure that the miniature PCB that the display is connected to is proprietary, but the pins are marked, so I'm wondering if I can hack something up. There are 12 pins. They're labeled: V+ V- S T- T+ GS P- P+ KEY H S I (in that order) There's also an IC marked "HT93LC46" which seems to be this: http://www.holtek.com.tw/english/docum/memory/93lc46.htmCan I interface with this easily? Any idea what those pins mean? Should I just give up? Do I need to remove the display from the PCB and go from there? Thanks! S
|
|
|
|
|
22
|
Forum 2005-2010 (read only) / Interfacing / Re: Density/Specific Gravity sensing
|
on: July 04, 2007, 11:33:18 pm
|
|
Sorry for the confusion. You could probably measure density with a capacitance sensor (higher gravity wort is more or less capacitive than beer (or lower gravity wort).. or alcohol). Not sure how accurate this will be.
Might be worth a try.
Anyway, I only mention that other capacitance sensor because that's also useful for my mini brewery.
S
|
|
|
|
|
25
|
Forum 2005-2010 (read only) / Interfacing / Re: Density/Specific Gravity sensing
|
on: June 27, 2007, 05:50:46 pm
|
Well, that sort of works. The thing with fermenting beer is that sediment falls out of solution during fermentation, which wouldn't show up in the density measurement, but would show up by measuring the mass of the fermentation vessel. CO2 gas does escape though an airlock (a one way valve), but I think I'd need some way to account for sediment (not a homogeneous solution). www.micromotion.com has a density sensor, but they quoted me $5000-6000 for the sensor. I'm looking to pay $50. S
|
|
|
|
|
26
|
Forum 2005-2010 (read only) / Interfacing / Density/Specific Gravity sensing
|
on: June 25, 2007, 02:40:38 pm
|
|
Hello,
I brew my own beer. I'd like to use Arduino to help me. For the most part, I just want to detect temperature and specific gravity (density) of my beer (wort).
I've already got the temperature side worked out (simple thermistor and a voltage divider on an analog line), but I'm having trouble tracking down a suitable sensor for liquid density (specific gravity).
Any suggestions on where to get a sensor (preferably a handful of them) for measuring this?
Thanks. S
|
|
|
|
|
29
|
Forum 2005-2010 (read only) / Exhibition / Re: Kegerator Temperature Control
|
on: August 31, 2007, 05:38:36 pm
|
|
Yes, Solid State Relays are much more expensive than regular mechanical relays. My fermenter isn't exactly working right now (-:
I have a regular relay that I found in the surplus aisle of my local electronics shop that's rated for 5A. My Peltiers draw 2.2A each (currently), at 12V.
S
|
|
|
|
|
30
|
Forum 2005-2010 (read only) / Exhibition / Re: Kegerator Temperature Control
|
on: August 28, 2007, 10:40:32 pm
|
Hi, You'll need to make sure you can get an SSR that handles a DC load. The whole writeup should be on ucHobby in the coming days. In the meantime, here's the code. I'm sure it could be optimized a bit, but it works for me: // Beer Thermostat
#define STATUS_OFF 0 #define STATUS_ON 1 #define TOGGLE_NOCHANGE 0 #define TOGGLE_ON 1 #define TOGGLE_OFF 2 #define TOGGLE_MALFUNCTION 3
#define WAIT 1000
struct Thermistor { int base; // *100, see below int diff; // *10 because of floats (10.2, for example->102) int pin; };
struct Controller { int relayPin; int thermInvert; // 0 = power on cools, 1 = power on heats int lastRead; int low; int high; int status; // 0=off;1=on int toggle; // 0=nochange; 1=turnedon; 2=turnedoff; 3=malfunction int timer; // seconds since last status change struct Thermistor Therm; // Thermistor };
Controller Freezer; Controller Fermenter;
Thermistor ThermA; Thermistor ThermB;
void setup() {
// Thermistor Calibration ThermA.base = 22500; // re-calibrate me! ThermA.diff = 102; ThermA.pin = 0; ThermB.base = 22500; ThermB.diff = 102; ThermB.pin = 1; // Freezer Setup Freezer.relayPin = 12; Freezer.low = 40; // (10 * ºC) Freezer.high = 60; // (10 * ºC) Freezer.thermInvert = 0; Freezer.status = STATUS_OFF; Freezer.toggle = TOGGLE_NOCHANGE; Freezer.timer = 0; Freezer.Therm = ThermB; // Fermenter Setup Fermenter.relayPin = 11; Fermenter.low = 170; // (10 * ºC) Fermenter.high = 180; // (10 * ºC) Fermenter.thermInvert = 1; Fermenter.status = STATUS_OFF; Fermenter.toggle = TOGGLE_NOCHANGE; Fermenter.timer = 0; Fermenter.Therm = ThermA;
Serial.begin(9600); pinMode(Freezer.relayPin, OUTPUT); pinMode(Fermenter.relayPin, OUTPUT); }
void loop() { checkTemp(Freezer); toggle(Freezer); Freezer.timer++; doOutput("KEG", Freezer);
delay(WAIT);
checkTemp(Fermenter); toggle(Fermenter); Fermenter.timer++; doOutput("FER", Fermenter);
delay(WAIT);
}
void checkTemp(struct Controller &c) { int span = 20; int aRead = 0; for (int i = 0; i < span; i++) { aRead = aRead + analogRead(c.Therm.pin); } aRead = aRead / span; c.lastRead = (((1024 - aRead) * 100) - c.Therm.base) / c.Therm.diff; // ºC }
void toggle(struct Controller &c) { c.toggle = TOGGLE_NOCHANGE; if (c.lastRead > c.high && c.status != STATUS_ON) { // getting too hot tooHot(c); } else if (c.lastRead < c.low && c.status != STATUS_OFF) { // getting too cold tooCold(c); } }
void tooCold(struct Controller &c) { if (c.thermInvert) { digitalWrite(c.relayPin, HIGH); c.status = STATUS_ON; c.toggle = TOGGLE_ON; } else { digitalWrite(c.relayPin, LOW); c.status = STATUS_OFF; c.toggle = TOGGLE_OFF; } c.timer = 0; }
void tooHot(struct Controller &c) { if (c.thermInvert) { digitalWrite(c.relayPin, LOW); c.status = STATUS_OFF; c.toggle = TOGGLE_OFF; } else { digitalWrite(c.relayPin, HIGH); c.status = STATUS_ON; c.toggle = TOGGLE_ON; } c.timer = 0; }
void doOutput(char name[4], struct Controller &c) { Serial.print(name); Serial.print(" "); Serial.print(c.lastRead); Serial.print(" "); Serial.print(c.status); Serial.print(" "); Serial.print(c.toggle); Serial.print(" "); Serial.println(c.timer); }
|
|
|
|
|