Агуулгын хүснэгт:
- Алхам 1: Бараа авах
- Алхам 2: эд ангиудыг холбоно уу
- Алхам 3: Кодыг бичнэ үү
- Алхам 4: Код ба салах ёс гүйцэтгээрэй
Видео: UR кодтой AVR/Arduino RFID уншигч нь C: 4 алхамтай
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:06
RFID бол тооллогын системээс таних тэмдгийн ID систем хүртэл хаа сайгүй олддог галзуу зүйл юм. Хэрэв та хэзээ нэгэн цагт их дэлгүүрт орж, оролт, гаралтын цэгүүд дээр металл илрүүлэгчтэй зүйлүүдийг үзэж байсан бол та RFID-ийг үзсэн болно. RFID -ийг тохируулах талаар сайн мэдээлэл олж авах хэд хэдэн газар байдаг бөгөөд энэхүү зааварчилгаа нь цуваа оролтыг уншихад шаардлагатай C кодыг онцолж, AVR дээр Parallax RFID уншигч (Serial TTL) суулгахад чиглэгддэг. Код нь С хэл дээр байгаа бөгөөд гадны номын санг ашигладаггүй. Үнэн хэрэгтээ, энэ нь UART ашиглахгүйгээр 2400 бадыг шууд ярьдаг бөгөөд RFID уншигчийн дамжуулах хурдыг синхрончилж, холбогдсон дижитал зүүгээ уншдаг. Сэтгэл хөдөлсөн үү? Би ч бас.
Алхам 1: Бараа авах
Танд дараах хэсгүүдийн жагсаалт хэрэгтэй болно.
- RFID уншигч (Parallax #28140 $ 39.99)
- RFID хаяг (Parallax #32397 $ 0.99)
- AVR эсвэл Arduino клон (хэрэв та хувьцааны AVR ашигладаг бол танд max232, 5 x 1uF конденсатор, DE9 холбогч хэрэгтэй болно)
- Гагнуургүй талхны хавтан
Нэмэлт
- 4 байрлалын толгой
- Утас
(мөн max232 гэх мэт хаягийн мэдээллийг дамжуулах) Та RS232 -ээр хаягийн өгөгдлийг илгээхийн оронд дуртай LCD дэлгэцээ холбож болно.
Алхам 2: эд ангиудыг холбоно уу
Аливаа зүйлийн техник хангамжийн тал нь нэлээд хялбар байдаг. Би RFID уншигчийг талхны тавцан дээр шууд оруулахын оронд хурдан кабель хийхээр шийдсэн тул RFID уншигчаа арай илүү сайн хөдөлгөж чадсан юм. Үүний тулд би хэвтэж байсан эмэгтэй залгуурын толгойн туузнаас 4 байрлалыг таслаж, гурван утсаар гагнав. Цахилгаан соронзон хальсны холбогчийг холбосон RFID уншигч нь 4 холболттой.
- Vcc
- ИДЭВХЖҮҮЛЭХ
- ГАРАХ
- Gnd
Таны таамаглаж байсанчлан Vcc -ийг +5V, Gnd -ийг газардуул. RFID уншигч маш их эрчим хүч зарцуулдаг тул та ИНДЭВХ зүүг унтрааж, өөр өөр интервалтайгаар асаах боломжтой. Би үүнийг үргэлжлүүлэхийг л сонгосон. Урвуу байрлалтай тул идэвхжүүлэхийн тулд та үүнийг бага татна. Эсвэл та үүнийг газардуулгатай холбож болно. Хэрэв би шийдсэн бол идэвхжүүлэх/идэвхгүй болгох сонголтуудыг өгөхийн тулд үүнийг PIND3 -тай холбосон. OUT пин бол уншигч шошго уншсаны дараа серийн өгөгдлөө илгээдэг газар юм. Би үүнийг PIND -тэй холбосон 2. Параллаксын ертөнцөд улаан гэдэг нь явах гэсэн утгатай. Өөрөөр хэлбэл, ногоон LED нь тухайн төхөөрөмж идэвхгүй, идэвхгүй байгааг илтгэдэг бол улаан LED нь уг төхөөрөмж идэвхжсэн гэсэн үг юм. * мөрөө хавчих* Зураг руу явах.
Алхам 3: Кодыг бичнэ үү
RFID уншигчаас өгөгдлийг уншихын тулд та шошго хэзээ илгээгдсэнийг мэдэж, өгөгдлийг цуваа портоос татаж аваад хаа нэг газар илгээх хэрэгтэй.
RFID уншигчийн мэдээллийн формат
Parallax RFID уншигч нь өгөгдлийг тогтмол, мөстлөгийн хурдаар 2400 бодын хурдтай илгээдэг. RFID хаяг нь 10 байт юм. Алдаа илрүүлэх/залруулах боломжийг олгохын тулд уншигчийг санамсаргүй дуу чимээнээс унтраах боломжтой тул 10 байтын RFID нь илгээмжийг эхлүүлэх, зогсоох замаар хязгаарлагддаг. Эхлэх харуул нь шугамын тэжээл (0x0A), зогсолтын хамгаалалт нь тэрэг буцах (0x0D) юм. Энэ нь иймэрхүү харагдаж байна:
[Харуулын эхлэл | Байт 1 | Байт 2 | Байт 3 | Байт 4 | Байт 5 | Байт 6 | Байт 7 | Байт 8 | Байт 9 | Байт 10 | Харуул хамгаалалтыг зогсоо]Эдгээр нь үндсэн гурван алхам юм.
Шошго хэзээ ирснийг мэдэх
Би AVR дээр Pin Change Interrupt -ийг ашигласан бөгөөд энэ нь хянагдсан зүү дээр өөрчлөлт гарсан тухай firmware -д мэдээлдэг. Үүний тулд AVR -ийг тохируулах нь хялбар бөгөөд тугийг тохируулах, MCU -д аль зүүгээ хянахыг хүсч байгаагаа хэлэх, дэлхийн тасалдлын битийг тохируулах шаардлагатай. PCINT -ийг тохируулах
BSET (PCICR, PCIE2); // зүү өөрчлөх тасалдлын хяналтын бүртгэл pcie2 BSET (PCMSK2, PCINT18); // PCINT18 (PD2) BSET (SREG, 7) -д зүү солих тасалдлыг идэвхжүүлэх; // SREG I-bit-ийг тохируулна ууТа өөрийн ISR -ийг богино байлгахыг хүсч байна, ингэснээр миний тасалдлын вектор дээр би байтыг бүхэлд нь, бага багаар уншиж, дэлхийн тогтворгүй тэмдэгт массивт хадгална. Тасалдал бүрт би дараахь зүйлийг хийдэг.
- Намайг эхлүүлж байгаа эсэхийг шалгаарай
- Цагийг дунд импульс дээр 2400 bod (RFID уншигчийн хурд) дээр төвлөрүүл.
- Эхлэх битийг алгасаад дараагийн битийн дунд хүртэл түр зогсооно уу
- Бит бүрийг тэмдэггүй бүхэл тоо болгон уншина уу
- Надад 8 бит байгаа бол байтыг тэмдэгтийн массивт оруулна уу
- Намайг 12 байт цуглуулахад алдаа илрүүлэхийн тулд шошгыг уншсаныг MCU -д мэдэгдээрэй.
Би Дэвид Меллисийн кодыг туршилтаар тогтоосон цуврал горимд саатал гаргаснаар өөрчилсөн Микал Хартын SoftSerial кодыг өөрчилсөн.
RS232 гаралтыг задлан шинжлэх
PCINT горим нь RFID уншигчаас RS232 гаралтыг унших кодыг агуулдаг. Би 12 байт (10 байтын RFID дээр нэмэлт дохиолол) авахдаа bDataReady-ийг 1 болгож, үндсэн циклд өгөгдлийг боловсруулж, харуулах боломжийг олгодог.
// энэ бол тасалдлын зохицуулагчISR (PCINT2_vect) {if (BCHK (PIND, RFID_IN)) // Эхлэх бит бага өгөөж өгдөг; uint8_t бит = 0; TunedDelay (CENTER_DELAY); // (uint8_t x = 0; x <8; x ++) {TunedDelay (INTRABIT_DELAY); // жаахан алгасаарай, ахаа … хэрэв (BCHK (PIND, RFID_IN)) BSET (бит, x); өөр BCLR (бит, x); } TunedDelay (INTRABIT_DELAY); // алгасах зогсоох бит RFID_tag [rxIdx] = бит; ++ rxIdx; хэрэв (rxIdx == 12) bDataReady = 1;}
Өөрийн хаягийг харуулах
Main () хэсэгт for (ever) давталтын явцад би bDataReady -ийг тохируулсан эсэхийг шалгадаг бөгөөд энэ нь RFID бүтцийг бүхэлд нь илгээсэн болохыг илтгэнэ. Дараа нь энэ нь хүчинтэй шошго эсэхийг шалгаарай (өөрөөр хэлбэл эхлэх ба зогсоох тэмдэгтүүд нь 0x0A ба 0x0D байна), хэрэв тийм бол би үүнийг RS232 холболтоо илгээдэг.
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 ("\ nБайтыг зогсоох:"); 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)); хэрэв (x! = 10) USART_tx (& apos: & apos); } USART_tx_S ("\ n"); } rxIdx = 0; bDataReady = 0; }}
Алхам 4: Код ба салах ёс гүйцэтгээрэй
Энэ хуудас нь холбогдох код бүхий зип файлыг агуулдаг. Үүнийг AVR Studio 4.16 дээр бичсэн болно. Хэрэв та програмистын тэмдэглэлийн дэвтэр, хиртэлт, эсвэл vi (эсвэл өөр зүйл) ашигладаг бол итгэмжлэгдсэн Makefile файлыг директор руу хуулж, эдгээр файлуудыг эх мөрөнд нэмэх шаардлагатай болно. 16MHz MCU. Хэрэв та өөр цагийн давтамжтай ажиллаж байгаа бол туршилтын хувьд хурдны импульс дээр төвлөрүүлэх хугацааг тохируулах шаардлагатай болно. Энэ заавар танд ямар нэгэн байдлаар тусалсан гэж найдаж байна. Хэрэв танд үүнийг хэрхэн сайжруулах талаар санал байвал надад хэлэхээс бүү эргэлзээрэй!
Зөвлөмж болгож буй:
Мэдрэгчтэй дэлгэц бүхий ESP32 дээр суурилсан RFID уншигч: 7 алхам
Мэдрэгчтэй дэлгэц бүхий ESP32 дээр суурилсан RFID уншигч: Энэ хэсэгт би ESP32 DEV KIT C модуль, RC-522 дээр суурилсан уншигч компьютер, AZ-Touch ESP хэрэгслийг ашиглан TFT гаралттай хананд бэхлэх энгийн RFID уншигч хэрхэн бүтээхийг зааж өгөх болно. Та энэ уншигчийг хаалга руу нэвтрэх эсвэл халдлага үйлдэх зорилгоор ашиглаж болно
TFT дэлгэцтэй Arduino RFID уншигч: 7 алхам
TFT дэлгэцтэй Arduino RFID уншигч: TFT дэлгэцтэй, хананд бэхлэх RFID уншигчийг хэрхэн яаж загварчлах талаар би танд зааварчилгаа өгөх болно. Таны сонгосон MKR болон манай Ар
4x4 электрон шатрын самбар/ Arduino Mega + RFID уншигч + танхимын эффект мэдрэгчтэй: 7 алхам
4x4 электрон шатрын самбарын демо/ Arduino Mega + RFID уншигч + танхимын эффект мэдрэгчтэй: Сайн байна уу, би Тахир Мириев, Туркийн Анкара/ Ойрхи Дорнодын Техникийн Их Сургуулийг 2018 онд төгссөн. Би хэрэглээний математикийн чиглэлээр мэргэшсэн боловч би үргэлж юм хийх дуртай байсан
Arduino RFID UHF уншигч: 10 алхам
Arduino RFID UHF уншигч: Энэхүү зааварчилгааны зорилго нь UHF RFID уншигчтай микроконтроллерийн интерфэйсийг ойлгоход хялбар жишээг өгөх явдал юм. Бидний ашиглаж буй уншигч бол Thinkify TR-265 юм. Энэхүү жагсаал нь тус бүрдээ өвөрмөц үнэмлэх бүхий гурван UHF хаягаас бүрдэнэ
Arduino -тэй MFRC522 RFID уншигч ашиглах: 5 алхам
Arduino -той MFRC522 RFID уншигч ашиглана уу: Сайн байна уу! Би танд гайхалтай, хийхэд хялбар түлхүүр карт эсвэл түлхүүрийн сканнер хэрхэн хийхийг зааж өгөх болно. Хэрэв танд RFID MFRC522 модуль, гэрэл, резистор, утас, arduino uno, талхны самбар, 9в батерей (заавал биш) байгаа бол та сэрүүн байх болно