Potřeboval bych poradit s řizením multiplexního displeje. Jedná se o 57 mm LED displeje se společnou katodou. Napájecí napětí jednoho segmentu je cca 8V. Napájení celého displeje jsem zkoušel až do 12 V a nemá to skoro žádnej vliv na svítivost. Multiplex je řízen PIC16F877A. Bude s toho info panel do hospody, teplota piva, hodiny, datum atd.
Mám to takhle.
A teď problém.
Jde mi o to, že když na prvním displeji svítí číslo 1 a na druhém displeji svítí číslo 8 tak rozdíl ve svitu je mezi nimi až katastrofický.
Nevíte někdo jak to správně zapojit aby svit displeju byl nezavislej na tom, co na nich svítí? Plošnák ještě nemám, takže není problém jakakoliv úprava.
Problém bude v tranzistorech. Zkontroluj otevření tranzistorů a proudovou spotřebu, protože se mi zdá, že BC547 je pro buzení 7-mi segmentů nedostatečný.
chyba bude podla mna v programe…
imho: veľmi krátko nechávaš na tej 7segmentovke tú konkrétnu hodnotu… skús sem hodiť program (alebo najlepšie časť programu kde realizujes vypisovanie)…
Pokud není chyba ve statickém režimu, je ji třeba hledat v dynamickém. A ještě jedna věc, nikde tam nevidím rezistory omezující proud pro jednotlivé segmenty.
Katody jsou spínány přes 74HC4514. Chybou v programu to asi nebude, protože když dám jednu přes tranzistor a spínám segmenty, tak se mění jas. Chyba bude ve spínání katody. Ale BD139 by ji utáhnout měla bez problému a dělá to taky. A s odpory i bez nich se ten jas mění. Když ji zapnu na 8V bez tranzistoru, tak jede normálně.
heh to ti to jeste neshorelo? ten display asi bude mit vic LED na segment, ale urcite ne tolik, aby vydrzely 12V… bez ochrannejch odporu to je blbej napad…
Zkus vypnout multiplex a nech rozsvicenou 1 cislici… promer napeti na tranzistorech - vsechny, kde to sviti, musej bejt v saturaci (do 0,5V), jesli ne, omrkni proudy a odpory v bazich.
a jeste neco - pokud by to byl cervenej disp. a mel 3 diody na segment, 8V mu musi stacit i s ochrannyma odporama
pokud na jedny cislici rozsvitis “8”, mely by bejt v saturaci vsechny (vsechny segmentovy a ten co vybira, ktera cislice ma svitit). (teda krome tech u tecky) 0,8V asi bude dobry, preci jen je to malej tranzistor
(btw. ja si katody a anody furt pletu , takze ty nazvy radsi nepouzivam… orientuju se podle znacek )
Jste napad: pokud budou skutecne vsechny naplno otevreny, zkus zmerit napajeni, jesli nepada
Je to divný, ale jestli mu dám do báze 220 ohm 0,72V a 10k 1,1V a na jas to skoro nemá vliv.
Připojil jsem měřák pro přesnější měření.
Při 1 je to 84,5mA, při 8. je to 133mA při 9V, když svítí všech 8 displeju. Ale když rožnu jen jeden, klesne odběr při 8. na 43mA a při 1 na 36mA. To je nějaký divný, vždyt svítí vlastně jen jeden, i když jako svítí všechny.
Vyhodím tu 74HC4514 a zkusím to přímo na porty procesoru, abych vyloučl tu 74HC4514. Ať neřeším něco, za co muže jinej IO
Tak vyhozením 74HC4514 jsem ušetřil 3mA a zabral jsem 5 portu.
to je teda hodne divny - hlavne ten rozdil pri “1” a “8”… (predtim sem kecal, melo by to bejt asi 4 nasobek)
Ten rozdil pri 1 cislu a vice by mohl bejt diky saturaci - jedno cislo jeste nezhasne a uz se rozsveci dalsi (pokud mas velkou frekvenci, coz asi pri tolika cislech mas)… Da se udelat protisaturacni uprava, ale to zatim neni dulezity.
merils napeti na nejakym segmentu? (primo na LED, ne napajeci)
tohle napeti musi bejt stejny pri rozsviceni “1” i “8” (± nejaka desetina), jesli ne, tak se ten rozdil musi obevit bud na nekterym tranzistoru, nebo bejt mensi napajeni (kdyby povolil zdroj).
Jesli to bude na nejakym tranzistoru, pritlac mu par mA do baze, jesli zdroj, mas peska. Ale rozhodne to musi bejt jedno z toho. Kdyby se napeti nemenilo a presto to pri kazdy cislici svitilo jinak, tak ses asi v bermudskym trojuhelniku (pokud nemas v programu dobu sviceni ovlivnenou zobrazovanou cislici, coz nepredpokladam)
Tak jsem trošku upravil odpory ale dělá to pořád, sice už ne tak moc. Ale vypl jsem multiplex a jednu segmentovku ovládám přímo přes porty a nedělá to. Spínám postupně A, A+B atd a jas neklesá. Když zapnu multiplex, tak to zase začne dělat. Chyba v programu! Ale jaká? Přerušení každých 2,4ms
v tom se nevyznam, na to potrebujes nejakyho picare zrovna dneska odpoledne jsem daval dohromady se spolustudakem mx obsluhu 7seg, ale je to v C a pro avr, takze to by ti moc nepomohlo…