-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: RFID und Atmega

  1. #1
    smookie
    Gast

    RFID und Atmega

    Anzeige

    Hi

    ich möchte gern ein RFID Lesemodul an einen Atmega16 anschließen das RFID Modul soll die Informationen des TAGs an den Atmega schicken und dieser soll dann die Informationen verabreiten. Nun meine frage ist sowas überhaupt möglich und wenn ja wie?

    mfg
    smookie

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.09.2005
    Ort
    am Bodensee
    Beiträge
    217
    kommt darauf an was du für ein Lesemodul hast und was es für daten "Ausspuckt".. wenn es z.b. schon Seriell daten ausdonnert hast ja kein prob diese zu verarbeiten .. irgendwie nen Protokoll hat es sicher und das kannst dann mit deinem Atmel auslesen (das solltest natürlich kennen)

  3. #3
    smookie
    Gast
    zur zeit habe ich den leser 2 plus von Conrad dieser hat einen RS232 ausgag und auf dem ist auch ein atmel chip verbaut. jedoch weis ich nich wie ich die daten auslesen kann von dem modul.



    Kann mir hier keiner Helfen?

  4. #4
    smookie
    Gast
    hat bis jetzt keiner von euch mit rfid modulen gearbeitet im zusammenhang mit einem atmega?

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.11.2005
    Ort
    QTH: JO43BC
    Alter
    49
    Beiträge
    112
    Einen wunderschoenen guten Tag!

    Ich hatte mir mal dieses kleine Proggie zusammengeschustert:

    --------------------------------------
    $regfile = "m128def.dat"
    $crystal = 16000000

    Dim A As Byte , B1(10) As Byte , B2(10) As String * 1 , C As Byte , T As Bit
    Dim Rfid As String * 10
    Config Graphlcd = 240 * 128 , Dataport = Portb , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 6

    Cursor Off
    Cls

    C = 1
    Locate 1 , 1
    Lcd " 125Khz RFID-Reader"
    Locate 2 , 1
    Lcd " Unique, HT4102"

    Do
    A = Inkey()
    If A > 32 Then
    B1(c) = A
    B2(c) = Chr(b1(c))
    If C = 10 Then
    Rfid = B2(1) + B2(2) + B2(3) + B2(4) + B2(5) + B2(6) + B2(7) + B2(8) + B2(9) + B2(10)
    Locate 4 , 1
    Lcd Rfid
    Locate 6 , 1
    Lcd B1(1) ; B1(2) ; B1(3) ; B1(4) ; B1(5) ; B1(6) ; B1(7) ; B1(8) ; B1(9) ; B1(10)
    C = 0
    End If
    Incr C
    End If

    Loop

    End

    --------------------------------------

    Damit habe ich dann erfolgreich Rfid-Tags ausgelesen. Ein Tag in Form einer Chipkarte und ein Bioglastransponder. Siehe Fotos:

    http://www.speckmann.de/atmel/b8.html
    http://www.speckmann.de/atmel/b5.html

    Ich hatte mir mal vor Monaten ein 125khz-Reader auf eBucht ersteigert. Ist auch eins mit seriellem Ausgang.

  6. #6
    smookie
    Gast
    Hi
    kannst du mir das programm mal kurz erklären bzw. den teil der für das auslesen des rfid moduls zu ständig ist da ich mit programmieren gerade erst anfenge.
    vielen dank

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.11.2005
    Ort
    QTH: JO43BC
    Alter
    49
    Beiträge
    112
    Das ist nur ein Beispiel wie es funzen koennte.
    Weißt Du was Dein Modul da im einzelnen ausspuckt? Das wuerde ich mir zunaechst genauer anschauen. Klemm das Modul an die Serielle Deines PCs und schau Dir das mit einem Terminalprogramm an. Bei mir war's so das das Modul fortlaufend die Seriennummer der Transponderkarte ausspuckte, sobald diese in Reichweite war.
    Und mit Inkey() unter Bascom dann den Schlunz wieder eingelesen (Baudraten usw. beachten!).
    Aber wenn Du erst gerade mit Bascom anfaengst, und das Programmbeispiel noch nicht verstehst, dann ist das noch ein weiter Weg...
    Da kann ich Dir nur empfehlen zu lesen, experimentieren, lesen, experimentieren, lesen, experim..., usw... :)

  8. #8
    smookie
    Gast
    ich habe das modul mal an den pc angeschlossen und mit dem programm HyperTerminal ausgelesen was es sendet. es ist eine zeichen folge die sich bei jedem Transponder ändert. das problem ist wenn ich den transponder länger über dem lesegerät halte sendet er diese nummer immer wieder.
    ich müsste diese nummer jetzt im atmega weiter verarbeiten so das er bei einem bestimmten transponder etwas macht. problem ist er darf das signal das vom lesegerät kommt nur einmal verwenden und dann für die zeit die er über dem transponder steht blocken.
    anbei ein bild von der zeichenfolge die das lesegerät sendet.


    noch so zur info habe den leser 2 plus von conrad.

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.11.2005
    Ort
    QTH: JO43BC
    Alter
    49
    Beiträge
    112
    Dann funktioniert Dein Leser genauso wie meine Kiste. Sobald ein Transponder sich in Leseweite befindet, wird die Zeichenfolge ausgegeben und permanent wiederholt.
    Bei mir besteht der aus zehn einzelnen Zeichen. Zunaechst wird alles eingelesen was da kommt. Aber sobald der ASCII-Wert 32 ueberschritten wird (schau mal in die ASCII-Tabelle: ab dann kommen die Buchstaben, usw), wird ne Feldvariable mit den einzelnen Zeichen deklariert. C wird am Ende inkrementiert.
    Das ganze geht bis 10 (denn ich weiss ja das die Nummer des Transponders in meinem Falle 10 Zeichen lang ist). Und dann wird der ganze Schlunz auf dem LCD angezeigt, oder was man auch immer damit machen will...
    Zu Schluss wird C wieder auf 0 gesetzt. Und dann geht das Spiel von vorne los.
    Es geht sicherlich auch noch auf anderem Wege, aber da hatte ich nur experimentiert und das mal schnell zusammengeschustert...


    Do

    A = Inkey()

    If A > 32 Then
    B1(c) = A
    B2(c) = Chr(b1(c))

    If C = 10 Then
    Rfid = B2(1) + B2(2) + B2(3) + B2(4) + B2(5) + B2(6) + B2(7) + B2(8) + B2(9) + B2(10)
    Locate 4 , 1
    Lcd Rfid
    Locate 6 , 1
    Lcd B1(1) ; B1(2) ; B1(3) ; B1(4) ; B1(5) ; B1(6) ; B1(7) ; B1(8) ; B1(9) ; B1(10)
    C = 0
    End If

    Incr C

    End If

    Loop

  10. #10
    smookie
    Gast
    Hi
    ich hab das programm für mich ein bischen umgeschrieben. jedoch funktioniert bei mir gar nichts vielleicht kann mir ja noch mal jemand helfen?

    hier mal das program was ich geschrieben habe
    Code:
    $regfile = "m16def.dat"                                     
    
    $crystal = 8000000                                 
    
    $framesize = 32
    $swstack = 8
    $hwstack = 24
    
    
    Dim A As Byte , B1(13) As Byte , B2(13) As String * 1 , C As Byte , T As Bit
    Dim Rfid As String * 13
    Portd.5 = 0
    Portd.6 = 0
    
    C = 1
    Do
    
    A = Inkey()
    
    If A > 32 Then
    B1(c) = A
    B2(c) = Chr(b1(c))
    
    If C = 13 Then
    Rfid = B2(1) + B2(2) + B2(3) + B2(4) + B2(5) + B2(6) + B2(7) + B2(8) + B2(9) + B2(10) + B2(11) + B2(12) + B2(13)
    Portd.5 = 1
    Else
    Portd.6 = 1
    C = 0
    
    End If
    
    Incr C
    
    End If
    mfg

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •