Go Down

Topic: UV PCB Exposure Unit (Read 3178 times) previous topic - next topic

spycatcher2k

Jul 10, 2011, 05:38 pm Last Edit: Jul 10, 2011, 05:43 pm by spycatcher2k Reason: 1
Hi all, I finally got round to making myself a new exposure unit (led based) for making small boards - and just thought I would share the controller unit with everyone. The UV lamp, as I call it, is just a piece of vero board - with 128 UV leds, wired in sets of 3 with associated resistors, so I wont go into that part.

The control panel is very basic, using an ATTINY85 programmed in the arduino ide (using coding badly's ATTINY core), I have included the schematic, and the source for you to peruse, use and abuse if you want. I could of used an attimy45 (and saved 4p) but I have a batch of 85 sitting & no 45s sitting unused.

The controller has been made on a custom manufactured board I designed and had made but can be home etched or built on vero-board if required ( I got a couple of spare boards for sale if you want one - PM me) - powered from an old laptop PSU (I haven't shown the power supply for +12v & +5V). The power is hooked up to +5v (pin3) +12v to led lamp, and led lamp ground to (pin1), and finaly psu ground to (pin2).

The source code is self evident - I have moved some #define statements from my normal 'skeleton' library that includes a collection of commonly used #defines.

So here is the code :

Code: [Select]
/*

UV Exposure Controller

Hook up buttons to D2 - D5 To Ground
D0 : to UV Exposure Lamp (Through Transistor).
D4 : One Minute Exposure Time
D3 : Two Minute Exposure Time
D2 : Five Minute Exposure Time
D1 : Turn ON/OFF Exposure Lamp


*/

/*
The following lines are my 'Standard' included header - #defines common used settings
*/

#define PRESSED LOW             //GIVE PRESSED BUTTONS A 'LOGICAL' NAME
#define UNPRESSED HIGH          //GIVE UNPRESSED BUTTONS A 'LOGICAL' NAME
#define ON HIGH                 //LOGICAL NAME AGAIN
#define OFF LOW                 //AND AGAIN




#define UVLAMP 0                //UV SWITCH (VIA TRANSISTOR)
#define ONEMIN 4                //GIVES APPROX 60 SECOND (1 MINUTE) COUNT DOWN (APPX AS WE USE INTERNAL OSC.)
#define TWOMIN 3                //GIVES APPROX 120 SECOND (2 MINUTES) COUNT DOWN
#define THREEMIN 2              //GIVES APPROX 300 SECOND (5 MINUTES) COUNT DOWN
#define OVERRIDE 1              //TURN EXPOSURE UNIT ON/OFF



void setup()
{
 pinMode(ONEMIN,INPUT);
 digitalWrite(ONEMIN,ON);  // Turn On Internal pull-up Resistor
 pinMode(TWOMIN,INPUT);
 digitalWrite(TWOMIN,ON);  // Turn On Internal pull-up Resistor
 pinMode(THREEMIN,INPUT);
 digitalWrite(THREEMIN,ON);  // Turn On Internal pull-up Resistor
 pinMode(OVERRIDE,INPUT);
 digitalWrite(OVERRIDE,ON);  // Turn On Internal pull-up Resistor
 pinMode(UVLAMP,OUTPUT);
 digitalWrite(UVLAMP,OFF);
 startup();

}  //End void setup()

void loop()

{
 digitalWrite(UVLAMP,OFF);
 
 
if (digitalRead(ONEMIN)==PRESSED)
{
expose(60);
}
if (digitalRead(TWOMIN)==PRESSED)
{
expose(120);
}
if (digitalRead(THREEMIN)==PRESSED)
{
expose(300);
}

if (digitalRead(OVERRIDE)==PRESSED)
{
delay(1500);
exposeover();
}  
}  //End void loop()



void startup()
{
for(int cycles = 0; cycles < 5; cycles +=1)
{
 digitalWrite(UVLAMP,ON);
 delay(250);
 digitalWrite(UVLAMP,OFF);
 delay(250);
}
}  //End void startup()


int expose(int count)
{
 digitalWrite(UVLAMP,ON);
for (int timer = count; timer > 0; timer -=1)
{
 if (digitalRead(OVERRIDE)==PRESSED)
{
  digitalWrite(UVLAMP,OFF);
   delay(2000);
    break;

}
delay(1000);
}
 } //End int expose()
 
void exposeover()
{
 digitalWrite(UVLAMP,ON);
while(digitalRead(OVERRIDE)==UNPRESSED)
{
}
digitalWrite(UVLAMP,OFF);
delay(1000);
}  //End exposeover()



and See the schematic below.

The Resistors are both 10k & I used a 2n2222 Transistor instead of a BC489.


Feedback welcome.

Drew.
http://www.uk-pcb.co.uk - My UK Based PCB Fab & Assembly Company
Design work undertaken
SMD & Thru-Hole assembly

mowcius

So... how well does it work?

Got any pics of the unit?

spycatcher2k

It exposes a panel in 3 Min's - I've not got a proper box for it at the moment, so got it sitting in a plastic box I got from our local £1 shop - going to fab a box for it when I have the inclination. I'll Take some pictures later on.
Drew.
http://www.uk-pcb.co.uk - My UK Based PCB Fab & Assembly Company
Design work undertaken
SMD & Thru-Hole assembly


spycatcher2k

Just tried it on the arduino - works fine - changed the pin number so it would not conflict with the UART/FTDI - and the timing is more accurate as well. Now where did I put those ATMEGA 8s????
Drew.
http://www.uk-pcb.co.uk - My UK Based PCB Fab & Assembly Company
Design work undertaken
SMD & Thru-Hole assembly

Si

Nice.

I did something simpler with stripboard and a 555 timer for the controller. Its written up here:

http://dl.dropbox.com/u/3993179/pcbs.pdf

--
My New Arduino Book: http://www.arduinobook.com

spycatcher2k

Here are the pictures as promised - Mounted in an old speaker enclosure - not the best looking, but functional - my exposure time is down to 2 Mins due to the exposure plate being closer to the LEDs. Spread across a few posts, due to forum file size limits.

Pic 1 : A Wide view of the box.

Pic 2 : My home-made diffuser - Baking parchment in plastic laminate

Drew.
http://www.uk-pcb.co.uk - My UK Based PCB Fab & Assembly Company
Design work undertaken
SMD & Thru-Hole assembly

spycatcher2k

Pic 3 : The controller board with ATTiny85 - Programmed in the arduino IDE with my USBTiny Programmer, and one of my ATTiny Programming boards.

Pic 4 : The external  buttons for the timer


Button 1 : 1 Minute Exposure

Button 2 : 2 Minute Exposure

Button 3 : 5 Minute Exposure

Button 4 : OVERIDE - Turn LEDs off and Cancel timer when they are on.
                             Turn ON LEDs (after 1.5 Second PAUSE) and off again.
Drew.
http://www.uk-pcb.co.uk - My UK Based PCB Fab & Assembly Company
Design work undertaken
SMD & Thru-Hole assembly

spycatcher2k

Pic 5 : The TEMPORARY power connectors - RED = +12v, GREEN = +5v, WHITE = GROUND (I have a PSU on order from china +12,+5, laptop brick size.) connected to my home-made bench PSU.


All the best

Drew
Drew.
http://www.uk-pcb.co.uk - My UK Based PCB Fab & Assembly Company
Design work undertaken
SMD & Thru-Hole assembly

Go Up