Fórum témák

» Több friss téma
Fórum » 16/32/64 db relé kezelése soros portról
Lapozás: OK   1 / 2
(#) Dietrich hozzászólása Feb 1, 2007 /
 
Sziasztok,

Az következő hardver megépítéséhez kérnék segítséget:

Soros portról szeretnék 8/16/24/32...n számú relét CÍMEZVE kapcsolani - egyenként. Egy egység lehetne 8 relés, de ezeket akkor sorba kéne kötni. A címzés nagyon fontos.

Konkrét áramköri rajz, esetleg NYÁK terv volna az igazi segítség.

Feladat: n számú eszköz vezérlése soros port programozásával.

Előre is köszönöm a segítséget
(#) tbence3 válasza Dietrich hozzászólására (») Feb 1, 2007 /
 
Uhhh...
Nem tom lehet, hogy hülyeség de mi lenne ha mátrixba kötnéd be őket. Vagy ha nem akkor digitális kapikkal de ez a módszer szerintem bonyodalmas.
(#) Dietrich válasza tbence3 hozzászólására (») Feb 1, 2007 /
 
Minden megoldás érdekel, én nem vagyok hardveres, csak programozó, de szeretnék építeni egy ilyet
(#) tbence3 válasza Dietrich hozzászólására (») Feb 1, 2007 /
 
Nem vok még otthonos a témába de ugye 8bit megy soroson. Ha ezeket variálnád majd egy elekronika ezekből a bitekből olvasná ki a müködtetö relé címét. Vagy Ti hogy látjátok?
(#) Lucifer válasza Dietrich hozzászólására (») Feb 1, 2007 /
 
Üdv!

A) Szerzel MCP23016-ot. I2C-buszos perifériabővítő IC-ket. 3 szabadcímbitje van tehát 8 ilyet tudsz felfűzni 2 szál vezetékre. Ezek egyenként 16 I/O-val rendelkeznek, ergo van 128 db ki és bemeneted.
Az illesztést, vezérléséről való dolgokat találsz itt: itt]

B) Fogsz valami mikrovezérlőt, ami olcsó és relatíve sok kimenete van. Lehetőleg tudjon UART-ot vagy I2C-buszt. Írsz rá egy szoftvert, amivel a címzést és az adatáramlást kezeled. Ebből annyit fűzöl fel amennyi jól esik ezt csak a címzés módja határozza meg.

(#) Pavel válasza Dietrich hozzászólására (») Feb 1, 2007 /
 
Én mindenképp valmilyen mikrokontrollert használnék (AVR, PIC..kinek melyik a kedvenc)...a 8/16 relénél nem bonyolult a megoldás mert minden egyes relét a mikrovetzérlő egy portjára kötnék (valamilyen illesztéssel)...de akár mátrixba is kötheted...

Üdv
(#) Dietrich hozzászólása Feb 1, 2007 /
 
Köszönöm a válaszokat, sajnos az említett link irányadónak jó, de konkrét megoldást nem javasol. Sajnos a hardvert csak akkor tudom megcsinálni, ha érthető áramköri rajzot találok.

PIC-es megoldás is jó, bár nincs égetőm, de valaki talán abban is segít egy kis honoráriumért.
(#) mokus válasza Dietrich hozzászólására (») Feb 1, 2007 /
 
Ha nem ragaszkodsz a soros porthoz akkor:
Ezt ajánlom
(#) Lucifer válasza Dietrich hozzászólására (») Feb 1, 2007 /
 
Üdv!

Konkrétan mégis mennyi kimenetre lenne szükséged?
Az MCP-s dologban tudok segíteni, van egy pár nyákrajzom ami relé helyett 7szegmenses kijelzőket hajt meg meghajtó IC-ken keresztül.
(#) sirály12 hozzászólása Feb 1, 2007 /
 
Minek túlbonyolítani. Kell egy pic 16f877 és kész. A progi bele szinte semmi.
(#) kyrk válasza sirály12 hozzászólására (») Feb 1, 2007 /
 
Szerintem ket modulbul kihozhato az egesz. Kell egy modul amin van nehany rele meg egy soros-parhuzamos atalakito. Kell egy masik panel amin van egy uC ami a soros jelet alapjan kapcsol egy relet-t. Aztan hogy hany panelt fuz fel az ember sorosan az mar gusztus kerdese. Akar mehet korbe is a jel. Tehat beiras utan ugyan az a jel ki lesz leptetve a soros parhuzamos atalakitobol. Igy lehet ellenorizni, hogy helyesen irodott-e be.
(#) mlinko hozzászólása Feb 1, 2007 /
 
Üdv!
Aza baj h mindenki így kezdi a mondani valóját h nem biztos, de sztem, sajnos én is így vagyok vele.
Az én ötletem szerint nem bonyolítanám túl mikrokontrollerel, m sztem az egészhez az túl drága.
Egy sima demultimplexer is jó sztem sajnos nem tudom h a soros porton hány bit jön ki, de az korlátozza h hány relét tudsz kapcsolgatni és milyen DPX kell.
pl ha van négy akkor biztos h legalább 16 relét tudsz kapcsolni.
Nézzétek át jól gondoltam-e remélem igen.
(#) Dietrich hozzászólása Feb 1, 2007 /
 
Köszönöm a sok hozzászólást, segítséget!

Hány relét akatok összesen? Fogós kérdés, mert egy terepasztal váltóinak vezérléséről van szó, tehát (A) valamilyen pl 8-asával bővíthető ketyéről lenne szó, (B) egy pl 64 relés megoldásról. (azért a maximum kapcsolás nem több mint 128 - egyenként kapcsolva, címezve)

Értelem szerűen az (A) verzió az ideálisabb. (a felhasználási terület a relék miatt természetesen korlátlan)

Mokus: köszön, ismerem azt a megoldást, ha itt nem találunk ki jobbat, akkor ezt kell megvennem, mert akármennyit cascadba lehet kötni (csak hát az 8500 Ft/db )

Lucifer: Köszönöm az ötletet, de. 8 db relét mozgatni nem gond ha párhuzamos portra kötöm, mert ott pont 8 adat pont van...de ez nem bővíthető, legalábbis nem dinamikusan (tudomásom szerint). Ha van ötlet a felfűzésre, akkor az a megoldás

Sirály12: Igen, ezt is köszönöm, de a PIC-hez véképp nem értek, bár tudom, hogy ez lenne az egyik legjobb megoldás...korlátlanul bővíthető, címezhető...konkrét megoldást tudsz nyújtani?

Kyrk: Nagyon érdekes megoldás, köszönet érte - van e esetleg áramkköri rajz?
(#) pixels válasza Dietrich hozzászólására (») Feb 1, 2007 /
 
Hali!
Szerintem meg lehetne azt is oldani, hogy a printer portot mátrixolod.

Az adatbitek fele az oszlop, fele a sor. A 4 bitet dekódolod decimálissá, és így akár 256 relé is mehetne. De szerintem nem is kell a relé. Egyszerűen illeszteni kell tranyóval, és rögtön mehetne a váltóra a jel.
(#) Dietrich hozzászólása Feb 1, 2007 /
 
Amire eddig jutottam - összegzés:

- kéne valamilyen optocsatolós leválasztás - védendő a portot
- kéne egy számláló, ami fogadja a jelet, cím byte-adat byte sorrendben - esetlek kontroll byte visszafelé
- és kene egy VALAMI ami kapcsolja azt a relét. amit szoftverből megcímeztünk

ez persze csak elv - meg is kellene valósítanom
(#) Dietrich válasza pixels hozzászólására (») Feb 1, 2007 /
 
Mátrixolom? a 8 bitet? valami nem világos nekem: mátrixolva 4 bit 4-gyel = 4*4=16...vagy hogyan gondolod?
(#) mlinko hozzászólása Feb 1, 2007 /
 
Akkor is ugyan ott vagy 16 relé
(#) Dietrich hozzászólása Feb 1, 2007 /
 
na igen de nem 16 a max, hanem 64 vagy 128...
(#) Sebi válasza Dietrich hozzászólására (») Feb 1, 2007 /
 
Ezt én úgy értelmezem, hogy van mondjuk max 16 db 4-ből 16-ra demultiplexer (van ilyen IC), és ezek címzését BCD-ben mondjuk a felső 4 bit végzi. Az alsó 4 bit meghajt szintén egy 4-ből 16-os demux-ot, ami a 16db (felső 4biten párhuzamosan címzett) közül a chip-select segítségével kiválaszt egyet.
Ennél a megoldásnál azonban szükség van kimeneti tárolókra is.
Én a magam részéről shift-regiszterekkel oldanám meg, a dolgot, ebből elméletileg akárhány 8-as csoportot felfűzhetsz. Kitolod a soros porton a teljes sornak megfelelő bitmintát és az ott marad a kimeneteken. Amikor bármit át kell állítani, akkor egy teljes új bitmintát kell küdeni neki.
(#) pixels válasza Dietrich hozzászólására (») Feb 1, 2007 /
 
a 4 bitet dekódolod decimális számmá, így a 4 kimenet helyett lesz 16. a felső és az alsó 4 bittel is megcsinálod ezt, így 16*16=256

a CD40xx sorozatban van ilyen IC asszem. ezután már csak tranzisztorok lennének.

(most így elgondolkodva lehet, hogy csak 10 kimenet*10 kimenet lenne, mert nemtudom, végig dekódolja-e 16-ig az ic, vagy csak 10-ig megy. ennek atána kell nézni)
(#) Stadi válasza Dietrich hozzászólására (») Feb 1, 2007 /
 
Nos, ha párhuzamos port is megfelel, akkor én a következőt javaslom: A parancsregiszter felhasználásával nyerhetsz még 4 vezérlő bitet, így összesen 12 bit áll rendelkezésedre. A 4 vezérlőjelre ráköthetsz egy 74LS154 vagy hasonló 4-to-16 demultiplexert, ez így lehetne egy "alaplap" vagy "főpanel", és ehhez nyolcasával lehetne pakolni a reléket. Szükség lesz még a "relépaneleken" 1-1 tárolóra, pl. 74LS374, ezeknek a kimenetére kell 1-1 tranzisztoros meghajtófokozat, hogy elbírják a reléket. Tehát a főpanelen kialakíthatsz egy "buszt", ami 16+8+földelés+amennyi-tápfeszt-még-akarsz db. vezetékből állna, és ebbe lehetne csatlakoztatni a relés egységeket, amelyeken a 16 címből mondjuk jumperrel választasz egyet. Így lenne vezérlésed maximum 128 relé számára. A programozás annyiból áll, hogy kiadod a kívánt relépanel számára a vezérlőbyte-ot a párhuzamos port adatregiszterén keresztül, aztán kiírod a 4-bites címet a párhuzamos port parancsregiszterén át. Emiatt fontos, hogy a tároló élvezérelt legyen (374), mert így magával a címzéssel lehet beírni az adatot, és nem fog számítani, hogy az adat már akkor megváltozott, amikor még egy előző cím volt a "buszon". Emiatt viszont az "alaplapra" kell majd 3 db. 74LS04 inverter is, mert a demultiplexer alacsony szinttel dolgozik (cím változása után az új címen lefutó él jön létre), a 374-nek viszont felfutó él kell. Maga a kapcsolás rendkívül egyszerű, gyakorlatilag az adatlapok alapján (Google) egy kezdő is simán össze tudja huzalozni a tokokat, relé meghajtó fokozatot meg szerintem tonnaszám találsz itt a HE-n, és Google is a barátod. LS sorozatú IC helyett pedig gondolom elmegy a CMOS HC, HCT is. Nekem LS van itthon a polcon, azért írtam azt. Ha ez a megoldás érdekel, hétvégén tudok neked kapcs. rajzot fabrikálni. Esetleg a "buszon" lehetne spórolni úgy, hogy direktben a párhuzamos port 4+8 jelét vinné, és a "relépaneleken" egyenként lenne a demultiplexer IC. Illetve még pufferelni kellene a párhuzamos port jeleit, mert tudomásom szerint 16 bemenetet nem jó egyetlen TTL kimenetre kötni. Persze ezt a párhuzamos portos mókát is biztos elegánsabban meg lehetne oldani mikrokontrollerrel, de arra írjon más egy konkrét megvalósítást.
(#) sirály12 válasza mlinko hozzászólására (») Feb 1, 2007 /
 
Hát lehet hogy nem kell progizni a mikrovezérlőt ha egy sima demultimplexer-rel csinálod, de a pc felőli progi meg 10* bonyolultabb lesz. És a rendszer nem lesz elég flexibilis ha később bővítésre kerülne sor. Mert ugye egy picbe bármikor lehet progit módosítani s nem kell áttervezni az egész panelt.

(#) Stadi válasza Stadi hozzászólására (») Feb 2, 2007 /
 
Két észrevételt intéznék magamhoz , mégpedig, hogy ha a "relépanelek" pozíciója meghatározza a címüket, akkor a "busz" elég, ha 1 cím+8 adat+föld+amennyi-tápfeszt-még-akarsz db. vezetékből áll; illetve a programozáshoz még annyit, hogy a relék állapota így természetesen nem visszaolvasható, tehát a programban kell tárolni, mivel egy címen egyszerre 8 relét vezérelsz.

A harmadik dolog gyakorlati kérdés: a számítógép bekapcsolása után a DOS és Windows piszkálja a párhuzamos portot. A Windows 98-at ugyan egy VXD törlésével le lehet beszélni róla, hogy minden bitet piszkáljon, de emellett is van legalább egy bit, amit a nyomtató reset miatt elállít indításkor.
(#) Dietrich hozzászólása Feb 2, 2007 /
 
Sziasztok,

köszönet a sok értékes ötletért, volna is pár kérdésem:

A PIC-es megoldás mennyivel drágább a nem PIC-esnél, ha pl így deklaráljuk a feladatot: modulonként 4-8 relé kezelése, de a modulok összeköthetőek, és max 128/256 relé lehet a rendszerben? (8 bites címzés)

(#) Dietrich hozzászólása Feb 2, 2007 /
 
Most találtam: a 4094-es IC-vel egészen jól, modulárisan is megoldható a történet. Tud erről valaki valamit? esetleg komplett rajzot?
(#) sirály12 válasza Dietrich hozzászólására (») Feb 2, 2007 /
 
Szerintem a pic-e max egy olyan 500-assal drágább, gondold végig megér neked a kényelem ennyit? Ahogy előttem is leírták a gép bekapcsolásakor a gép bizony végigteszteli a portokat, és egy sima nem pic-es vezérlő bizony ilyenkor is bebillen, míg egy picessel könnyen megoldható, hogy ne. Ezért szerintem üzembiztosabb is, a másik, amit szintén mondtak, hogy akár visszakérdezhető a relék állapota, ez is jó dolog. A következő pedig, hogy akár gép nélkül is mehet, tehát magában is működőképes, hiszen ez is egy kis számítógép.

(#) Stadi válasza Dietrich hozzászólására (») Feb 2, 2007 /
 
Az én megoldásom a Lomex nettó áraival számolva, DIP tokozású HC sorozattal: 374: 50 Ft ("relépanelenként" 1 db. kell), 04: 33 Ft (3 db. kell), 154: 139 Ft (1 db. kell), puffernek mondjuk 2db. 244-es 54 Ft. Ezek filléres dolgok. Ennél jóval többet ki fogsz fizetni a meghajtótranyókra, ellenállásokra, diódákra, mert azokból relénként kell 1-1 db., illetve maga a relé sem olcsó. Plusz kell próbapanel vagy nyák (utóbbi szintén nem filléres dolog, persze otthon is megcsinálhatod). Próbapanelre lehet számolni min. 600 Ft-ot, de valszeg több/nagyobb kell majd, relére min. 100 Ft/db-ot, de érintkezők számától, terhelhetőségtől, márkától függően akár jóval többet is, tranyó, dióda és ellenállat 10-50 Ft-os nagyságrend. Ha az IC-khez foglalat kell, az is 10-60 Ft, reléhez inkább ne kelljen, mert az még drágább. Igazából nem tudom, van-e olyan csatlakozó, aminek papa-mama alakja is nyákos kivitel, mert ebből lenne jó kialakítani a "busz" csatlakozóit, vagy lehet még tüskesor + szalagkábel két lengő csatlakozóval a végén és úgy rá a "relépanelekre".

Lényeg a lényegben, hogy szvsz nem az IC-k a meghatározó költségtényezők, így a PIC-es megoldás se lenne nagyságrendileg drágább, viszont (megint csak szvsz) a PIC-re több időt kell szánnod a programozás miatt.
(#) Stadi válasza sirály12 hozzászólására (») Feb 2, 2007 /
 
Igazad van, írtam is, hogy PIC használatával elegánsabban megoldható a probléma, de az én megoldásom is "visszirányúsítható", ha a párhozamos port státuszvezetékeit is kihasználjuk. Persze így némi alkatrészt még bele kell pumpálni a projektbe, de nem vészes.

A nagyobb probléma az, hogy így kimeneti bitet vesztünk, amit ha nem ellensúlyozunk, buktunk 8 relét, ha viszont ki akarjuk köszörülni a csorbát, akkor használhatunk pl. 5 bites címdekódolást és 6 adatbitet, ami már 192 db. relét jelent. A cím-adat arányok változtatásán érdemes tehát gondolkozni, bár 128 relé is szép kis summa, és méretben se fér el akárhol.

A visszaolvashatóság biztosításával az én megoldásom is megtartja az állapotát a gép kikapcsolása után is (feltéve, hogy külön tápról megy), és a gép ismételt bekapcsolásakor a vezérlőprogram végig tudja kérdezni a tárolókat. A gép indulása körüli anomáliákat legegyszerűbben a kábel lehúzásával lehet kiküszöbölni, belátom, hogy ez komoly hátrány lehet a PIC-es megoldással szemben.
(#) Tomee hozzászólása Feb 2, 2007 /
 
Gondoltam egyet és én is megosztom az ötletemet.
Kell nézni valami Dual UART-os piccet (2 soros portja van) az egyszerűség kedvéért.
Az egyik lenne a jövő a másik meg a menő.
Kellene egy Master modul aminek az egyik vége RS232 a másik vége meg RS485.
Az RS232 a pc felé lenne az RS485 pedig a többi slave eszköz felé. A többi slave eszköznek 2 db RS485 portja lenne. Elég lenne half duplex RS485 kialakitás is.
A picekhez (master és slave egyaránt) i2c vagy spi buszon kapcsolodhatna egy MCP23017 (23016) vagy MCP23s17 (23s16).
Így az egyes modulok akár 16 vagy több ki vagy bemenetet (felhasználva a pic többi lábát) is tartalmazhatnak.
A modulok cimeit meg egyszerübb esetben jumperral vagy profibb megoldásban programból lehetne állítani.
Az egyes modulokat elég lenne 2 (3 ?) vezetéken fölfűzni.
A tápfeszt mindneki helyben kapná.
A tápfeszt az univerzális használhatóság kedvéért DC-DC konverterrel lehetne előálítani.
Így a két eszköz közőtt ha jól tudom akkor max 1km távolság lehetséges.
Igaz nem ez a legolcsóbb, de elég univerzális ahhoz, hogy bármilyen egyszerübb alkalmazásban jól lehessen használni.
(#) rbali hozzászólása Ápr 3, 2007 /
 
Sziasztok!
Bocsi hogy itt teszem fel a kérdésemet, mert elég amatör. Itt van egy kapcsolás és nem tudom mi ez a bekeretezett jelölés. Én relére gondoltam. Aki tud az segítsen légyszi. Előre is köszi.

szamkomb.GIF
    
Következő: »»   1 / 2
Bejelentkezés

Belépés

Hirdetés
XDT.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