Fórum témák

» Több friss téma
Fórum » Rádiós adó-vevő modulok
Lapozás: OK   37 / 52
(#) mark.budai válasza pucuka hozzászólására (») Aug 24, 2015 /
 
Kivettem, és így már nem akad meg a program. De nem csodálkozom, ha nem működött. Az órajel valamiért tizede, mint kellene. Próbaképp beírtam a programba, hogy 1mp-ig sötét legyen a led, és 100ms-ig világítson. Erre 10mp-ig volt sötét, és 1-ig világított. De ez már PIC-es téma, át kéne menjek abba a fórumba.

Köszönöm Pucuka, így legalább az kiderült, hogy lassan jár a processzor, innen már lehet haladni.
(#) pucuka válasza mark.budai hozzászólására (») Aug 24, 2015 /
 
Gondolj mindig arra, hogy ezek a modulok buta jószágok, a tudomány is csak annyi van bennük, hogy be lehessen állítani őket. Minden mást a vezérlésnek kell tudnia.
(#) k3gy3tl3n válasza mark.budai hozzászólására (») Aug 24, 2015 /
 
Szia, bemásolom ide a kódot amit én használok RFM12B 433MHz modulhoz, igaz csak egyirányú kommunikációt találsz benne de működik. Lesz benne sok felesleges dolog is de a main-ben megtalálod a konfigolást. (Ez avr-re írt kód de a beállítások hasznosak lehetnek). Olvastam már azt is hogy az adatlapon lévő gyári kód hibás ezért én is másikat kerestem, remélem hasznát veszed.
(#) k3gy3tl3n hozzászólása Aug 24, 2015 /
 
Sziasztok az RFM01 és RFM02 433MHz-es adó és vevő modulok az adatlap szerint 300m-ig tudnak beszélgetni, viszont nekem 80m-környékén vége. A következő adatokat adják meg az adatlapon, hogy így tuti működik 300m-ig:
Receiver bandwidth =134KHz, data rate=1.2kbps, transmitter modulation=60KHZ(matches with RF02B)In free open area.
Én viszont így használom:
Receiver bandwidth =134KHz, data rate=4.8kbps, transmitter modulation= ? ezt nem tudtam kihámozni. Bemásolom a kódrészletet is hátha valakinek mond valamit. Az lehet hogy 1.2kbps-re állítva a data rate-et máris megnőne a hatótáv?
Adó beállítása:
  1. RFXX_WRT_CMD(0xCC00);
  2.  RFXX_WRT_CMD(0x8B61);//433BAND,+/-90kHz
  3.  RFXX_WRT_CMD(0xA640);//434MHz
  4.  RFXX_WRT_CMD(0xD040);//RATE/2
  5.  RFXX_WRT_CMD(0xC823);//4.8kbps
  6.  RFXX_WRT_CMD(0xC220);//ENABLE BIT SYNC
  7.  RFXX_WRT_CMD(0xC001);//CLOSE ALL

Vevő beállítása:
  1. RFXX_WRT_CMD(0x0000);
  2.         RFXX_WRT_CMD(0x898A);//433BAND,134kHz
  3.         RFXX_WRT_CMD(0xA640);//434MHz
  4.         RFXX_WRT_CMD(0xC847);//4.8kbps
  5.         RFXX_WRT_CMD(0xC69B);//AFC setting
  6.         RFXX_WRT_CMD(0xC42A);//Clock recovery manual control,Digital filter,DQD=4
  7.         RFXX_WRT_CMD(0xC240);//output 1.66MHz
  8.         RFXX_WRT_CMD(0xC080);
  9.         RFXX_WRT_CMD(0xCE88);//use FIFO
  10.         RFXX_WRT_CMD(0xCE8B);
  11.         RFXX_WRT_CMD(0xC081);//OPEN RX


u.i.:legfőképp az érdekel, hogy a következő három paraméter hogyan befolyásolja a használható távolságot: Receiver bandwidth, data rate, transmitter modulation. Melyiket kell növelni illetve csökkenteni hogy nőjön a távolság, melyik befolyásolja legjobban a távolságot? Gondolom valamennyire mindháromtól függ különben nem írták volna az adatlapba hogy 300m-re működik ha ezek a paraméterek a megadott értékre voltak beállítva.
A hozzászólás módosítva: Aug 24, 2015
(#) foxi63 válasza k3gy3tl3n hozzászólására (») Aug 24, 2015 /
 
Ez az adatsebesség különbség nem számottevő, sokkal inkább az antenna negyedhullámhosszra való méretezése fontos.
üdv.: Foxi
(#) k3gy3tl3n válasza foxi63 hozzászólására (») Aug 24, 2015 /
 
Antennából gyárit vásároltam 433mhz-hez valót, mind az adóhoz mind a vevőhöz. Azon gondolkodtam még, hogy esetleg a dc motor bezavarhat mivel nincsenek rajta szűrő kondik, de ez a zavarás sem hinném, hogy a távolság növekedésével nagyobb gondot jelentene (vagy kis távolságnál is bezavarna vagy nagynál sem). Egyébként a motort kb 100khz pwm jellel vezérlem.
(#) foxi63 válasza k3gy3tl3n hozzászólására (») Aug 24, 2015 /
 
Esetleg próbáld meg pwm nélkül csak leddel . Hátha tényleg zavar van.
(#) k3gy3tl3n válasza foxi63 hozzászólására (») Aug 24, 2015 /
 
Mindenképp azt fogom először kipróbálni hogy lehúzom a motort, mert amikor motor nélkül próbálgattam úgy rémlik jóval messzebbre elvitt. Mindenesetre már rendeltem másik adóvevő modulokat is, ha esetleg ezzel nem jutnék előre, ez viszont már 2.4GHz-es és 1000m-es hatótávval kecsegtet. Esetleg van vele tapasztalatotok? Bővebben: Link
(#) pucuka válasza k3gy3tl3n hozzászólására (») Aug 24, 2015 /
 
A "hatótávolság" nagyobb frekvenciákon, szabad térben már nem frekvencia függő. Ez csak a kisugárzott (nem adó) teljesítménytől, és a vevő érzékenységtől függ.
A zavarás a motortól vezetéken is terjed, mindenképp kell a motor tápjába fojtós, kondis szűrést iktatni, mindkét tápágba.
(#) k3gy3tl3n válasza pucuka hozzászólására (») Aug 25, 2015 /
 
Van erre valami szabály hogy mekkora kondikat kell használni? Én úgy tudom 3 kondi kell, 1-1 a motor lábairól a motor házára és 1 a motor lábai közé. A 433MHz már beletartozik a "nagyobb"frekvenciákba?
(#) k3gy3tl3n hozzászólása Aug 25, 2015 /
 
Közben a szervó kábelek árnyékolására találtam egy egész pofás megoldást, talán más is látja majd hasznát: szervo kábel árnyékolás
(#) pucuka válasza k3gy3tl3n hozzászólására (») Aug 25, 2015 / 1
 
A kondik értékét 1 - 10 nF között válaszd, természetesen kerámiából. A nagyobb értékűeknek már viszonylag nagy a saját induktivitásuk, így zavarszűrésre nem annyira jók. A feszültség tűrésük minél nagyobb legyen, kívánatos min 100 V
A nagyobb frekvenciákat úgy 30 MHz -től felfelé értem. A hullámterjedés ettől felfelé válik mindinkább egyenes irányúvá, ezen frekvencia alatt, a frekvencia csökkenésével a földfelszíni hullámok hatása a terjedésre egyre inkább nő. Természetesen nincs igazi éles átmenet, de nagyjából erre kell számítani.
(#) hzs90 hozzászólása Szept 1, 2015 /
 
Sziasztok!

Szeretnék egy adó-vevő elven alapuló vészjelzőt építeni:

Van 15 automata gép (adó), kb 30 méterre van egy asztal, rajta két 7 szegmenses kijelző (vevő). A gépek PLC kimeneten keresztül (24VDC) adják a hibajelet. Ha a hibajel megjelenik, a kijelzőn a megfelelő szám megjelenik.

Milyen módszerrel tudnám ezt a legkönnyebben megvalósítani? Akár kész eszköz, akár kapcsolási rajz jól jönne, de bármilyen ötlet! Köszi
(#) Attila86 hozzászólása Szept 1, 2015 / 1
 
Sziasztok!

Korábban is foglalkoztam már a HopeRF pár rádiós moduljával (RFM01, RFM02, RFM73, RFM12), például csináltam az autómhoz egy távirányítót: Bővebben: Link
Ennél viszont a polling-os, szoftveres SPI-os és véleményem szerint elég kretén gyári függvényeket használtam alapul.

A napokban azonban egy másik áramkör kapcsán újra elővettem az RFM12B modult és nem kevés kínszenvedés árán írtam magamnak saját, teljesen új függvényeket. Mindenféle pollingot kipateroltam és helyette megszakításból figyel a PIC mindent, az adást és a vételt is. A lehető legkevesebb időt foglalkozik a PIC a modullal. A szoftveres SPI-t is lecseréltem hardveresre és az adatátviteli sebességet a maximumra (115kbps) állítottam.
Készítettem róla egy kis videót működés közben: Bővebben: Youtube

Azért írom ezeket, mert míg sikerült mindezt megoldanom, addigra némileg kiismertem ezt a modult (RFM12B) és szereztem néhány tapasztalatot ami esetleg segítséget nyújthat másoknak:

1.- Bizonyos esetekben inicializálás után a nIRQ láb alacsony szinten marad és hiába küldünk neki adatot, nem foglalkozik vele. Ilyenkor csak annyit kell tenni hogy kiolvassuk a FIFO-ját és rögtön magához tér és H szintre emeli a nIRQ lábát ahogy annak lennie kell.

2.- A szinkronszó (0x2D, 0xD4) előtt nem kell 3db 0xAA, elég csak egy. Néha megy egy nélkül is, de 1db 0xAA-val már teljesen stabil lesz az adás.
Az utolsó adatbájt után pedig egyáltalán nem kell dummy byte-ot küldeni. Hiába van a gyári függvényben, teljesen felesleges.

3.- Vételkor sokszor a legelső vett bájt 0x00 lesz. Azt kell csinálni hogy egyel több bájtot kell várni mint amennyi az adóoldalon elküldésre került, és hogyha a legelső vett bájt 0x00 akkor azt egyszerűen csak el kell dobni.

4.- Kísérletezgetés közben egyszer lecsavartam az antennát (gyári 868MHz-es SMA csatis antenna) az egyik RFM12-ről és ennek ellenére tökéletes maradt a vétel és az adás is.
Pedig a modul és az SMA csati közti néhány milliméter vezetékszakaszt teliföld veszi körül és az SMA csati is árnyékolt ugyebár. Jó nyilván az RF végerősítő nem örül neki hogy nincs mire rádolgoznia és a hatótáv is biztos jóval kisebb antenna nélkül. Nagyon mondjuk nem próbáltam, de a lakáson belül működött.
A másik panelon a nyákon, vezetősávból van az antenna. Azt pedig próbáltam tapogatni sőt, teljesen rámarkolva a panelra, leárnyékolva az antennát is tökéletes maradt a vétel és az adás is.
Szóval lényeg, hogy az antennára úgy tapasztaltam hogy finoman szólva nem túl érzékeny ez az RFM12B.

5.- Azt nem próbálgattam hogy milyen távolságról működik a modul, viszont próbáltam vasbeton falakon és vasajtókon keresztül és egész jól működött. Hasonlóképp autó motorterében is, lecsukott motorháztető esetén.
(#) pucuka válasza Attila86 hozzászólására (») Szept 1, 2015 /
 
ad4. Az a fóliacsík ami az antenna csatlakozóhoz megy, egy induktivitás, (azaz hosszabbító tekercs) ami után már tényleg nem annyira érzékeny az "antennára". Viszont cserébe érzéketlen is lesz, ill a kisugárzott teljesítmény is csökken. E kettőnek hatása a csökkent hatótávolság.
(#) mark.budai hozzászólása Nov 10, 2015 /
 
Sziasztok! Az RFM12 modul tökéletesen működött, viszont szeretnék egy szinttel feljebb lépni, valószínűleg a véglegeshez elérni. Programozott itt már valaki RFM22 modult? Szeretném kipróbálni, leginkább a fejlettsége, illetve a teljesítménye miatt, de leginkább azért, mert az RFM12b modulok gyártását le fogják állítani.
Találtam pár kódot az interneten, de mindben van pár rész, ami nem tetszik annyira. A legszimpatikusabb egy orosz kód, itt inkább csak a kommentekkel van probléma.
(#) k3gy3tl3n válasza mark.budai hozzászólására (») Nov 10, 2015 /
 
Szerintem az nrf24l01 modulok amik mostanában divatosak, igaz ezek 2.4GHz-en mennek ebben nem gondolkodtál? Van itt a fórumon saját topikja is. Bővebben: Link
(#) mark.budai válasza k3gy3tl3n hozzászólására (») Nov 10, 2015 /
 
Nagyon ragaszkodom ehhez a modulhoz, a 2,4GHz-nek vannak előnyei, de azokra most egyáltalán nincs szükség, most 433MHz kell nekem. Másrészt már bevásároltam belőlük, de ez a kisebbik indok. A hatótáv és a zavarvédettség most a legelső szempont.
(#) mark.budai válasza mark.budai hozzászólására (») Nov 14, 2015 /
 
Nos pár éjszakányi adatlap bújás és példa programok tanulmányozása után rájöttem, hogy semmi különleges nincs ennek a modulnak a használatában, úgy néz ki, megértettem a működését, nekiálltam programozni, egyelőre nem fogott ki rajtam.
Viszont felmerült bennem egy kérdés. Felmerülhet esetleg olyan, ha túl kevés byteot küldök át, bizonytalan lesz a kapcsolat? 10 byteot akarok átvinni, de ha kell, ki tudom bővíteni, viszont kicsit feleslegesnek érzem, viszont a megbízhatóság rovására nem mehet.
(#) pucuka válasza mark.budai hozzászólására (») Nov 14, 2015 /
 
Az adatbájt előtt mindenképp kell valami, ami feléleszti a vevőt. Aztán meg nem árt valami címzés is, mégha nincs is feltétlen szükség rá, a végén meg az ellenőrző kód. Így már nem is olyan kevés az átküldött bitek száma.
Ha meg biztosra akarsz menni, akkor jó igazán az adóvevő modul, mert ha visszaküldöd a vett adatot az adónak, akkor ott eldöntheted, hogy az érkezett meg, amit küldtél.
(#) mark.budai válasza pucuka hozzászólására (») Nov 14, 2015 /
 
Kicsit hülyén fogalmaztam, ezek már a helyükön vannak. Akkor nem kell aggódnom, hogy nem fog rendesen működni?
A visszaküldős dolgot átgondolom, lehet hogy azt fogom használni.
(#) mark.budai hozzászólása Nov 21, 2015 /
 
Nos megírtam a programot az RFM22 modulokhoz. De mint azt már megszoktam, persze nem működik. Beírom az összes regisztert SPI-n, betöltöm a FIFO-ba a küldendő adatokat, elküldöm adó módba, de előtte beállítom, hogy akkor küldjön megszakítást, ha elment a csomag. Viszont ez nem érkezik meg. Most megpróbáltam, hogy beírom a fifoba az adatokat, és ki is olvasom onnan, ahogy a vevő tenné. Sajnos így sem kapom vissza az adatokat. Debuggolnám, így látom, hogy mit olvasott ki, de sajnos nem sikerül. Az biztos, hogy az első bájt sem stimmel, és az ellenőrző összeg sem jó.
(#) foxi63 válasza mark.budai hozzászólására (») Nov 21, 2015 /
 
Szia!
Próbálj meg egy 22-47µF kondit is a tápjára tenni, mert én jártam hasonló jelenséggel rfm12-nél. a vékony fólia miatt bekapcsoláskor újból és újból lefutott a belső reset, és a PIC nem tudta inicializálni.
Egy próbát megér. 3 napig kinlótam, mire rájöttem...
(#) mark.budai válasza foxi63 hozzászólására (») Nov 21, 2015 /
 
Szia! Rátettem, sajnos most sem megy, igaz a kondi most nem sokat segít, nincs adásra kapcsolva, ami miatt túl nagy áramot venne fel a modul.
(#) mark.budai válasza mark.budai hozzászólására (») Nov 24, 2015 /
 
No, sikerült debuggolni a pic programját, most már biztosra tudom, hogy semmit nem tudok kiolvasni, bármelyik regisztert próbálom, nulla lesz ez értéke.
(#) Prendick válasza mark.budai hozzászólására (») Nov 24, 2015 /
 
Figyeltél rá, hogy az RFM modulok nem mennek a pic default SPI beállításával? Én állandóan belefutok és ütöm a fejemet.
CKE=1 és CKP=0 kell nekik, vagyis alacsony szintről induló órajel és felfutó él.
(#) mark.budai válasza Prendick hozzászólására (») Nov 24, 2015 /
 
Erre is figyeltem, de szoftveres SPI-t használok, ami a gyári programból származik, és így néz ki:
  1. void spi_write(unsigned int command)
  2. {
  3.         unsigned char n=16;
  4.  
  5.         command |= 0x8000;
  6.  
  7.         nSEL = 1;
  8.         SCK=0;
  9.         nSEL=0;
  10.         while(n--)
  11.         {
  12.         if(command&0x8000)
  13.                 {
  14.                         SCK=0;  
  15.                         NOP();
  16.                         SDI=0;
  17.                         NOP();
  18.                         SCK=1;  
  19.                         NOP();
  20.                 }
  21.         else
  22.                 {
  23.                         SCK=0;  
  24.                         NOP();
  25.                         SDI=1;
  26.                         NOP();
  27.                         SCK=1;  
  28.                         NOP();
  29.                 }  
  30.      
  31.                 command = command << 1;
  32.         }
  33.         SCK=0;
  34.         NOP();
  35.         nSEL = 1;      
  36. }
A hozzászólás módosítva: Nov 24, 2015
(#) foxi63 válasza mark.budai hozzászólására (») Nov 24, 2015 /
 
Szia!
Azért ne csodálkozz,hogy nem megy, amikor 1-et kellene kiküldeni, akkor nullát nyomatsz ki.
Ez működik:
  1. uc RfmWriteCmd(ui adat)
  2. {
  3.        
  4.  
  5.         unsigned char count;
  6.         SCK_LO;SDI_LO;NSEL_LO;
  7.         for(count=0;count<16;count++)
  8.         {
  9.                 SDI_LO;
  10.                 if(adat & 0x8000)SDI_HI;
  11.                 SCK_HI;
  12.                 adat <<=1;
  13.                 if(SDO)
  14.                 adat |=1;
  15.                 SCK_LO;
  16.         }
  17.         NSEL_HI;
  18.         return adat %256;
  19.  
  20.        
  21.        
  22. }
A hozzászólás módosítva: Nov 24, 2015
(#) mark.budai válasza foxi63 hozzászólására (») Nov 24, 2015 /
 
Szia!
Bocsi, hülyeséget írtam!
Csak rövidíteni akartam, és máris felcseréltem,mert igazából így van a függvény.

  1. void spi_write(unsigned int command)
  2. {
  3.         unsigned char n=16;
  4.         command |= 0x8000;
  5.  
  6.         nSEL = 1;
  7.         SCK=0;
  8.         nSEL=0;
  9.         while(n--)
  10.         {
  11.         if(command&0x8000)
  12.                 Write1();
  13.         else
  14.                 Write0();  
  15.                 command = command << 1;
  16.         }
  17.         SCK=0;
  18.         NOP();
  19.         nSEL = 1;      
  20. }
  21. void Write0(void)
  22. {
  23.         SCK=0;  
  24.         NOP();
  25.         SDI=0;
  26.         NOP();
  27.         SCK=1;  
  28.         NOP()
  29. }
  30.  
  31. void Write1(void)
  32. {
  33.         SCK=0;  
  34.         NOP();
  35.         SDI=1;
  36.         NOP();
  37.         SCK=1;  
  38.         NOP();
  39. }
(#) brazdas hozzászólása Dec 2, 2015 /
 
Sziasztok! A HM-TRP-RS232-868-as adatmodullal ismerkedem. Tudnátok olyan terminál-emulátor programot ajánlani, amivel Hexa adatbyte-okat tudok küldeni soros porton? Amit ismerek, az karakteres terminál (Powerterm).
Következő: »»   37 / 52
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem