Orodha ya maudhui:
- Hatua ya 1: Pata Bidhaa
- Hatua ya 2: Unganisha Sehemu
- Hatua ya 3: Andika Nambari
- Hatua ya 4: Kanuni na Kuaga
Video: Msomaji wa AVR / Arduino RFID Na Msimbo wa UART katika C: 4 Hatua
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:56
RFID ni craze, inayopatikana kila mahali - kutoka kwa mifumo ya hesabu hadi mifumo ya kitambulisho cha beji. Ikiwa umewahi kwenda kwenye duka la idara na kutembea kupitia vitu vinavyoonekana kama chuma-detector kwenye sehemu ya kuingilia / kutoka, basi umeona RFID. Kuna maeneo kadhaa ya kupata habari nzuri juu ya kuanzisha RFID, na hii inazingatia kusanikisha msomaji wa Parallax RFID (Serial TTL) kwenye AVR, na kusisitiza nambari ya C inayohitajika kusoma uingizaji wa serial. Nambari iko katika C na haitumii maktaba yoyote ya nje. Kwa kweli, inazungumza baud 2400 moja kwa moja bila matumizi ya UART kwa kusawazisha na kiwango cha baud cha msomaji wa RFID na kusoma pini ya dijiti ambayo imeunganishwa nayo. Msisimko? Mimi pia.
Hatua ya 1: Pata Bidhaa
Utahitaji orodha ifuatayo ya sehemu:
- Msomaji wa RFID (Parallax # 28140 $ 39.99)
- Lebo ya RFID (Parallax # 32397 $ 0.99)
- Clone ya AVR au Arduino (ikiwa unatumia hisa ya AVR, utahitaji pia capacitors max232, 5 x 1uF, na kiunganishi cha DE9)
- Bodi ya mkate isiyo na waya
Hiari
- Kichwa cha nafasi 4
- Waya
(na max232 nk kwa mawasiliano ya habari ya lebo) Unaweza pia kuunganisha skrini yako ya LCD unayopenda badala ya kutuma data ya lebo kupitia RS232.
Hatua ya 2: Unganisha Sehemu
Upande wa vifaa ni rahisi sana. Badala ya kubandika msomaji wangu wa RFID moja kwa moja kwenye ubao wangu wa mkate nilichagua kutengeneza kebo haraka ili niweze kusogeza msomaji wa RFID karibu kidogo. Kwa hilo, nilikata tu nafasi 4 kutoka kwa ukanda wa kichwa cha tundu la kike nililokuwa nimelala juu na kuuzwa kwa waya tatu. Mkanda wa umeme ulikamilisha kiunganishi cha ghetto. Msomaji wa RFID ana unganisho 4:
- Vcc
- UWEZESHA
- OUT
- Ndugu
Kama unavyodhani, unganisha Vcc na + 5V na Gnd chini. Kwa sababu msomaji wa RFID hutumia nguvu nyingi, unaweza kubana pini INAYEWEZA kuizima na kuwaka kwa vipindi anuwai. Nilichagua tu kuendelea. Kwa sababu imegeuzwa, unaivuta CHINI ili kuiwasha. Vinginevyo, unaweza kuiunganisha na ardhi. Niliiunganisha na PIND3 kunipa chaguzi za kuwezesha / kulemaza ikiwa niliamua. Pini ya OUT ndio ambapo msomaji hutuma data yake ya serial baada ya kusoma lebo. Niliiunganisha na PIND2. Kumbuka, katika Ulimwengu wa Parallax, nyekundu ina maana kwenda. Hiyo ni, LED ya kijani inamaanisha kuwa kitengo hakifanyi kazi na inafanya kazi, wakati LED nyekundu inamaanisha kuwa kitengo kinafanya kazi. * shrug * Nenda takwimu.
Hatua ya 3: Andika Nambari
Ili kusoma data kutoka kwa msomaji wa RFID, lazima ujue wakati lebo imewasilishwa, vuta data kutoka kwenye bandari ya serial, kisha upeleke mahali.
Fomati ya Takwimu ya Msomaji wa RFID
Msomaji wa Parallax RFID hutuma data kwa kasi iliyowekwa, glacial ya baud 2400. Lebo ya RFID ni ka 10. Ili kuruhusu kugundua / kusahihisha makosa, kwani msomaji anaweza kutolewa kutoka kwa kelele za nasibu, 10-byte RFID imefungwa na mwanzo na simamisha sentinel. Sentinel ya kuanza ni kulisha laini (0x0A) na kituo cha kuacha ni kurudi kwa gari (0x0D). Inaonekana kama hii:
[Anza Sentinel | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 | Byte 7 | Byte 8 | Byte 9 | Byte 10 | Acha Sentineli]Hizi ni hatua tatu za msingi.
Jua wakati lebo imewasilishwa
Nilitumia Usumbufu wa Kubadilisha Pin kwenye AVR ambayo inarifu firmware kwamba mabadiliko yametokea kwenye pini inayofuatiliwa. Kusanidi AVR kwa hii ni rahisi na inahitaji kuweka bendera, kuambia MCU ni pini gani unayotaka kufuatilia, na kuweka kiwango cha kukatiza cha ulimwengu. Sanidi PCINT
BSET (PCICR, PCIE2); // mabadiliko ya pini usumbue rejista ya kudhibiti pcie2 BSET (PCMSK2, PCINT18); // kuwezesha usumbufu wa mabadiliko ya pini kwa PCINT18 (PD2) BSET (SREG, 7); // Weka SREG I-bitUnataka kuweka ISR yako fupi kwa hivyo katika vector yangu ya kukatiza nimesoma kaiti nzima, kidogo kidogo, na uhifadhi baiti katika safu ya tabia tete ya ulimwengu. Ninafanya yafuatayo kila kukatiza:
- Angalia kuhakikisha kuwa nimeanza kidogo
- Weka muda kwenye mapigo ya kati saa 2400 baud (kasi ya msomaji wa RFID)
- Ruka mwanzo kidogo na usitishe katikati ya kitufe kinachofuata
- Soma kila kidogo kwa nambari isiyosainiwa
- Wakati ninayo bits 8, weka baiti katika safu ya tabia
- Wakati nimekusanya ka 12, wacha MCU ijue lebo hiyo imesomwa kwa kugundua makosa.
Nilibadilisha nambari ya SoftSerial kutoka kwa Mikal Hart ambaye alibadilisha nambari kutoka kwa David Mellis kwa ucheleweshaji uliojaribiwa kwa majaribio katika safu za kawaida.
Chambua Pato la RS232
Utaratibu wa PCINT una nambari ya kusoma pato la RS232 kutoka kwa msomaji wa RFID. Wakati nimepata kaiti 12 (10-byte RFID pamoja na walinzi) nimeweka bDataReady kwa 1 na acha kitanzi kuu kifanye data na kuionyesha.
// huyu ndiye mshughulikiaji wa usumbufuISR (PCINT2_vect) {ikiwa (BCHK (PIND, RFID_IN)) // Anza kidogo inarudi chini; uint8_t kidogo = 0; TunedDelay (CENTER_DELAY); // Kituo cha kuanza kidogo kwa (uint8_t x = 0; x <8; x ++) {TunedDelay (INTRABIT_DELAY); // ruka kidogo, kaka… ikiwa (BCHK (PIND, RFID_IN)) BSET (bit, x); mwingine BCLR (kidogo, x); } TunedDelay (INTRABIT_DELAY); // ruka kuacha kidogo RFID_tag [rxIdx] = kidogo; ++ rxIdx; ikiwa (rxIdx == 12) bDataReady = 1;}
Onyesha lebo yako
Katika kuu (), wakati wa kitanzi cha (milele), ninaangalia kuona ikiwa bDataReady imewekwa, kuashiria kwamba muundo wote wa RFID umetumwa. Kisha ninaangalia ikiwa ni lebo halali (yaani wahusika wa kuanza na kuacha ni 0x0A na 0x0D, mtawaliwa), na ikiwa ni hivyo, ninatuma unganisho langu la RS232.
kwa (;;) {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 Stop byte:"); USART_tx_S (itoa (RFID_tag [11], & ibuff [0], 16)); # endif ikiwa (ValidTag ()) {USART_tx_S ("\ nRFID Tag:"); kwa (uint8_t x = 1; x <11; x ++) {USART_tx_S (itoa (RFID_tag [x], ibuff, 16)); ikiwa (x! = 10) USART_tx (& apos: & apos); } USART_tx_S ("\ n"); } rxIdx = 0; bDataReady = 0; }}
Hatua ya 4: Kanuni na Kuaga
Ukurasa huu una faili ya zip iliyo na nambari inayofaa. Iliandikwa katika Studio ya AVR 4.16. Ikiwa unatumia kijarida cha programu, kupatwa au vi (au kitu kingine chochote) utahitaji kunakili Faili ya kuaminika kwenye saraka na uongeze faili hizi kwenye laini ya chanzo. Pia kumbuka, wakati wa sehemu ya usomaji wa serial unategemea 16MHz MCU. Ikiwa unafanya mbio kwa masafa tofauti ya saa, utahitaji kujaribu majaribio ya ucheleweshaji uliowekwa ili kuweka katikati ya mapigo ya kiwango cha baud. Natumahi kufundisha huku kukusaidia kwa njia fulani. Ikiwa una maoni yoyote juu ya jinsi inaweza kuboreshwa usisite kunijulisha!
Ilipendekeza:
Skanai ya Msimbo wa QR Kutumia OpenCV katika Python: Hatua 7
Skanai ya Msimbo wa QR Kutumia OpenCV katika Python: Katika ulimwengu wa leo tunaona nambari ya QR na nambari ya Bar inatumiwa karibu kila mahali kutoka kwa ufungashaji wa bidhaa hadi Malipo ya Mkondoni na sasa-siku tunaona nambari za QR hata kwenye mgahawa kuona menyu. mashaka kwamba ndio fikira kubwa sasa. Lakini umewahi ole
Arduino Kama ISP -- Choma Faili ya Hex katika AVR -- Fuse katika AVR -- Arduino kama Mpangaji: Hatua 10
Arduino Kama ISP || Choma Faili ya Hex katika AVR || Fuse katika AVR || Arduino Kama Mpangaji: ……………………… Tafadhali SUBSCRIBE Kwenye kituo changu cha YouTube kwa video zaidi …….. Nakala hii yote ni kuhusu arduino kama isp. Ikiwa unataka kupakia faili ya hex au ikiwa unataka kuweka fuse yako katika AVR basi hauitaji kununua programu, unaweza kufanya
Kuanza na ESP32 - Kufunga Bodi za ESP32 katika Arduino IDE - Msimbo wa Blink wa ESP32: Hatua 3
Kuanza na ESP32 | Kufunga Bodi za ESP32 katika Arduino IDE | Msimbo wa Blink wa ESP32: Katika mafundisho haya tutaona jinsi ya kuanza kufanya kazi na esp32 na jinsi ya kusanikisha bodi za esp32 kwenye Arduino IDE na tutapanga programu ya esp 32 kutumia nambari ya blink kwa kutumia ideuino ide
Kuanza na Msimbo wa Msimbo wa Kivinjari cha MBlock kwa HyperDuino: Hatua 3
Kuanza na Msimbo wa Msimbo wa Kivinjari cha MBlock kwa HyperDuino: Karibu kwenye mafunzo ya wavuti ya mBlock na HyperDuino. Hii itakuonyesha jinsi ya kuanzisha mBlock na kupakia nambari yako kwa HyperDuino yako. Hii pia itakuonyesha jinsi ya kuunda nambari ya msingi ya gari mahiri pia. Kuanza hebu rukia moja kwa moja
Nafuu zaidi 6 katika 1 Kadi Msomaji Milele: 5 Hatua
Nafuu 6 kati ya 1 Kadi ya Kusoma Kadi: Njia rahisi ya msomaji wa kadi ya ndani ya ECS 6 kati ya 1 inafanya kuwa msomaji wa kadi ya nje wa bei nafuu zaidi niliyopata … Kawaida msomaji huyu wa kadi ya ndani hufanya kazi tu na bodi za mama za ECS lakini madereva yaliyodukuliwa (pamoja baadaye katika kufundisha) wacha mimi