Tartalomjegyzék:
- 1. lépés: Az adó módosítása
- 2. lépés: A vevő módosításai: PIC16F887 és HD44780 LCD hozzáadása
- 3. lépés: Néhány hivatkozás…
- 4. lépés: Következtetések és jövőbeli munka
Videó: Vezeték nélküli kommunikáció olcsó 433 MHz -es RF modulok és Pic mikrovezérlők használatával. 2. rész: 4 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Ennek az utasításnak az első részében bemutattam, hogyan kell programozni egy PIC12F1822 -t MPLAB IDE és XC8 fordító segítségével, hogy egy egyszerű karakterláncot küldjünk vezeték nélkül, olcsó TX/RX 433 MHz -es modulok használatával.
A vevőmodult USB -n keresztül UART TTL kábeladapterrel csatlakoztatta a számítógéphez, és a kapott adatokat megjelenítette a RealTerm -en. A kommunikáció 1200 baudon történt, és a maximális hatótávolság körülbelül 20 méter volt a falakon keresztül. Tesztjeim azt mutatták, hogy azoknál az alkalmazásoknál, ahol nincs szükség nagy adatátviteli sebességre és nagy hatótávolságra, valamint folyamatos átvitelre, ezek a modulok kivételesen jól teljesítettek.
A projekt második része bemutatja, hogyan lehet PIC16F887 mikrokontrollert és 16 × 2 karakteres LCD modult hozzáadni a vevőegységhez. Ezenkívül az adón egy egyszerű protokollt követnek néhány előminta bájt hozzáadásával. Ezek a bájtok szükségesek ahhoz, hogy az RX modul a tényleges hasznos terhelés megszerzése előtt beállítsa a nyereséget. A vevő oldalán a PIC felelős az LCD képernyőn megjelenő adatok beszerzéséért és érvényesítéséért.
1. lépés: Az adó módosítása
Az első részben az adó néhány másodpercenként egyszerű karakterláncot küldött nyolc adatbit, egy kezdő és egy leállító bit használatával, 1200 bit / másodperc sebességgel. Mivel az átvitel szinte folyamatos volt, a vevőnek nem okozott gondot a nyereségnek a fogadott adatokhoz való igazítása. A második részben a firmware módosul, így az átvitel 2,3 másodpercenként történik. Ez a watchdog időzítő megszakításával érhető el (2.3 másodpercre állítva), hogy felébressze a mikrokontrollert, amely alvó üzemmódba kerül az egyes adások között.
Annak érdekében, hogy a vevőnek legyen ideje a nyereség finomhangolására, néhány bevezető bájt rövid LO idővel "(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa)" kerül elküldésre a tényleges adatok előtt. A hasznos terhet ezután kezdő '&' és stop '*' bájt jelzi.
Ezért az egyszerű protokollt a következőképpen írjuk le:
(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa) és Hello InstWorld!*
Ezenkívül 10uF szétválasztó tantál kondenzátort adnak az RF modul V+ és GND közé, hogy megszabaduljanak az egyenáramú egyenáramú modul által okozott hullámzástól.
Az átviteli sebesség ugyanaz maradt, de a tesztek azt mutatták, hogy 2400 baudnál is hatékony volt az átvitel.
2. lépés: A vevő módosításai: PIC16F887 és HD44780 LCD hozzáadása
A vevő kialakítása a PIC16F887 -en alapult, de kisebb módosításokkal más PIC -t is használhat. A projektemben ezt a 40 tűs μC -t használtam, mivel további tűkre lesz szükségem a jövőbeli projektekhez, amelyek ezen a konstrukción alapulnak. Az RF modul kimenete az UART rx tűhöz van csatlakoztatva, míg egy 16x2 karakteres LCD (HD44780) a b2-b7 PORTB csapokon keresztül van csatlakoztatva a fogadott adatok megjelenítéséhez.
Az 1. részhez hasonlóan a kapott adatok a RealTermen is megjelennek. Ezt az UART tx tűvel érik el, amely USB -UART TTL kábeladapterrel csatlakozik a számítógéphez.
A firmware -be tekintve, amikor UART megszakítás történik, a program ellenőrzi, hogy a fogadott bájt kezdő bájt -e ('&'). Ha igen, akkor elkezdi rögzíteni a következő bájtokat, amíg egy stop bájt el nem éri ('*'). Amint megkapja a teljes mondatot, és ha megfelel az előzőekben leírt egyszerű protokollnak, elküldi az LCD képernyőre, valamint az UART tx portra.
A kezdő bájt fogadása előtt a vevő már beállította a nyereségét az előző preambulum bájtok használatával. Ezek elengedhetetlenek a vevő zökkenőmentes működéséhez. Egy egyszerű túllépési és keretezési hibaellenőrzést hajtanak végre, de ez csak egy alapvető UART hibakezelési megvalósítás.
Ami a hardvert illeti, néhány alkatrészre van szükség a vevő számára:
1 x PIC16F887
1 x HD44780
1 x 433Mhz RF Rx modul
1 x 10 μF tantál kondenzátor (leválasztás)
1 x 10 K trimmer (LCD betűtípus fényerő)
1 x 220 Ω 1/4 W ellenállás (LCD háttérvilágítás)
1 x 1 KΩ 1/4 W
1 x 433Mhz, 3dbi antenna
A gyakorlatban a fogadott kivételesen jól működött akár 20 méteres tartományban is a falakon keresztül.
3. lépés: Néhány hivatkozás…
A hivatalos Microschip webhelyen kívül számos blog található a weben, amelyek tippeket adnak a PIC programozásához és a hibaelhárításhoz. Nagyon hasznosnak találtam az alábbiakat:
www.romanblack.com/
0xee.net/
www.ibrahimlabs.com/
picforum.ric323.com/
4. lépés: Következtetések és jövőbeli munka
Remélem, hogy ez az utasítás segített megérteni az RF modulok és a Pic mikrovezérlők használatát. A firmware -t saját igényeihez igazíthatja, beleértve a CRC -t és a titkosítást. Ha még kifinomultabbá szeretné tenni a dizájnt, használhatja a Microschip Keeloq technológiáját. Ha az alkalmazás kétirányú adatokra van szüksége, akkor rendelkeznie kell egy TX/RX párral mindkét mikrovezérlőn, vagy használhat kifinomultabb adó-vevőt. modulok. Az ilyen olcsó 433 MHz -es modulok használatával azonban csak fél duplex kommunikáció valósítható meg. Ezenkívül a kommunikáció megbízhatóbbá tétele érdekében szükség van valamilyen kézfogásra a TX és az RX között.
A következő utasításban egy gyakorlati alkalmazást mutatok be, ahol a távadón egy hőmérséklet-, légnyomás- és páratartalom -érzékelő található. Itt az átvitt adatok tartalmazzák a crc -t, és alapvető titkosítással rendelkeznek.
Az érzékelő a PIC12F1822 i2c portját fogja használni, míg az adó és a vevő megvalósítása sematikus és NYÁK fájlokon keresztül lesz látható. Köszönjük, hogy elolvasta!
Ajánlott:
Vezeték nélküli Arduino robot a HC12 vezeték nélküli modul használatával: 7 lépés
Vezeték nélküli Arduino robot a HC12 vezeték nélküli modul használatával: Hé srácok, üdv újra. Korábbi hozzászólásomban elmagyaráztam, hogy mi az a H -híd áramkör, az L293D motorvezérlő IC, a malackalapú L293D motorvezérlő IC a nagyáramú motorvezérlők vezetéséhez, és hogyan tervezheti meg és készítheti el saját L293D motorvezérlő tábláját
Távirányítású autó - Vezeték nélküli vezeték nélküli Xbox 360 vezérlővel: 5 lépés
Távirányítású autó - vezérelhető a vezeték nélküli Xbox 360 vezérlő használatával: Ezek az utasítások saját távirányítású autó létrehozásához, vezeték nélküli Xbox 360 vezérlővel vezérelhetők
Olcsó vezeték nélküli érzékelő hálózat 433 MHz -es sávon: 5 lépés (képekkel)
Olcsó vezeték nélküli érzékelőhálózat 433 MHz -es sávon: Nagyon köszönöm Teresa Rajba -nak, hogy kedvesen beleegyezett abba, hogy felhasználhassam a cikkben közzétett adataikat.*A fenti képen - az öt érzékelő -küldő egység, amelyeket tesztelésre használtam hálózatok? Egy egyszerű meghatározás
Vezeték nélküli kommunikáció az NRF24L01 adó -vevő modul használatával Arduino -alapú projektekhez: 5 lépés (képekkel)
Vezeték nélküli kommunikáció az NRF24L01 adó-vevő modul használatával Arduino alapú projektekhez: Ez a második oktatható oktatóanyagom a robotokról és a mikrovezérlőkről. Valóban elképesztő látni, ahogy a robot elevenen működik, és a várt módon működik, és hidd el, szórakoztatóbb lesz, ha gyors és gyors vezeték nélküli vezérléssel irányítja robotját vagy más dolgokat
Vezeték nélküli soros kommunikáció a Bluefruit használatával: 4 lépés
Vezeték nélküli soros kommunikáció a Bluefruit használatával: Íme egy egyszerű lépésről lépésre, hogy kicserélje a vezetékeket egy alacsony energiafogyasztású Bluetooth -kapcsolatra: Beletelt egy kis időbe, amíg rájöttem erre, mert alig van dokumentáció a modern, alacsony energiafogyasztású Bluetooth -technológiával. mint a Bluefrui