AVR/Arduino RFID-läsare med UART kod i C (3 / 4 steg)

Steg 3: Skriva koden



För att läsa data från RFID-läsare, du måste veta när en tagg har lämnats in, dra data bort av den seriella porten och sedan skicka det någonstans.

RFID-läsare dataformat

Parallax RFID-läsare skickar data i fasta, glaciala takt av 2400 baud. En RFID-tagg är 10 byte. För att möjliggöra/felkorrigering upptäckt, eftersom läsaren skulle kunna avräknas från slumpmässigt brus, begränsas 10-byte RFID av en start och stopp sentinel. Start sentinel är radmatning (0x0A) och stop sentinel är vagnretur (0x0D). Det ser ut så här:

[Starta Sentinel | Byte 1| Byte 2 | Byte 3| Byte 4| Byte 5| Byte 6| Byte 7| Byte 8|Byte 9| Byte 10| Stoppa Sentinel]

Detta är de tre huvudstegen.

Vet när en tagg har skickats

Jag använde en Pin ändra avbryta på AVR som meddelar firmware som har skett en förändring på ett övervakade stift. Konfigurera AVR för detta är lätt och kräver att flaggan, berättar MCU vilken pin som du vill övervaka och att global avbrott biten.

Konfigurera PCINT

BSET(PCICR,PCIE2); PIN change interrupt kontroll registrera pcie2 BSET(PCMSK2,PCINT18); aktiverar pin change avbrott för PCINT18 (PD2) BSET(SREG,7); Ställ in SREG bit

Skriva din avbrottstjänstens rutin
Du vill behålla din ISR kort så i min avbrottsvektor jag läste den hela byten, bit för bit, och lagra byten i en global flyktiga karaktär utbud. Jag gör följande vid varje avbrott:

  • Kontrollera för att säkerställa jag på lite start
  • Centrera tidpunkten på mellersta pulsen på 2400 baud (hastigheten av RFID-läsare)
  • Hoppa över startbit och pausa till mitten av nästa stycke
  • Läsa in varje bit i ett osignerat heltal
  • När jag har 8 bitar, sätta byten till en karaktär array
  • När jag har samlat 12 byte, låt MCU vet etiketten har lästs för felsökning.

Jag ändrade SoftSerial kod från Mikal Hart som ändrade koden från David Mellis för experimentellt bestämd förseningarna i de seriella rutinerna.

Tolka RS232 utgång

Rutinen PCINT innehåller koden för att läsa den RS232 utgången från RFID-läsare.
När jag har fått 12 byte (10-byte RFID plus sentinels) jag sätta bDataReady till 1 och låt huvudloop bearbeta data och Visa den.

Detta är avbrott handlerISR(PCINT2_vect) {om (BCHK(PIND,RFID_IN)) / / startbit går låg avkastning, uint8_t lite = 0; TunedDelay(CENTER_DELAY); Center på start lite för (uint8_t x = 0, x < 8, x ++) {TunedDelay(INTRABIT_DELAY); / / hoppa lite, bror... om (BCHK(PIND,RFID_IN)) BSET(bit,x), annan BCLR(bit,x);} TunedDelay(INTRABIT_DELAY); hoppa över stop bit RFID_tag [rxIdx] = bit; ++ rxIdx; om (rxIdx == 12) bDataReady = 1;}

Uppvisning din tagg

I Main () kollar under for(ever) slingan, jag för att se om bDataReady har angetts, signalering att hela RFID-strukturen har skickats. Jag sedan kontrollera att se om det är en giltig tag (dvs start och stopp tecken är 0x0A och 0x0D, respektive), och om så, jag skicka ut min RS232 anslutning.

för (;) {om (bDataReady) {#ifdef __DEBUG__ USART_tx_S ("starta byte:"); USART_tx_S (itoa (RFID_tag [0], och ibuff[0],16)); ibuff [0] = 0; ibuff [1] = 0; USART_tx_S ("\nStop byte:"); USART_tx_S (itoa (RFID_tag [11], och ibuff[0],16)); #endif om (ValidTag()) {USART_tx_S ("\nRFID Tag:"); för (uint8_t x = 1; x < 11; x ++) {USART_tx_S(itoa(RFID_tag[x],ibuff,16)); om (x! = 10) USART_tx(':');} USART_tx_S("\n"); } rxIdx = 0; bDataReady = 0; }}

Se Steg
Relaterade Ämnen

RFIDuino - med en Arduino & RFID-läsare för att göra ett pussel GeoCache

jag njuta av både Geocaching och elektronik och har gjort ett par elektroniska pussel cachar med en Arduino.Min senaste skapelse (med hjälp av en kollega cacher för koden) är att använda en Arduino och RFID-läsare för att göra ett pussel geocache vi...

RFID-läsare med Servo

I denna anvisning jag kommer bara att berätta om att göra en enkel krets med 2 lysdioder, ett servo, en RFID-läsare och en arduino uno.Du behöver:-2 ledde (2 olika collors)-en servomotor-en RFID-läsare och nyckel-en arduino uno-några sladdar-2 x 10ko...

Programkontrollen & Arduino + PHIRO robot samtidigt med Pocket kod smartphone app

PHIRO Pro är en pedagogisk robot som hjälper barn lära sig till koden. Ett sätt att programmera och kontrollera PHIRO är via en Android app som kallas Pocket koden tillgänglig på Google spela för gratis. Pocket koden har förmågan att programmera och...

Hur man programmerar Arduino marker under LPT med c ++ kod?

Hej igen!Idag Visa jag dig hur man programmerar Arduino chip(like ATtiny85) med c ++-koden (aka i Arduino IDE)Eftersom du inte kan använda BSD(aka LPT) programmerare med Arduino IDE, gjorde jag denna tutorital :)Obs: Denna tutorital beror på min en a...

Arduino RFID-läsare / MFRC522 Turorial

Detta är en enkel handledning för nybörjare om hur man använder en MFRC522 modul genom att använda ArduinoenAnmärkningar * jag ber om ursäkt för min engelska grammatik eftersom jag är en kinesisk :)Steg 1: Samla delar och program I detta projekt behö...

