RF moduli i PIC

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

RF moduli i PIC

Post by WhiteHead »

Kupio sam ovo:
http://www.ebay.com/itm/Transmitter-Mod ... uSImhCZ5Fw
E sad, uhvatila me neka lijenost da tražim i čitam, a radio sam nešto slično prije par godina (i zaboravio-prokleti švabo) pa mi treba samo mali podsjetnik kako to uvezati s PIC-om.
I RX i TX imaju samo po tri pin-a Vcc, Gnd i Data.
Konkretno mislim dovršiti onaj Fekin termostat sa podešavajućom hysterezom (pominjan ovih dana na forumu), pa sam mislio uraditi i mogućnost izrade bezžične varijante.
Hoće li se to moći kako kodirati da mi neka bezvezna smetnja ne upali peć ?
Hvala!
Ako kaniš pobijediti, ne smiješ izgubiti
Maki
Odlično uznapredovao
Odlično uznapredovao
Posts: 766
Joined: 02-07-2012, 12:54

Re: RF moduli i PIC

Post by Maki »

Nisam se služio takvim modulom, ali koliko vidim radi se o jednosmjernoj komunikaciji.
Pretpostavljam da je predviđeno da ulazni napon na taj odašiljać može biti TTL kompatibilan, odnosno da je i izlaz na prijemniku TTL kompatibilan.
Ukoliko posjeduješ osciloskop, to se može lako provjeriti.

To vidim kao dobro rješenje u kombinaciji sa dva PIC-a. Jedan koji očitava stanje sa senzora te putem serijske komunikacije (TX linije) šalje informaciju drugom PIC-u koj ga prima (RX linija).
Prednost ovoga je što se koristi integriarni UART ćime se pojednostavnjuje primanje infirmacija i slanje informacija jer je to harverski rješeno.

Slat se mogu vrijednosti od 0-255, ali može se odabrati opcija sa slanjem 0-127 gdje se pritom bit najviše težinske vrijednosti koristi kao zaštitini bit. Taj bit služi ukoliko dođe do nekih smetnji pa se signal izmjeni tj. neki bit promjeni stanje on to detektira kao pogrešno očitanu informaciju.

Budući da se radi o rasponu temp. npr. od 0-100°C može se koristiti rezolucija od 1°jer je to moguće prenjeti u jednom byte-u odnosno u 7bitova + 1bit zaštite tzv. paritetni bit. Pretpostavljam da sam PIC ima omogučen hardverski detektiranje tog paritetenog bita te ukoliko nešto ne štima postavi neku zastavicu.
Ukoliko je potrebna veća rezolucija, može se informacija slati u više nizova byte-ova.

Također što bih svakako predložio je da jedan byte pošaljete par puta, time si na jedan način eliminirate moguće smetnje, iako to može biti također interesantno...

Nadam se da sam pomogao :)

Edit:
Problem može nastati ukoliko u blizini imate sličan uređaj koji radi na tom rasponu frekvencija jer bi vaš sklop u tom trenutku mogao očitat stanje tog sličnog uređaja (odašiljaća). Kodirat možda na taj način da se šalju decimalne znamenke. Tj. da se 3 bita koriste kao adrese, a 4 bita za znamenke od 0-9, a 1 bi kao paritetni.
Adresa je broj od 0-7 koja bi bila dodjeljena vašem prijemniku
User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: RF moduli i PIC

Post by WhiteHead »

OK,
Koliko sam shvatio (malo sam i sam kopkao) koristeći naredbe SEROUT I SERIN, šaljem neki bajt i primam ga drugim PIC-em.
Ne treba mi nikakva rezolucija nego samo bajt za ON i bajt za OFF.
Znači obični sobni termostat sa posebnim podešavanjem za ON i OFF, pa da ne vučem žice....
Radi se o ovom projektu: http://www.elektronika.ba/forum/viewtop ... 49#p145445
Ja bih da uradim i bežičnu verziju sa istim pin-outom tako da program odgovara.
Stavio bih otvoreni kod raspoloživ za doradu.....
Ako kaniš pobijediti, ne smiješ izgubiti
Maki
Odlično uznapredovao
Odlično uznapredovao
Posts: 766
Joined: 02-07-2012, 12:54

Re: RF moduli i PIC

Post by Maki »

Malo sam promatrao kako arduinovci to rješavaju. Izgleda da oni koriste drugačiji način komunikacije tzv. "manchester coding" .

Trebalo bi isprobati hoće li raditi sa standarnim UART modulom ili će trebat nešto izmjenit.
Ono što bih rekao da je dobro je to što upravo vam treba samo on/off funkcija. Jer mogu se postaviti neke fiksne vrijednosti od npr. 3-4 bita koja se šalju.
Za ti 3-4 bita moguće je osmislit neku svoju lijevu konikaciju... Npr. Logičku jedan predstavlja trajanje + djela impulsa od 100uS, a log 0 predstavlja trajanje od 50uS.
S 4 bita se postavi kombinacija 1001 za ON i za OFF se postavi npr.1101 tako inf uvijek započinje sa tzv. Nekim start bitom te završava sa nekim stop bitom.

S interruptom se "lovi" početak prjenosa, a ostalo se onda odradi softverski. Ionako ako sam dobro shvatio prijemnik ima samo zadaću palit i gasit neko trošilo.
User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: RF moduli i PIC

Post by WhiteHead »

Baš tako.
Prvo ću to probati simulirati u proteusu, čim stignem, pa javim rezultate
Ako kaniš pobijediti, ne smiješ izgubiti
User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: RF moduli i PIC

Post by WhiteHead »

Hmmmmm
U ovoj temi je to lijepo razrađeno: http://www.elektronika.ba/forum/viewtop ... =3&t=13369
U proteusu PIC to PIC ide bez problema (još nisam dobio module iz Kine).
Pošto meni tebaju samo dvije vrste signala za ON i OFF, odabrat ću kombinaciju koja će zadovoljiti "manchester" princip.
Inicijalni bajt: 10101010, a nakon toga još po dva 4-bitna bajta u kombinaciji da nigdje nemam dvije "jedinice" za redom.
Kad dođu moduli probam u praksi pa dalje.....
Ako kaniš pobijediti, ne smiješ izgubiti
Maki
Odlično uznapredovao
Odlično uznapredovao
Posts: 766
Joined: 02-07-2012, 12:54

Re: RF moduli i PIC

Post by Maki »

Super :)
Ne znam koji PIC ćeš upotrijebiti, ali svakako obrati pozornost na baund rate error.
Možda probati taj error držati što manjim odabirom odgovarajučeg kristalai baund rate.
Npr. evo tabela za PIC16F628A na stranici 72-73.

To je samo prijedlog.
User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: RF moduli i PIC

Post by WhiteHead »

U gore navedenom Fekinom projektu krenulo se sa 16F84, međutim on ima premalo memorije tako da će ići 16F628A (čini mi se da imam na zalihi) sa taktom od 4 MHz. Nacrtao sam pločicu koja je PIN-out kompatibilna sa onim Fekinim nacrtom, sutra idem na izradu.
Što se tiče odnosa errora i baud-rate, na prvu mi nije baš najjasnije iz onog datašita :azdaja: (godine, skleroza, švabo...), morat ću to malo izbistriti ili mi ti serviraj najbolji prijedlog :D
Ako kaniš pobijediti, ne smiješ izgubiti
Maki
Odlično uznapredovao
Odlično uznapredovao
Posts: 766
Joined: 02-07-2012, 12:54

Re: RF moduli i PIC

Post by Maki »

Gledajući tabelu 12-4 sa strane 73 možemo uočit sljedeće.
Recimo da koristi 20Mhz oscilator. Najmanji mogući error iznosi 0.16% za baund rate od 2400.
To sad treba reći kompalieru , a to se radi na sljedeći način...
Hmm... Sad sam shvatio da su SERIN i SEROUT softverske naredbe... Odnosno izmjenu podataka odrađuje softver. Može se probat ostat na tim softverskim naredbama ili probati koristiti stvarni hardverski UART modul :)
Za softverski ne znam kako ide to sa errorima.
Moj prijedlog je hardverski HSEROUT i HSERIN. Tu sve lijepo hardver radi :)

Code: Select all

 
DEFINE HSER_RCSTA 80h 
DEFINE HSER_TXSTA 20h
DEFINE HSER_BAUD 2400 
Ovo je definiran UART u asinhronom načinu rada :). Naredbom HSEROUT [dec A] se šalje podatak veličine jednog byte-a bez paritetne zaštite. HSERIN [dec B] se prima odnosno se očita podatak iz registra UART-a u varijablu B.
A i B su varijable sa dekadskim vrijednostima.
E sad moj prijedlog je napravit na prijemniku neki programčić kao što je:

Code: Select all

Prijemink:
HSERIN [A]
If a = xyz then relej = 1
If a = wqs then relej = 0
Goto prijemik
Znaći da stalno provjerava stanje registra UART modula. Dakako mogao bi se kosristiti i interrupt za prijem informacije, a može se i čekati zastavica :roll:

Par napomena:
Kristal je 20MHZ, ako se koristi drugi samo pogledati tabelu (ako treba mogu i ja) pa u naredbi DEFINE HSER_BAUD 2400 broj 2400 zamjeniti sa drugom boljom vrjednošću.
Ne koristi se paritetni bit.
Može se isprobati u simulaciji pa vidjeti jel bi to šljakalo...

Edit:
Tek sam shvatio da će PIC raditi na 4MHz onda je baund rate 300, znaći izraz DEFINE HSER_BAUD 2400 zamjeniti sa DEFINE HSER_BAUD 300

Sve deklaracije su rađene za PIC16F628
User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: RF moduli i PIC

Post by WhiteHead »

Kada govoriš o hardverskom UART-u znači li to tačno određen pin na PIC-u ?
Ako DA onda neću ništa mijenjati, želim da ostane ovaj PIN-out.
Inače u prijemniku sam mislio staviti 12F629...
Ako kaniš pobijediti, ne smiješ izgubiti
Maki
Odlično uznapredovao
Odlično uznapredovao
Posts: 766
Joined: 02-07-2012, 12:54

Re: RF moduli i PIC

Post by Maki »

Da to znaći "poseban" pinout.
Ok, to je samo bio prijedlog.
User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: RF moduli i PIC

Post by WhiteHead »

Ma vjerujem da će to ići i ovako.
U proteus-u između dva PIC-a pin to pin lijepo radi. Nije nikakva zahtjevna komunikacija nego samo ON i OFF, a i njih ću za svaki slučaj slati po deset puta pri promjeni stanja termostata.
Za ovih 20-ak dana do dolaska modula, napravit ću pločicu i sve to sklepat pa napravit program za žičanu varijantu.
Hvala na pomoći !
Ako kaniš pobijediti, ne smiješ izgubiti
User avatar
alpino005
Penjem se :)
Penjem se :)
Posts: 74
Joined: 27-10-2010, 18:29
Location: Sarajevo , BiH

Re: RF moduli i PIC

Post by alpino005 »

Primjer sa pc16f84 prijemnik

Code: Select all

'*****Ulazi i izlazi *****
TRISA=%00001                        'PORTA.0 KOMUNIKACIJA linijski ulaz 
TRISB=0                             'PORTB svi izlazni
PORTA=0                             'PORTA Reset
PORTB=0                             'PORTB RESET 

'*****Definiranje varijable*****
AL VAR BYTE                         'u bajtova IDENTIFIKACIJA
PRIJEM VAR PORTA.0
SYMBOL LEDA=PORTB.0
SYMBOL LEDB=PORTB.1
SYMBOL LEDC=PORTB.2
SYMBOL LEDD=PORTB.3
SYMBOL LEDE=PORTB.4
SYMBOL LEDF=PORTB.5
SYMBOL LEDG=PORTB.6
SYMBOL LEDH=PORTB.7

CLEAR                               'sve varijable RESET
PAUSE 500                           '500MS pauza
PORTB=0

GLAVNI:

SERIN2 PRIJEM,396,[WAIT("PBP"),AL]

IF AL=10 THEN 
HIGH LEDA
pause 100
HIGH LEDb
pause 100
HIGH LEDc
pause 100
HIGH LEDd
pause 100
HIGH LEDe
pause 100
HIGH LEDf
pause 100
HIGH LEDg
pause 100
HIGH LEDh
pause 100
PORTB=$00
PAUSE 100
ENDIF


IF AL=20 THEN 
HIGH LEDH
pause 100
HIGH LEDG
pause 100
HIGH LEDF
pause 100
HIGH LEDE
pause 100
HIGH LEDD
pause 100
HIGH LEDC
pause 100
HIGH LEDB
pause 100
HIGH LEDA
pause 100
PORTB=$00
PAUSE 100
ENDIF


IF AL=30 THEN 
PORTB=$FF
PAUSE 2000
PORTB=$00
PAUSE 100
ENDIF

IF AL=40 THEN 
PORTB=$FF
PAUSE 500
PORTB=$00
PAUSE 100
PORTB=$FF
PAUSE 500
PORTB=$00
PAUSE 100
ENDIF

IF AL=50 THEN
HIGH LEDA
PAUSE 50
LOW LEDA
PAUSE 50
HIGH LEDB
PAUSE 50
LOW LEDB
PAUSE 50
HIGH LEDC
PAUSE 50
LOW LEDC
PAUSE 50
HIGH LEDD
PAUSE 50
LOW LEDD
PAUSE 50
HIGH LEDE
PAUSE 50
LOW LEDE
PAUSE 50
HIGH LEDF
PAUSE 50
LOW LEDF
PAUSE 50
HIGH LEDG
PAUSE 50
LOW LEDG
PAUSE 50
HIGH LEDH
PAUSE 50
LOW LEDH
PAUSE 50
PORTB=$00
PAUSE 100
ENDIF

IF AL=60 THEN
PORTB=%00000011
PAUSE 100
PORTB=%00001100
PAUSE 100
PORTB=%00110000
PAUSE 100
PORTB=%11000000
PAUSE 100
PORTB=$00
PAUSE 100
ENDIF

IF AL=70 THEN
PORTB=%11000000
PAUSE 100
PORTB=%00110000
PAUSE 100
PORTB=%00001100
PAUSE 100
PORTB=%00000011
PAUSE 100
PORTB=$00
PAUSE 100
ENDIF

IF AL=80 THEN
PORTB=%01010101
PAUSE 100
PORTB=%10101010
PAUSE 100
PORTB=%01010101
PAUSE 100
PORTB=%01010101
PAUSE 100
PORTB=%10101010
PAUSE 100
PORTB=%01010101
PAUSE 100
PORTB=$00
PAUSE 100
ENDIF
GOTO GLAVNI
END
predajnik pic16f84

Code: Select all


'*****Ulazi i izlazi*****
TRISA=0                         'PORTA IZLAZNI
TRISB=$FF                       'PORTB cijeli dom 
PORTA=0                         'Porta SADRŽAJ RESET
PORTB=0                         'PORTB RESET SADRŽAJI
OPTION_REG.7=0                  'PULL UP DIRENCERINI ne treba koristiti


'*****Definiranje varijable*****
SYMBOL CIKIS=PORTA.0            'KOMUNIKACIJA LINE
SYMBOL KLJUCA=PORTB.0             'kljuc A
SYMBOL KLJUCB=PORTB.1             'kljuc B
SYMBOL KLJUCC=PORTB.2             'kljuc C
SYMBOL KLJUCD=PORTB.3
SYMBOL KLJUCE=PORTB.4
SYMBOL KLJUCF=PORTB.5
SYMBOL KLJUCG=PORTB.6
SYMBOL KLJUCH=PORTB.7

VER VAR BYTE                    'u bajtovima IDENTIFIKACIJA 
PAUSE 500                       '500MS pauza
VER=0                           'Reset


GLAVNI:

IF KLJUCA=0 THEN                  'dno crta KLJUCa = 0 kada je u
VER=10                          '88 Download Now
GOSUB POSALJI                    'na POŠALJI
ENDIF
  
IF KLJUCB=0 THEN 
VER=20
GOSUB POSALJI
ENDIF

  
IF KLJUCC=0 THEN 
VER=30
GOSUB POSALJI
ENDIF

  
IF KLJUCD=0 THEN 
VER=40
GOSUB POSALJI
ENDIF

  
IF KLJUCE=0 THEN 
VER=50
GOSUB POSALJI
ENDIF

  
IF KLJUCF=0 THEN 
VER=60
GOSUB POSALJI
ENDIF

  
IF KLJUCG=0 THEN 
VER=70
GOSUB POSALJI
ENDIF

  
IF KLJUCH=0 THEN 
VER=80
GOSUB POSALJI
ENDIF

PAUSE 100                       
GOTO GLAVNI                      'vrati se na GLAVNI

POSALJI:
SEROUT2 CIKIS,396,["P","B","P",VER]
SEROUT2 CIKIS,396,["P","B","P",VER]
SEROUT2 CIKIS,396,["P","B","P",VER]
SEROUT2 CIKIS,396,["P","B","P",VER]
RETURN
END
Može se upotrijebiti za tvoju namjenu za više tremostata, radi bez problema stim što radio signal
može biti ometan kao i sve bežične. Na manje udaljenosti radi i bez neke antene a na veće i antena je potrebna.Svaki od izlaza označen kao LED može prenositi jedno stanje on ili off sa termostata.
Izlaz iz pic1f84 predajnika povezati na data ulaz rf predajnog modula a ulaz prijemnog sa ulazom prijemnog pic16f84 .
User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: RF moduli i PIC

Post by WhiteHead »

Ma puno koda, a i nije baš komplet iskomentarisan, a i nije pin-kompatibilan sa ovim mojim, pa mi malo naporno (sorry) da ga proučavam.
Uglavnom neka ga ako zapne, ja imam neke svoje zamisli i nadam se da će to da šljaka....
Verzija programa (bezžičnog je skoro gotova i možda je sutra postavim.
Ako kaniš pobijediti, ne smiješ izgubiti
User avatar
alpino005
Penjem se :)
Penjem se :)
Posts: 74
Joined: 27-10-2010, 18:29
Location: Sarajevo , BiH

Re: RF moduli i PIC

Post by alpino005 »

Kad se malo bolje pogleda veoma jednostavno se skrati kod ako ti treba manji broj izlaza, u svakom slučaju dobro je imati svoju verziju i nakon probe korigovati dok ne proradi kako treba.
User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: RF moduli i PIC

Post by WhiteHead »

Ako kaniš pobijediti, ne smiješ izgubiti
User avatar
alpino005
Penjem se :)
Penjem se :)
Posts: 74
Joined: 27-10-2010, 18:29
Location: Sarajevo , BiH

Re: RF moduli i PIC

Post by alpino005 »

Nije loše , samo jeli ovo samo termostat za fabričku peć na pelet . Svojevremeno sam planirao da uradim
kontrolnu elektroniku za peć na pelet ali bez uslova ( sama peć ) teško je podesiti sva vremena i testirati.
Možda nekad bude uslova i vremena , za sad ostaje samo blok šema i manji test sa PIC16F628.
User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: RF moduli i PIC

Post by WhiteHead »

Da to je za sada sobni termostat za peć (kamin) na pelet sa posebnim podešavanjem za ON i OFF.
Probat ću tu implementirati bežičnu komunikaciju.
Moje verzija PCB-a, još neobjavljena (zato što nije isprobana i istestirana) ima još i ICSP konektor i konektor za RTC (1307).
Pored toga dodavanjem još jedne temp. sonde na isti pin, moguće je napraviti diferencijalni termostat.
Znači mogućnost su neograničene, sve je do softwera.
Inače za ovih mjesec dana posmatranja ovog svog sobnog kamina, bez bojazni bih se upustio u izradu kompletne elektronike koja je korisnički svedena na četiri tastera i 2x16 LCD (ne znam koji je kontroler unutra, ali sam algoritam uglavnom skontao).

EDIT: Ukoliko imaš neke šanse da "ubiješ" koju paru sa projektovanjem upravljačke elktronike za neku peć ( kamin) rado ću ti pomoći oko načina rada.
Ako kaniš pobijediti, ne smiješ izgubiti
User avatar
niho
Pravi forumaš
Pravi forumaš
Posts: 1895
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: RF moduli i PIC

Post by niho »

Komšija, imam tih modula za 433 MHz, da ne čekaš iz Kine. Ako ide neko ovamo da ti pošaljem. Pozz.
User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: RF moduli i PIC

Post by WhiteHead »

Hvala, al' doći će to brzo, dok ja sastavim ovo ostalo....
Ah nekad sam redovno održavao mašine u par firmi u Rahiću i Maoči i dosta uticao na stočni fond i voćnjake tog kraja....lijepi dani
Ako kaniš pobijediti, ne smiješ izgubiti
Post Reply