ID-12LA Aansluiten en Testen
In een van de vorige posts was ik aan het klungelen om RFID chips in te lezen met de ID-12LA RFID Reader. Dit bleek echter wat lastig omdat de pin layout van de ID-12LA zich niet leent om aangesloten te worden met jumper kabels. Maar nu gaat het wel lukken toch? Laten we gaan prototypen…

De ID-12LA is een RFID reader van ID Innovations. Hoewel ID Innovations niet bekend staat om het verstrekken van informatie mogen we niet klagen over de uitgebreide datasheet bij deze reader.
De ID-12LA is een RFID module met een ingebouwde low frequency 125 KHz antenne. Deze module moet tags kunnen lezen van 5 tot 12 cm afstand. De leesbare kaarten moeten EM4001 of compatible formaat ondersteunen.
Deze RFID reader wordt gevoed door 2.8 volt (tot maximaal 5 volt) en bestaat uit 11 pinnen, te weten:


Zoals je ziet zijn er 3 verschillende interfaces, ASCII, Magnet Emulation en Wiegand26. Welke interface gebruikt wordt bepaal je met pin7. Door pin7 aan te sluiten op een ground pint weet de reader dat deze ASCII moet gebruiken. Koppelen met pin 10 zorgt voor Magnet Emulation en aansluiten op een 5V pin zorgt ervoor dat de Wiegand26 interface gebruikt wordt. Welke interface gebruikt wordt is afhankelijk van het type reader dat je wilt emuleren. Wil je een “Wiegand effect” kaart gebruiken en de RFID reader als Wiegand reader gebruiken dan gebruik je de Wiegand26 interface. Wil je een magneetkaart emuleren dan gebruik je de Magnet Emulation interface. De interface die meestal gebruikt zal worden en die we ook in dit voorbeeld gebruiken is de ASCII interface.
Het probleem de vorige keer was dat ik geen breakout board had besteld en de ID-12LA laat zich niet gemakkelijk verbinden middels jumper kabels op een prototype board. De pin layout met tussenruimte van 2 mm is hiervoor niet geschikt. Onderstaande breakout board is nu wel binnen, dus laten we aan de slag gaan.

Breakout Board Solderen
Warm de soldeerbout maar op want er moeten wat pinnetjes gesoldeerd worden. Uiteraard kun je het breakout board direct solderen aan de ID-12LA. Maar om hem demontabel te houden is het aan te raden om een aantal header pins aan te schaffen en onderstaande te solderen. Voor mijn opzet heb ik de volgende header pins gebruikt:
1x 40-pins straight header (male)


Zo past de ID-12LA netjes in je breakout board en blijft hij volledig demontabel.

Om te starten gaan we eerst de header pinnen aan het breakout board solderen. Als we eerst de sensor zouden solderen dan zou er geen plaats meer zijn om de headerpinnen er later bij te solderen.
Om de header pinnen op zijn plaats te houden tijdens het solderen plak ik ze vast met een plakbandje.


Zo, die zitten netjes vast.

Nu is het tijd om de ID-12LA op het breakout board te solderen.

Klaar, ook de RFID Reader zit vast.


Waar de pinnen van de ID-12LA eerst niet geschikt waren voor prototyping is hij nu uitermate geschikt om in b.v. een breadboard gebruikt te worden.

ID-12LA Aansluiten
Nu we de sensor met breakout board netjes hebben gemonteerd kunnen we deze bevestigen in het breadboard. Vervolgens zijn er aan aantal pinnen belangrijk om aan te sluiten:
- 1. Ground
Deze pin wordt verbonden aan de ground pin op de Arduino - 2. RES (Reset)
Deze pin wordt verbonen met de 5V power (zelfde verbinding als pin 11) - 3. ANT
In dit model wordt deze pin niet gebruikt omdat dit model een interne antenne heeft - 4. ANT2
Zie voorgaande, ook deze pin wordt niet gebruikt - 5. CP (Card Present)
Gebruik deze alleen in “Magnetic Emulation” mode - 6. TIR (Tag in Range)
Deze pin wordt geactiveerd als ere en kaard gedetecteerd wordt. Deze pin heeft een interne resistor van 3K3 ohm en dus kan er een LED verbonden worden met deze pin welke gaat branden als er een kaart gedetecteerd is - 7. FORM (Format Selector)
Deze pin bepaalt de interface die gebruikt wordt. Wij verbinden deze aan de ground pin omdat we ASCII mode willen gebruiken - 8. D1 (Data1)
Deze pin word actief als ASCII mode geactiveerd is en het output protocol RS232 is - 9. D0 (Data0)
Deze pin word actief als ASCII mode geactiveerd is en het output protocol UART TTL is. Deze TX pin wordt dan verbonden met de RX pin van de microcontroller - 10. READ
Deze pin word genereerd een 3.1KHz pulse wanneer een kaart succesvol gelezen is. Op deze pin kan een LED of buzzer aangesloten worden (Piezo buzzer en geen normale buzzer) - 11. VCC
Deze pin wordt aangesloten op de de 3.3V of 5V aansluiting op de micrcontroller
We willen ook een LED aansluiten en dus komt het volledige schema er als volgt uit te zien:



De Code
Als een kaart gelezen word dan word er (in ons geval) ASCII code vanuit de reader in normaal serieel formaat (9600 baud, geen parity bit en 1 stop bit) naar de computer gestuurd. Het dataformaat alsmede de checksum calculatie ziet er als volgt uit:

Er wordt dus gebruik gemaakt van een STX ofwel een start karakter. Wanneer dit karakter in de cache gevonden wordt kunnen de volgende 10 ASCII karakters worden gelezen. Vervolgens wordt de CR (checksum, 2 x ASCII) gelezen gevolgd door 1 CR (carriage return), 1 LF (line feed) en een ETX (end of text) karakter. Pas als het “end of tekst” karakter is gelezen is de gegevensoverdracht voltooid en mag deze seriële string gelezen worden (in bijvoorbeeld de Arduino Serial Monitor).
De code die we voor dit proces gebruiken is hier te downloaden (dit is een INO / Arduino IDE bestand).
Omdat de seriële communicatie van de Arduino naar de PC vanuit pin0 (serial RX) gaat is het niet verstandig om pin0 te gebruiken als seriële lees pin. Gelukkig kunnen we ook zogenaamde “softserial” poorten aanwijzen en gebruiken. Een goede library hiervoor is de IDxRFIDReader library die hier te downloaden is. Je gkunt dan bijvoorbeeld pin 2 als seriële reader gebruiken.

Het werkt! We kunnen succesvol RFID tags lezen via de Arduino en de ID-12LA RFID Reader. PS, bovenstaande configuratie werkt ook op de ID-20MF-7 RFID reader!
Ik hoop dat jullie deze write-up leuk / interessant vonden. Please like, deel of doe er iets leuks mee! 🙂 Tot de volgende post…