Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Windows 10
  • RFID este ușor. Implementarea propriului nostru transponder și cititor RFID

RFID este ușor. Implementarea propriului nostru transponder și cititor RFID

Eticheta EM4100 stochează 64 de biți de date, ceea ce înseamnă că designul trebuie să conțină un registru de deplasare de 64 de biți format din opt registre 74HC165 de 8 biți. Registrul este reîncărcat după fiecare 64 de schimburi pentru a reseta datele și a începe de la capăt. Intrările registrului sunt după cum urmează:
  • Model de sincronizare: nouă unități
  • ID furnizor / versiune: 2 blocuri de 5 biți, dintre care 4 sunt date și al cincilea este paritate
  • Identificator unic: 8 blocuri de 5 biți, dintre care 4 biți sunt date, iar al cincilea este paritate
  • Sumă de control: 4 biți de paritate, numărați coloană cu coloană
  • Bit de oprire: „0”

Chiar și etichetele criptate sunt vulnerabile la mai multe atacuri. În plus, devine din ce în ce mai ușor să emulați etichetele pe smartphone-urile cu NFC (care rulează de obicei la 13,56 MHz). Doar scrieți corect aplicația de modulare a câmpului și puteți face tot ce doriți.

Ca o scuză standard, permiteți-mi să vă reamintesc că autorul (Și un traducător! - Aproximativ. transl.) nu își asumă nicio responsabilitate pentru consecințele utilizării informațiilor din acest articol. Cititorul trebuie să fie responsabil pentru toate acțiunile sale.

Cadru

Uneori foarte norocos. Un caz frumos ar fi grozav chiar acum, când prototipul este terminat și PCB-ul a fost comandat. Și în acest timp Fleming a terminat asamblarea și lansarea mașinii de tăiat cu laser OSAA PhotonSaw. După un an de muncă la proiect, laserul este gata să taie primele părți. Flemming și Rune fac ultimele ajustări și înlocuiesc capacul de aluminiu al dulapului laser. Vă puteți imagina cât de fericiți am fost toți să vedem lucrul acesta funcționând.

Cu mașina în funcțiune, am avut ocazia să ne testăm proiectul în viața reală. Carcasa pentru eticheta noastră RFID este realizată din sticlă de 2 mm. Acest corpus este primul obiect realizat cu PhotonSaw, da!

S-a nascut ideea de a aseza bobina pe exteriorul carcasei. La început, s-a decis să se folosească jumătate din înălțimea corpului, dar acest lucru nu a funcționat în practică (nu sunt, prin urmare, găuri suplimentare în laturile lungi). Bobina a fost așezată superb în jurul perimetrului întregii carcase, deși aveam îndoieli dacă înfășurarea dreptunghiulară (105x55 mm) ar fi prea mare pentru cuplarea electromagnetică normală.

Bobina de testare a fost înfăşurată, fără calcule, cu un fir de 0,4 mm, 66 de spire. Și, evident, am avut din nou noroc, pentru că bobina a ieșit exact așa cum trebuia, cu o inductanță de 645 μH, cu un tag conectat, dând o frecvență de rezonanță de 125,2 kHz. Testul cititorului de uși a arătat că prototipul funcționează foarte bine cu această bobină.

Cu o bobină pe exteriorul carcasei, grosimea acesteia din urmă poate fi redusă. Grosimea internă depinde acum doar de înălțimea pieselor de pe placă, iar ținând cont de grosimea plăcii, ar trebui să fie de aproximativ 6 mm. De asemenea, ar fi bine să adăugați gravură. Flemming a sugerat rotunjirea părților laterale ale carcasei din motive estetice și ergonomice. Corpul curbat va proteja mai bine părțile laterale ale bobinei, deoarece acolo unde nu există o tensiune puternică, spirele firului tind să se târască afară.

PhotonSaw încă nu este la egalitate: gravura de pe capacul superior a alunecat semnificativ. Este necesar să îl finalizați înainte de a face versiunea finală a cazului. Contururile curbe au suferit, de asemenea, o eroare de calcul în software, deoarece fasciculul nu a revenit la poziția inițială după ce a trecut de calea închisă. Dar oricum, curbele arată foarte netede.

Ansamblu PCB

Plata comandată a sosit:

Asamblarea nu a fost foarte dificilă. Pasta de lipit a fost șablonată pe placă, toate piesele au fost așezate și apoi au fost lipite într-un cuptor de casă.

Prin capacitatea de blocare (47 pF au o rezistență de aproximativ 27 kOhm la o frecvență de 125 kHz) și diodele de protecție, curentul circulă către șinele de alimentare. Energia furnizată de la bobină este suficientă pentru a menține tensiunea de alimentare de aproximativ 1 V. Curentul poate ajunge la 250-500 μA. În mod surprinzător, 74HC par să funcționeze cu acest tip de sursă de alimentare. Din păcate, cu acest gen de tensiune, se întâmplă lucruri ciudate. 74HC are un circuit intern de resetare și trebuie să vă asigurați că funcționează. Rețineți că dezactivarea diodelor de protecție nu ajută. La intrările microcircuitelor există diode de protecție interne, care în acest caz se deschid și fac aceeași treabă.

O resetare a puterii este declanșată numai dacă tensiunea de alimentare scade sub un anumit nivel pentru o perioadă de timp. Dacă tensiunea rămâne prea mare, atunci logica internă poate deveni confuză, deoarece unele părți ale acesteia pot fi într-o stare nedeterminată, în timp ce altele funcționează conform așteptărilor. Este necesară o resetare internă pentru a aduce toate cipurile la o stare constantă. Astfel, circuitul va fi instabil la tensiuni de alimentare foarte scăzute.

Au fost observate următoarele simptome: eticheta funcționează de ceva timp, în timp ce trimite datele corecte. Dacă scoateți bobina din cititor și apoi o returnați înapoi, puteți pune pariuri dacă eticheta se va opri. Uneori funcționează, alteori nu. Dezactivarea PLL-ului agravează situația. Consumul redus de energie duce la faptul că cititorul va primi din când în când date de la eticheta oprită. Acesta este ceea ce înseamnă „sistem eficient din punct de vedere energetic”.

Există două soluții: 1) reduceți condensatorul din circuitul de recuperare a ceasului la 15pF și 2) introduceți un rezistor de 22-100k între sursă de alimentare și masă pentru a descărca excesul de energie. A doua metodă duce la o creștere a scurgerilor în timpul funcționării și nu este cu adevărat necesară atunci când condensatorul este redus. Cu toate acestea, este oferit ca opțiune și este încă mai bun decât starea nedefinită a microcircuitelor.

Modulare prin curent sau tensiune

Modulatorul a adus o parte proaspătă a durerii de cap. Modulația a dispărut complet când bobina a fost plasată la o anumită distanță de cititor. Se poate întâmpla și atunci când mutați bobina către sau departe de cititor.

Motivul s-a dovedit a fi în circuitul modulatorului. MOSFET-urile conectează bobina la un rezistor cu o anumită rezistență. Cu toate acestea, dacă consumul de energie din buclă este mare, rezistența modulatorului este mult mai mare decât rezistența circuitelor de alimentare. Acest lucru duce la faptul că adâncimea de modulație depinde de curentul consumat, ceea ce nu este foarte bun. Situația a fost înrăutățită de alegerea unei diode Zener de limitare pentru o tensiune mai mică decât în ​​prototip.

S-a decis comutarea modulatorului de la modulația de tensiune la modulația de curent. Pentru primul mod, rezistorul a fost în circuitul de scurgere, iar acum este conectat între sursă și masă. Tensiunea poartă-sursă va scădea peste acest rezistor până când o valoare rămâne puțin peste pragul de deschidere a tranzistorului (0,9-1,1 V), ceea ce va transfera tranzistorul în modul liniar. Acum curentul prin tranzistor va fi stabil, indiferent de tensiunea de la dren.

Testarea prototipului a arătat că modularea curentă funcționează foarte bine. Un cititor ieftin, fără nume, nu se mai blochează (bine, poate o dată la o sută și ceva). Se poate presupune că această schimbare va funcționa minunat și pentru alți cititori, iar eticheta va putea acum să funcționeze pe majoritatea dintre ei.

Versiunea 1 finalizată

Puteți vedea modificările făcute pe PCB. Nu aveam condensator SMD de 15pF, trebuia sa lipim unul obisnuit cu picioare. Modulatorul este suprapus cu rezistențe suplimentare la sursele tranzistoarelor. În general acceptabil pentru prima versiune.

(pozaile se pot face clic)





Demo video

Concluzie

Ai putea crede că acest design logic 7400 poate fi atribuit circuitelor retro, dar acest lucru nu este în întregime adevărat. În primul rând, familia 74HC de astăzi nu este atât de veche. În al doilea rând, circuitele de putere redusă sunt întotdeauna relevante. În al treilea rând, circuitele integrate cu o singură poartă (cum ar fi declanșatorul Schmitt utilizat) sunt adesea folosite în design-urile moderne. Se uită adesea că dezvoltarea tehnologiei nu se oprește pentru familiile mai vechi de microcircuite. Pur și simplu au devenit mai puțin vizibile pe fondul diversității generale.

Partea analogică s-a dovedit a fi mai dificil de proiectat decât cea digitală. Acest lucru se datorează parțial lipsei de specificații, dar în principal din cauza numeroaselor compromisuri necesare pentru a îndeplini parametrii și efectele secundare neprevăzute. Modelele digitale au relativ puține opțiuni, în timp ce modelele analogice necesită de obicei un echilibru între criterii diferite (și adesea opuse).

Trebuie să recunosc că 74HC este făcut foarte, foarte bine. Dezvoltatorii știau ce fac și au obținut un consum foarte scăzut de energie. La început am avut câteva îndoieli dacă eticheta ar putea funcționa de la o sursă de alimentare pasivă, dar după ce am citit specificațiile, a rămas doar o chestiune de circuite corecte. Totuși, există încă loc pentru optimizarea diferitelor părți ale etichetei.

Acum să vedem cum se comportă acest proiect în competiția 2012 7400. Depunerea candidaturilor pentru concurs se încheie pe 31 noiembrie. Să-i urăm autorului mult succes! - Aproximativ. transl.

Etichete:

  • RFID
  • 7400 Concurs
  • suprainginerie
  • logică
  • greble peste tot
Adaugă etichete

La un moment dat m-am plictisit din nou și am crezut că am venit cu un motiv întemeiat să-mi cumpăr un cititor de carduri. Conceptul a fost următorul: lipim cardul de partea de jos a laptopului și punem cititorul în locul în care computerul este de obicei încărcat.

Rezultat: atunci când punem laptopul pe „încărcare”, priza cu încărcătorul său se pornește automat. Și în restul timpului, priza, desigur, este oprită. Ca să nu spun că este deosebit de util, dar divertisment.

Dar, ca de obicei, ceva a mers prost. Adică, în loc de muncă asiduă în domeniul outlet-urilor, în primul rând din anumite motive am învățat să aflu câte călătorii au rămas pe biletul meu local de metrou.

Pentru înțelegere: acest cititor nu este un dispozitiv complet, ci un periferic pentru un controler sau computer. Din acest motiv, va fi nevoie de ceva efort pentru utilizare. Nu există rețete gata făcute „din cutie”, dar totul în rest depinde de imaginație și abilități.

Ce fac de obicei? Cel mai adesea - încuietori cu deschidere prin card, urmărirea timpului, sisteme de control acces pentru animalele de companie (admiterea la mâncare, de exemplu).

Pentru experimente, am ales un cititor ieftin și mai mult sau mai puțin versatil. RFID în numele acestui lucru înseamnă tehnologie de identificare radio, adică nu înseamnă nimic anume. Dar din specificații rezultă că piesa de fier este compatibilă cu cardurile RFID obișnuite cu protocolul MIFARE.

Cel mai probabil, v-ați întâlnit în mod repetat cu astfel de cărți. Cel mai adesea - sub forma unui permis de birou. Un alt exemplu excelent sunt biletele de metrou contactless.

Principiul de bază al funcționării este destul de simplu de înțeles. Există antene în card și în cititor, în timp ce semnalul cititorului (esența unui câmp electromagnetic) servește simultan ca sursă de alimentare pentru card. Acestea. atât în ​​ceea ce privește energia, cât și în ceea ce privește transmisia de date, aceasta este foarte asemănătoare cu încărcătoarele wireless super populare.

Cardurile în sine, în funcție de modificare, pot transporta de la câteva zeci de octeți la câțiva kiloocteți de date (inclusiv un număr de serie unic). De asemenea, în funcție de modificare, cardul poate fi echipat cu protecție a informațiilor criptografice.

În kit erau doi pieptene, dar eu, iartă-mă, deja am lipit unul (unghiular). Prin urmare, nu există nici un tip de scândură fără piepteni.

Acest kit include un cititor, un pieptene pentru prototipare simplă și chiar montare pe o „placă de bază” și doi identificatori: o cartelă MIFARE 1K și un breloc cu capacități similare. Adică destul pentru experimentare.

.

.

.

Placa de citire, după cum puteți vedea, arată foarte îngrijită. Și, ceea ce este convenabil, după instalarea pieptenului în unghi, dimensiunile dispozitivului nu cresc, deoarece pieptene coincide de fapt în înălțime cu cel mai înalt element de pe placă.

Cu baterie AAA

Acestea. nu trebuie sa te chinui cu un compromis intre comoditate si versatilitate (pieptene) si economie de spatiu per inglobare (lidura directa a firelor).

Printre altele, placa are și un LED roșu, care, din păcate, este complet neinformativ. Concluzia este că arde chiar și cu o sursă de alimentare deconectată - evident, există suficiente niveluri pe interfața SPI. Și nu reacționează la cărți în niciun fel.

Într-un cuvânt, se aprinde când cititorul este cumva conectat la Arduino, ceea ce nu garantează performanța acestuia.

În ceea ce privește intervalul de răspuns, subiectiv, pragul este situat la o distanță de 2 cm de suprafața plăcii. În 2 - 2,5 cm - zona de răspuns incert.

Caracteristici (de la vânzător):

Tensiune: 3,3 V

Consum de curent activ: 13-26 mA

Consum de curent în standby: 10-13mA

Curent de repaus: mai puțin de 80uA

Consum maxim: mai puțin de 30mA

Frecventa de lucru: 13,56 MHz

Tipuri de carduri acceptate: MIFARE S50, MIFARE S70, MIFARE UltraLight, MIFARE Pro, MIFARE DESfire

Interfață: SPI

Dimensiuni: 40x60 mm

Din cele de mai sus, puteți vedea că am marcat de două ori. În primul rând, nu m-am uitat la tensiunea de alimentare. Și 3.3V, apropo, înseamnă că este cel mai ușor să utilizați această placă cu Arduino Uno, Mega și alte plăci (sau similare) echipate cu regulatoare de tensiune și ieșire de 3,3V. Din fericire, consumul maxim de curent nu depășește capacitățile platformei.

În caz contrar, trebuie să utilizați fie o singură sursă de alimentare de 3,3 V, fie un regulator/stabilizator/convertor de tensiune suplimentar.

În al doilea rând, interfața SPI necesită 5 fire (!) pentru conectare. Acestea. în total, o buclă de 7 conductori este potrivită pentru cititor, iar acest lucru este destul de irositor. Pentru a economisi bani, era logic să ne concentrăm pe I2C, dar unde sunt și unde înseamnă asta?!

Conexiune
Aș dori să împart conexiunea în soft și hard, dar totul este atât de strâns împletit - și a dus la o problemă nu foarte interesantă.

Pe scurt, toată lumea știe pentru RC522. Dar, dintr-un motiv oarecare, nimeni nu pune întrebarea de ce readme-ul atașat bibliotecii și placa dintr-unul dintre exemplele sale au „pinout” complet diferit al conexiunii cititorului.

Bănuiesc că acesta este unul dintre motivele eternelor probleme cu această bibliotecă. Al doilea motiv este că conexiunea pentru Arduino Uno și Mega se face pe pini diferiți. Acest lucru se datorează particularității platformelor.

În cele din urmă, al treilea motiv este că doi pini (SS și RST) permit conexiunea arbitrară și sunt configurați în cod. În același timp, implicit, configurația pentru Arduino Uno este marcată în codul exemplului, iar dacă ai un Mega și te-ai conectat prin agitare din readme sau placa de la începutul exemplului, atunci, bineînțeles, vei fi dor.

Dar trucul este că al treilea motiv este destul de evident și l-am ocolit mai mult sau mai puțin punându-mi imediat pinii, pentru că aveam la îndemână o placă Arduino Mega. Prin urmare, apropo, a doua problemă m-a ocolit.

Dar primul - conectarea pinilor SPI m-a chinuit după pofta inimii. Nici nu mi-am putut imagina că o persoană care a făcut o bibliotecă de succes s-ar putea încurca într-o conexiune atât de banală de trei fire.

Cu alte cuvinte, conectarea în funcție de prima sau a doua opțiune indicată în descrierea bibliotecii nu a ajutat. La început am crezut că am o „planșă moartă”. Prin urmare, în ciuda timpului târziu, m-am strâns și am deslipit pieptene la al doilea (sunt economisitor și am cumpărat trei deodată). Rezultatul s-a dovedit a fi același, în ciuda faptului că am verificat în mod repetat conexiunea folosind „pinout-urile” pe care le aveam la îndemână.

Nici măcar să nu întrebați de ce nu m-am dus la Arduino.cc pentru a vedea cum este conectat SPI-ul pe Mega. După părerea mea, era un fel de turbiditate.

Dar am căutat pe google și, care pe scurt (și nu ca mine) a descris achiziția și legătura ei cu biblioteca, după cum am înțeles-o, de la camarazi chinezi. Mâinile erau deja coborâte și nu puteam dormi în această stare, așa că mi-am permis un alt experiment cu un pinout proaspăt găsit și o bibliotecă.

Și ambele taxe au câștigat.

Pentru a-mi curăța conștiința - am descărcat un exemplu cu o bibliotecă „cu probleme” și s-a dovedit a funcționa și el.

Acestea sunt cărțile cu care am torturat cititorul. De la stânga la dreapta: card din set, card cu litera N, bilet de metrou MIFARE UltraLight, card Căilor Ferate Ruse

Și așa arată un dump de conținut și, în general, recunoașterea cardurilor cu biblioteca RFID și exemplul acesteia DumpInfo

Rezumat chin: pinout-ul de la tovarășul menționat mai sus coincide cu și, în mod surprinzător, coincide cu pinout-ul din biblioteca RFID readme. Ținând cont de acestea din urmă, pot presupune că ori am amestecat ace noaptea și toate nenorocirile mele au început cu asta, ori biblioteca nativă chineză inițializează cumva inteligent cititorul, după care începe să funcționeze.

În cele din urmă, pinout-ul corect pentru biblioteca chineză și Mega la care mă conectam:

Mega RC522
3,3 V VCC
GND GND
RESET RST

50 MISO
51 MOSI
52 SCK
53 NSS

Și pentru Uno (nu l-am testat):

Uno RC522
3,3 V VCC
GND GND
5 RST

12 MISO
11 MOSI
13 SCK
10 NSS

Împreună cu sora mai mare

.

.

În urma unor teste simple, pe care totuși le-am efectuat, s-a dovedit și că cititorul scrie în mod normal (acesta este un astfel de joc de cuvinte) cărți MIFARE 1K de la cele care au venit cu el.

A doua caracteristică este că acest lucru reacționează adecvat dacă sunt aduse mai multe cărți în același timp. Am prezentat două carduri, din nou, din cele care erau în kit. Procedând astfel, exemplul DumpInfo din biblioteca RFID scoate în ordine conținutul ambelor carduri. Acestea. mai întâi, conținutul unui card, urmat de cel de-al doilea.

Și în carouri, și călărește
Așadar, l-am conectat, am admirat depozitul conținutului de memorie al cardurilor MIFARE 1K. Ce urmeaza? Și apoi mi-a fost puțin prea lene să mă chinuiesc cu priza și mi-am amintit că cardurile de metrou par să funcționeze după același protocol.

M-am dus, am luat-o pe a mea, l-am îmbrăcat, i-am admirat conținutul. Așa cum am promis: MIFARE UltraLight, 64 de octeți de memorie și nu e foarte clar unde sunt călătoriile, unde este perioada de valabilitate și nu e deloc clar.

Googlarea despre utilizarea Arduino cu aceste carduri nu a venit cu nimic deosebit de util. Cel mai adesea, cardurile de metrou, după cum s-a dovedit, sunt folosite ca etichete NFC ultra-ieftine (adică gratuite) în tot felul de sisteme create de sine, cum ar fi încuietori, execuție de script și alte lucruri, unde este suficient să cunoașteți numărul de serie al cardul de identificare. Dar din anumite motive nu am găsit biblioteci și soluții gata făcute pentru afișarea informațiilor despre călătorii: fie îmi doream atât de mult să dorm, fie chiar nu existau (vezi sindromul Elusive Joe).

Am găsit însă un text minunat și foarte romantic al lui Alexander „Dark Simpson” Simonov la rubrica „”, publicat, se pare, în unele numere ale lui Hacker. În ciuda caracterului curios al textului, acesta conține o mulțime de informații utile despre structura de stocare a datelor, inclusiv asupra biletelor care mă interesează.

O parte semnificativă a biletului - numărul - verificată vizual

Așa că a doua zi am încercat să-mi depășesc aversiunea față de HEX și am început să-mi dau seama. Iată o descărcare de bilete pe care am primit-o folosind biblioteca RFID:

UID card: 04 6F 25 62 04 33 82
Tip PICC: MIFARE Ultralight sau Ultralight C

Pagina 0 1 2 3
0 04 6F 25 C6
1 62 04 33 82
2 D7 48 F0 00
3 00 07 FF FC
4 45 DA 21 06
5 D0 E5 3D 00
6 1F E8 00 00
7 1F E8 00 00
8 1F 8F 5A 00
9 40 19 2E D2
10 19 91 59 7C
11 1F AB 91 C8
12 1F 8F 5A 00
13 40 19 2E D2
14 19 91 59 7C
15 1F AB 91 C8

Aici Card UID este identificatorul unic al cardului (care este numărul de serie), iar restul este de 16 pagini de memorie, fiecare dintre ele conține 4 octeți. Împreună - 64 de octeți.

Din citirea textului despre biletele de metrou, am remarcat cele mai utile puncte:

1) Numărul biletului (care este imprimat pe el) este cablat pe 32 de biți, începând cu 21 de biți la pagina 4: 10 6D 0E 53;

2) Data emiterii biletului în zile de la 01.01.1992 - primii doi octeți ai paginii 8: 1F 8F;

3) Valabilitate în zile - al treilea octet la pagina 8: 5A.

4) În cele din urmă, numărul de curse rămase este al doilea octet de la pagina 9: 19.

Era deja posibil să lucrăm cu asta.

Sapă mai adânc în exemplul DumpInfo din biblioteca RFID, în propriul cod, pentru a înțelege ce funcții sunt responsabile pentru ce și cum pot fi utile, pe forumurile Arduino pentru a vedea implementarea calculării datei (în general, poți căuta în orice limbă, dar mi-a fost mai ușor să privesc mai aproape de platforma țintă).

Drept urmare, s-a născut un monstru. Adică, schița este tăiată din cârpe, pe alocuri rezultatul este adaptat răspunsului, dar în general totul este mai mult sau mai puțin în concordanță cu realitatea. Prin urmare, nu există nimic de împușcat asupra unui pianist care cântă cât de bine poate. Acolo, apropo, chiar și gestionarea de bază a erorilor există: o schiță va avertiza despre un card neacceptat sau despre imposibilitatea citirii.

#include #include #define SS_PIN 53 #define RST_PIN 9 MFRC522 mfrc522 (SS_PIN, RST_PIN); // MFRC522 obiect unsigned long uidDec, uidDecTemp; // pentru a afișa numărul cardului în format zecimal octet bCounter, readBit; Număr bilet lung nesemnat; void setup () (Serial.begin (9600); SPI.begin (); // Inițializare SPI mfrc522.PCD_Init (); // Inițializare MFRC522 Serial.println ("Se așteaptă cardul...");) bucla void ( ) (// Căutați un card nou dacă (! Mfrc522.PICC_IsNewCardPresent ()) (return;) // Selectați un card dacă (! Mfrc522.PICC_ReadCardSerial ()) (return;) uidDec = 0; // Emiteți numărul de serie a cardului Serial.print ("Card UID:"); pentru (octetul i = 0; i< mfrc522.uid.size; i++) { // Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "); // Serial.print(mfrc522.uid.uidByte[i], HEX); uidDecTemp=mfrc522.uid.uidByte[i]; uidDec=uidDec*256+uidDecTemp; } Serial.println(uidDec); Serial.println(); // Выдача типа карты byte piccType = mfrc522.PICC_GetType(mfrc522.uid.sak); // запрос типа Serial.print("Card type: "); Serial.println(mfrc522.PICC_GetTypeName(piccType)); // трансляция типа в читаемый вид if (piccType != MFRC522::PICC_TYPE_MIFARE_UL) { // если не билетная карта Serial.print("Not a valid card: "); // так и говорим Serial.println(piccType); // Halt PICC mfrc522.PICC_HaltA(); // остановка чипа return; } // сюда мы приедем, если чип правильный byte status; byte byteCount; byte buffer; // длина массива (16 байт + 2 байта контрольная сумма) byte pages={4, 8}; // страницы с данными byte pageByte; // счетчик байтов страницы byteCount = sizeof(buffer); byte bCount=0; for (byte i=0; i<2; i++) { // начинаем читать страницы status = mfrc522.MIFARE_Read(pages[i], buffer, &byteCount); if (status != MFRC522::STATUS_OK) { Serial.print("Read error: "); Serial.println(mfrc522.GetStatusCodeName(status));} else { if (pages[i] == 4) { bCounter = 0; // 32-битный счетчик для номера // биты 0-3 for (bCount=0; bCount<4; bCount++) { readBit = bitRead(buffer, (bCount+4)); setBitsForGood(readBit); } // биты 4 - 27 for (pageByte=5; pageByte >2; pageByte--) (pentru (bCount = 0; bCount<8; bCount++) { readBit = bitRead(buffer, bCount); setBitsForGood(readBit); } } // биты 28-31 for (bCount=0; bCount<4; bCount++) { readBit = bitRead(buffer, bCount); setBitsForGood(readBit); } Serial.print("Ticket number: "); Serial.println(ticketNumber, DEC); } if (pages[i] == 8) { // читаем дату выдачи Serial.print("Issued: "); unsigned int issueDate = buffer * 256 + buffer; // количество дней с 01.01.1992 в десятичном формате, 256 - сдвиг на 8 бит printIssueDate(issueDate); Serial.print("Good for (days): "); // срок действия Serial.print(buffer, DEC); Serial.println(); Serial.print("Trip reminder: "); // количество оставшихся поездок Serial.print(buffer, DEC); Serial.println(); } } } // Halt PICC mfrc522.PICC_HaltA(); } void printIssueDate(unsigned int incoming) { boolean isLeap = true; // признак високосного года int days={0,31,59,90,120,151,181,212,243,273,304,334}; // последний по порядку день месяца для обычного года byte dayOfMonth, monthCounter; unsigned int yearCount; incoming = incoming+1; // подогнал под ответ, но возможно это как раз необходимая коррекция, потому что начало отсчета - 01.01.1992, а не 00.01.1992 for (yearCount = 1992; incoming >366; yearCount ++) (// numără anul și numărul de zile care au trecut de la emiterea biletului dacă ((yearCount% 4 == 0 && yearCount% 100! = 0) || yearCount% 400 == 0) ( incoming = incoming - 366; isLeap = true;) else (incoming = incoming - 365; isLeap = false;)) pentru (monthCounter = 0; incoming> days; monthCounter ++) (// aflați numărul lunii) // numărați ziua lunii dacă (isLeap == adevărat) (/ / dacă un an bisect dacă (zile> 31) (// dacă nu este prima lună, atunci adăugați unitățile dayOfMonth = primit - (zile + 1);) altfel (dayOfMonth = incoming - (zile); // dacă primul - nu adăugați nimic, deoarece tura începe din februarie)) else (dayOfMonth = incoming - (zile); // dacă nu este un an bisect) Serial.print (dayOfMonth) ; Serial.print ("."); Serial.print (monthCounter); Serial.print ("."); Serial.print (yearCount); Serial.println (); ) void setBitsForGood (byte daBeat) (dacă (daBeat == 1) (bitSet (ticketNumber, bCounter); bCounter = bCounter + 1;) else (bitClear (ticketNumber, bCounter); bCounter = bCounter + 1;))

Ce îmi oferă această schiță? Ei bine, în primul rând, un mic antrenament al capului - știi, a trebuit să mă gândesc când m-am ocupat de cititor și de cod. În al doilea rând, pot afla oricând câte călătorii au mai rămas și când se va termina cardul. Ținând cont de faptul că nu am NFC în smartphone-ul meu, se dovedește destul de convenabil.

Rezultatul muncii monstrului

Desigur, în acest caz nici măcar nu vorbim despre realizarea unei „copii” a biletului. Aceasta este o funcție pur informațională care dublează terminalul din holul metroului.

În general, după un astfel de succes, a fost posibilă preluarea celei de-a doua sarcini propuse, care, teoretic, ar fi trebuit să fie prima datorită simplității sale de implementare.

Deci, o priză care se aprinde atunci când ai nevoie. Aici, cardul (orice suportat de cititor și potrivit pentru plasarea în dispozitivul țintă) este folosit exclusiv ca trecere, adică doar numărul său de serie interesează.

Logica este simplă: dacă cititorul vede o cartelă cu un anumit număr, pornește priza. Dacă nu îl vede, îl oprește.

SOCKET MONSTER

#include #include #define SS_PIN 53 #define RST_PIN 9 MFRC522 mfrc522 (SS_PIN, RST_PIN); // Creați instanța MFRC522. nesemnat lung uidDec, uidDecTemp; #include RCSwitch mySwitch = RCSwitch (); switchOn boolean = fals; boolean cardRead = fals; void setup () (Serial.begin (9600); // Inițializați comunicațiile seriale cu PC-ul SPI.begin (); // Init SPI bus mfrc522.PCD_Init (); // Init MFRC522 card mySwitch.enableTransmit (8); Serial .println ("Se așteaptă cardul...");) void loop () (starea octetului; byte byteCount; byte buffer; // lungimea matricei (16 bytes + 2 bytes checksum) byteCount = sizeof (buffer); uidDec = 0 ; stare = mfrc522.PICC_RequestA (buffer, & byteCount); if (mfrc522.PICC_ReadCardSerial ()) (pentru (byte i = 0; i< mfrc522.uid.size; i++) { uidDecTemp=mfrc522.uid.uidByte[i]; uidDec=uidDec*256+uidDecTemp; } if ((uidDec==2218415941) && (switchOn == false)) { mySwitch.sendTriState("00110000F000"); switchOn = true; // Serial.println("Switched On"); } mfrc522.PICC_ReadCardSerial(); } else { if (switchOn == true) { mySwitch.sendTriState("001100000000"); // Serial.println("Switched Off"); switchOn = false; } } }

La fel, folosind harta ca declanșator, puteți executa diverse scenarii de automatizare a locuinței. De exemplu, puneți un card într-o carte electronică și plasați un cititor pe noptieră.

Când punem cartea pe bordură, casa crede că am decis să mergem în regatul lui Morpheus și stinge iluminatul. Și dacă luăm o carte din bordură, atunci se presupune că vrem să citim și apoi, dimpotrivă, lumina de fundal se aprinde pentru ca cerneala electronică să fie văzută și pentru ca ochii să nu se rupă.

Așa funcționează monstrul priză

Pentru a rezuma: Ieftin, simplu, destul de convenabil și imaginativ.

Ps. Sunt sigur că poți face mai bine și că nu înțeleg nimic despre Arduino și programare.

Tot felul de link-uri
Mi-a placut recenzia +67 +173

Eticheta EM4100 stochează 64 de biți de date, ceea ce înseamnă că designul trebuie să conțină un registru de deplasare de 64 de biți format din opt registre 74HC165 de 8 biți. Registrul este reîncărcat după fiecare 64 de schimburi pentru a reseta datele și a începe de la capăt. Intrările registrului sunt după cum urmează:
  • Model de sincronizare: nouă unități
  • ID furnizor / versiune: 2 blocuri de 5 biți, dintre care 4 sunt date și al cincilea este paritate
  • Identificator unic: 8 blocuri de 5 biți, dintre care 4 biți sunt date, iar al cincilea este paritate
  • Sumă de control: 4 biți de paritate, numărați coloană cu coloană
  • Bit de oprire: „0”

Chiar și etichetele criptate sunt vulnerabile la mai multe atacuri. În plus, devine din ce în ce mai ușor să emulați etichetele pe smartphone-urile cu NFC (care rulează de obicei la 13,56 MHz). Doar scrieți corect aplicația de modulare a câmpului și puteți face tot ce doriți.

Ca o scuză standard, permiteți-mi să vă reamintesc că autorul (Și un traducător! - Aproximativ. transl.) nu își asumă nicio responsabilitate pentru consecințele utilizării informațiilor din acest articol. Cititorul trebuie să fie responsabil pentru toate acțiunile sale.

Cadru

Uneori foarte norocos. Un caz frumos ar fi grozav chiar acum, când prototipul este terminat și PCB-ul a fost comandat. Și în acest timp Fleming a terminat asamblarea și lansarea mașinii de tăiat cu laser OSAA PhotonSaw. După un an de muncă la proiect, laserul este gata să taie primele părți. Flemming și Rune fac ultimele ajustări și înlocuiesc capacul de aluminiu al dulapului laser. Vă puteți imagina cât de fericiți am fost toți să vedem lucrul acesta funcționând.

Cu mașina în funcțiune, am avut ocazia să ne testăm proiectul în viața reală. Carcasa pentru eticheta noastră RFID este realizată din sticlă de 2 mm. Acest corpus este primul obiect realizat cu PhotonSaw, da!

S-a nascut ideea de a aseza bobina pe exteriorul carcasei. La început, s-a decis să se folosească jumătate din înălțimea corpului, dar acest lucru nu a funcționat în practică (nu sunt, prin urmare, găuri suplimentare în laturile lungi). Bobina a fost așezată superb în jurul perimetrului întregii carcase, deși aveam îndoieli dacă înfășurarea dreptunghiulară (105x55 mm) ar fi prea mare pentru cuplarea electromagnetică normală.

Bobina de testare a fost înfăşurată, fără calcule, cu un fir de 0,4 mm, 66 de spire. Și, evident, am avut din nou noroc, pentru că bobina a ieșit exact așa cum trebuia, cu o inductanță de 645 μH, cu un tag conectat, dând o frecvență de rezonanță de 125,2 kHz. Testul cititorului de uși a arătat că prototipul funcționează foarte bine cu această bobină.

Cu o bobină pe exteriorul carcasei, grosimea acesteia din urmă poate fi redusă. Grosimea internă depinde acum doar de înălțimea pieselor de pe placă, iar ținând cont de grosimea plăcii, ar trebui să fie de aproximativ 6 mm. De asemenea, ar fi bine să adăugați gravură. Flemming a sugerat rotunjirea părților laterale ale carcasei din motive estetice și ergonomice. Corpul curbat va proteja mai bine părțile laterale ale bobinei, deoarece acolo unde nu există o tensiune puternică, spirele firului tind să se târască afară.

PhotonSaw încă nu este la egalitate: gravura de pe capacul superior a alunecat semnificativ. Este necesar să îl finalizați înainte de a face versiunea finală a cazului. Contururile curbe au suferit, de asemenea, o eroare de calcul în software, deoarece fasciculul nu a revenit la poziția inițială după ce a trecut de calea închisă. Dar oricum, curbele arată foarte netede.

Ansamblu PCB

Plata comandată a sosit:

Asamblarea nu a fost foarte dificilă. Pasta de lipit a fost șablonată pe placă, toate piesele au fost așezate și apoi au fost lipite într-un cuptor de casă.

Prin capacitatea de blocare (47 pF au o rezistență de aproximativ 27 kOhm la o frecvență de 125 kHz) și diodele de protecție, curentul circulă către șinele de alimentare. Energia furnizată de la bobină este suficientă pentru a menține tensiunea de alimentare de aproximativ 1 V. Curentul poate ajunge la 250-500 μA. În mod surprinzător, 74HC par să funcționeze cu acest tip de sursă de alimentare. Din păcate, cu acest gen de tensiune, se întâmplă lucruri ciudate. 74HC are un circuit intern de resetare și trebuie să vă asigurați că funcționează. Rețineți că dezactivarea diodelor de protecție nu ajută. La intrările microcircuitelor există diode de protecție interne, care în acest caz se deschid și fac aceeași treabă.

O resetare a puterii este declanșată numai dacă tensiunea de alimentare scade sub un anumit nivel pentru o perioadă de timp. Dacă tensiunea rămâne prea mare, atunci logica internă poate deveni confuză, deoarece unele părți ale acesteia pot fi într-o stare nedeterminată, în timp ce altele funcționează conform așteptărilor. Este necesară o resetare internă pentru a aduce toate cipurile la o stare constantă. Astfel, circuitul va fi instabil la tensiuni de alimentare foarte scăzute.

Au fost observate următoarele simptome: eticheta funcționează de ceva timp, în timp ce trimite datele corecte. Dacă scoateți bobina din cititor și apoi o returnați înapoi, puteți pune pariuri dacă eticheta se va opri. Uneori funcționează, alteori nu. Dezactivarea PLL-ului agravează situația. Consumul redus de energie duce la faptul că cititorul va primi din când în când date de la eticheta oprită. Acesta este ceea ce înseamnă „sistem eficient din punct de vedere energetic”.

Există două soluții: 1) reduceți condensatorul din circuitul de recuperare a ceasului la 15pF și 2) introduceți un rezistor de 22-100k între sursă de alimentare și masă pentru a descărca excesul de energie. A doua metodă duce la o creștere a scurgerilor în timpul funcționării și nu este cu adevărat necesară atunci când condensatorul este redus. Cu toate acestea, este oferit ca opțiune și este încă mai bun decât starea nedefinită a microcircuitelor.

Modulare prin curent sau tensiune

Modulatorul a adus o parte proaspătă a durerii de cap. Modulația a dispărut complet când bobina a fost plasată la o anumită distanță de cititor. Se poate întâmpla și atunci când mutați bobina către sau departe de cititor.

Motivul s-a dovedit a fi în circuitul modulatorului. MOSFET-urile conectează bobina la un rezistor cu o anumită rezistență. Cu toate acestea, dacă consumul de energie din buclă este mare, rezistența modulatorului este mult mai mare decât rezistența circuitelor de alimentare. Acest lucru duce la faptul că adâncimea de modulație depinde de curentul consumat, ceea ce nu este foarte bun. Situația a fost înrăutățită de alegerea unei diode Zener de limitare pentru o tensiune mai mică decât în ​​prototip.

S-a decis comutarea modulatorului de la modulația de tensiune la modulația de curent. Pentru primul mod, rezistorul a fost în circuitul de scurgere, iar acum este conectat între sursă și masă. Tensiunea poartă-sursă va scădea peste acest rezistor până când o valoare rămâne puțin peste pragul de deschidere a tranzistorului (0,9-1,1 V), ceea ce va transfera tranzistorul în modul liniar. Acum curentul prin tranzistor va fi stabil, indiferent de tensiunea de la dren.

Testarea prototipului a arătat că modularea curentă funcționează foarte bine. Un cititor ieftin, fără nume, nu se mai blochează (bine, poate o dată la o sută și ceva). Se poate presupune că această schimbare va funcționa minunat și pentru alți cititori, iar eticheta va putea acum să funcționeze pe majoritatea dintre ei.

Versiunea 1 finalizată

Puteți vedea modificările făcute pe PCB. Nu aveam condensator SMD de 15pF, trebuia sa lipim unul obisnuit cu picioare. Modulatorul este suprapus cu rezistențe suplimentare la sursele tranzistoarelor. În general acceptabil pentru prima versiune.

(pozaile se pot face clic)





Demo video

Concluzie

Ai putea crede că acest design logic 7400 poate fi atribuit circuitelor retro, dar acest lucru nu este în întregime adevărat. În primul rând, familia 74HC de astăzi nu este atât de veche. În al doilea rând, circuitele de putere redusă sunt întotdeauna relevante. În al treilea rând, circuitele integrate cu o singură poartă (cum ar fi declanșatorul Schmitt utilizat) sunt adesea folosite în design-urile moderne. Se uită adesea că dezvoltarea tehnologiei nu se oprește pentru familiile mai vechi de microcircuite. Pur și simplu au devenit mai puțin vizibile pe fondul diversității generale.

Partea analogică s-a dovedit a fi mai dificil de proiectat decât cea digitală. Acest lucru se datorează parțial lipsei de specificații, dar în principal din cauza numeroaselor compromisuri necesare pentru a îndeplini parametrii și efectele secundare neprevăzute. Modelele digitale au relativ puține opțiuni, în timp ce modelele analogice necesită de obicei un echilibru între criterii diferite (și adesea opuse).

Trebuie să recunosc că 74HC este făcut foarte, foarte bine. Dezvoltatorii știau ce fac și au obținut un consum foarte scăzut de energie. La început am avut câteva îndoieli dacă eticheta ar putea funcționa de la o sursă de alimentare pasivă, dar după ce am citit specificațiile, a rămas doar o chestiune de circuite corecte. Totuși, există încă loc pentru optimizarea diferitelor părți ale etichetei.

Acum să vedem cum se comportă acest proiect în competiția 2012 7400. Depunerea candidaturilor pentru concurs se încheie pe 31 noiembrie. Să-i urăm autorului mult succes! - Aproximativ. transl.

Etichete: Adăugați etichete

Cititor RFID - carduri și brelocuri
pe microcontrolerul ATtiny13

O sursă: www.serasidis.gr
Vassilis serasidis

Traducere: Vadim comandat de RadioLocman

Recent, au câștigat o mare popularitate diverse proiecte bazate pe chei RFID, care sunt utilizate în sistemele de securitate, securitate și sisteme de control al accesului. La unele întreprinderi și organizații, astfel de sisteme, completate cu software specializat, sunt utilizate pentru înregistrarea orelor de lucru, contabilizarea valorilor materiale etc.

Orice sistem de identificare prin radiofrecvență (RFID) constă dintr-un cititor (cititor, cititor sau interogator) și un transponder (alias etichetă RFID, uneori se folosește și termenul etichetă RFID). În acest articol, ne vom uita la un dispozitiv simplu pentru citirea cheilor RFID care acceptă protocolul EM4100 și funcționează la o frecvență de 125 kHz. Acest tip de cheie RFID poate fi sub forma unui breloc sau a unui card de credit (Figura de mai jos).

Componenta principală a cititorului este un microcontroler Atmel AVR ATtiny13 , care citește numărul unic de identificare a cheii din 10 cifre și îl transmite în codificare ASCII prin interfața serială (UART) la 2400 bps către dispozitivul gazdă. Cu alte cuvinte, cititorul este un modul separat care se conectează la procesorul sau microcontrolerul principal al sistemului (Figura 2).

Diagrama schematică a cititorului RFID este prezentată în figura de mai jos:

Să luăm în considerare principalele caracteristici ale circuitului. Microcontrolerul folosește un modulator PWM încorporat pentru a genera impulsuri cu undă pătrată de 125 kHz la ieșirea PB0. Dacă la ieşirea PB0 jurnal. 0 (marginea de cădere a impulsului), tranzistorul T1 este în starea oprită, iar tensiunea de alimentare de +5 V este aplicată bobinei L1 prin rezistorul R1. Marginea ascendentă la ieșirea PB0 (log. 1) deschide tranzistorul T1, iar partea de sus a circuitului, ieșirea bobinei este conectată la masă. În acest moment, bobina este conectată în paralel cu condensatorul C2, formând un generator LC (circuit oscilator). Tranzistorul comută de 125.000 de ori pe secundă (125 kHz). Ca rezultat, bobina generează un semnal sinusoidal cu o frecvență de 125 kHz.

Modulul cititor generează un câmp electromagnetic, a cărui energie este utilizată pentru alimentarea cheii RFID. Transmiterea energiei între cheia RFID și cititor se bazează pe principiul de funcționare al unui transformator convențional: înfășurarea primară a transformatorului creează un EMF de inducție în toate celelalte înfășurări. Pentru cazul nostru, bobina primară este bobina cititorului, iar bobina secundară este bobina cheii RFID. Elementele D1, C3 și R5 formează un demodulator de semnal modulat în amplitudine.

Schimb de date între cheie și cititor

Procesul de schimb de date între o cheie RFID și un cititor este foarte simplu, dar gândit până la cel mai mic detaliu. Dacă cheia RFID ar trebui să transmită un jurnal. 0, apoi conectează o anumită „sarcină” la sursa sa de alimentare, ceea ce necesită mai multă energie transmisă de cititor. Acest lucru va provoca o scădere ușoară de tensiune pe partea cititorului; acest nivel este perceput de cititor ca un jurnal. 0

O cheie RFID transmite în general 64 de biți de date în următoarea secvență (Figura 6):

  1. Primii 9 biți (întotdeauna log. 1) sunt biți de pornire care indică începutul schimbului de date.
  2. 4 biți sunt cei mai puțin semnificativi biți ai numărului de identificare a utilizatorului (D00 - D03).
  3. 1 bit (P0) - bitul de paritate al celor 4 biți anteriori.
  4. 4 biți - cei mai importanți biți ai numărului de identificare a utilizatorului (D04 - D07).
  5. Bit 1 (P1) este bitul de paritate al celor 4 biți anteriori.
  6. 4 biți - prima parte a numărului de serie de 32 de biți al cheii RFID (D08 - D11).
  7. 1 bit (P2) - bit de paritate al celor 4 biți anteriori.
  8. În continuare, sunt transmise următoarele grupuri de 4 biți ai numărului de serie al cheii, fiecare cu un bit de paritate.
  9. Apoi se transmit 4 biți din paritatea coloanelor de biți. De exemplu, bitul de paritate PC0 pentru biții D00, D04, D08, D12, D16, D20, D24, D28, D32 și D36.
  10. 1 bit de oprire.

Date (secvență de 64 de biți) transmise prin cheia RFID.

Integritatea datelor este verificată de microcontroler prin calcularea biților de paritate pentru fiecare rând și coloană și comparând cu datele primite de la cheia RFID.

Design bobine.

Un inductor fără cadru într-un dispozitiv de citire cu diametrul de 120 mm este înfășurat cu un fir cu diametrul de 0,5 mm și are 58 de spire, cu toate acestea, autorul recomandă să adăugați încă 2 - 3 spire la înfășurare. Pentru a îmbunătăți eficiența bobinei și pentru a crește distanța de citire a datelor cheii RFID, este necesar să calibrați circuitul oscilator. Dacă, prin conectarea osciloscopului la punctul de conectare al lui R1 și L1, vedeți vârfuri distorsionate pe ecranul dispozitivului (Figura 7), atunci aceasta indică necesitatea de a calibra bobina L1.

