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
Lapozás: OK   1 / 3
(#) hackerfish hozzászólása Jún 20, 2010 /
 
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!
(#) zsoltee0001 válasza hackerfish hozzászólására (») Jún 20, 2010 /
 
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?
(#) hackerfish válasza zsoltee0001 hozzászólására (») Jún 20, 2010 /
 
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.
(#) hackerfish válasza zsoltee0001 hozzászólására (») Jún 20, 2010 /
 
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.

kapcs.jpg
    
(#) Hp41C válasza hackerfish hozzászólására (») Jún 20, 2010 /
 
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
(#) hackerfish válasza Hp41C hozzászólására (») Jún 20, 2010 /
 
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)

kapcs2.JPG
    
(#) zsoltee0001 válasza hackerfish hozzászólására (») Jún 20, 2010 /
 
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
(#) Hp41C válasza hackerfish hozzászólására (») Jún 20, 2010 /
 
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...
(#) vilmosd válasza hackerfish hozzászólására (») Jún 20, 2010 /
 
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
(#) hackerfish válasza zsoltee0001 hozzászólására (») Jún 20, 2010 /
 
anód-katód
Akkor valszleg fodítva írtam, összekevertem. A rajz a jó.
(#) hackerfish válasza Hp41C hozzászólására (») Jún 20, 2010 /
 
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...
(#) Hp41C válasza hackerfish hozzászólására (») Jún 20, 2010 /
 
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...
(#) hackerfish válasza Hp41C hozzászólására (») Jún 20, 2010 /
 
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.
(#) Hp41C válasza hackerfish hozzászólására (») Jún 20, 2010 /
 
Kapcs2 -be tegyél a Q2 és Q3 B - E közé egy-egy ellenállást (1 - 10k)...
(#) hackerfish válasza Hp41C hozzászólására (») Jún 20, 2010 /
 
Bocsi, kezd egy kissé áttekinthetetlen lenni,
a piros pontot hová kössem?

kapcs2.JPG
    
(#) vilmosd válasza hackerfish hozzászólására (») Jún 20, 2010 /
 
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
(#) hackerfish válasza vilmosd hozzászólására (») Jún 20, 2010 /
 
Mielőtt újra nekiállnék építeni, szeretnék egy jó rajzot.
Most átrajzoltam, letisztáztam.
Mindjárt belerakom Q3-at is.

multiplex.jpg
    
(#) hackerfish hozzászólása Jún 20, 2010 /
 
Oké. Ebben benne van Q3 is.
Akkor most hová kössem a kék pontot?

multiplex.jpg
    
(#) Hp41C válasza hackerfish hozzászólására (») Jún 20, 2010 /
 
Szia!

Ez most már nem jó, térj vissza a kapcs2-höz, a mellékletben a módosítás (vastag felkete vonalak). A BC548 NPN, a BC558 a PNP. A BC212 is PNP, az jó.
(#) hackerfish válasza Hp41C hozzászólására (») Jún 20, 2010 /
 
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!
(#) Hp41C válasza hackerfish hozzászólására (») Jún 20, 2010 /
 
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...
(#) zenetom válasza hackerfish hozzászólására (») Jún 20, 2010 / 4
 
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.
(#) gabi20 válasza hackerfish hozzászólására (») Jún 20, 2010 / 4
 
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.

kapcs.JPG
    
(#) hackerfish hozzászólása Jún 20, 2010 /
 
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.
(#) zenetom válasza hackerfish hozzászólására (») Jún 20, 2010 /
 
Milyen nyelvben programozod?
(#) hackerfish válasza zenetom hozzászólására (») Jún 20, 2010 /
 
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
(#) vilmosd válasza hackerfish hozzászólására (») Jún 20, 2010 /
 
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
(#) Hp41C válasza hackerfish hozzászólására (») Jún 20, 2010 /
 
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...

multiplex.JPG
    
(#) proli007 válasza hackerfish hozzászólására (») Jún 20, 2010 /
 
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
(#) hackerfish válasza Hp41C hozzászólására (») Jún 20, 2010 /
 
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.

progi.jpg
    
Következő: »»   1 / 3
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