Fórum témák
» Több friss téma |
Fórum » 2 digites 7 szegmenses LED kijelző vezérlés LPT-ről multiplex-szel
Témaindító: hackerfish, idő: Jún 20, 2010
Témakörök:
Sziasztok!
Építettem egy 2 digites, 7 szegmenses közös anódos LED kijelzőt, amit LPT-ről szeretnék vezérelni. Csak kísérletezésre kell, betűket, számokat szeretnék vele kiírni. A szoftver része már megvan, de a hardverrel elakadtam. Ami már megvan: A két kijelző azonos szegmensei össze vannak kötve. A pont szegmensek nincsenek bekötve. D0-D6 - ezek kapcsolagtják ki-be a szegmenseket. (az invertálást a szoftver csinálja) De mivel az LPT-n csak 8db I/O pin van, a multiplexhez csak 1 maradt: D7. (A strobe-t, meg hasonlókat sajna nem tudom vezérelni, a progi csak a D0-D7-et éri el.) Ehez kaptam is egy kapcsrajzot, (lpt-2digit.jpg) megépítettem, de nem működik: Ha D7 = 0 -> A második szegmens világít. Ha D7 = 1 -> Egyik szegmens sem világít. Most megépítem a második rajzot (lpt-2led.jpg) ez tulajdonképpen ugyanaz, csak leegyszerűsítve. Szóval a kijelzők nem érdekesek, azok működnek. A cél: D7-tel szeretném kapcsolgatni a ledeket: Egyszerre mindig csak az egyik világítson. Mi lehet a gond a kapcsolással? Többször átnéztem, de egyedül nem tudok rájönni. Aki tud segítsen! Előre is köszi!
Szia
Idézet: „Ha D7 = 0 -> A második szegmens világít” A kérdés: mi számít nálad 2. szegmensnek? Nem inkább a második digit világít? A hardwerba nem sok hiba lehetőség van, tranyók jók? Én konkrétan ezt a kijelzőt nem ismerem, de ugye a két kijelzőhöz tartozó közös anód izolálva van egymástól?
Igazad van, elírtam. digit akatr lenni.
A tranyókat kipróbáltam, és mielőtt beforrasztottam volna őket jók voltak. Remélem a forrasztás nem nyírta ki egyiket sem. Az izolálás alatt azt érted, hogy nem érnek egymáshoz? Egyébként csak a multiplex részben lehet a hiba, mert a kijelzők között manuálisan tudok váltani. A multiplex előtt mértem a D7-et, és kapcsolgatáskor rendesen megjelenik/megszűnik rajta az áram.
Megépítettem a leegyszerűsített kapcsolást.
A két led anódja össze van kötve D0-al. A katódok a multiplexre vannak kapcsolva. A D2 a multiplex bemenetére van kötve, de akárhogy kapcsolom, mindig csak a második led világít. És azt elfelejtettem írni, hogy a két tranyó nem ugyanolyanfajta, mint a rajzon, két különböző típusú kiforrasztott pnp.
Szia!
Idézet: „De mivel az LPT-n csak 8db I/O pin van, a multiplexhez csak 1 maradt: D7.” Nézd meg jobban, a vezérlő porton van még néhány felhasználható kimenet: INIT, AUTOFD.... (A STRB-t nem ajánlon, RC szűrőtag van rajta.) A probléma az lehet, hogy a Q2 -nek nincs elég bázis árama, ha csak egy (vagy néhány) digitet kacsolsz be a kijelzőn. Illetve a Q2-nek mindig lesz bázis árama led -en keresztül. Végy egy npn tranzisztort, emittere a földre, a bázisa 1 k-n keresztül a D7- re, a kollektora menjen a Q2 2k2 bázisellenállására. Szia
Oké, de mostmár valami más gond is van a kapcsolással, mert ha bekapcsolom D0-t, akkor sem kapcsol ki a led.
A bekötést így gondoltad? (kapcs2.JPG)
Megnéztem egy 2 digites adatlapját, mondjuk ott eleve össze vannak kötve a lábak, itt nincs így?
Idézet: „Az izolálás alatt azt érted, hogy nem érnek egymáshoz?” Ezt tekintsd tárgytalannak, mert külön van. Idézet: „A két led anódja össze van kötve D0-al. A katódok a multiplexre vannak kapcsolva.” Itt a rajzon fordítva van. Van itt egy dolog amit nem értek, az LPT Dx lábain nem +5V, vagy 0 nak kellene megjelennie? Akkor miért is közös anódú kijelző kell ide? Asszem kikapcsolok holnapig, így másnaposan piszokul nem megy az agyalás, bocsi
Melyik led?
Az ábrán pirossal jelzett LED soha nem alszik ki, mert, ha D1 alacsony, akkor a felső tranzisztor vezet, de a kollektor feszöltsége a felső LED -en eső feszültség, ami nyitva tudja tartani az alsó tranzisztort. Ha a D1 magas, akkor a felső tranzisztor lezár, de az alsónak marad a bázisárama a felső led-en keresztül...
Hali
Nem ertem . A LED anodja a pozitiv, a katodja a negativ ( en legalabb is igy tudom). Amennyiben a katodra pozitivot, az anodra negativot adsz a LED nem fog vilagitani. Szerintem el kellene mar kezdeni az alapok megtanulasat. Pl milyen egy led, melyik laba a pozitiv, es ugyanezt a tranyoknal is. Az is lehet, hogy nem jol kotod be a tranzisztot. Ajanlanam az egesz kiprobalasat a LPT nelkul. Lehet mar reg tonkretetted a portot. Adsz a kapcsolasra 5 voltot (nem kb, hanam pontosan) rakotsz 2 LED-et (A a tranyora K az ellenallason keresztul GND), es az elso tranyo bemenetet lehuzod GND-re. Igy valtani kellene. Amennyiben nem csinalja, akkor a tranyok rosszak, vagy nem jol kototted be, vagy mas alkatresz armanykodik. Udv Vili
anód-katód
Akkor valszleg fodítva írtam, összekevertem. A rajz a jó.
Vagyis akkor most mi a lényeg?
Egy pillanat, most nézem, hogy a táp fordítva van, ez a sok kábel, megy össze vissza Leellenőrzöm mégegyszer...
Tegyél be egy ellenállást a Q2 B - E közé úgy, ahogy az R9 van a Q1 -nél.
Mérd meg, mekkora a magas szint a párhuzamos port kimenetén. Ha ott nem 4.5V -nál magasabbat mérsz, akkor a kapcsolást át kell alakítani...
Jó.
Most jutottam el odáig, hogy ha D0 be van kapcsolva a ledek nem világítanak, ha ki van kapcsolva, akkor meg igen. A multiplex bemenete D1-re van kötve. kapcs2.jpg-t véletlenül csatoltam.
Kapcs2 -be tegyél a Q2 és Q3 B - E közé egy-egy ellenállást (1 - 10k)...
Bocsi, kezd egy kissé áttekinthetetlen lenni,
a piros pontot hová kössem?
Probald meg letisztazni a kapcsolast. Esetleg meg kellene epiteni ujra, mert lehet hogy valamit elkotottel. Utana a LPT-re kiadsz valamilyen erteket, amiben van H es L szint. A D7-et nem kotod be. Amennyiben most vilagit a masodik kijelzo, jo a kapcsolas. Most lekotod az elso tranyo bazisat GND-rees valtania kell a kijelzoket. Ha ez nem turtenik meg, akkor valamit elrontottal. Goto eleje. Esetleg tudhatnank az alkatreszek tipusat? Mert pl a PNP es a NPN tranyo pont ugyanugy nez ki, csak mas van rairva. A masik: mi van akkor, ha a ket kijelzo anodjara kezzel adsz 5 (pontosan) voltot? Akkor valtani kene a ket kijelzo kozott.
Udv Vili
Mielőtt újra nekiállnék építeni, szeretnék egy jó rajzot.
Most átrajzoltam, letisztáztam. Mindjárt belerakom Q3-at is.
Oké. Ebben benne van Q3 is.
Akkor most hová kössem a kék pontot?
De ha a BC548 NPN, akkor csak ez volt a gond nem?
Simán elnéztem? http://images.alldatasheet.com/semiconductor/electronic_parts/datas...47.GIF :bummafejbe: Najó. Nekiállok újra megépíteni az eredeti rajzot, aztán majd mondom, hogy jól működik -e. DE ez hogy lehet? Egy működő astabil multivibrátorból szedtem ki, és ki is próbáltam, akkor kapcsolt be, ha a pozitívat kötöttem a bázisra!
Szia!
Az előző hozzászólásaimban feltételeztem, hogy Q1 és Q2 pnp tranzisztor. A Q3 beépítését ajánlom az általam belinkelt rajz szerint...
Hali!
Régebben én is csináltam ilyet, csak én 4db kijelzővel. A kijelzők közötti váltást a Control bitekkel (olyan mint a 8 adatbit, csak nem $378h-ra küldöd az adatot, hanem $27Ah-ra [vagy 37Ah-ra]) oldtam meg (csak vigyázni kell velük, mert van amelyikre 0-t kell kiírni hogy 1 legyen kint, tehát negálva van a bit). Csatolok egy képet, amin rajta van a Control port biteinek beállítása, valamint a saját kijelzőm kapcsolása. Ha érdekel küldök NYÁK tervet is.
Szia! Próbáld meg a szoftvert úgy módosítani, hogy a Control porton keresztül legyen megoldva a multiplexelés. Ott arra kell vigyázni hogy a Control port néhány kivezetése invertálva van. Mindkét digithez kapcsolsz egy tranzisztort, a bázisra egy védőellenállást, ennyi.
Jobb lenne, ha maradna a D port, de azért megnézem, hogy meg lehet -e oldani a szoftverrel a control portot is.
Itt egy mellékelt kapcsrajz. Most így néz ki az áramköröm. Egy fokkal jobb a dolog: Amikor D7 nincs bekapcsolva, a rajzon pirossal jelzett kijelző világít, ha D7 be van kapcsolva, akkor a rajzon pirossal jelzett kijelző kicsit halványabb lesz, és a másik is világít, csak nem elég erősen. Egyébként ha a kijelzők helyett két ledet kötök rá, a multiplex működik.
Milyen nyelvben programozod?
Visual Basic 6
És megtaláltam, hogy hogy lehet irányítani a Control, illetve a Status portot: PortOut (888, x) -> Data PortOut (890, x) -> Control PortOut (889, x) -> Status
Idézet: „Amikor D7 nincs bekapcsolva, a rajzon pirossal jelzett kijelző világít, ha D7 be van kapcsolva, akkor a rajzon pirossal jelzett kijelző kicsit halványabb lesz, és a másik is világít, csak nem elég erősen” Most azt kene tudni a "be van kapcsolva-nincs bekepcsolva" nalad mit jelent. Ugy lehetne esetleg, hogy "H-L" szintek. Masik : Hany volt van a D7 labon mikor H szint van, mennyi, ha L szint van? Ezek sarkalatos kerdesek es befolyasoljak az aramkor mukodeset. Meg egy fontos dolog: ket PNP tranyo bekotese nem egyforma (adatlap). Udv Vili
Szia!
Mit jelent a "" bekapcsolva" ? Megmérted a feszültséget a párhuzamos port D7 lábán, ha az adat regiszter 0x80 -at és 0x00 -t tartalmaz. Feltételezésem szerint megint nem jó valami... - Ha a bekapcsolt azt jelenti, hogy a D7 kimeneten magas szint van, akkor a LED2 kijelző szegmensei joggal világitnak, ha a hozzájuk tartozó vonalon alacsony szint van. Azonban ez a magas szint lehet 3.3V-is, akkor a Q1 nem tud lezárni, és a LED1 kijelző szegmensei is világítanak.... - Ha a bekapcsolt azt jelenti, hogy a D7 kimeneten alacsony szint van, akkor a LED2 kijelző szegmensei nem világíthatnak, ha a kapcsolás jó, és az alkatrészek is jók. Ekkor a Q3 lezár, Q2 -t lezárja. Q1 van nyitva, rajta keresztül azok a szegmensek kapnak áramot, amikhez tartozó adatkimenet alacsony... Ha a feszültség mérés 4.5V-nál alacsonyabb értéket ad, ha az adat regiszterbe 0x80 / 128 írtál utoljára, akkor a mellékletben megrajzolt 4. tranzisztorra is szükség lesz...
Hello!
Néha mérni kellene valamit, alkatrészeket pozíció számozni és arra hivatkozni. Mert így nem lehet rajtad elmenni.. :yes: -De ez a két tranyós kapcsolás, közös emitteres fokozat. Tekintve, hogy PNP tranyók vannak benne, és az emitter a "közös" benne, a +5V-hoz képest érdemes mérni a feszültségeket. - Egy tranyó akkor van nyitva (folyik kollektor áram) ha a bázis áram is van. Ehhez a bázi-emitter között, 600..700mV feszültségnek kell lenni. - Tehát, amikor a D7 kimenet alacsony szinten van, akkor a felső tranyó bázis-emittere között (R9 ellenálláson) kb. -650mV mérhető. A tranyó be van kapcsolva, így az emitter-kollektor között majdnem 0V mérhető. Ekkor a kollektor áram folyik, és a felső Led ég. Az R1 ellenállás korlátozza az áramot. R1-en mért feszültségből kiszámítható a Led árama. A Led-en mérve, ilyenkor (Led szinétől függően) kb. 1,5..2V mérhető, R1 ellenálláson, pedig a tápfeszültségből levont Led feszültség értéke. (5V-1,5V=3,5V 3,5V/330ohm=10mA) - Amikor a felső tranyó nyitva van, akkor a kollektor-emitter között nincs feszültség. Mivel R8 ellenálláson keresztül ebből a feszültségből (ami nincs) táplálkozna az alsó tranyó bázisárama. mIvel nincs feszültség, nincs bázis áram sem. Így az alsó tranzisztor zárva van és az alsó Led sötét. - Ha a D7 magas szinten van, akkor a felső tranzisztor bázis-emitter feszültsége nulla. Bázisáram nem folyhat, így kollektor áram sincs. (A tranyó ki van kapcsolva.) Így felső Led nem világít. Viszont most már a felső tranyó nem söntöli az alsó bázis-emitter feszültségét. Így (R1 ellenálláson-felső Led-en és R8-on keresztül), viszont így van bázisáram. Az alsó tranyó kinyit, és bekapcsolja az alsó Led-et. Gond lehet viszont, ha az alsó tranyó áramerősítése kicsi (vagy fordítva raktad be), mert az R8-on érkező bázisáram ilyenkor nem elegendő. Megoldás lehet, ha a felső tranyó kollektora és a GND közé, egy 1kohm-os ellenállást teszel. Így kikapcsolt felső tranyó esetén, ezen az ellenálláson és az R8 ellenálláson keresztül, már közel 1,3mA bázisáram lesz, ami biztosan nyitja az alsó tranyót. üdv! proli007
Döntöttem. Megfogadom a tanácsot, és
nem vacakolok a D7-tel, inkább 2 pin-el fogom vezérelni a multiplexet: S5 S6 (S = Status) A progival most lettem kész: (progi.jpg) Holnap átépítem a multiplexet, és majd megírom, hogy sikerült -e. |
Bejelentkezés
Hirdetés |