4x4 Keypad

     Keypad는 FND는 사용하여 숫자를 만드는 프로그램입니다. FND는 간단한 숫자를 표현하기 위하여 많이 사용하는 소자로 0 - 9 까지 숫자를 표현 할 수 있어, 숫자를 표현 할 수 있는 다양한 표시기를 만들 수 있다.



Mambraine 4x4 Keypad의 앞면과 뒷면



PIC16F18345를 사용하여 4x4 Keypad 다루기위한 회로

FND를 사용하여 숫자를 만들기 위하여 위의 회로와 같이 꾸미고 스위치를 누름에 따라 다른 기능을 할 수 있도록 코딩할 수 있다.

     
4x4 Keypad 다루기 위한 원리 및 PIC16F18345와의 연결


     FND를 사용하기 위하여 아래 그림을 참고하면 쉽게 이해 할 수 있다. FND의 전원핀으로 사용하는 3/8 번핀을 5V(Anode Common)또는 0V(Vathode Common)에 얀결하고 (그림에서는 Anode Common을 사용하였기에 +5V에 연결)나머지 핀들을 저항과 스위치로 연결하고 스위치를 0V에 연결하고 어느 스위치를 연결하느냐에 따라 FND의 LED를 선택적으로 켤수 있다. 이러한 방법으로 숫자를 조합할 수 있고 스위치사용하여 그 숫자를 만들어 낼 수 있다.



PIC16F18345를 사용하여 4x4 Keypad 다루기
(그림을 마우스로 클릭하면 간단한 동영상을 볼 수 있다)



PIC16F18345를 사용하여 4x4 Keypad 다루기위하려 빵판에 회로를 꾸민 모습

     FND의 숫자에 해당하는 핀들의 출력 신호에 따른 출력 값을 아래 표에 정리하였다.
     PIC16F18345을 사용하여 Anode Common FND을 다루기 위한 프로그램은 다음과 같다. 위의 표의 16진수 값을 사용하여 프로그램 하고 스dnl치를 누르때 마다 숫자가 증가 하도록 하였다.

//* ****************************************************************************
//* *** Keypad 읽기 기본 코드 **************************************************
//* ****************************************************************************

int8 read_key (void)
{   int8 byKey = NO_KEY ;
    
    output_high (PIN_C7) ;
        if (input (PIN_C0) == 1) byKey = 'A' ;
        if (input (PIN_C1) == 1) byKey = '3' ;
        if (input (PIN_C2) == 1) byKey = '2' ;
        if (input (PIN_C3) == 1) byKey = '1' ;
    output_low (PIN_C7) ;
    
    output_high (PIN_C6) ;
        if (input (PIN_C0) == 1) byKey = 'B' ;
        if (input (PIN_C1) == 1) byKey = '6' ;
        if (input (PIN_C2) == 1) byKey = '5' ;
        if (input (PIN_C3) == 1) byKey = '4' ;
    output_low (PIN_C6) ;
        
    output_high (PIN_C5) ;
        if (input (PIN_C0) == 1) byKey = 'C' ;
        if (input (PIN_C1) == 1) byKey = '9' ;
        if (input (PIN_C2) == 1) byKey = '8' ;
        if (input (PIN_C3) == 1) byKey = '7' ;
    output_low (PIN_C5) ;

    output_high (PIN_C4) ;
        if (input (PIN_C0) == 1) byKey = 'D' ;
        if (input (PIN_C1) == 1) byKey = '#' ;
        if (input (PIN_C2) == 1) byKey = '0' ;
        if (input (PIN_C3) == 1) byKey = '*' ;
    output_low (PIN_C4) ;
    
    return (byKey) ;
}

       LM35 Keypad 4x4, C Source Code




PIC16F18345를 사용하여 LM35 온도센서로부터 온도를 읽고 4x4 Keypad의 Key값을 읽는 모습


참고:

     1. 4x4 Keypad Module
     2. Read a 4x4 Matrix Keypad
     3. 4x4 Keypad interfacing with PIC18F4550
     4. 4x4 KEYPAD
     5. 4 x 4 Matrix Array 16 Key Membrane Switch Keypad
     6. 키패드