Turinys:

Belaidis ryšys naudojant pigius 433 MHz RF modulius ir „Pic“mikrovaldiklius. 2 dalis: 4 žingsniai (su nuotraukomis)
Belaidis ryšys naudojant pigius 433 MHz RF modulius ir „Pic“mikrovaldiklius. 2 dalis: 4 žingsniai (su nuotraukomis)

Video: Belaidis ryšys naudojant pigius 433 MHz RF modulius ir „Pic“mikrovaldiklius. 2 dalis: 4 žingsniai (su nuotraukomis)

Video: Belaidis ryšys naudojant pigius 433 MHz RF modulius ir „Pic“mikrovaldiklius. 2 dalis: 4 žingsniai (su nuotraukomis)
Video: E. skautų TV I KONKURSAS I Kaip veikia belaidis telefono įkrovimas? 2024, Lapkritis
Anonim
Belaidis ryšys naudojant pigius 433 MHz RF modulius ir „Pic“mikrovaldiklius. 2 dalis
Belaidis ryšys naudojant pigius 433 MHz RF modulius ir „Pic“mikrovaldiklius. 2 dalis

Pirmoje šios instrukcijos dalyje pademonstravau, kaip užprogramuoti PIC12F1822 naudojant MPLAB IDE ir XC8 kompiliatorių, kad būtų galima siųsti paprastą eilutę belaidžiu būdu, naudojant pigius TX/RX 433MHz modulius.

Imtuvo modulis buvo prijungtas prie USB prie UART TTL kabelio adapterio prie kompiuterio, o gauti duomenys buvo rodomi „RealTerm“. Ryšys vyko 1200 baudų greičiu, o didžiausias pasiektas nuotolis buvo apie 20 metrų per sienas. Mano bandymai parodė, kad tokioms programoms, kuriose nereikia didelio duomenų perdavimo greičio ir didelio nuotolio, ir nuolatiniam perdavimui, šie moduliai veikė išskirtinai gerai.

Antrojoje šio projekto dalyje parodyta, kaip prie imtuvo pridėti PIC16F887 mikrovaldiklį ir 16 × 2 simbolių LCD modulį. Be to, siųstuve laikomasi paprasto protokolo, pridedant kelis pavyzdinius baitus. Šie baitai yra būtini, kad RX modulis galėtų sureguliuoti savo pelną prieš gaudamas tikrąją naudingąją apkrovą. Imtuvo pusėje PIC yra atsakingas už LCD ekrane rodomų duomenų gavimą ir patvirtinimą.

1 žingsnis: siųstuvo modifikacijos

Siųstuvo modifikacijos
Siųstuvo modifikacijos
Siųstuvo modifikacijos
Siųstuvo modifikacijos
Siųstuvo modifikacijos
Siųstuvo modifikacijos

Pirmoje dalyje siųstuvas kas kelias ms siuntė paprastą eilutę, naudodamas aštuonis duomenų bitus, pradžią ir sustabdymo bitą 1200 bitų per sekundę greičiu. Kadangi perdavimas buvo beveik nepertraukiamas, imtuvui nekilo jokių sunkumų pritaikant savo pelną pagal gautus duomenis. Antroje dalyje programinė įranga modifikuojama taip, kad perdavimas būtų atliekamas kas 2,3 sekundės. Tai pasiekiama naudojant laikrodžio laikmačio pertrauką (nustatyta 2,3 s), kad pažadintumėte mikrovaldiklį, kuris tarp kiekvieno perdavimo yra įjungtas į miego režimą.

Kad imtuvas turėtų laiko patikslinti savo pelną, prieš faktinius duomenis siunčiami keli preambulės baitai su trumpu LO laiku "(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa)". Tada naudingoji apkrova žymima pradžia „&“ir sustojimu „*“baitu.

Taigi paprastas protokolas aprašomas taip:

(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa) ir sveiki „InstWorld“!*

Be to, tarp RF modulio V+ ir GND pridedamas 10uF atsiejamas tantalo kondensatorius, kad būtų pašalintas bangavimas, kurį sukelia nuolatinės srovės nuolatinės srovės modulis.

Baudų dažnis išliko tas pats, tačiau mano bandymai parodė, kad 2400 baudų perdavimas taip pat buvo efektyvus.

2 veiksmas: imtuvo modifikacijos: pridėkite PIC16F887 ir HD44780 LCD