Distorsiunea semnalului generat de bobina L1 indică necesitatea calibrării.

Calibrarea poate fi efectuată în două moduri după alimentarea modulului.

  1. Conectați sondele osciloscopului la joncțiunea dintre R1 și L1 și, prin creșterea sau scăderea numărului de spire ale bobinei L1, obțineți eliminarea distorsiunii semnalului.
  2. Dacă nu aveți un osciloscop, aduceți încet cheia RFID pe bobină până când cheia este recunoscută, ceea ce este indicat printr-un bip. Dacă cheia este determinată de la o distanță de 2 cm, atunci este necesar să adăugați / ștergeți mai multe ture și apoi să verificați din nou distanța de la care cheia poate fi citită cu încredere. Cu ajutorul calibrării, autorul schemei a realizat o citire sigură a cheii RFID de la 3 cm.

La programarea microcontrolerului, este necesar să setați următoarea configurație a Fuse-bits: octet mic 0x7A și octet mare 0x1F (microcontrolerul funcționează de la generatorul de ceas de 9,6 MHz încorporat, divizorul de frecvență de ceas cu 8 este dezactivat). Codul programului ocupă 1024 de octeți în memoria microcontrolerului - este folosită toată memoria disponibilă a microcontrolerului ATtiny13. Prin urmare, în viitor, atunci când extindeți funcționalitatea cititorului, este mai bine să utilizați un alt microcontroler AVR cu 8 pini, de exemplu, ATtiny85.

Descărcări:

Cod sursă al programului microcontrolerului (AVRStudio 6), firmware (.hex) și diagramă de circuit -

S-a vorbit mult în ultimul timp despre utilizarea etichetelor RFID, discuțiile sugerând chiar că, dacă se dorește, oamenii cu anumite abilități de calculator pot accesa sistemul de acasă și pot obține informații complete despre lucrurile tale.

Am hotărât să-mi dau seama singură această tehnologie. Pentru a face acest lucru, am comandat componentele necesare și am asamblat un cititor RFID cu propriile mâini.

În acest articol, vă voi arăta cum să asamblați un cititor RFID funcțional.

Pasul 1


Într-unul dintre articolele citite, autorul spunea că cititorul său mobil RFID a funcționat doar la 13,56 MHz (undă scurtă), dar nu a funcționat la 1,25 kHz (lungime de undă sub banda AM). Am făcut un cititor care funcționează la frecvența standard de 125 kHz din industrie. Aceasta înseamnă că cititorul meu are nevoie de o combinație diferită de antenă și condensator. Diagrama de bază și formula de bază ilustrează acest lucru. Pentru a obține valoarea dorită, selectați formula corespunzătoare, introduceți valorile și utilizați calculatorul pentru a obține rezultatul.

Lista componentelor:

  • Sârmă subțire de aproximativ 12 m, calibrul 22 până la 30 (am folosit calibrul 30).
  • Orice dioda (eu am folosit rosu).
  • Un condensator de 0,005 μF sau două condensatoare de disc de 0,01 μF în serie.
  • 2-5 condensatoare disc 100 pF.
  • Baza bobinei (orice bază, diametrul bobinei trebuie să fie de 10 cm).
  • Placă de circuit imprimat pentru prototipare, pentru ansambluri de probă.
  • Placă de circuit imprimat pentru asamblare îngrijită și precisă.
  • Posibilitatea de a accesa cititorul pentru a lua citiri de la receptor.
  • Nu sunt necesare baterii, deoarece receptorul este alimentat wireless de la cititor.

Pasul 2



În primul rând, am înfășurat firul pe o bază de aproximativ 10 cm în diametru (sunt mai mult decât sigur că câțiva centimetri, plus sau minus, nu vor juca un rol).

Cu firul înfășurat în jurul bazei, am comparat bobina cu alte bobine pe care le aveam deja. Așa că am estimat aproximativ inductanța noii bobine - am primit aproximativ 330 μH.

Am înlocuit 330 μH în formulă și rezultatul obținut a însemnat că această bobină avea nevoie de un condensator de 0,005 μF, astfel încât perechea bobină-condensator „a rezonat” la o frecvență de 125 kHz și a existat suficient curent pentru a alimenta dioda.

Înainte de a continua cu lipirea, am făcut un asamblare preliminară pe o placă.

Pasul 3


Pe placa, mai întâi conectăm bobina, dioda și două condensatoare disc de 0,01 μF (conectate în serie între ele, apoi în paralel cu dioda, care dă o capacitate totală de 0,005 μF (5000 pF)), apoi pornim cititorul RFID. Când cititorul este poziționat la o distanță de aproximativ 10 cm de bobină, dioda este aprinsă. Dioda arde foarte puternic la o distanță de aproximativ 1,5 cm.

Apoi am adăugat un condensator de 100pF (0,0001uF) peste circuit, ceea ce a mărit raza de acțiune a cititorului. Apoi am aflat că prin adăugarea unui al doilea condensator de același fel în paralel la întregul circuit, aș crește și mai mult raza de acțiune a cititorului. Prin contrast, adăugarea unui al treilea condensator a redus această rază. Astfel, am stabilit că 5200pF este optim pentru bobina mea (ilustrarea celei de-a treia încercări).

Receptorul meu ar fi declanșat 10 cm folosind un condensator de 0,005 uF în paralel cu bobina și dioda, dar placa de laborator a permis condensatori suplimentari și astfel a mărit distanța la 12,5 cm.

Pasul 4




Fotografiile arată clar cum luminozitatea strălucirii diodei crește pe măsură ce bobina se apropie de cititor.
Acest dispozitiv mic funcționează la 125 kHz. Este destul de simplu să-l asamblați folosind materiale mai mult sau mai puțin potrivite.

Pasul 5

Toate componentele folosite în asamblarea prototipului pe placa de breadboard le-am asamblat pe o placă de circuit imprimat și le-am lipit. Apoi am lipit circuitul de bobină astfel încât întregul dispozitiv să poată fi mutat din loc în loc doar în mână, fără fire sau conexiuni inutile. Dispozitivul funcționează corect. Mă așteptam să răspundă tuturor cititoarelor RFID în 7-12 cm și să funcționeze la 125 kHz.

Pasul 6

Deoarece știu că luminiscența maximă a diodei la o anumită distanță se realizează cu o capacitate de 0,0052 μF, am introdus această valoare împreună cu lungimea de undă de 125 kHz în formula corespunzătoare și am obținut o valoare a inductanței de 312 μH, în loc de 330. μH mă așteptam.

Calculele matematice nu joacă un rol important aici, deși datorită lor am calculat capacitatea condensatoarelor potrivite pentru bobina mea. Acest lucru, desigur, ar putea fi descoperit prin încercare și eroare, dar ar dura mult timp.

Top articole similare