Satura rādītājs:

Bezvadu sakari, izmantojot lētus 433MHz RF moduļus un Pic mikrokontrollerus. 2. daļa: 4 soļi (ar attēliem)
Bezvadu sakari, izmantojot lētus 433MHz RF moduļus un Pic mikrokontrollerus. 2. daļa: 4 soļi (ar attēliem)

Video: Bezvadu sakari, izmantojot lētus 433MHz RF moduļus un Pic mikrokontrollerus. 2. daļa: 4 soļi (ar attēliem)

Video: Bezvadu sakari, izmantojot lētus 433MHz RF moduļus un Pic mikrokontrollerus. 2. daļa: 4 soļi (ar attēliem)
Video: Обзор и конфигурация модуля EBYTE LoRa 2024, Jūlijs
Anonim
Bezvadu sakari, izmantojot lētus 433 MHz RF moduļus un Pic mikrokontrollerus. 2. daļa
Bezvadu sakari, izmantojot lētus 433 MHz RF moduļus un Pic mikrokontrollerus. 2. daļa

Šīs pamācības pirmajā daļā es parādīju, kā programmēt PIC12F1822, izmantojot MPLAB IDE un XC8 kompilatoru, lai bezvadu režīmā nosūtītu vienkāršu virkni, izmantojot lētus TX/RX 433 MHz moduļus.

Uztvērēja modulis tika savienots ar datoru, izmantojot USB un UART TTL kabeļa adapteri, un saņemtie dati tika parādīti RealTerm. Sakari tika veikti ar 1200 baudām, un maksimālais sasniegtais diapazons bija aptuveni 20 metri caur sienām. Mani testi parādīja, ka lietojumprogrammām, kurās nav nepieciešams liels datu pārraides ātrums un liels attālums, kā arī nepārtrauktai pārraidei, šie moduļi darbojās ārkārtīgi labi.

Šī projekta otrā daļa parāda, kā uztvērējam pievienot PIC16F887 mikrokontrolleru un 16 × 2 rakstzīmju LCD moduli. Turklāt raidītājā tiek ievērots vienkāršs protokols, pievienojot dažus priekšparauga baitus. Šie baiti ir nepieciešami, lai RX modulis pielāgotu savu pieaugumu pirms faktiskās lietderīgās slodzes iegūšanas. Uztvērēja pusē PIC ir atbildīgs par LCD ekrānā parādīto datu iegūšanu un apstiprināšanu.

1. darbība: raidītāja modifikācijas

Raidītāja modifikācijas
Raidītāja modifikācijas
Raidītāja modifikācijas
Raidītāja modifikācijas
Raidītāja modifikācijas
Raidītāja modifikācijas

Pirmajā daļā raidītājs ik pēc dažām ms nosūtīja vienkāršu virkni, izmantojot astoņus datu bitus, sākumu un apturēšanas bitu ar ātrumu 1200 biti sekundē. Tā kā pārraide bija gandrīz nepārtraukta, uztvērējam nebija grūtību pielāgot ieguvumu saņemtajiem datiem. Otrajā daļā programmaparatūra tiek modificēta tā, lai pārraide tiktu veikta ik pēc 2,3 sekundēm. Tas tiek panākts, izmantojot sargsuņa taimera pārtraukumu (iestatīts uz 2,3 s), lai pamodinātu mikrokontrolleri, kas tiek ieslēgts miega režīmā starp katru pārraidi.

Lai uztvērējam būtu laiks precizēt savu ieguvumu, pirms reāliem datiem tiek nosūtīti daži preambulas baiti ar īsu LO laiku "(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa)". Pēc tam kravnesība tiek apzīmēta ar sākuma & zīmi un pieturas punktu*.

Tādējādi vienkāršais protokols ir aprakstīts šādi:

(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa) un labdien InstWorld!*

Turklāt starp RF moduļa V+ un GND ir pievienots 10uF atvienojošais tantala kondensators, lai atbrīvotos no pulsācijas, ko izraisa līdzstrāvas pastiprināšanas modulis.

Bodu ātrums palika nemainīgs, tomēr mani testi parādīja, ka arī ar 2400 bodu pārraide bija efektīva.

2. darbība: uztvērēja modifikācijas: PIC16F887 un HD44780 LCD pievienošana