Imtuvo modifikacijos: pridedami PIC16F887 ir HD44780 LCD
Imtuvo modifikacijos: pridedami PIC16F887 ir HD44780 LCD
Imtuvo modifikacijos: pridedami PIC16F887 ir HD44780 LCD
Imtuvo modifikacijos: pridedami PIC16F887 ir HD44780 LCD
Imtuvo modifikacijos: pridedami PIC16F887 ir HD44780 LCD
Imtuvo modifikacijos: pridedami PIC16F887 ir HD44780 LCD

Imtuvo dizainas buvo pagrįstas PIC16F887, tačiau jūs galite naudoti kitą PIC su nedideliais pakeitimais. Savo projekte aš naudoju šį 40 kontaktų μC, nes man reikės papildomų kaiščių būsimiems projektams, pagrįstiems šiuo dizainu. RF modulio išvestis prijungta prie UART rx kaiščio, o 16x2 simbolių LCD (HD44780) yra prijungtas per PORTB kaiščius b2-b7, kad būtų rodomi gauti duomenys.

Kaip ir 1 dalyje, gauti duomenys taip pat rodomi „RealTerm“. Tai pasiekiama naudojant UART tx kaištį, kuris yra prijungtas prie kompiuterio per USB prie UART TTL kabelio adapterio.

Žvelgiant į programinę -aparatinę įrangą, kai vyksta UART pertraukimas, programa patikrina, ar gautas baitas yra pradžios baitas („&“). Jei taip, jis pradeda įrašyti vėlesnius baitus, kol bus užfiksuotas sustojimo baitas („*“). Kai tik gaunamas visas sakinys ir jis atitinka anksčiau aprašytą paprastą protokolą, jis siunčiamas į LCD ekraną, taip pat į UART tx prievadą.

Prieš gaudamas pradžios baitą, imtuvas jau sureguliavo savo stiprinimą, naudodamas ankstesnius preambulės baitus. Tai labai svarbu sklandžiam imtuvo veikimui. Atliekamas paprastas viršijimo ir įrėminimo klaidų patikrinimas, tačiau tai tik pagrindinis UART klaidų tvarkymo diegimas.

Kalbant apie aparatūrą, imtuvui reikia kelių dalių:

1 x PIC16F887

1 x HD44780

1 x RF Rx modulis 433Mhz

1 x 10 μF tantalo kondensatorius (atsiejimas)

1 x 10 K žoliapjovė (LCD šrifto ryškumas)

1 x 220 Ω 1/4 W rezistorius (LCD apšvietimas)

1 x 1 KΩ 1/4 W

1 x 433Mhz, 3dbi antena

Praktiškai gautas prietaisas puikiai veikė iki 20 metrų atstumu nuo sienų.

3 žingsnis: keletas nuorodų…

Be oficialios „Microschip“svetainės, internete yra daug tinklaraščių, kuriuose pateikiami patarimai apie PIC programavimą ir trikčių šalinimą. Man pasirodė labai naudinga ši informacija:

www.romanblack.com/

0xee.net/

www.ibrahimlabs.com/

picforum.ric323.com/

4 žingsnis: Išvados ir būsimas darbas

Tikiuosi, kad šis nurodymas padėjo jums suprasti, kaip naudoti RF modulius ir „Pic“mikrovaldiklius. Galite pritaikyti programinę -aparatinę įrangą pagal savo poreikius ir įtraukti CRC bei šifravimą. Jei norite padaryti savo dizainą dar sudėtingesnį, galite naudoti „Microschip“„Keeloq“technologiją. Jei jūsų programai reikia dviejų krypčių duomenų, abiejuose mikrovaldikliuose turėsite turėti TX/RX porą arba galite naudoti sudėtingesnį siųstuvą-imtuvą moduliai. Tačiau naudojant tokius pigius 433MHz modulius galima pasiekti tik pusiau dvipusį ryšį. Be to, norint, kad ryšys būtų patikimesnis, tarp TX ir RX reikia turėti tam tikrą rankos paspaudimą.

Kitoje instrukcijoje parodysiu jums praktinį pritaikymą, kai prie siųstuvo pridedamas aplinkos jutiklis su temperatūra, barometriniu slėgiu ir drėgme. Čia perduodami duomenys apims crc ir turės pagrindinį šifravimą.

Jutiklis naudos „PIC12F1822“i2c prievadą, o siųstuvo ir imtuvo įgyvendinimas bus parodytas naudojant schemas ir pcb failus. Dėkojame, kad perskaitėte mane!

Rekomenduojamas: