Friday, August 21, 2020

A DIY PCB UV Expose Timer Using PIC16F876A Using MPLABX XC8

Requirements For PCB Making Using Dry Film Technique

Creating a printed circuit board (PCB) with dry film method, could produce a high quality PCB. It's because of good copper track coating. Comparing to a simple toner transfer method, it's excellent in output but it costs more dollars and more time consuming.

A PCB UV Expose Timer Using PIC16F876A With MPLABX XC8
A sample a pre-fabricated PCB made by a Gerber viewer 

The dry film is made from polymer. it is photo sensitive to UV light. In industrial PCB making, dry film is choice of PCB copper tracking protecting. In the market it cost around 10 US Dollars for 30 cm by 5 meters.

Making a PCB UV Expose Timer Using PIC16F876A With MPLABX XC8
My dry film in use. It is 5 meters long. I bought it from E bay for 8 US Dollars.

However using dry film for PCB making requires UV lamp with a precise timer to make the process more accurate. A low lost timer made by some Chinese manufacturer cost around 3 US Dollars.

The source of UV light beside the sun light are a UV light bulb or a popular UV LED available on line.



Making a PCB UV Expose Timer Using PIC16F876A With MPLABX XC8
A low cost Chinese light bulb works at 220V AC with the output power of 40 W. It's suitable for
personal use. I use this device for my electronic workshop at home.




Making a PCB UV Expose Timer Using PIC16F876A With MPLABX XC8
A sample PCB I made using dry film method with solder mask coating in 2008.


Making A DIY UV Time Exposes Unit Using PIC16F876A

Design Requirements

For a normal control device, it require some user inputs, a display output and a driving output. 
User input has no other words than a push button in common. 
A display device, could be a simple seven-segment display because it has a big display value and very simple to program.
An output driving, commonly drive an AC load. In this project, it drive an output relay to switch the AC UV light bulb on and off.

To make an embedded controller project, we must thing about all controller's resource requirement that fit the project. For this simple project, an 8-bit PIC device is a good choice. Most 8-bit PIC has a rich of digital input output, analog inputs and PWM output driving.

I posses a lot of PIC16F876A I bought for my working project to some companies. I have left a dozen of it from the finished projects.

Making a PCB UV Expose Timer Using PIC16F876A With MPLABX XC8
A reference image of this device taken from RS components. Some components
I possess are very old and used that is not suitable to post them here.



The Completed Project

In this design, I use the following stuffs to make a timer work well for my personal use:
  1. A variable resistor used for adjust time
  2. An ENTER button used for inputting the time value
  3. A LOAD button used for reading the saved timing from previous setting
  4. An 8-digit multiplexed displays for display the time
  5. An output relay driver to switch the lamp on and off
  6. A buzzer alert the beginning and the end of the running timer
Making a PCB UV Expose Timer Using PIC16F876A With MPLABX XC8
The picture of the completed project

The display digit are 0.36 inches diagonal. Conventionally, the multiplexing method could work well for only 8 digits.



Making a PCB UV Expose Timer Using PIC16F876A With MPLABX XC8
Schematic Diagram I designed in Proteus 8



Making a PCB UV Expose Timer Using PIC16F876A With MPLABX XC8
A sample PCB design the red line indicates the design rule error, but
it doesn't matter. 


Making a PCB UV Expose Timer Using PIC16F876A With MPLABX XC8
A computer software rendered of this design

I took the photo of my finished work as below.






MPLABX XC8 Source Code

The overall program is written using XC8 from the device vendor.

The config.h file lists below.

The completed project archive could be downloaded here.

I shared this project on the PCB fab service website. 

PCB from=From pcbway

The pictures below show a sample pre-production PCB created by the Gerber viewer.

A PCB UV Expose Timer Using PIC16F876A With MPLABX XC8
Components Side



A PCB UV Expose Timer Using PIC16F876A With MPLABX XC8
Copper Soldering Side


No comments:

Post a Comment

Labels

ADC (10) Analog (14) Arduino (12) Atmega16 (19) Audio (2) AVR (20) Charger (1) Cortex-M0 (1) Counter (10) CPLD (25) Digital I/O (22) Display (34) EEPROM (2) Environment Sensor (1) esp8266 (2) Experiment Board (10) I2C (4) Interrupt (7) LCD (1) LDmicro (29) measurement and instrumentation (7) Microchip Studio (3) MikroC (1) One-Shot (3) OpAmp (1) PCB (31) PIC16 Microcontrollers (16) PIC16F877A (2) PIC16F887 MikroC (22) PLC (35) PWM (11) Regulator (1) RTC (2) Sensor (8) Shift Registers (5) SPI (5) Timer (34) UART (2) ultra-sonic sensor (1) USB (1) VHDL (21) xc8 (1) XC95108 (9) XC9536 (15) XC9572 (1) Xilinx (23) Xilinx ISE (22)