Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Encoder/decoder za slanje komandi na vecu daljinu

[es] :: Elektronika :: Mikrokontroleri :: Encoder/decoder za slanje komandi na vecu daljinu

Strane: 1 2

[ Pregleda: 6271 | Odgovora: 36 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.rs.



+7 Profil

icon Re: Encoder/decoder za slanje komandi na vecu daljinu27.07.2009. u 12:17 - pre 179 meseci
Bez MCU-a imas jednostavno resenje.

32 linije od tastera kodiras u 5-o bitnu rec. Nju propustis kriz neli ULN sa recimo 12V ili 24V, zavisno koji imas u sistemu. Na mestu prijema napravis dekoder koji od 5-o bitne reci, koju takodje pustis kroz ULN, dobijes 32 linije od kojih svaka pobudjuje jedan relej. Sestu zicu iskoristi po volji, mozda da preneses napon 12V ili 24V ili 5V jer su ti releji za taj napon.

Kodiranje mozes da napravis sa gomilom dioda (treba ti 16x5 = 80 dioda). Na 0-ti bit 5-o bitne reci ide 16 dioda koje vezujes anodom na 1 taster, pa na 3 i tako svaki neparni do 31-og. Tastere numerisem od 0 do 31, lakse je za pricu. Na 1-vi bit petobitne reci vezes parove dioda, prvi par na 2 i 3 taster, drugi par na 6 i 7 i tako dalje do kraja. Na 2-gi bit 5-o bitne reci idu u grupi po 4 diode. Prva grupa ide na 4, 5, 6 i 7 taster, druga na 12, 13, 14 i 15 taster i tako redom. Na 3-ci bit 5- bitne reci idu diode u grupi po 8 i to prva na tastere 8 do 15, a druga na tastere 24 do 31. I na kraju 4-ti bit ima diode povezane samo sa tasterima od 16 do 31. Pritisak tastera prenosi napon preko diode do odgovarajucih bitova. Od svakog bita 5- bitne reci prema masi ide jedan otpornik koji obezbedjuje log. 0 kada nije pritisnut ni jedan taster ile ne onaj koji aktivira odredjeni bit.

Na mestu prijema napravis dekoder sa cipovima, i o tome je pisano u predhodnim postovima. Posle dekodera dobijas 32 linije kojima mozes da pobudis jedno od 32 releja.

Radi pouzdanosti prenosa mozes da iskoristis ULN-ove na mestu prijema i predaje da dobijes nivo signala +24V/0V, ili strujnu petlju za svaki bit, gde bi se struja vracala kroz 6-tu zicu.

Sam proceni i izaberi.

Pozdrav.
 
Odgovor na temu

vukboban
Boban Vukovic
PANCEVO

Član broj: 116735
Poruke: 250
195.252.79.*



+11 Profil

icon Re: Encoder/decoder za slanje komandi na vecu daljinu27.07.2009. u 15:23 - pre 179 meseci
Ako si i dalje za varijantu sa PIC-om,evo ti hex za predajni kontroler,mozda nije bas potpun,nisam bas radio sa 16F887,pa ne znam da li treba jos neka inicijalizacija,samo sam odradio ansel i anselh,ako treba jos nesto neka neko ispravi.
Inace kod radi bas to sto mislim da ti treba,u zavisnosti od pritisnutog tastera,salje 6to bitni broj od 1 do 32,i to samo dok je taster pritisnut,znaci salje neki start bit u trajanju od 100us,pa pauza od 100us,pa onda 6 bitova broja koji traju po 50us.
Mozda danas odradim i kod za prijemnik.
Pozdrav
Prikačeni fajlovi
 
Odgovor na temu

mitel026
Mitel Mitel
Mitel

Član broj: 23238
Poruke: 19
*.adsl-3.sezampro.yu.

ICQ: 26


Profil

icon Re: Encoder/decoder za slanje komandi na vecu daljinu27.07.2009. u 18:05 - pre 179 meseci
Momci HVALA!
Evo ovako: pravim prototip sa 74hct154 i VEROVATNO nece biti problema, ali...
Stvarno sam zainteresovan da napravim verziju sa PIC-om.
U principu neke stvari su se malo drugacije slozile.
Imam nameru da: Od upravljackog do centralnog mesta dovedem obe komande (4bit-nu komandu za odabir aparata i 4bit-ne komande za upravljanje masinom). Na centralnom mestu bi vrsio selekciju kojom masinom zelim da upravljam, a odatle bih, linijama do svake masine pojedinacno dovodio komande za nju. Ako budem koristio strujnu petlju (sto mi zvuci sjajno i sto se tice broja linija i sto se tice smetnji) necu imati problema ni sa slobodnim linijama. Tako da su mi potrebana dva PIC-a kao encoderi na upravljackom mestu - jedan za 16 tastera za odabir masine (ili samo dva tastera za +/- biranje masine i jedan za start/stop odabrane masine) i jedan PIC kao encoder za keyboard matricu 4x4 kojom bi se upravljalo odabranom masinom. I dva PIC decodera na centralnom mestu.

Vukboban HVALA! Nisam stigao da proverim kako mogu da iskoristim ovo sto si mi poslao, ALI HOCU! Verovatno nocas...
 
Odgovor na temu

ADRENALIN

Član broj: 17952
Poruke: 278
*.dynamic.sbb.rs.



Profil

icon Re: Encoder/decoder za slanje komandi na vecu daljinu27.07.2009. u 23:32 - pre 179 meseci
Ne treba ti toliko PIC-ova, treba ti jedan na prijemu i jedan na predaji, samo uzmes ove sa vise nozica (40). Posto imas dosta ulaza i izlaza mozes da koristis sift registre 74HC595 i 74HC597, kao sto je vec navedeno ranije. Dakle tako ti ulaze uvlacis u PIC, i izlazna stanja prebacujes na releje. Ovi sift registri se vezuju na red sto znaci da mozrs da imas veliki broj linija. Najbitniji je prenos izmedju modula, ja bih koristio 485, ne znam da lije strujna petlja bolje resenje??? Molim ljude da mi objasne zasto tako misle. Da li te masine rade u industriji, odnosno kolike su smetnje u okolini? Ako to nije nesto strasno veliki izvor smetnji onda mislim da nema potrebe za strujnom petljom, dovoljan je i 485. Posto ti je prenos jednosmeran ne moras ni da menjas smer na 485 drajveru.

Sto se tice PIC-a mislim da ti je najlakse da krenes sa mikroelektronikinim razvojnim alatima jer su jednostavni i imaju dosta biblioteka. Uzmi recimo microBasic i za cas ces da napises to sto ti treba. Neke stvari ces morati sam da uradis (sift registre) ali za UART imas biblioteku i sve je jako prosto. Dobijas primere uz kompajler i najvaznije potpuno je besplatan uz ogranicenje programa na 2K sto mislim da ti nema teoretske sanse da predjes. Oni imaju i biblioteku za PC tastaturu tako da i to vrlo lako mozes da napravis. Mikroelektronika nije bas dobro resenje generalno gledajuci, ima dosta mana ali za jednostavne stvari i pocetak je vrlo dobra, pre svega sto je prosta i sto ima ODLICAN help, bas je pregledan za razliku od majkrocipa recimo.

Eto toliko od mene, a ono za strujnu petlju ako neko moze neka objasni, bio bih mu veoma zahvalan.
 
Odgovor na temu

vukboban
Boban Vukovic
PANCEVO

Član broj: 116735
Poruke: 250
195.252.79.*



+11 Profil

icon Re: Encoder/decoder za slanje komandi na vecu daljinu29.07.2009. u 15:42 - pre 179 meseci
Pa,recimo da je 20mA uvek 20mA,da li na 1 m ili na 20m.Strujni izvor(kako mu samo ime kaze) uvek daje konstantnu struju,bez obzira na prikljuceni otpor(naravno u nekim razumnim granicama,t.j. dok taj otpor nije par stotina koma).Znaci da nema pada napona na kablu,tako da duzina kabla prakticno ne igra nikakvu ulogu(opet u razumnim granicama,ne verujem da bi radilo na 20Km!).
Sa druge strane napon pada srazmerno duzini kabla,cak i do granice da kontroler ne prepoznaje log1.
Takodje nema nikakvih EM smetnji,prostim otpornikom na kraju opet pretvaras struju u napon,znaci ukratko:JEDNOSTAVNOST i POUZDANOST

Slazem se da je 485 bolji za prenos podataka,ali...cena?,pa onda zahteva precizne tajminge ako radi u half dupleksu sto dodatno komplikuje softver,a ako radi u full dupleksu zahteva 4 zice(a mozda i celih 5 ). A strujna petlja se napravi vrlo jednostavno,LM317,i 1 otpornik i to je to.

[Ovu poruku je menjao vukboban dana 29.07.2009. u 17:00 GMT+1]
 
Odgovor na temu

ADRENALIN

Član broj: 17952
Poruke: 278
*.dynamic.sbb.rs.



Profil

icon Re: Encoder/decoder za slanje komandi na vecu daljinu30.07.2009. u 00:12 - pre 179 meseci
Mozda je u nekim slucajevima stvarno bolje, koja je realno najveca brzina prenosa, kog reda, otprilike. Ovo pitam zbog lm317 koliko brzo si ti uspeo da to radi?
 
Odgovor na temu

VRadule
Vladimir Radulovic

Član broj: 191689
Poruke: 211
93.86.89.*



+8 Profil

icon Re: Encoder/decoder za slanje komandi na vecu daljinu30.07.2009. u 00:50 - pre 179 meseci
Za red veličine maksimalne brzine strujne petlje ne znam, ali redovno koristim uređaj koji radi na 9600 boda, kažu da može 1km kabla da gura
na toj brzini.

Digitalna serijska komunikacija strujnom petljom sa kojima sam se ja susretao su bile isključivo urađene uz pomoć optokaplera, što znači galvansko odvajanje.

Kod rs 485 najveće probleme pravi razlika potencijala GND-a između udaljenih nodova, a 485 je po difoltu galvanski spregnut pa hoće transiveri da crkavaju.
No to se rešava debelom žuto-želenom koja se vuče paralelno sa 485 kablom.



 
Odgovor na temu

ADRENALIN

Član broj: 17952
Poruke: 278
*.dynamic.sbb.rs.



Profil

icon Re: Encoder/decoder za slanje komandi na vecu daljinu30.07.2009. u 18:12 - pre 179 meseci
Pa nista probacemo jednom da vidimo kako to radi u mojim slucajevima, koji LM317 TO220 ili TO92, da li je pametnije staviti jaci ili nije potrebno vise od 100mA, realno?
 
Odgovor na temu

vukboban
Boban Vukovic
PANCEVO

Član broj: 116735
Poruke: 250
195.252.79.*



+11 Profil

icon Re: Encoder/decoder za slanje komandi na vecu daljinu30.07.2009. u 19:33 - pre 179 meseci
Za optokapler ti treba 20mA da "upali" diodu,tako da ti je to sasvim dovoljno.Otpornik racunas kao 1.25/I znaci da ti za 20 mA treba oko 60 oma.Ulazni napon je dovoljno 5V,to je na nekoj donjoj granici,i onda je najmanja disipacija na LM,i najmanje grejanje.Moze bilo koji LM317.
Otpornik se vezuje izmedju OUT i ADJUST,a izlaz se uzima sa ADJUST pina.
Za max brzinu ne znam,jer mi do sada nije trebala brzina,tako da nisam ni probao.Naravno da je optokapler ogranicavajuci faktor sto se tice brzine.

P.S. diodu na prijemnom optokapleru vezujes bez ulaznog otpornika,znaci Adjust pin na anodu,katoda na gnd.
Kod predajnog optokaplera je potreban otpornik oko 250 oma.
 
Odgovor na temu

ADRENALIN

Član broj: 17952
Poruke: 278
*.dynamic.sbb.rs.



Profil

icon Re: Encoder/decoder za slanje komandi na vecu daljinu30.07.2009. u 22:05 - pre 179 meseci
Da imas strujni izvor pa zato ne stavljas otpornik, zanimalo me je bas to sto si napisao, znaci iz iskustva. Sve e jasno samo jos da probam. Hvala na odgovorima.
 
Odgovor na temu

zofr

Član broj: 126534
Poruke: 119
*.dynamic.sbb.rs.



+1 Profil

icon Re: Encoder/decoder za slanje komandi na vecu daljinu31.07.2009. u 20:57 - pre 179 meseci
Da ne otvaram novu temu, a mozda bi trebalo, ne znam.

Inspirisan vasom diskusijom dodjoh na ideju da postojecu komunikaciju zamenim strujnom petljom. Evo zahteva:

1. Koristi se SCI mikrokontrolera,
2. Komunikacija je master - slave polu dupleks.
3. Na liniji strujne petlje je 20 uredjaja,
4. Duzina strujne petlje je 100m i
5. Bodova brzina je 9600.

Sta kazu vasa iskustva, moze li to da bude pouzdano i da li je potrebno oklapanje. Odgovaralo bi mi da liniju mogu da cine obicne zice.

Pozdrav.
 
Odgovor na temu

ADRENALIN

Član broj: 17952
Poruke: 278
*.dynamic.sbb.rs.



Profil

icon Re: Encoder/decoder za slanje komandi na vecu daljinu04.08.2009. u 10:13 - pre 179 meseci
Ja, kao sto si mogao da vidis, nisam probao strujnu petlju u praksi, ai je njena poenta da se tesko ometa, tako da bi trebalo da to radi odlicno sa bilo kojim kablom, mislim da je brzina moguca na toj duzini, ali je uvek bolje da je smanjis ako ti nije potrebna tolika.
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.rs.



+7 Profil

icon Re: Encoder/decoder za slanje komandi na vecu daljinu04.08.2009. u 18:44 - pre 179 meseci
Evo strujne petlje koju sam koristio u vreme kada nisu bili lako dostupni neki drugi pouzdaniji nacini komuniciranja na vecim daljinama.

Pozdrav.
Prikačeni fajlovi
 
Odgovor na temu

zofr

Član broj: 126534
Poruke: 119
*.dynamic.sbb.rs.



+1 Profil

icon Re: Encoder/decoder za slanje komandi na vecu daljinu04.08.2009. u 23:33 - pre 179 meseci
Korak, hvala.

Sve sam ukapirao, ali mi je malo nejasno oko otpornika koji su vezani paralelno diodama optokaplera. Ako ti nije tesko pojasni.

I jedno pitanje: sta ako dva uredjaja istovremeno krenu da komuniciraju?

Pozdrav
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.rs.



+7 Profil

icon Re: Encoder/decoder za slanje komandi na vecu daljinu05.08.2009. u 09:55 - pre 179 meseci
Zofr,

odgovori na pitanja:

1. Navescu rezultate proracuna za CNY17-4 (a moze i neki brzi kao 6N136) i otpornik od 200 oma. Za aproksimaciju zavisnosti napona na diodi, a time i na otporniku, zavisno od struje kroz diodu Id koristio sam Ebers-Molove jednacine, sa tom razlikom sto sam k*T/q (k Bolcmanova konstanta, T tempertura u kelvinovim stepenima i q naelektrisanje elektrona) koje iznosi oko 28mV zamenio sa 34mV kako bi dobio krivu koja se poklapa sa krivom datom za CNY17-4. Jednacina koja odredjuje struju kroz diodu je:

Id = 2.0e-16*exp(U/0.034)
a iz ovoga je napon:
U = 0.034*ln(Id/2.0e-16)

Konstanta 2.0e-16 je inverzna struja zasicenja PN spoja. Ako strujnom petljom tece struja I onda mora da je zadovoljena jednacina:

R*(I-Id) = 0.034*ln(Id/2.0e-16)

Ova jednacina ne moze da se resi po Id jer je transcedentna, ali moze numericki. Evo ti nekoliko vrednosti struje Id u zavisnosti od struje I:

I = 10mA Id = 14mA
I = 15mA Id = 9.2mA
I = 10mA Id = 4.4mA
I = 7mA Id = 1.5mA
I = 5mA Id = 75uA
I = 4mA Id = 0.5uA
I = 3mA Id = 2.2nA

Faktor Ic/Id za ovaj optokapler je oko 1.5, pa vidis da kada petljom tece struja od 5mA kroz kolektor-emitor tece samo 112uA. Ova struja na kolektorskom otporniku, koji je recimo 1k ce napraviti pad napona od 112mV sto je zanemarljivo. Kada ne bi bilo ovog otpornika (200 oma) struja kroz kolektor-emitor bi bila 7.5mA sto znaci da bi tranzistor opto kaplera bio u zasicenju. Ovo znaci da smetnja mora da proizvede u petlji struju vecu od 5mA da bi to proizvelo stetne posledice. Ja ne znam koja bi to smetnja mogla da izvede. Cak i u slucaju da je petlja zatvorena, tece 20mA, a smetnja proizvodi struju koja se suprotstavlja struji petlje, umanjujuci je na 15mA, tranzistor optokaplera ce i dalje biti zasicen ne reagujuci na smetnju.

2. Programiras SCI mikrokontrolera da radi u loop modu tako da kada ide TxD, to se uvodi u RxD i moze da se cita. Dakle, kada neki uredjaj zeli da komunicira, on ceka da linija bude slobodna. Mislim da svi MCU-ovi koji se spominju na ovom forumu imaju generisanje interrupt-a kada je linija slobodna. Tada uredjaj salje prvo svoju adresu i istovremeno cita to sto salje. Ako je procitana adresa ista kao sto je poslata, to znaci da se ni jedan drugi uredjaj nije zakacio na liniju, i moze da nastavi sa komuniciranjem. Ako procitana sopstvena adresa nije ista onda se uredjaj povlaci, jer to znaci da se neko drugi javio istoremeno.

Kod eterneta ova kolizija se resava tako sto se oba uredjaja povlace, i posle nekog vremena koje se generise kao slucajni broj uredjaji ponovo javljaju na liniju. Sada postoji verovatnoca da se ne jave istovremeno i komunikacija se ostvaruje.

Adresa uredjaja moze biti odredjena ne binarno vec brojem jedinica. Tako uredjaj broj 5 ima adresni bajt 00011111, a uredjaj 3 ima adrsni bajt 00000111. U slucaju kolizije (istovremeno javljanje na liniju) oba uredjaja ce procitati kao sopstvenu adresu 00000111, sto znaci da ce se uredjaj broj 5 povuci a uredjaj broj 3 ce nastaviti da komunicira. Slicno ovome je resena kolizija kod CAN komunikacije.

Ustvari cod CAN je malo drukcije. Ako je adresa uredjaja 12 = 1100 a drugog 6 = 0110, onda ce biti procitane sopstvene adrese kao 4 = 0100. Analiza procitane adrese ide sa desna u levo. Za uredjaj 12 vec je krajnji levi bit 0 umesto 1 i on se povlaci. Komunikaciju preuzima uredjaj kod koga se ne menja poslata adresa na log. 1 koja je krajnje levo. Da bi ovo funkcionisalo uredjaj koji se povlaci to radi ne kada procita celu adresu koju je poslao, vec odmah cim je prva 1 koju je poslao primljena kao 0. Na primer uredjaj 12 i uredjaj 2 :

12 salje 1
2 salje 0; 12 ustanovio da je njegov bit promenjen, i on se povlaci tako da ce uredjaj 2 procitati svoju adresu. Ovo nije moguce napraviti kod SCI, osim ako adrese nisu binarne, vec kako sam napred napisao.

Nadam se da je ovo dovoljno objasnjenje.

Pozdrav.

[Ovu poruku je menjao korak dana 05.08.2009. u 14:04 GMT+1]
 
Odgovor na temu

VRadule
Vladimir Radulovic

Član broj: 191689
Poruke: 211
77.46.192.*



+8 Profil

icon Re: Encoder/decoder za slanje komandi na vecu daljinu05.08.2009. u 18:40 - pre 179 meseci
Ili kao 485, jedan master, ostali slejvovi .... slejvovi pričaju tek kad ih master priupita.
Master ciklično proziva slejvove.
U tom slučaju dva uređaja nikada ne mogu da se posvađaju oko Bus-a, naravno preduslov je da svaki uređaj ima jedinstvenu adresu.

 
Odgovor na temu

zofr

Član broj: 126534
Poruke: 119
*.dynamic.sbb.rs.



+1 Profil

icon Re: Encoder/decoder za slanje komandi na vecu daljinu05.08.2009. u 22:43 - pre 179 meseci
Korak, hvala, odlicno razjasnjenje.

VRadule je u pravu, na vise mesta koja opisuju neke druge protokole komunikacije, na pocetku stoji da je najbolja koncepcija master-slave. Ipak ona uzima dosta vremena na razne prozivke, i svi ostal komunikacijski protokoli (od eterneta pa do danas) su koncentrisane na resavanje slucaja kolizije kada dva ili vise uredjaja zele da komuniciaju. Kako se mi bavimo mikrokontrolerima i prenosom manje kolicine podataka sasvim zadovoljava koncepcija master-slave.

Pozdrav.
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Encoder/decoder za slanje komandi na vecu daljinu

Strane: 1 2

[ Pregleda: 6271 | Odgovora: 36 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.