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 ![]() 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 |