Project: DS-PCB UV LED exposure box.

Discussion in 'The Completed Projects Collection' started by nerdegutta, Dec 19, 2011.

  1. nerdegutta

    Thread Starter Moderator

    Dec 15, 2009
    2,513
    784
    Introduction.
    This is actually my third UV-LED exposure box. The first was a converted flatbed scanner, with too many fails and faults, but at that time, it got the job done. The second was a PIC 16F628 based 45 UV LEDs, in a custom made box. The box is made out of 3mm MDF plates. To make double sided PCB, I needed to expose the board for 10 minutes, flip it over, and expose it for another 10 minutes. Risking the alignment of the graphic to be in jeopardy.

    Description and Operation.
    This time, I'm using the second versions MDF box and UV LEDs, with a different controller circuit. The thought was to have a box to make DS boards in one shot, with variable exposure time, a warning LED and a buzzer that makes a sound when the time is up. Now I've added another 45 UV LEDs, and made an "add-on" box, which fits on top of the original box. You need to calculate you own values for the resistors to the UV LEDs. The listing below, is for the controller circuit.

    Code ( (Unknown Language)):
    1.  
    2. Partlist
    3.  
    4. Exported from UV Box v3.sch at 19.12.11 18.57
    5.  
    6. EAGLE Version 5.7.0 Copyright (c) 1988-2010 CadSoft
    7. Part     Value           Device           Package      Library          Sheet
    8.  
    9. C1       0.1uF           C-EU025-025X050  C025-025X050 resistor         1
    10. C2       33pF            C-EU025-025X050  C025-025X050 resistor         1
    11. C3       33pF            C-EU025-025X050  C025-025X050 resistor         1
    12. C4       0.1uF           C-EU025-025X050  C025-025X050 resistor         1
    13. C5       100uF           CPOL-EUE2.5-5    E2,5-5       rcl              1
    14. IC1      PIC 16F628      DIL18            DIL18        ic-package       1
    15. IC2      78L05Z          78L05Z           TO92         linear           1
    16. JP1      12 vDC          PINHD-1X2        1X02         pinhead          1
    17. JP2      Start           PINHD-1X2        1X02         pinhead          1
    18. JP3      Reset           PINHD-1X2        1X02         pinhead          1
    19. JP4      Busy LED        PINHD-1X2        1X02         pinhead          1
    20. JP5      Buzzer          PINHD-1X2        1X02         pinhead          1
    21. JP6      To UV LEDs      PINHD-1X2        1X02         pinhead          1
    22. JP7      Selector switch PINHD-1X7        1X07         pinhead          1
    23. JP8      ICSP            PINHD-1X6        1X06         pinhead          1
    24. Q1       4MHz            CRYSTALHC18U-V   HC18U-V      crystal          1
    25. Q2       IRL2703         PMOSFET_NTO220BV TO220BV      transistor-power 1
    26. R1       380R            R-EU_0204/7      0204/7       resistor         1
    27. R2       12k             R-EU_0204/7      0204/7       resistor         1
    28. R3       12k             R-EU_0204/7      0204/7       resistor         1
    29. R4       12k             R-EU_0204/7      0204/7       resistor         1
    30. R5       12k             R-EU_0204/7      0204/7       resistor         1
    31. R6       12k             R-EU_0204/7      0204/7       resistor         1
    32. R7       12K             R-EU_0204/7      0204/7       resistor         1
    33. R8       12K             R-EU_0204/7      0204/7       resistor         1
    34. R9       10k             R-EU_0204/7      0204/7       resistor         1
    35.  
    And you will need:

    The schematic and board is made in EAGLE.
    My extra add-on box is connected via one of the powerconnector. This connector is connected to the the cables going from JP6. The last thing I added was a ICSP connector. This is for the user to alter the exposure time, for his/hers own time. See the programlistings below. When using the ICSP feature, the powersource needs to be disconnected.

    The program:
    Code ( (Unknown Language)):
    1.  
    2. /*
    3.  
    4. Program: main.c
    5. Description: Timer program for UV-box
    6. PIC: 16F628
    7. IDE: MPLAB
    8. Compiler: Hi - Tech C
    9. Date: Nov 2010
    10.  
    11. */
    12.  
    13. #include  <htc.h>
    14. #define _XTAL_FREQ 4000000
    15.  
    16. /* Configuration */
    17.  
    18. __CONFIG(WDTDIS &
    19.  PWRTEN &
    20.  MCLREN &
    21.  BOREN &
    22.  LVPDIS &
    23.  DATUNPROT &
    24.  UNPROTECT &
    25.  XT);
    26.  
    27. /* Prototyping the functions */
    28. void lightLED();
    29. void beep();
    30.  
    31. /* Global variables */
    32. unsigned char i;
    33.  
    34. /* Functions */
    35. void lightLED()
    36. {
    37.  PORTB = 0b00000011; // Setting bits 0 and 1 to HIGH
    38.  __delay_ms(1000);
    39.  
    40.  PORTB = 0b00000000; // Setting all bits to LOW
    41. } // end lightLED
    42.  
    43.  
    44. void beep()
    45. {
    46.  for (i=0;i<125;i++)
    47.  {
    48.  PORTB = 0b00000100; // Setting bit 2 to HIGH
    49.  __delay_ms(1);
    50.  
    51.  PORTB = 0b00000000; // Setting bit 2 to LOW
    52.  __delay_ms(1);
    53.  
    54.  } // end for-loop
    55. } // end beep
    56.  
    57. /* Main program */
    58. void main()
    59. {
    60. TRISA = 0b11111111; // Setting all bits on port a to input
    61. TRISB = 0b00000000; // Setting all bits on port b to output
    62.  
    63. PORTA = 0b00000000; // Setting all bits on port a to LOW
    64. PORTB = 0b00000000; // Setting all bits on port b to LOW
    65.  
    66. CMCON = 0x07; // Disabling the analogue comparators
    67.  
    68. while (1)
    69. {
    70.  if (RA0)
    71.  {
    72.  
    73.  for(i=0;i<2;i++) // Create a delay for 2 seconds
    74.  {
    75.  lightLED();
    76.  } // end for-loop
    77.  beep();
    78.  } // end if
    79.  
    80.  if (RA1)
    81.  {
    82.  
    83.  for(i=0;i<120;i++) // Create a 2 min delay
    84.  {
    85.  lightLED();
    86.  } // end for-loop
    87.  beep();
    88.  } // end if
    89.  
    90.  if (RA2)
    91.  {
    92.  
    93.  for(i=0;i<240;i++)
    94.  {
    95.  lightLED();
    96.  } // end for-loop
    97.  beep();
    98.  } // end if
    99.  
    100.  if (RA3)
    101.  {
    102.  
    103.  for(i=0;i<240;i++)
    104.  {
    105.  lightLED();
    106.  } // end for-loop
    107.  for (i=0;i<120;i++)
    108.  {
    109.  lightLED();
    110.  }
    111.  beep();
    112.  } // end if
    113.  
    114.  if (RA4)
    115.  {
    116.  
    117.  for(i=0;i<240;i++)
    118.  {
    119.  lightLED();
    120.  } // end for-loop
    121.  for(i=0;i<240;i++)
    122.  {
    123.  lightLED();
    124.  }
    125.  beep();
    126.  } // end if
    127.  if (RB7)
    128.  {
    129.  for (i=0;i<60;i++)
    130.  {
    131.  lightLED();
    132.  }
    133.  beep();
    134.  }
    135.  
    136. } // end while
    137.  
    138. } //end main
    139.  
    140.  
    I think that the program can be made smaller and more "stream-line".

    Schematic.
    [​IMG]
    I've attached a higher resolution image of the schematic.See attachments below.
    My board layout.
    [​IMG]
    Made in Eagle.

    [​IMG]
    The real deal.

    Pictures:
    [​IMG]
    The two boxes of LEDs

    [​IMG]
    The "add-on" placed on top, ready to expose.

    There are some more pictures in my album. That's right about here.
    Attachments are in EAGLE format and a high res image of the schematic.
     
    Last edited: Jan 15, 2012
    strantor likes this.
  2. faceter

    New Member

    Dec 4, 2011
    7
    1
    Hi nerdegutta
    I rerad about your UV Box project. I have a redundant scanner and was thinking about a conversion to a UV unit. Youv'e already made one but you comment on the 'fails and faults'. Were they so bad? Any chance of letting me know what was wrong and if you have any schematics let me have them?

    Thanks
     
  3. nerdegutta

    Thread Starter Moderator

    Dec 15, 2009
    2,513
    784
    The procedure were straight forward.

    I took out all that was inside, and soldered approximate 295 UV LEDs together. I do not think I used the proper resistors, but my timingcircuit was fine. Around 7 minutes. It was a 555 and transistor circuit. Don't have the schematics longer...

    What I meant with fails and faults, was my soldering skills at the time, and my understanding of how LED's and resistors work together.

    The powersource was a jump-started ATX powersupply.

    Edit:
    I've found the scanner, took some pictures, and made an album. It's here.
     
    Last edited: Dec 24, 2011
Loading...