Keresés: 
 Bejelentkezés
Nick:
 
Jelszó:
 
 
 
   
» Elfelejtettem a jelszavamat :'(
» Regisztráció
 Fórum témák
» Több téma
 Frissek
RSS hírforrások
  Hírek.rss
  Fórum.rss
  2012. Máj, 26. Szo
14:23:46
  Jelenleg 421 fő olvassa az oldalt
Fórum » Pontra menő témák » 81 érzékelő kódolása (inverz logika) »
81 érzékelő kódolása (inverz logika)  
Témaindító: dedista, idő: Márc 4, 2010
Témakörök
Technika » Méréstechnika
Alapismeretek » Érzékelők
Digitális áramkörök » Logikai áramkörök
Lapozás Méret: 1 / 1
(#652985) dedista Válasz • Márc 4, 2010
Sziasztok!

Volna egy olyan nagy nagy problémám, hogy van nekem 81 db érzékelőm. Mely 130 centi hosszan el van helyezve egy csőben. Nem is az a lényeg, hogy mit érzékel, hanem az, hogy hogyan kódolom ezt be úgy,hogy értlemesen föl tudjam dolgozni a mikrokontrollerrel. És egyszerre max 1 jelez. Sajnos invez logika, tehát akkor ad 0-t mikor érzékel. Először arra gondoltam, hogy diódával mátrixot hozok létre, és a sor és oszlopot priority encoderrel 4 bitbe bekódolom. így ez szép és jó, csak minden érzékelő után invertert kell rakni, hogy a diódákkal meg lehessen csinálni a mátrixos kiválasztást. De ha már a 40-edik érzékelőnél tartok, annyira sok vezetéket kéne elvezetnem, hogy a 22 mm-es nyákon egyszerűen nem fér el. Hiába két oldalas, és hiába a 0,25mm csíkszélesség. Ez így túl bonyolult. Multiplexálnom kéne, vagy mit? Kérlek segítsetek. Tanácstalan vagyok!
Előre is köszi!!

dEdE

(#653014) watt válasza dedista hozzászólására (#652985) Válasz • Márc 4, 2010
Igen, mátrixba kellene kötnöd őket. Így 9+9 kábel kell.
Az érzékelők milyen jellegűek? (sima kontaktus?)

(#653022) GLaszlo válasza dedista hozzászólására (#652985) Válasz • Márc 4, 2010
Szia!

Tisztán digitális az érzékelők kimenete?
Ha igen, akkor shiftregiszterekben gondolkodtál?
Egy lehetőség párhuzamosan tölthető, sorosan olvasható shiftregiszter szerintem... Igaz blokkonként elég szűkösen lesz hely a vezetékezésre (kb 1.6cm-enként van egy érzékelő, ha jól sejtem, így egy blokk 12-13cm hosszú), de szerintem kivitelezhető... Így ami vezetéket végig kell húzni a panelen az szerintem olyan 5 db lehet (tápfesz/föld, órajel, load jel, soros kimenetek felfűzése), viszont lokálisan minden egyes érzékelőt be kell kötni a shiftregiszter párhuzamos bemeneteire. Ez a huzalozás így első blikkre megvalósíthatónak tűnik (aztán persze lehet, hogy nem).

üdv:
GLaszlo

(#653024) pako válasza dedista hozzászólására (#652985) Válasz • Márc 4, 2010
Meg lehet oldani 1 vezetékkel is. Mindegyik érzékelőre más-más értékű ellenállással fesz.osztókat alkotni, és bevezetni az MCU A/D konverterébe. Így invertálni sem kellene. Ez csak akkor működik megbízhatóan, ha nincs nagy elektromos zaj a környéken.

(#653025) kaszarober4 válasza dedista hozzászólására (#652985) Válasz • Márc 4, 2010
És ha egyszerűen mindegyikhez tartozna egy ellenállásérték, és ezt méred a mikrokontroller adjével?
(pako gyorsabb volt)

(#653026) watt válasza watt hozzászólására (#653014) Válasz • Márc 4, 2010
Van még egy lehetőség. Egy ellenállás osztót készítesz 81 féle ellenállással a 81 érzékelőd kimeneteihez. Így a kapott feszültségből mindig tudod, melyik jelez. Ha az ellenállásokat az érzékelőkhöz teszed, elég egy szálat végigvinni és elég 1 láb a PIC-en.

(#653027) gabi20 válasza dedista hozzászólására (#652985) Válasz • Márc 4, 2010
Szerintem is AD átalakítóval lenne a legegyszerűbb ( kép). Csak ellenállásokat kell az érzékelőkre forrasztani és 1 vezetéken megkapod az analóg jelet.
» A fájlok letöltéséhez be kell jelentkezned! «

(#653031) proba válasza dedista hozzászólására (#652985) Válasz • Márc 4, 2010
Autórádiók klasszikus megoldása: csinálsz egy ellenállás sort ,a felső tagra rákötöd a mikrovezérlő AD bemenetét a többire meg egy egy érzékelő kimenetét. Az érzékelő testre viszi az adott osztáspontot és a feszültségosztásból be lehet azonosítani az asdott kimenetet. Autórádiókban egy vonalon 10-14 gombot is le szoktak kérdezni ily módon.
Ha nincs szenzor akkor szinte 5V , ha az utolsó akkor egy picit kisebb..... Ha a kimeneted nem nyitott kollektoros akkor esetleg egy dióda segíthet,bár csökkent az erzékelők számán.

(#653035) GLaszlo válasza gabi20 hozzászólására (#653027) Válasz • Márc 4, 2010
Az analóg átvitelnek két korlátját látom én itt...

1. A kontrollerekben általában 8/10 bites AD van, ezáltal kb 2..10 LSB-nyi sáv jut 1-1 érzékelőre, ezáltal nagyon zavarérzékeny lenne.

2. 130 cm hosszan vannak elhelyezve az érzékelők. Nem hiszem, hogy ilyen távolságon keresztül ne csatolódna be kapacitív/induktív módon zajfeszültség...

Shiftregiszteres átvitelnél, amit javasoltam, ott az órajel huzalozására már figyelni kell, mivel elég messzire kell elvinni a jelet...

(#653039) watt válasza GLaszlo hozzászólására (#653035) Válasz • Márc 4, 2010
A zavarjel csak az alkalmazott áramtól függ. Ha 20mA folyik legkevesebb, akkor nem lesz zavarérzékeny. De nagyobb áramokban is lehet gondolkodni. Valamint az is kérdés, hogy milyen sebességű változást kell detektálni, mert ha nem gyors, akkor lehet szűrni rendesen. Az egyes érzékelőkhöz tartozó feszültség lépcső 60mV lenne egyébként, ami 12 szer nagyobb, mint a legkisebb mérhető fesz(5mV), ha 5V a létra tápja!

(#653053) watt válasza proba hozzászólására (#653031) Válasz • Márc 4, 2010
Idézet:
„Ha a kimeneted nem nyitott kollektoros akkor esetleg egy dióda segíthet,bár csökkent az erzékelők számán.”
Hogy hogyan csökkenti az érzékelők számát nem tudom, de az biztos, ha nem nyitott kollektoros a kimenet, akkor a dolog sokkal bonyolultabb! Diódákkal nem lehet analog körben boldogulni, mert jelentősen hőfokfüggő a nyitófeszük, ami elrontaná a létra mérését. Ha netán nem nyitott a kimenet, akkor nyitottá kell tenni, valamint ha nem bír nagyobb áramokat, akkor szintén kell valami, amivel pufferelni lehetne a kimenetet, azaz kéne néhány tranyó még!

Egyébként a legnagyobb baj megint az, hogy a megoldáshoz ismerni kéne az érzékelőket, és azt is amit érzékel(legalább is a változás dinamikáját!). A kérdező pont ezt tartotta lényegtelennek!

(#653062) watt válasza watt hozzászólására (#653039) Válasz • Márc 4, 2010
Jut eszembe, nem muszáj egy A/D-t használni, akár lehet 10-et is, az csak 10 vezeték még mindig és talán akkor is működik, ha nem OPC-s az érzékelő kimenete, és nem kell annyira félni a zavaroktól sem...

(#653091) tcs52 válasza dedista hozzászólására (#652985) Válasz • Márc 4, 2010
Én az eddigi elhangzott ötleteket kombinálnám:

1. Ellenállásokkal beállított feszültségszint mérések néhány érzékelőre (mivel kevés jelet mér - pl. 3 db érzékelőt -, nincs nagy jelentősége a zajnak).

2. Egy maroknyi 8 lábú PIC használata (esetleg SOIC tokozás) blokkonként a néhány (pl. 4db) A/D konverzióra. Erre jó pl. a 12F675 (ChipCad-ben kapható). 7-9 db elég a blokkosítástól függően. Darabja kb. 200-250 Ft.

3. Soros adattovábbítás: Egy gyakorlottabb (és bitrágásban jártas) programozó meg tudja oldani, hogy a PIC-ek egymásnak adogatják át sorosan az információt, a saját érzékelésükkel kiegészítve. Gyakorlatilag a tápot és a soros jelet kell végigvezetni, és ez 3 vezeték (esetleg egy 4. ami indítja a mérést). A többi néhány vezeték a PIC körül csak a környékbéli ellenállásokra megy.

Az inverz logikának nincs különösebb jelentősége; az ellenállásokkal kialakuló feszültségeket ennek alapján kell értelmezni.

Könnyebbséget jelent, ha igaz az a feltételezés, hogy: "...egyszerre max. 1 jelez". Ekkor a továbbítandó soros adat lehet a szokásos aszinkron 8 bites infó, benne 7 biten az érzékelő sorszámával. Ezt bármi könnyen fogadja (akár PC akár PIC).

(#653099) proba válasza watt hozzászólására (#653053) Válasz • Márc 4, 2010
Ugy gondoltam a kimenettel sorbakötni,ekkor minimum a rajta eső feszültséggel csökken a lépcső ,valamint a keletkező bizonytalanság miatt nagyobb lépcsőt kell választani.

(#653102) Zozi85 válasza dedista hozzászólására (#652985) Válasz • Márc 4, 2010
Én első ötletben betennék 4 db 24 bites i2c io expandert.
Lehet mindegyiket kérdezgetni és kivitelezés sem túl bonyolult. Fénykapuknál működik, hátha itt is.

(#653108) Hp41C válasza tcs52 hozzászólására (#653091) Válasz • Márc 4, 2010
Sziasztok!

- Ha csak 4 db érzékelő megy egy 8 lábú pic-re, miért nem 4 digitális bemenetése kötjük. Kell még egy-egy táp - föld láb. Járjon belső órajellel. A maradék kettőn pedig valamilyen protokoll szerint - mondjuk az I2C - ki is tudja küldeni digitális formában. Az egységeket 4 vezeték köti csak össze...

- Ha nem akarunk még ennyit sem programozni:
1 - használhatunk kész I2C portbővítőket: MCP23008 (8 bit / egység), MCP23016 (16 bit / egység),
2 - 74HC166 paralell tölthető shift regisztereket (8 bit / egység). Nem kell külön betöltő órajel - egyszerű R/C taggal meg lehet csinálni: Ha az adatokat léptetjük az órajalat sűrűn váltjuk, ha be szeretnénk tölteni az adatokat egy hosszabb időre nem adunk ki órajelet. A léptető órajel RC-taggal szűrt DC középérték jelet használhatjuk a párhuzamos betöltés vezérlésére.

Sziasztok

(#653133) watt válasza Hp41C hozzászólására (#653108) Válasz • Márc 4, 2010
Ez a I2C-s megoldás 4 érzékelőnként jó lehet.
Most már csak azt kéne tudni, hogy az érzékelők mellé lehet-e tenni elektronikát(hőmérséklet, víztartalom, stb...)!

(#653715) Hp41C válasza Hp41C hozzászólására (#653108) Válasz • Márc 5, 2010
Sziasztok!

A 81 db érzékelőhöz elég 74HC166 léptető tárolóból 10 db egység, a 81. mehet a lánc soros bemenetére....

Sziasztok.

(#659048) dedista válasza gabi20 hozzászólására (#653027) Válasz • Márc 11, 2010
Szia!

Nagyon jó ötlet volt a DA-s megoldás! Meg is csináltam,majd töltök föl képet. De lenne két kérdésem. 1 kOhm-onként növekednek az ellenállásosztó alsó tagjainak értékei. Minden szép és jó 20k-tól 100k-ig, de alatta nem arányosan lépked a feszültség. Nem értem. A másik,hogy nem tudjátok, hogy lehetne ezt az analóg jelet stabilizálni, mert folyamatosan libeg. És mivel 100 érzékelőt raktam be, azok nagyon közel vannak értékben egymáshoz,így néha belelengenek egymás tartományába. Tehát fars eredményt kapok. Rakjak még mindenhová plusz ellenállást, és akkor nagyobb lesz a lépés kettő között? Vagy hogyan?

Köszi mégegyszer...

(#659050) simpi válasza dedista hozzászólására (#659048) Válasz • Márc 11, 2010
Használd ki a mikrovezérlőd analóg bemeneteit, ha több analóg bemenetet használsz nem kell sűrűn pakolni. Gondolom itt már a feszültségforrásodat és a mikrovezérlő referenciafeszültségét is stabilan kellene tartani.

(#659101) dedista válasza simpi hozzászólására (#659050) Válasz • Márc 11, 2010
LM2576-ot használok. Teljesen stabil.
a referencia forrásom, pedig meg van szűrve. Stabil. De akkor is az 1024-es skálán (2 a 10-ediken) 5 egységet billeg. Raktam kondikat az érzékelőkhöz, de nem sokat segít. Valami ötlet még?

(#659105) simpi válasza dedista hozzászólására (#659101) Válasz • Márc 11, 2010
Lehet közelítesz az elméleti pontossághoz.
Próbáld növelni az adc olvasás idejét, és használj több adc csatornát, akkor nem kell hogy annyira pontos legyen. Most 1adc csatornát használsz?

(#659129) dedista válasza simpi hozzászólására (#659105) Válasz • Márc 11, 2010
igen egy csatorna, de nem nagyon akarom megváltoztatni

(#659145) simpi válasza dedista hozzászólására (#659129) Válasz • Márc 11, 2010
Még az adc referenciafeszültségét leviheted minimumra, akkor javul a felbontásod. Bár gondolom már megtetted. Vagy megkeresed hogy táphiba hőmérséklet stb. miatt ugrál a digit, vagy bevonsz mégegy adc csatornát. Esetleg lehet brumm is, az ellenálláson vagy vezetéken.
Az ellenálláslétrát nem a mikroproci stabil tápjáról hajtanám mert megtudja rángatni a tápot egy kis mikroproci is.

(#659167) lidi válasza simpi hozzászólására (#659145) Válasz • Márc 11, 2010
Túl sok az 1k szerintem. A végefelé ha összeadódik nagyon sok lesz. PIC adc szereti ha alacsony impedancián van meghajtva.

(#659178) watt válasza dedista hozzászólására (#659048) Válasz • Márc 11, 2010
Lidinek igaza van, túl nagy a bemeneti impedancia. Tettél az A/D bemenetre is kondit? Az segíthet, ha nem kell túl gyors változásokat detektálnod. Esetleg egy illesztő OPA még elkellhet(valami egytápos, rail to rail kimenetű(MCP6001))

Következő 1 / 1
 HEStore.hu
 Hirdetés
TrainModules.hu