Total Pageviews

Friday, 19 April 2013

TOUCH UP PART FOR PRESENTATION (Hardware)


The project started with a solder jumper wires from the LCD to the circuit. Then, some soldering recipients. Receiver mounted on the circuit. In addition, the LCD mounted on a clear acrylic sheet so everyone can read the output.


Wednesday, 17 April 2013

Keypad Detector Layout

This product is designed to detect any keypad handphone number from 0 to 9, of course ( * #). Just press any keypad number from all handphone than data in binary code will transmit to reciever module (i used 315MHz RF module with address code).

Thursday, 14 March 2013

Programming



#include <pic.h>
#include <htc.h>                                 //required to interface with delay routines
__CONFIG(0x3F32);

#define BCD              PORTA          

#define            LCD_RS RD4                        // Set Port RD4 sebagai sambungan ke RS (Register Select) di LCD
#define LCD_EN RD5                      // Set Port RD5 sebagai sambungan ke EN (Enable) di LCD

#define LCD_DATA PORTD           // Set PortD sebagai data ( tapi dalam kes ini hanya 4 bit DATA
                        // digunakan ( Pin RD0-RD3 disambung kpd pin D4-D7 di LCD)

#define            LCD_PULSE()           (LCD_EN = 1, LCD_EN = 0)
#define _XTAL_FREQ          20000000        //this definition is required to calibrate __delay_us() and __delay_ms()

void pic_init(void);
void lcd_init(void);
void lcd_write(unsigned char c);
void lcd_clear(void);
void lcd_goto(unsigned char pos); //, unsigned char row)
void lcd_string(const char *s);
int read_keypad(void);
void lcd_number(int no, char base, char digit);

main(void)
{
char count=0,data,pass[5],password[5]={"84214"}; //(sila tukar password anda disini)
int i;
int j=0;
pic_init();                                             //initialize PIC
lcd_init();                                            //initialize LCD

__delay_ms(1000);
//__delay_ms(1000);


for(;;){
       
       

            lcd_goto(0x0);
            lcd_string(" Enter Password");
   
     while(RE0!=1)      
      RE0=0; 

if (BCD == 0b1010)
break;


            data=read_data();
            if((data>=1)&(data <=10)){
                        pass[count]=data%10+0x30;
                        lcd_goto(0x44+count);
                        lcd_string("*");
                        count++;}                                                                   

            if(count==5){
                        count=0;
                        for(i=0;i<=4;i++){
                if(pass[i]==password[i])
                count++;}
                        lcd_goto(0x40);
                        if(count==5){ lcd_string("     Welcome");
        RE1=1;
        __delay_ms(5000);
        RE1=0;
        }      
                        else lcd_string("  Wrong password");
                        count=0;
                        __delay_ms(500);
                        lcd_goto(0x40);
                        lcd_string("                ");}
}
}

void pic_init(void)
{
TRISA=0b00001111;
TRISB=0b00000000;
TRISC=0b00000000;
TRISD=0b00000000;
TRISE=0b00000001;
ADCON1=0b00000110;                                //configures the functions of the port pins
PORTA=0b00000000;
PORTB=0b00000000;
PORTC=0b00000000;
PORTD=0b00000000;
PORTE=0b00000000;
}

int read_data(void)
{int i=0;

if (BCD == 0b0001) i=i+1;  // 1
if (BCD == 0b0010) i=i+2;  // 2
if (BCD == 0b0011) i=i+3;  // 3
if (BCD == 0b0100) i=i+4;  // 4
if (BCD == 0b0101) i=i+5;  // 5
if (BCD == 0b0110) i=i+6;  // 6
if (BCD == 0b0111) i=i+7;  // 7
if (BCD == 0b1000) i=i+8;  // 8
if (BCD == 0b1001) i=i+9;  // 9
if (BCD == 0b1010) i=i+11; // *
if (BCD == 0b1010) i=i+10; // 0
if (BCD == 0b1100) i=i+12; // #
 if(i>0) __delay_ms(300);
return i;}

char RS, EN, Temp;

/* write a byte to the LCD in 4 bit mode */
void lcd_write(unsigned char c)
{
            RS = LCD_RS << 4;              // LCD_RS = RD4
            EN = LCD_EN << 5;             // LCD_EN = RD5
            Temp = RS | EN;

            LCD_DATA = ( ( c >> 4 ) | Temp );
            LCD_PULSE();

            LCD_DATA = (( c & 0x0F ) | Temp );
            LCD_PULSE();

            __delay_us(40);
}



/*         Clear and home the LCD */
void lcd_clear(void)
{
            LCD_RS = 0;
            lcd_write(0x1);
            __delay_ms(2);
}


/* write a string of chars to the LCD */
void lcd_string(const char *s)
{
            LCD_RS = 1;  // write characters
            while(*s) lcd_write(*s++);
}


/* write one character to the LCD */
void lcd_putch(char c)
{
            LCD_RS = 1;  // write characters
            lcd_write( c );
}


/* Go to the specified position */
void lcd_goto(unsigned char pos)
{
            LCD_RS = 0;
            lcd_write(0x80+pos);
}



/* go to the specified position
void lcd_goto(unsigned char pos, unsigned char row)
{
LCD_RS=0;
switch(row){
case 0:{lcd_write(0x80+pos);break;}
case 1:{lcd_write(0xC0+pos);break;}
case 2:{lcd_write(0x94+pos);break;}
case 3:{lcd_write(0xD4+pos);break;}}
LCD_RS=1;
} */




 /* initialise the LCD - put into 4 bit mode */
 void lcd_init()
{
            char init_value;

            init_value = 0x3;
           
            TRISD=0;
            LCD_RS = 0;
            LCD_EN = 0;

           
            __delay_ms(15);         // wait 15mSec after power applied,
            LCD_DATA   = init_value;
    LCD_PULSE();
            __delay_ms(5);
    LCD_PULSE();
            __delay_us(200);
            LCD_PULSE();
            __delay_us(200);
            LCD_DATA = 2;       // Four bit mode
            LCD_PULSE();
    lcd_write(0x28); // Set interface length
    lcd_write(0xC); // Display On
            lcd_clear();      // Clear screen
            lcd_write(0x6); // Set entry Mode
}


/* write a number */
void lcd_number(int no, char base, char digit)
{char i,j,di[10];
for(i=0;i<=9;i++) di[i]=0;
i=0;
do{
            di[i]=no%base;
            no=no/base;
            i=i+1;}
while(no!=0);
for(j=digit;j>0;j--){
            if(di[j-1]<=9) lcd_write(di[j-1]+'0');
            else lcd_write(di[j-1]-10+'A');}
}

Wednesday, 20 February 2013

Soldering Process

Soldering is a process in which two or more metal items are joined together by melting and flowing a filler metal (solder) into the joint, the filler metal having a lower melting point than the workpiece. Soldering differs from welding in that soldering does not involve melting the work pieces. In brazing, the filler metal melts at a higher temperature, but the workpiece metal does not melt. Formerly nearly all solders contained lead, but environmental concerns have increasingly dictated use of lead-free alloys for electronics.



Saturday, 16 February 2013

Keypad Detector Test

First you'll need a Project box any size. The big problem in this design was the antennas, the wires are so very fragile that they are easily broken off. The next design has the wires used as antennas kept inside the box. I ended up drilling holes in the project box, and then kept the antenna wires inside.

When you switch on  transmitter . LED will the blinks once.






Thursday, 14 February 2013

Etching Process

Etching is an intaglio process which involves biting a metal plate (usually copper, zinc or steel) in acid. Traditionally, the acid used has been nitric acid, but this is extremely hazardous to both the environment and the artist. The favored method for biting a plate is ferric chloride as it does not give off toxic gases and is safe for the artists and the environment. This is the acid that I always use for etching my plates.

The etched image on the plate is a mirror image and, therefore, in reverse. It is printed using a special printing ink which is applied with a leather dabber. The surplus ink is wiped off by hand using firstly stiff tarlatan, secondly using soft muslin and, finally, using tissue paper. You have to be careful not to over wipe the plate otherwise the print will be too feint and lose the detail. An etching is printed using an etching press which is a very heavy piece of equipment and involves the plate resting on a steel bed and then being pulled between two metal rollers under strong pressure. Special paper is used to print the etching and it is similar in weight and texture to water color paper. First the paper is dampened and then placed over the etching plate and 3 different types of blankets, (two are woolen and one is felt), are placed on top of the paper to prevent the metal from tearing the paper. The etched image is transferred to the paper when the rollers are turned. The printed etching is hung up to dry and later placed between heavy boards to press it and keep it flat.

Due to the inking and wiping process no two prints are identical. In this respect etching is different to silk screen printing or lithography which enable all prints to be identical. Each print forms part of an edition ie a set number of prints and the artist decides how many prints he/she would like in each edition. Zinc is a soft metal and does not allow for many prints in an edition as the plate is quickly worn down. Copper is harder and gives a more precise line and tone and is favored by most artists. This is the metal that I usually work on and prefer it though I have experimented with all the different types of metal. Steel, for example, is hard and will give a high number of prints and you can bite the metal deeply to give wonderful textures. However, the advantage of using copper plates is that they can be steel faced in order to withstand the pressure of the rollers which enables the plate to produce a higher number of prints in the edition

To give an etching tone a process known as aquatint is used. Traditionally, this involved coating the plate with a fine resin dust which was then heated on a hotplate until it melted. Until recently, this was the method I used. However, it is extremely harmful to an artist’s health due to the resin powder getting into the lungs and is carcinogenic. I now favor different ways of creating aquatint such as using non-toxic spray paint, house hold salt sprinkled on the plate and airbrushing. All these methods give their own unique way of aqua tinting and can give very different qualities to the finished etching. Once the aquatint has been laid on the plate stopping out varnish is used to stop out different parts of the etching and give the required tones. To produce the tones the lightest areas of the image are stopped out first and the darker tones last. Each time an area is stopped out it is bitten in the acid and then the next area is stopped out until all the desired tones are bitten.

When the tones have been bitten then a proof is taken of the etching. A proof is the print that is taken each time a process has taken place ie etched lines, aquatint etc. Once the proof has been printed, the plate is then burnished with a special metal tool and it is the burnishing process which determines the shape and form and gives the image depth. When the artist feels that the plate has been burnished sufficiently the artist will produce another proof. If he/she is happy with the proof then an edition of the etching will be printed. On the etching you will see for example 3/30 this means the third print out of an edition of 30 prints. When the artist has printed the full edition the etching plate is scored through and can no longer be printed.
 
 

Wednesday, 6 February 2013

Second Semester [ WEEK 1 ]

Proteus is software for microprocessor simulation, schematic capture, and printed circuit board (PCB) design. The Proteus Design Suite inludes:
* ISIS - A schematic capture tool with the possibility to simulate programmable ICs like Microchip PIC, Atmel AVR (ATmega8, ATmega32, or ATtiny2313) etc.
*ARES - for PCB layouts.

First part Drawing circuits in Proteus Isis.




Full Design