- LiFePO4 Speicher Test         
Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 50

Thema: RFID Zugangskontrolle

  1. #21
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    Anzeige

    Praxistest und DIY Projekte
    das sind hexwerte, also zahlenwerte

    1f 00 44 e8 82 sind die blöcke, das sind dann dezimal:
    31 0 68 232 130 musste in der C-Control mal schaun
    obs da ne funktion der umwandlung von hex in dez gibt.
    dann zerlegste den Tag in Blöcke von 2 Zeichen und rechnest die
    in Dezimal um und kannst den Tag in 5 Bytes speichern
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  2. #22
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.05.2006
    Beiträge
    144
    Okay, ich habs jetzt so gelöst:
    <code>
    #loop

    GET r1
    if r1 = &H31 then goto 2 else goto falsch ' &H31 gleich 49 gleich "1"
    'naechstes Zeichen
    #2
    GET r1
    if r1 = &H46 then goto 3 else goto falsch '&H46 gleich 70 gleich "F"
    #3
    GET r1
    if r1 = &H30 then goto 4 else goto falsch
    #4
    GET r1
    if r1 = &H30 then goto 5 else goto falsch
    #5
    GET r1
    if r1 = &H34 then goto 6 else goto falsch
    #6
    GET r1
    if r1 = &H34 then goto 7 else goto falsch
    #7
    GET r1
    if r1 = &H45 then goto 8 else goto falsch
    #8
    GET r1
    if r1 = &H38 then goto 9 else goto falsch
    #9
    GET r1
    if r1 = &H38 then goto 10 else goto falsch
    #10
    GET r1
    if r1 = &H32 then goto open else goto falsch
    '----------------------------------------------------------------------
    ' UNTERPROGRAMME:
    #falsch
    gosub LCD_CLS
    print "Falsch"
    lcd_param = &H80
    lcd_buf = OFF
    gosub LCD_WRITE
    gosub Nachricht2
    goto loop

    #open
    gosub LCD_CLS
    print "Relais macht uff"
    lcd_param = &H80
    lcd_buf = OFF
    gosub LCD_WRITE
    gosub Nachricht1
    goto loop
    </code>

    Das funktioniert auch bei einer Karte, aber wie löse ich das mit ca. 60?

  3. #23
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.05.2006
    Beiträge
    144
    Hi nochmal.
    Also, jetzt klappt alles bestens, es gibt nur noch ein Problem.
    Hier der Code:
    Code:
    define Datenbus byteport[1]
    define RS port[9]
    define RW port[10]
    define E port[11]
    define Daten byte    ' Pufferbyte
    define r1 byte
    '---------------------------------------------------------
    gosub Init                         'Display Initialisieren
    Daten = 0                          'Den Cursor des Displays...
    gosub Cursor                       '... Auf Position 0 stellen!
    '---------------------------------------------------------
    #loop
    GET r1
    if r1 = &H31 then goto 2 else goto falsch ' &H31 gleich 49 gleich "1"
    #2
    GET r1
    if r1 = &H46 then goto 3 else goto falsch       '&H46 gleich 70 gleich "F"
    #3
    GET r1
    if r1 = &H30 then goto 4 else goto falsch       'Admin und 2. Test Karte
    #4
    GET r1
    if r1 = &H30 then goto 5 else goto falsch       'Admin und 2. Test Karte
    #5
    GET r1
    if r1 = &H34 then goto 6 else goto falsch       'Admin und 2. Test Karte
    #6
    GET r1
    if r1 = &H34 then goto 7 else goto falsch       'Admin und 2. Test Karte
    #7
    GET r1
    if r1 = &H45 then goto 8                        'Admin
    if r1 = &H43 then goto 8 else goto falsch       '2. Test Karte
    #8
    GET r1
    if r1 = &H38 then goto 9                        'Admin
    if r1 = &H31 then goto 9 else goto falsch       '2. Test Karte
    #9
    GET r1
    if r1 = &H38 then goto 10                       'Admin
    if r1 = &H41 then goto 10 else goto falsch      '2. Test Karte
    #10
    GET r1
    if r1 = &H32 then goto open                     'Admin
    if r1 = &H39 then goto open else goto falsch    '2. Test Karte
    '----------------------------------------------------------------------
    ' UNTERPROGRAMME:
    #falsch
    r1 = 0
    Daten = &H46                                    'F
    gosub Zeichen
    Daten = &H45                                    'E
    gosub Zeichen
    Daten = &H48                                    'H
    gosub Zeichen
    Daten = &H4C                                    'L
    gosub Zeichen
    Daten = &H45                                    'E
    gosub Zeichen
    Daten = &H52                                    'R
    gosub Zeichen
    pause 100
    gosub cls
    goto loop
    
    #open
    r1 = 0
    Daten = &H4F                                    'O
    gosub Zeichen
    Daten = &H45                                    'E
    gosub Zeichen
    Daten = &H46                                    'F                                    
    gosub Zeichen
    Daten = &H46                                    'F
    gosub Zeichen
    Daten = &H4E                                    'N
    gosub Zeichen
    Daten = &H45                                    'E
    gosub Zeichen
    pause 100
    gosub cls
    goto loop
    
    '###################LCD Routinen##################
    #Init
    E=0
    Daten = &H38    'Initialisierung
    gosub Kommando
    Daten = &H0E    'Display einschalten
    gosub Kommando
    Daten = &H01
    gosub Kommando
    return
    
    #Kommando
    RW = 0
    RS = 0
    Datenbus = Daten
    pulse E
    return
    
    #Zeichen
    RW = 0
    RS = 1
    Datenbus = Daten
    pulse E
    return
    
    #Cursor
    RW = 0
    RS = 0
    Datenbus = Daten + &H80
    pulse E
    return
    
    #cls      ' Display loeschen
      Daten = &H02
      gosub Kommando
    return
    
    '#Ausgabe     'zweistellige Zahl
    'Daten = (Zahl / 10) + 48
    'gosub Zeichen
    'Daten = (Zahl mod 10) + 48
    'gosub Zeichen
    'return
    'end
    Und wenn ich eine Karte an den Leser halte kommt auf dem Display "OEFFNE". Aber kurz danach erscheint auf dem Display "FALSCH". Und das bleibt da auch. Manchmal kommt noch kurz OEFFNE, aber direkt danach wieder Falsch.
    Wo liegt denn jetzt hier wieder der Fehler?
    MfG
    xythobuz

  4. #24
    Benutzer Stammmitglied
    Registriert seit
    20.07.2007
    Beiträge
    38
    Hai,

    wie stehen die Dinge ? Ich schaue hier immer mal rein. Habt ihr das Projekt inzwischen abgeschlossen? Wie ist der aktuelle Stand?
    Internette Grüße
    Stefan

  5. #25
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.05.2006
    Beiträge
    144
    Tja, also im Moment bin ich mit dem Code soweit:

    Code:
    define Datenbus byteport[1]
    define RS port[9]
    define RW port[10]
    define E port[11]
    define Daten byte    ' Pufferbyte
    define r1 byte
    define neuer_code byte
    '---------------------------------------------------------
    gosub Init                         'Display Initialisieren
    Daten = 0                          'Den Cursor des Displays...
    gosub Cursor                       '... Auf Position 0 stellen!
    '---------------------------------------------------------
    neuer_code = 0
    #loop
    if neuer_code = 0 then goto receive_one_byte
    if neuer_code > 0 then goto receive
    
    
    #receive
    GET r1
    if r1 = &H31 then goto 2 else goto falsch ' &H31 gleich 49 gleich "1"
    #2
    GET r1
    if r1 = &H46 then goto 3 else goto falsch       '&H46 gleich 70 gleich "F"
    #3
    GET r1
    if r1 = &H30 then goto 4 else goto falsch       'Admin und 2. Test Karte
    #4
    GET r1
    if r1 = &H30 then goto 5 else goto falsch       'Admin und 2. Test Karte
    #5
    GET r1
    if r1 = &H34 then goto 6 else goto falsch       'Admin und 2. Test Karte
    #6
    GET r1
    if r1 = &H34 then goto 7 else goto falsch       'Admin und 2. Test Karte
    #7
    GET r1
    if r1 = &H45 then goto 8                        'Admin
    if r1 = &H43 then goto 8 else goto falsch       '2. Test Karte
    #8
    GET r1
    if r1 = &H38 then goto 9                        'Admin
    if r1 = &H31 then goto 9 else goto falsch       '2. Test Karte
    #9
    GET r1
    if r1 = &H38 then goto 10                       'Admin
    if r1 = &H41 then goto 10 else goto falsch      '2. Test Karte
    #10
    GET r1
    if r1 = &H32 then goto open                     'Admin
    if r1 = &H39 then goto open else goto falsch    '2. Test Karte
    
    
    #receive_one_byte
    GET r1
    if r1 = &H31 then neuer_code = 1
    '---------------------------------------------------------------------
    ' UNTERPROGRAMME:
    #falsch
    r1 = 0
    Daten = &H46                                    'F
    gosub Zeichen
    Daten = &H45                                    'E
    gosub Zeichen
    Daten = &H48                                    'H
    gosub Zeichen
    Daten = &H4C                                    'L
    gosub Zeichen
    Daten = &H45                                    'E
    gosub Zeichen
    Daten = &H52                                    'R
    gosub Zeichen
    pause 100
    gosub cls
    goto loop
    
    #open
    r1 = 0
    Daten = &H4F                                    'O
    gosub Zeichen
    Daten = &H45                                    'E
    gosub Zeichen
    Daten = &H46                                    'F
    gosub Zeichen
    Daten = &H46                                    'F
    gosub Zeichen
    Daten = &H4E                                    'N
    gosub Zeichen
    Daten = &H45                                    'E
    gosub Zeichen
    pause 100
    gosub cls
    goto loop
    
    '###################LCD Routinen##################
    #Init
    E=0
    Daten = &H38    'Initialisierung
    gosub Kommando
    Daten = &H0E    'Display einschalten
    gosub Kommando
    Daten = &H01
    gosub Kommando
    return
    
    #Kommando
    RW = 0
    RS = 0
    Datenbus = Daten
    pulse E
    return
    
    #Zeichen
    RW = 0
    RS = 1
    Datenbus = Daten
    pulse E
    return
    
    #Cursor
    RW = 0
    RS = 0
    Datenbus = Daten + &H80
    pulse E
    return
    
    #cls      ' Display loeschen
      Daten = &H02
      gosub Kommando
    return
    Allerdings, kurz nachdem ich den RFID-Chip hinhalte, meldet das Display öffnen, dann aber FEHLER und das wars dann.

    MfG
    xythobuz

  6. #26
    Erfahrener Benutzer Roboter-Spezialist Avatar von sast
    Registriert seit
    30.11.2004
    Alter
    53
    Beiträge
    502
    "also den gelesenen Code von dem Pollin-Teil bekommst du "frei Haus" über die serielle Schnittstelle. Zitat von der Pollin-Seite "Ein Beispielprogramm, welches den gelesenen HF-Tag über die RS232-Schnittstelle sendet, ist bereits vorprogrammiert." Du kannst den Tag also über die serielle Schnittstelle des C-Control einlesen und verarbeiten."

    Warum änderst du dann nicht in diesem Beispielprogramm die Ausgabe?

    sast

    Edit: sorry hatte nicht mitbekommen, dass es schon eine 2. Seite gibt

    Dein LOOP endet erst nach der Ausgabe von Fehler (wenn ich das Bascom soweit richtig verstehe) vielleicht solltest du da mal ein Loopende vor dem #FALSCH einfügen.

    雅思特史特芬
    开发及研究

  7. #27
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.05.2006
    Beiträge
    144
    Hi.
    Einen riesen Dank an dich, sast, ich bin ja so blöd...
    Das ist übrigens nicht Bascom sondern CCBasic.

    Hier der neue Code:

    Code:
    define Datenbus byteport[1]
    define RS port[9]
    define RW port[10]
    define E port[11]
    define Daten byte    ' Pufferbyte
    define r1 byte
    '---------------------------------------------------------
    gosub Init                         'Display Initialisieren
    Daten = 0                          'Den Cursor des Displays...
    gosub Cursor                       '... Auf Position 0 stellen!
    '---------------------------------------------------------
    #loop
    gosub willkommen
    goto receive
    
    #receive
    GET r1
    if r1 = &H31 then goto 2 else goto receive ' &H31 gleich 49 gleich "1"
    #2
    GET r1
    if r1 = &H46 then goto 3 else goto falsch       '&H46 gleich 70 gleich "F"
    #3
    GET r1
    if r1 = &H30 then goto 4 else goto falsch       'Admin und 2. Test Karte und 3.
    #4
    GET r1
    if r1 = &H30 then goto 5 else goto falsch       'Admin und 2. Test Karte und 3.
    #5
    GET r1
    if r1 = &H34 then goto 6 else goto falsch       'Admin und 2. Test Karte und 3.
    #6
    GET r1
    if r1 = &H34 then goto 7 else goto falsch       'Admin und 2. Test Karte und 3.
    #7
    GET r1
    if r1 = &H45 then goto 8                        'Admin
    if r1 = &H43 then goto 8 else goto falsch       '2. Test Karte und 3.
    #8
    GET r1
    if r1 = &H38 then goto 9                        'Admin
    if r1 = &H31 then goto 9                        '2. Test Karte
    if r1 = &H32 then goto 9 else goto falsch       '3. Test Karte
    #9
    GET r1
    if r1 = &H38 then goto 10                       'Admin und 3. Karte
    if r1 = &H41 then goto 10 else goto falsch      '2. Test Karte
    #10
    GET r1
    if r1 = &H32 then goto open                     'Admin
    if r1 = &H39 then goto open                     '2. Test Karte
    if r1 = &H31 then goto open else goto falsch    '3. Test Karte
    goto loop
    
    '#receive_one_byte
    'GET r1
    'if r1 =  &H31 then neuer_code = 1
    'goto loop
    '---------------------------------------------------------------------
    ' UNTERPROGRAMME:
    #falsch
    r1 = 0
    gosub cls
    Daten = &H46                                    'F
    gosub Zeichen
    Daten = &H45                                    'E
    gosub Zeichen
    Daten = &H48                                    'H
    gosub Zeichen
    Daten = &H4C                                    'L
    gosub Zeichen
    Daten = &H45                                    'E
    gosub Zeichen
    Daten = &H52                                    'R
    gosub Zeichen
    Daten = 2                                       'Auf Zeile 2 Umschalten
    gosub LCD_GOTOLINE
    Daten = &H54                                    'T
    gosub Zeichen
    Daten = &H52                                    'R
    gosub Zeichen
    Daten = &H59                                    'Y
    gosub Zeichen
    Daten = &H20                                    ' 
    gosub Zeichen
    Daten = &H41                                    'A
    gosub Zeichen
    Daten = &H47                                    'G
    gosub Zeichen
    Daten = &H41                                    'A
    gosub Zeichen
    Daten = &H49                                    'I
    gosub Zeichen
    Daten = &H4E                                    'N
    gosub Zeichen
    pause 150
    goto loop
    
    #open
    r1 = 0
    gosub cls
    Daten = &H4F                                    'O
    gosub Zeichen
    Daten = &H45                                    'E
    gosub Zeichen
    Daten = &H46                                    'F
    gosub Zeichen
    Daten = &H46                                    'F
    gosub Zeichen
    Daten = &H4E                                    'N
    gosub Zeichen
    Daten = &H45                                    'E
    gosub Zeichen
    pause 150
    goto loop
    
    #willkommen
    gosub cls
    Daten = &H53                                    'S
    gosub Zeichen
    Daten = &H43                                    'C
    gosub Zeichen
    Daten = &H55                                    'U
    gosub Zeichen
    Daten = &H42                                    'B
    gosub Zeichen
    Daten = &H41                                    'A
    gosub Zeichen
    Daten = &H20                                    ' 
    gosub Zeichen
    Daten = &H53                                    'S
    gosub Zeichen
    Daten = &H45                                    'E
    gosub Zeichen
    Daten = &H43                                    'C
    gosub Zeichen
    Daten = &H55                                    'U
    gosub Zeichen
    Daten = &H52                                    'R
    gosub Zeichen
    Daten = &H49                                    'I
    gosub Zeichen
    Daten = &H54                                    'T
    gosub Zeichen
    Daten = &H59                                    'Y
    gosub Zeichen
    Daten = &H20                                    ' 
    gosub Zeichen
    Daten = &H43                                    'C
    gosub Zeichen
    Daten = &H48                                    'H
    gosub Zeichen
    Daten = &H45                                    'E
    gosub Zeichen
    Daten = &H43                                    'C
    gosub Zeichen
    Daten = &H4B                                    'K
    gosub Zeichen
    Daten = 2                                       'Zu Zeile 2 wechseln
    gosub LCD_GOTOLINE                              
    Daten = &H56                                    'V
    gosub Zeichen
    Daten = &H20                                    '
    gosub Zeichen
    Daten = &H31                                    '1
    gosub Zeichen
    Daten = &H2E                                    '.
    gosub Zeichen
    Daten = &H35                                    '5
    gosub Zeichen
    return
    '###################LCD Routinen##################
    #Init
    E=0
    Daten = &H38    'Initialisierung
    gosub Kommando
    Daten = &H0E    'Display einschalten
    gosub Kommando
    Daten = &H01
    gosub Kommando
    return
    
    #Kommando
    RW = 0
    RS = 0
    Datenbus = Daten
    pulse E
    return
    
    #Zeichen
    RW = 0
    RS = 1
    Datenbus = Daten
    pulse E
    return
    
    #Cursor
    RW = 0
    RS = 0
    Datenbus = Daten + &H80
    pulse E
    return
    
    #cls      ' Display loeschen
      Daten = &H02
      gosub Kommando
      Daten = &H01
      gosub Kommando
    return
    
    #LCD_GOTOLINE
      if Daten = 1 then Daten = &H80
      if Daten = 2 then Daten = &HC0
      goto Kommando
    Alles hinter einem ' ist auskommentiert.
    Jetzt klappt alles.
    Nochmals vielen Dank.

    MfG
    xythobuz

  8. #28
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.05.2006
    Beiträge
    144
    Guten Abend.
    Tut mir leid, dass ich mich so lange nicht mehr gemeldet habe, aber das Projekt RFID Zugangs Kontrolle macht schon langsam fortschritte
    Der Code findet sich mittlerweile HIER.
    Die Beschreibung findet sich im Code.

    Auch die C-Control wurde zur M-Unit 2.0.

    Allerdings treten bei mir neue Probleme auf, und ich hoffe bei euch auf Hilfe.
    Zur M-Unit habe ich den USB-Programmer genommen, zwecks Programmieren am Einsatzort mit dem Laptop, wobei die Kommunikation mit der Ausleseeinheit immer noch per RS232 abläuft.
    Darum habe ich eine kleine Schaltung mit einem MAX232N aufgebaut. Einen Schaltplan für Eagle habe ich im Anhang (ja, murks).
    Nun funktioniert die Kommunikation über RS232 gar nicht, und die Kommunikation über USB funktioniert bei eingestecktem MAX232N zwar, aber wird immer nur 1 Byte übertragen, dann empfängt die C-Control nichts mehr, bis ich auf Reset und wieder auf Start drücke.

    Nun finde ich im Internet auch kein Datenblatt für den MAX232N, weshalb ich nicht sicher bin, ob meine Kondensatorwerte stimmen.

    Mit Hoffnung auf Hilfe von euch Profis
    xythobuz
    Angehängte Dateien Angehängte Dateien

  9. #29
    Erfahrener Benutzer Roboter-Spezialist Avatar von sast
    Registriert seit
    30.11.2004
    Alter
    53
    Beiträge
    502
    http://www.alldatasheet.com/datashee...I/MAX232N.html

    Wenn du an JP2 eine Brücke zwischen 9 und 10 machst, sollte jedes Zeichen, das über die RS232 zum MAX geschickt wird auch wieder zurückkommen. Es darf aber dann auch nichts anderes an 9 und 10 hängen außer der MAX232! Wenn da schon mal nichts kommt, dann ist wahrscheinlich die Verbindung vom Max zum PC oder was auch immer an der RS232 hängt verkehrt. In dem Fall tauschst du einfach mal 7 und 8.

    Es gibt im Bezug auf die Kondensatoren an Pin 2 unterschiedliche Datenblätter. Bei TI wird der Kondensator gegen Masse geschaltet. Die andere Variante geht gegen VCC. Finde leide jetzt nicht die Quelle wo das andere Datenblatt her ist.

    Was du als erstes Testen kannst, ist ob dein RS232 überhaupt an 7 und 8 vom RS232 ankommt, indem du dort eine Drahtbrücke einbaust anstelle des MAX. Hat der an 15 und 16 auch seine Versorgungsspannung anliegen? Manchmal hat man da einfach eine Verbindung vergessen.

    sast

    雅思特史特芬
    开发及研究

  10. #30
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.05.2006
    Beiträge
    144
    Howdy.
    Vielen Dank für deine Hilfe, allerdings ist das noch gar nicht mein Problem.
    Die C-Control M-Unit kann auch per USB Programmiert werden. Dafür gibt es oben auf der C-Control einen Anschluss.
    Das funktioniert bei meiner Schaltung aber nur, wenn der MAX232 nicht eingesteckt ist.
    Ob die RS232 Kommunikation funktioniert, habe ich bis jetzt noch gar nicht getestet.

    MfG
    xythobuz

Seite 3 von 5 ErsteErste 12345 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress