Arduino Duemilanove AC Load Shield

I have had a ton of these Intel 87C51 boards with 4 and 8 optically isolated triac output daughter boards attached to them. They are new surplus items I picked up several years ago. I recently purchased an Arduino Duemilanove and decided it was time to find some use for these. All it took was a couple of harnesses salvaged from an old AT computer case, a 60 watt lamp & socket and I was up and running. The 5v and Gnd are supplied from the spk out plug that all pc cases have. The AC side connector is the same as the AT style PC power supply connection. The I/O pins can be plugged directly into the bottom of  the board so this makes a great shield. This would be great for using to drive light shows or drag strip lighting systems. The TRIACs on this board can handle 70 amps peak and 8 amps RMS! One word of caution if you are not familiar with AC circuits and qualified please do not mess with it. Not only does it hurt like heck if you get into it, IT CAN KILL!  For example all of those unused wires on that AT power supply connector that I don’t have anything hooked to are hot. Anyway here is a short video. 

AC4XShield 10 Meg MOV

Pictures:

Top view connected

Top view

Low Voltage Supply Header

AC Header

Bottom I/O Header

Mounted as a shield (needs some standoffs)

4 I/O pins used

Here is the code to run a shadow chase sequence with all 4 outputs.

/*
  BlinkACLoads
 
 Runs through a shadow chase for 4 AC Loads connected to a AC4X interface board.
 
 The circuit:
 * AC4X board connected to pins 9-12.
 
 * Warning! Dealing with AC current can be dangerous, serious injury or death could result from
 unsafe handling.
 
 Created 17 Jan 2010
 By Mark Borden
  
 */

int ACPin12 =  12;    // AC load connected to pin 12
int ACPin11 =  11;    // AC Load connected to pin 11
int ACPin10 =  10;    // AC Load connected to Pin 10
int ACPin9 =  9;    // AC Load connected to Pin 9

void setup()   {               
  // initialize the digital pins as an outputs:
  pinMode(ACPin12, OUTPUT);
  pinMode(ACPin11, OUTPUT);
  pinMode(ACPin10, OUTPUT);
  pinMode(ACPin9, OUTPUT); 
}
void loop()                    
{
  digitalWrite(ACPin12, HIGH);   // set the Pin 12 on
  delay(500);                  // wait for a second
  digitalWrite(ACPin12, LOW);    // set the Pin 12 off
  delay(500);                  // wait for a second
  digitalWrite(ACPin11, HIGH);   // set the Pin 11 on
  delay(500);                  // wait for a second
  digitalWrite(ACPin11, LOW);    // set the Pin 11 off
  delay(500);                  // wait for a second
  digitalWrite(ACPin10, HIGH);   // set the Pin 10 on
  delay(500);                  // wait for a second
  digitalWrite(ACPin10, LOW);    // set the Pin 10 off
  delay(500);                  // wait for a second 
  digitalWrite(ACPin9, HIGH);   // set the Pin 9 on
  delay(500);                  // wait for a second
  digitalWrite(ACPin9, LOW);    // set the Pin 9 off
  delay(500);                  // wait for a second
}

This entry was posted in AC Circuits, Arduino and tagged . Bookmark the permalink.