Älskling, jag krympte Arduino: flytta från Arduino till ATtiny och skriva din kod i ren AVR-C

Arduino är en stor hård- och mjukvaruplattform, men med alla dess funktioner är det också lite uppsvälld och ofta behöver du bara en liten del av alla funktioner. Projektet kräver ibland för att ha mindre och billigare enheter. Vad du behöver är ATti...

RFID-läsare! Identifiera något med RFID från kreditkort för registreringsskyltar

Hey guys idag jag bara fick en RFID-läsare-modul från Parallax! Jag försökte ut och gjorde detta program som identifierar kort och andra RFID-produkter! Allt du behöver är en dator, en Arduino, en skärbräda och modulen Parallax RFID-läsare! Dela vänl...

Idiot's Guide till programmering AVR: s på de billiga (med Arduino IDE!)

Mikrokontroller är, utan tvekan, fantastiska små saker. De är mångsidiga, kraftfull och mycket små. Tyvärr, den sistnämnda drag också delas av både min plånbok och mina kunskaper i programmering. Min förståelse av C är dålig, och jag har knappt råd a...

En RFID-hund leksak med ljud

För min magisterexamen i Interaction Design avhandling vid Malmö högskola (Sverige) byggde jag en prototyp hund leksak som kunde fånga både ljud och lukt. Jag började med en lo-fi prototyp inklusive en mjuk leksak som jag kunde dölja en telefon som s...

Arduino RFID dörrlås

*** uppdaterad 8/9/2010 ***Jag ville göra ett enkelt och säkert sätt att komma in mitt garage. RFID var det bästa sättet att låsa upp min dörr, även med händerna fulla jag kan låsa upp dörren och push det öppna! Jag byggde en enkel krets med en grund...

Kryssrutan Arduino RFID lås

Hej, kommer idag jag att visa dig hur man gör en RFID lås låda.Steg 1: prepareringDu behöver1 x trälåda - http://www.amazon.com/Darice-9151-58-Rectangle-Woo...1 x Parallax skrivskyddade RFID-skanner - http://www.parallax.com/product/281401 x Arduino...

RFID-läsare! MK: II, kort-ID: n

Hey guys jag tillbaka med en andra version av koden för en RFID-skanner! Denna scanner är ett bra sätt att använda ditt kort genom att hålla värden, saldon, värdepapper och många olika saker för RFID-kort!Posten Robot utmaning åldersgruppen 13-17Steg...

Arduino RFID lås

The Arduino RFID låsHur fungerar det?Arduino RFID låset är ett lås som kan öppnas lätt, men är säkert. Låset fungerar med en server-databas som kan registrera kortet koder. På dörren finns en RFID-läsare ansluten till låset. Om RFID-läsare läser ett...

Sesam, öppna dig! Arduino RFID lås och automatiseringar

Jag har nyligen flyttat till ett nytt hus på landsbygden, och pojken jag visste aldrig hur mörka kan det bli! Eller hur många konstiga, skrämmande ljud hörs utan staden buller.För att distrahera mig själv från att minnas barndomen spökhistorier och k...

WiFi RFID-läsare

Huvudtanken var att läsa i 13,56 MHz RFID (tags / tokes / klistermärken / armband / kort) av en magisk låda och inlägg RFID UID till en lokal databas av WiFi-nätverk.Detta instructable bygger basen av hela systemet - första fungerande RFID-läsare på...

RFID-läsare – passersystem

Denna enhet är en enkel passersystem som använder RFID-kort. Den är utformad med PIC12F1822 mikrokontroller köra på intern oscillator på 16MHz. Det genererar 125 KHz bärvågsfrekvens och avkodar dataströmmen svara – format H10301 - FSK modulering 26 b...

Använd Visual Studio IDE att programmet AVR/Arduino

jag är inte ett stort fan av Microsoft, men människan, de gör en slick programmering IDE. I leta runt för en lösning att använda IDE till program spridda AVR: s jag kom över några instruktioner. Som jag älskar funktionen intellisense för Visual Studi...

RFID-läsare för EPassports av Android-telefon (TfCD)

(Del av TfCD uppdrag 2 för Master IPD vid TU Delft)Detta instructable visar hur man använder telefonen som en RFID-läsare. Målet är att läsa data som lagras på chipet av ett ePassport inklusive namn, kön, nationalitet, utgångsdatum, födelsedatum och...

ARDUINO FINGERAVTRYCK Avsökare med 16 X 2 LCD

Detta instructable är baserade och inspirerat av Arduino LCD-handledning och fingeravtryck avsökare från Adafruit (http://www.adafruit.com/product/751). Jag har lagt till 16 x 2 LCD i fingeravtrycket för att kunna se status för processen att fingerpr...