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
18  Forum 2005-2010 (read only) / Interfacing / Re: High Volt, High Current Switching? on: July 26, 2007, 08:09:34 pm
I saw one that looked like this at the electronics shop, tonight, but it wasn't marked (rated). I'll have to go back and ask.

Thanks for the quick response!



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.htm

Can 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
21  Forum 2005-2010 (read only) / Interfacing / Re: supply current: has arduino fryed my qprox sen on: July 04, 2007, 09:00:52 pm
How did you manage to set the QT300 into 1-wire mode, and can you post a schematic of how it works with the arduino in 1-wire mode?

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
23  Forum 2005-2010 (read only) / Interfacing / Re: Density/Specific Gravity sensing on: July 04, 2007, 09:03:43 pm
Thanks. I'm going to give the QT300 a whirl.
They're much cheaper stateside, it seems. Too bad I'm in Canada (-:

http://www.saelig.com/miva/merchant.mvc?Screen=PROD&Product_Code=IC3030&Category_Code=

Seems it would also be useful for this:
http://home.chattanooga.net/~cdp/level/level.htm

S
24  Forum 2005-2010 (read only) / Interfacing / Re: Density/Specific Gravity sensing on: June 27, 2007, 10:00:25 pm
Hrm. I might give that one a try.. but I'm more interested in density/SG than alcohol.
It helps us know if fermentation is complete.

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
27  Forum 2005-2010 (read only) / Exhibition / Re: Kegerator Temperature Control on: February 17, 2008, 12:42:26 pm
FYI, I've modified this project pretty heavily. I've added support for a 2nd "vessel" with both heat and cool control (for fermenting), added a display, changed my temperature measuring devices to LM35s (changing to DS1624s, soon), and rewrote ALL of the code.

New code is here:
https://svn.caedmon.net/svn/public/beer_thermostat/

S
28  Forum 2005-2010 (read only) / Exhibition / Re: Kegerator Temperature Control on: October 08, 2007, 08:09:26 pm
Hey,

Sorry for the delay. The editor over at uchobby finally published my article, so hopefully that answers your questions. If anything is still unclear, feel free to ask.

http://www.uchobby.com/index.php/2007/10/08/arduino-beer-thermostat/

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:
Code:
// 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);
}

Pages: 1 [2] 3