Arduino HZ-1050 125Khz RFID Okuyucu YARDIM!!!!
  • İyi günler;
    Şimdi altta yazmış olduğum kodda kart okuyucuya kartın seri numarası okuyor. Fakat benim istediğim kartın üzerinde kart numarası okumasını istiyorum. Sorunum odur.

    KOD:
    #include < SoftwareSerial.h>
    #include < SPI.h>
    #include < stdlib.h>

    SoftwareSerial RFID(A2 , A3); // RX and TX

    void setup() {
    RFID.begin(9600);
    Serial.begin(9600);
    }

    void loop() {
    if (RFID.available() > 0)
    {
    int i = 0;
    String seri;
    String dizi[4];
    do
    {
    seri = RFID.read();
    dizi[i] = seri;
    i++;
    } while (i <= 3);<br /> String toplam = dizi[0] + dizi[1] + dizi[2] + dizi[3];
    Serial.println(toplam);
    }
    }

    Teşekkürler...
  • kartın ustunde 10 luk duzende numerık yazar, program buyuk ıhtımal hex olarak okuyordur. hex den numerıge donusturmeyı deneyın
  • okudugunuz ornek gorunumu de yazsaydınız keşke
  • Kart üzerinde yazan numara : 0002371977 036,12681
    Cihazın okuduğu numara : 03649137
  • @okoman hocam herhangi bir bilgin varmıdır. acaba neden kart üzerindeki sayıyı değilde farklı bir sayı okuyor.
    Teşekkürler...
  • elinizdekı kartların ustundekı numarayı hatalı yazmış da olabılırler. birde siz sadece 4 byte okuyorsunuz bu modulun orjınal program ornegı varsa once onu kullanın daha uzun bır verı sırası yolluyor olabılır
  • şu orneğı deneyın modulun hızından emin olun onu ogrenın, portları kendınıze gore duzeneyın


    #include < SoftwareSerial.h>

    SoftwareSerial RFID(2, 3); // RX and TX
    int i;

    void setup() {
    RFID.begin(19200); // start serial to RFID reader
    Serial.begin(9600); // start serial to PC
    }

    void loop() {
    if (RFID.available() > 0) {
    i = RFID.read();
    Serial.print(i, DEC);
    Serial.print(" ");
    }
    }
  • @okoman Bu vermiş olduğunuz kodda ben denemiştim fakat aynı işlemi yapıyor. kusura bakmayın sizi de meşgul ediyorum. Kaç günden beri uğraşıyorum bir türlü bulamıyorum.
  • @okoman tm buldum hocam;
    şimdi ben kartı okutunca serial ekrana 4 adet farklı sayı geliyor.

    Ekran Çıktısı:

    0
    36
    66
    77

    önce her satırda yazan sayıları hex formatına çeviriyoruz.

    Ekran Çıktısı:

    0
    24
    42
    4D

    Çevirdikten sonra hepsini birleştirip yani 024424D olarak DEC formatına çevirince kartın üzerindeki 2376269 numara buluyor. burada sıkıntı yok.

    Ama gelelim asıl sıkıntıya ben karttan gelen 4 değeri hex dönüştürdüm fakat string olarak birleştirdiğim için dec formatına dönüştüremiyorum. Yani sonuç olarak String değeri dec formatına nasıl döüştürebilirim. Onuda bulabilirsen oldu bu iş.

    Kod:
    #include < SPI.h>
    #include < SoftwareSerial.h>

    SoftwareSerial RFID(A2 , A3); // RX and TX

    void setup() {
    Serial.begin(9600);
    RFID.begin(9600);
    }

    void loop() {
    if (RFID.available() > 0)
    {
    int i = 0;
    int seri;
    String dizi[4];
    do
    {
    seri = RFID.read();
    dizi[i] = String(seri,HEX);
    i++;
    } while ( i < = 3 );
    String toplam = dizi[0] + dizi[1] + dizi[2] + dizi[3];
    Serial.println(toplam);
    }
    }

    Teşekkürler....

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!