Countdown Timer Help

Hi all,

What would the best way to switch a Digital Output to High?

I want to use a load of UV LED's for a PCB Exposure box.

I already have 20 UV LEDs and need to turn them on for between 8 & 15 mins.

Thanks In Advance

LED Specs:

Source Material: InGaN Emitting Colour: UV/Purple Emitting Wavelength (nm): 395-400 Size: 5mm Intensity (mcd): 100-150 Viewing Angle (deg): 20 Forward Voltage (V): 3.2-3.4 Forward Current (mA): 20-30

Thanks for the responses.

I have drawn up this circuit: (I used Fritzing)

Each LED has a 100 Ohm between it and the ground. i made this to connect to a USB (5V, 500mA) lead and will possibly etch it today.

What I really want to-do is use the arduino digital pins so i can turn them on for specific amounts of time.

A while back I got a Jeelabs Output plug, (Originally to control motors but couldn't figure out the hookup and brought a dedicated driver)

The Output Plug is a small board containing an 8-bit I/O expander plus NPN Darlington array. Each pin can sink up to 500 mA @ 50V

If I can get this working, I'm thinking this could power the LED's and then with some sort of code and possibly a timer IC (for countdown) and the LCD Shield to control & Display the exposure time.

well my board is pretty simple

The LEDs are spaced out on a 100mm x 75mm PCB Has 2 pins for +/- X20 UV LEDs X20 !00 OHM Resistors

http://cafe.jeelabs.net/lab/op1/

I will try with this: when i get home from work tonight!!

#include <LiquidCrystal.h>
 // initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 12, 9, 4, 5, 6, 7);
 int runTimer = 1; // true condition for timer
 int serialData = 0; // false condition for serial communication
 int speakerPin = 8;
 int data = 0; // default condition
 
 void setup() {
   pinMode(speakerPin, OUTPUT);
 
   // set up the LCD's number of rows and columns: 
   lcd.begin(16, 2);
 }

 void loop() {
   
   // To execute timer only once
   if(runTimer == 1){ 

   // Print a message to the LCD.
   lcd.clear();
   lcd.print("Timer: ");
   //Start timer
   timer(); 
   }
   runTimer = 0;
   lcd.noDisplay();
   delay(250);
   // Sound Buzzer
   for(int duration = 0; duration < 100; duration ++){
     digitalWrite(speakerPin, HIGH);
     delayMicroseconds(2000);
     digitalWrite(speakerPin, LOW);
     delayMicroseconds(2000);
   } 
   lcd.display();
   delay(250);
 }
 
 void timer(){
   
   // For loop to run the COUNT-DOWN in Seconds
     for(int timer = 180; timer > 0; --timer){
     // Set the Curosr to the space after the display "TIMER: "
     if(timer >= 10)
       lcd.setCursor(6,0);  
     else{
       lcd.setCursor(6,0);
       lcd.print("0");
       lcd.setCursor(7,0);
     }
     // Display the COUNT-DOWN Seconds
     lcd.print(timer);
     lcd.print("s");
     delay(1000);
     }
     
     // Bring the Cursor to the initial position 
     lcd.setCursor(0,0);
     lcd.clear();
     lcd.print("Buzzer!");
 }