Uztvērēja modifikācijas: pievienojot PIC16F887 un HD44780 LCD
Uztvērēja modifikācijas: pievienojot PIC16F887 un HD44780 LCD
Uztvērēja modifikācijas: pievienojot PIC16F887 un HD44780 LCD
Uztvērēja modifikācijas: pievienojot PIC16F887 un HD44780 LCD
Uztvērēja modifikācijas: pievienojot PIC16F887 un HD44780 LCD
Uztvērēja modifikācijas: pievienojot PIC16F887 un HD44780 LCD

Uztvērēja dizains tika balstīts uz PIC16F887, bet jūs varat izmantot citu PIC ar nelielām izmaiņām. Savā projektā es izmantoju šo 40 kontaktu μC, jo turpmākajos projektos, kuru pamatā ir šis dizains, man būs vajadzīgas papildu tapas. RF moduļa izeja ir savienota ar UART rx tapu, bet 16x2 rakstzīmju LCD (HD44780) ir savienots caur PORTB tapām b2-b7, lai parādītu saņemtos datus.

Tāpat kā 1. daļā, saņemtie dati tiek parādīti arī vietnē RealTerm. Tas tiek panākts, izmantojot UART tx tapu, kas ir savienots ar datoru, izmantojot USB - UART TTL kabeļa adapteri.

Aplūkojot programmaparatūru, kad notiek UART pārtraukšana, programma pārbauda, vai saņemtais baits ir sākuma baits ('&'). Ja jā, tas sāk ierakstīt nākamos baitus, līdz tiek fiksēts pieturas baits ('*'). Tiklīdz viss teikums ir iegūts un tas atbilst iepriekš aprakstītajam vienkāršajam protokolam, tas tiek nosūtīts uz LCD ekrānu, kā arī uz UART tx portu.

Pirms sākuma baita saņemšanas uztvērējs jau ir pielāgojis savu pastiprinājumu, izmantojot iepriekšējos preambulas baitus. Tie ir ļoti svarīgi uztvērēja nevainojamai darbībai. Tiek veikta vienkārša pārsniegšanas un kadrēšanas kļūdu pārbaude, taču tā ir tikai pamata UART kļūdu apstrādes ieviešana.

Aparatūras ziņā uztvērējam ir nepieciešamas dažas detaļas:

1 x PIC16F887

1 x HD44780

1 x RF Rx modulis 433Mhz

1 x 10 μF tantala kondensators (atvienošana)

1 x 10 K trimmeris (LCD fonta spilgtums)

1 x 220 Ω 1/4 W rezistors (LCD apgaismojums)

1 x 1 KΩ 1/4 W

1 x antena 433Mhz, 3dbi

Praksē uztvertā ierīce darbojās ārkārtīgi labi diapazonā līdz 20 metriem pa sienām.

3. darbība: dažas atsauces…

Papildus oficiālajai Microschip vietnei tīmeklī ir daudz emuāru, kas sniedz padomus par PIC programmēšanu un problēmu novēršanu. Man ļoti noderēja sekojošais:

www.romanblack.com/

0xee.net/

www.ibrahimlabs.com/

picforum.ric323.com/

4. solis. Secinājumi un turpmākais darbs

Es ceru, ka šī pamācība palīdzēja jums saprast RF moduļu un Pic mikrokontrolleru izmantošanu. Jūs varat pielāgot programmaparatūru savām vajadzībām un iekļaut CRC un šifrēšanu. Ja vēlaties padarīt savu dizainu vēl sarežģītāku, varat izmantot Microschip Keeloq tehnoloģiju. Ja jūsu lietojumprogrammai nepieciešami divvirzienu dati, jums abos mikrokontrolleros ir jābūt TX/RX pārim, vai arī varat izmantot sarežģītāku raiduztvērēju. moduļi. Tomēr, izmantojot šāda veida lētus 433MHz moduļus, var sasniegt tikai daļēji divpusēju komunikāciju. Turklāt, lai padarītu saziņu uzticamāku, starp TX un RX ir nepieciešama rokasspiediena forma.

Nākamajā pamācībā es parādīšu praktisku pielietojumu, kurā raidītājam ir pievienots vides sensors ar temperatūru, barometrisko spiedienu un mitrumu. Šeit pārsūtītie dati ietvers crc un tiem būs pamata šifrēšana.

Sensors izmantos PIC12F1822 i2c portu, savukārt raidītāja un uztvērēja ieviešana tiks atklāta, izmantojot shēmas un PCB failus. Paldies, ka lasījāt mani!

Ieteicams: