Tartalomjegyzék:
- 1. lépés: Szerezze be az árut
- 2. lépés: Csatlakoztassa az alkatrészeket
- 3. lépés: Írja be a kódot
- 4. lépés: Kód és búcsú
Videó: AVR/Arduino RFID olvasó UART kóddal C: 4 lépésben
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:44
Az RFID az őrület, mindenhol megtalálható - a készletrendszerektől a jelvényazonosító rendszerekig. Ha valaha volt egy áruházban, és végigjárta azokat a fémdetektor-kinézetű dolgokat a be- és kilépési pontokon, akkor látta az RFID-t. Számos helyen találhat jó információt az RFID beállításáról, és ez az utasítás a Parallax RFID olvasó (soros TTL) AVR -re történő telepítésére összpontosít, hangsúlyozva a soros bemenet olvasásához szükséges C kódot. A kód C -ben van, és nem használ semmilyen külső könyvtárat. Valójában 2400 baudról beszél közvetlenül, UART használata nélkül, az RFID -olvasó baud -sebességével szinkronizálva és a hozzá csatlakoztatott digitális tűt olvasva. Izgatott? Én is.
1. lépés: Szerezze be az árut
Szüksége lesz a következő alkatrészlistára:
- RFID olvasó (Parallax #28140 39,99 $)
- RFID címke (Parallax #32397 0,99 USD)
- AVR vagy Arduino klón (ha készenléti AVR -t használ, akkor max232, 5 x 1uF kondenzátorra és DE9 csatlakozóra is szüksége lesz)
- Forrasztás nélküli kenyeretábla
Választható
- 4 pozíciós fejléc
- Huzal
(és a max232 stb. a címkeinformációk közléséhez) Csatlakoztathatja kedvenc LCD -képernyőjét is a címkeadatok RS232 -n keresztüli küldése helyett.
2. lépés: Csatlakoztassa az alkatrészeket
A hardver oldala nagyon egyszerű. Ahelyett, hogy az RFID -olvasómat közvetlenül a kenyértáblámba dugnám, úgy döntöttem, hogy készítek egy gyors kábelt, hogy egy kicsit jobban mozoghassak. Ehhez csak levágtam 4 pozíciót egy női aljzat fejlécről, amelyen feküdtem és három vezetékre forrasztottam. Elektromos szalag befejezte a gettó csatlakozót. Az RFID olvasó 4 csatlakozással rendelkezik:
- Vcc
- ENGEDÉLYEZZE
- KI
- Gnd
Ahogy valószínűleg sejtette, csatlakoztassa a Vcc -t +5V -ra, a Gnd -et pedig a földre. Mivel az RFID -olvasó olyan sok energiát fogyaszt, különböző időközönként le- és bekapcsolhatja az ENABLE tűt. Egyszerűen a folytatás mellett döntöttem. Mivel fordítva van, LOW -ra húzza, hogy aktiválja. Alternatív megoldásként csatlakoztathatja a földhöz. Csatlakoztattam a PIND3 -hoz, hogy lehetőséget adjak az engedélyezésre/letiltásra, ha úgy döntök. Az OUT pin az, ahová az olvasó elküldi soros adatait, miután elolvasta a címkét. Csatlakoztattam a PIND2 -hez. Megjegyzés, a Parallax Univerzumban a piros azt jelenti, hogy menj. Vagyis a zöld LED azt jelenti, hogy az egység inaktív és tétlen, míg egy piros LED azt jelenti, hogy az egység aktív. * vállat vont* Menj.
3. lépés: Írja be a kódot
Az adatok RFID -olvasóból történő olvasásához tudnia kell, hogy mikor küldtek be címkét, le kell húzni az adatokat a soros portról, majd el kell küldeni valahová.
RFID olvasó adatformátum
A Parallax RFID olvasó rögzített, 2400 baudos jégtempóban küld adatokat. Egy RFID címke 10 bájt. Annak érdekében, hogy lehetővé tegyük a hibafelismerést/-javítást, mivel az olvasót ki lehet kapcsolni a véletlenszerű zajból, a 10 bájtos RFID-t kezdő és leállító jelző határolja. A kezdő őrsor a sor előtolása (0x0A), a végső pedig a kocsi visszatérése (0x0D). Ez így néz ki:
[Start Sentinel | 1. bájt | 2. bájt | 3. bájt | 4. bájt | 5. bájt | 6. bájt | 7. bájt | 8. bájt | 9. bájt | 10. bájt | Állítsa le a Sentinelt]Ez a három elsődleges lépés.
Tudja meg, hogy mikor küldtek be címkét
Tűcsere -megszakítást használtam az AVR -n, amely értesíti a firmware -t, hogy változás történt a megfigyelt tűn. Az AVR konfigurálása erre egyszerű, és be kell állítani a zászlót, meg kell mondani az MCU -nak, hogy melyik tűt szeretné figyelni, és beállítani a globális megszakítási bitet. A PCINT konfigurálása
BSET (PCICR, PCIE2); // pin change interrupt control register pcie2 BSET (PCMSK2, PCINT18); // tűcsere megszakítás engedélyezése PCINT18 (PD2) BSET (SREG, 7) esetén; // SREG I-bit beállításaÍrja meg a megszakítási szolgáltatási rutinját. Az ISR -t rövidre szeretné tartani, így a megszakítási vektoromban a teljes bájtot olvasom, apránként, és tárolom a bájtot egy globális illékony karakter tömbben. Minden megszakításnál a következőket teszem:
- Ellenőrizze, hogy az elején vagyok -e
- Központosítsa az időzítést a középső impulzusra 2400 baudon (az RFID olvasó sebessége)
- Hagyja ki a kezdő bitet, és álljon meg a következő bit közepéig
- Olvasson be minden bitet előjel nélküli egész számba
- Ha 8 bitem van, tegye a bájtot egy karakter tömbbe
- Amikor 12 bájtot gyűjtöttem össze, közölje az MCU -val, hogy a címkét elolvasták a hiba észlelése érdekében.
Módosítottam a SoftSerial kódot Mikal Harttól, aki módosította David Mellis kódját a soros rutinok kísérletileg meghatározott késései miatt.
RS232 kimenet elemzése
A PCINT rutin tartalmazza az RS232 kimenet RFID olvasóból történő olvasásának kódját. Amikor 12 bájt (10 bájtos RFID és őrszemek) van, akkor a bDataReady értéket 1-re állítom, és hagyom, hogy a fő hurok feldolgozza az adatokat és megjelenítse azokat.
// ez a megszakításkezelő ISR (PCINT2_vect) {if (BCHK (PIND, RFID_IN)) // // A kezdő bit alacsony hozammal megy; uint8_t bit = 0; TunedDelay (CENTER_DELAY); // A kezdő bit középpontja a következőhöz: (uint8_t x = 0; x <8; x ++) {TunedDelay (INTRABIT_DELAY); // ugorj egy kicsit, testvér… if (BCHK (PIND, RFID_IN)) BSET (bit, x); else BCLR (bit, x); } TunedDelay (INTRABIT_DELAY); // kihagyási bit kihagyása RFID_tag [rxIdx] = bit; ++ rxIdx; ha (rxIdx == 12) bDataReady = 1;}
Jelenítse meg a címkét
A main () -ban a for (ever) ciklus során ellenőrzöm, hogy a bDataReady be van -e állítva, jelezve, hogy a teljes RFID -struktúra el lett küldve. Ezután ellenőrzöm, hogy érvényes címke -e (azaz a kezdő és a befejező karakter 0x0A, illetve 0x0D), és ha igen, elküldöm az RS232 -es kapcsolatomat.
for (;;) {if (bDataReady) {#ifdef _DEBUG_ USART_tx_S ("Start byte:"); USART_tx_S (itoa (RFID_tag [0], & ibuff [0], 16)); ibuff [0] = 0; ibuff [1] = 0; USART_tx_S ("\ nStop byte:"); USART_tx_S (itoa (RFID_tag [11], & ibuff [0], 16));#endif if (ValidTag ()) {USART_tx_S ("\ nRFID Tag:"); for (uint8_t x = 1; x <11; x ++) {USART_tx_S (itoa (RFID_tag [x], ibuff, 16)); if (x! = 10) USART_tx (& apos: & apos); } USART_tx_S ("\ n"); } rxIdx = 0; bDataReady = 0; }}
4. lépés: Kód és búcsú
Ez az oldal egy zip fájlt tartalmaz a megfelelő kóddal. Az AVR Studio 4.16 -ban írták. Ha a programozó jegyzettömbjét, az eclipse -t vagy a vi -t (vagy valami mást) használ, akkor egy megbízható Makefile fájlt kell a könyvtárba másolnia, és ezeket a fájlokat hozzá kell adnia a forrássorhoz. Felhívjuk figyelmét, hogy a soros olvasás szakasz időzítése egy 16 MHz -es MCU. Ha más órajel -frekvencián fut, akkor kísérletileg meg kell határoznia a hangolt késleltetéseket, amelyek a baud -impulzusok középpontjába kerülnek. Remélem, hogy ez az utasítás segít valamilyen módon. Ha bármilyen javaslata van, hogyan lehetne javítani, ne habozzon, jelezze nekem!
Ajánlott:
Arcfelismerés a Raspberry Pi 4B készüléken 3 lépésben: 3 lépésben
Arcfelismerés a Raspberry Pi 4B készüléken 3 lépésben: Ebben az utasításban az arcfelismerést fogjuk elvégezni a Raspberry Pi 4 rendszeren Shunya O/S alkalmazással a Shunyaface Library segítségével. A Shunyaface egy arcfelismerő/felismerő könyvtár. A projekt célja a leggyorsabb észlelési és felismerési sebesség elérése a
ESP32 alapú RFID olvasó érintőképernyővel: 7 lépés
ESP32 alapú érintőképernyős RFID-olvasó: Ezen az oktatóanyagon bemutatom, hogyan lehet létrehozni egy egyszerű RFID-olvasót TFT kimenettel a falra szereléshez ESP32 DEV KIT C modul, RC-522 alapú olvasó PCB és AZ-Touch ESP készlet használatával. Ezt az olvasót ajtóhoz való hozzáféréshez vagy betörő riasztáshoz használhatja
Arduino RFID olvasó TFT kijelzővel: 7 lépés
Arduino RFID olvasó TFT kijelzővel: Ebben az oktatható útmutatóban megmutatom, hogyan kell egy jól kinéző RFID olvasót tervezni TFT kijelzővel és falra szereléshez. Nagyon könnyű létrehozni egy szép megjelenésű RFID olvasót TFT kimenettel a falra szereléshez az Arduino segítségével Az Ön által választott MKR és az Ar
Arduino RFID UHF olvasó: 10 lépés
Arduino RFID UHF olvasó: Ennek az utasításnak az a célja, hogy könnyen érthető példát nyújtson az UHF RFID olvasóval összekapcsolt mikrokontrollerről. Az általunk használt olvasó a Thinkify TR-265. A bemutató három UHF címkéből áll, mindegyik egyedi azonosítóval
A NODEMcu USB port nem működik? Töltse fel a kódot USB használatával TTL (FTDI) modulba mindössze 2 lépésben: 3 lépésben
A NODEMcu USB port nem működik? Töltse fel a kódot az USB to TTL (FTDI) modul használatával mindössze 2 lépésben: Elege van abból, hogy sok vezetéket csatlakoztat USB -ről TTL modulra a NODEMcu -hoz, kövesse ezt az utasítást, és csak két lépésben töltse fel a kódot. Ha a A NODEMcu nem működik, akkor ne essen pánikba. Csak az USB -illesztőprogram -chip vagy az USB -csatlakozó