PIC Lesson: Wiegand RFID Reader

November 2nd, 2012  Posted at   Lesson PIC
arrow   |   10 Commentsarrow

Wiegand RFID Reader adalah jenis RFID Reader yang lain, ia menggunakan Wiegand Protocol. Wiegand protocol menggunakan dua isyarat iaitu DATA0 dan DATA1.

Wiegand format mempunyai 26 bit. Bit pertama dan bit terakhir adalah parity.  Oleh itu, saya menukarkan bit ke-2 hingga bit ke-25 kepada nombor 24 bit. Di bawah adalah cara menentukan bit 0 dan bit 1 dalam isyarat Wiegand.

Sambungan DATA0 dan DATA1 boleh di sambungkan di mana-mana pin PIC.

Berikut adalah videonya.

PIC Source Code

10 Responses to “PIC Lesson: Wiegand RFID Reader”

  1. lolo says:

    hi.how can i add user and how can RFID save multiuser in the same time?

  2. erina_erra says:

    ok…. trima kasih.. :)

  3. erina_erra says:

    oh ok.. erm, sbenarnya sya masih blurr lagi tentang wiegand rfid ne.. tak boleh kah kalau PIC yang akan transfer data yang kena save..maksud sya, tak perlu connect wiegand rfid tu dekat PC ? so, PIC ke PC then PIC ke wiegand rfid ?

  4. erina_erra says:

    trima kasih Shahrul.. Shahrul, boleh sya tahu, UART jenis macam mna kena guna utk connect ke PC tu ya ? SK40C boleh kah ? erm, jika gunakan coding bagi PIC18F4580, adakah ia sama dengan coding PIC18F4550 ? sorry sya banyak tanya.. :)

  5. erina_erra says:

    hi.. sya mahu tanya.. how the wiegand rfid connect to PC ? how to connect it ? erm, is there any other software are use ? PROTUES ?

  6. Celal ÜNLÜ says:

    Hi

    I have a problem about reading data of wiegand 26 protocol. I am using PIC18F46K22.

    Can you give a lead about this. Can you send sample codes about it. I have written code but failed.

    Code is below. I wanna how many received data “0” and data “1”.

    I read

    data0: 25 piece

    data1: 1 piece.

    Can you help me pls?

    #include “lcd_test.c”

    #zero_ram

    #use delay(crystal=20000000)
    #INT_EXT2
    void read_wiegandD1()
    {
    disable_interrupts(INT_EXT2);
    if(length_count<26)
    {
    wie_data[length_count]="1";
    data1=data1+1;
    length_count=length_count+1;
    clear_interrupt(INT_EXT2);
    enable_interrupts(INT_EXT2);
    }
    }

    #use delay(crystal=20000000)
    #INT_EXT1
    void read_wiegandD0()
    {
    disable_interrupts(INT_EXT1);
    if(length_count25)
    {
    length_count=0;

    output_high(pin_D5);

    data_show();

    delay_ms(8000);

    }

    }
    }

    #use delay(crystal=20000000)
    void data_show()
    {
    lcd_gotoxy(1,3);
    printf(lcd_putc,”Data0: %u”,data0);

    lcd_gotoxy(1,4);
    printf(lcd_putc,”Data1: %u”,data1);

    }

    /**************************************
    Function: board_init
    Input Arguments:None
    Output Arguments: None
    Purpose:Initialize the board
    **************************************/
    /*
    #use delay(crystal=20000000)
    void board_init(void)
    {
    set_tris_b(0xFF);
    enable_interrupts(INT_EXT2_H2L);
    enable_interrupts(INT_EXT1_H2L);
    enable_interrupts(GLOBAL);

    length_count=0;

    }

  7. adriana says:

    hi, is possible to get the libraries you use for RFID? . I’m doing a very similar project to this

Leave a Reply

What is 3 + 2 ?
Please leave these two fields as-is:
IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)