Go Down

Topic: UV PCB Exposure Unit (Read 3368 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

--
I write books about Arduino and Electronics: http://simonmonk.org

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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy