Zaslal: so únor 11 2017, 13:35 Předmět: multiplex 32x32 LED v PICAXE
Dobrý den,
Potřebuji poradit se softwarovou částí. Stavím obvod na obrázku. Počítač vyšle pomocí portu COM seriovou informaci o tom které diody v matici mají svítit a které nikoliv (zatím řešeno formou stringu '12,24,78' pro diody na pozici 12,24,78 atd. Tzn. skupina uvedených čísel rozsvítí diodu, zbývající jsou vždy zhasnuté).
Tuto informaci přijme PICAXE a převede ji na paralelní (2x 5bitů, řádky a sloupce), pro ušetření ostatních pinů jsem použil dekodéry 74154. Přičemž dva IO 74154 mají na výstupech invertory, protože aktivní výstup je v log. 0, invertorem jej převedu na log.1, předřadím rezistor a svícení LED uzavřu na zbývajících dvou 74154.
Komunikace bych rád řešil způsobem odeslaní číselné sestavy, která zůstane zapsána do příchodu nové. Budu-li tedy chtít rozsvítít 12 diodu, odešlu na COM číslo 12 a pokud nepošlu třeba hodinu žádnou novou, tak tu hodinu bude svítit LED na 12. pozici.
Poradí mi prosím kdokoliv, jak napsat software k PICAXE, který se bude starat o svícení LED v multiplexním zapojení, tedy tu část, která se stará o zobrazení.
Sériová adresace posuvných registrů by mi přišla i v tvém zadání jednodušší.
Zpracuje se požadavek na všechny svítivé diody, připraví se hodnota uložená do PEEK od adresy 80H (právě po celých osmicích).
Po uložení všech 128H se rozjedou dvě smyčky, které odebírají hodnoty v paměti, vyzvednou číslo rozdělí jej a vyšlou.
zapojení má být schopno rozsvítit všechny diody najednou( jeví se jako rozsvícené, multiplex jak jsi už napsal, to neumí).
Nejde uplně o displej, ale o místa křížení. Chystám do jedné expozice indikační panel výpravčího, ovšem kvuli místu nemužeme použít všechny původní releové stojany (1,7m šířka, 2m výška, relé většinou NMŠ), takže to co nemůžeme použít musí dohnat počítač. Indikační panel zatím obsahuje 467 žárovek, ale do budoucna se počítá se zvětšením (připojením sousední stanice), takže když už se ten obvod staví, tak rovnou na 1024 (32x32) bodů. Navíc i když jich použiju méně, stále by tam byl dekodér 74154, takže bez vlivu na cenu. V místě křížení (před LED) se vyvede vodič a tím se muže budit tranzistor v jehož kolektoru už bude jedna ze 467 žárovek. Tranzistorů KF 507 mám velikou zásobu.
Použít dekodér 74154 vede k ušetření pinů na mikrokontroléru PICAXE. Použiju jen 10 pinů (2x5 bitů pro řádky a sloupce). Ovšem pokud bys věděl jak vyřešit podobné zapojení pro alespon 1024 diod, netrvám na převodníku 74154. Jen mi přišel jako ideální řešení, jak ušetřit piny. A zbývající volné, ponechat pro pozdější využití. A k tomu dojde.
Seriové adresaci se nebráním, teoreticky tak mohu postavit nekonečně dlouhý displej (podle délky posuvného registru), ale přiznám že požádám o pomoc.
žárovku spínám z křížení, z něj vyvedu vodič do báze tranzistoru. Pokud je bázi kmitočet (on to není kmitočet sinus, ale střídání hran obdélníku) větší než 75Hz, tak žárovka již svítí dostatečně, vlivem tepelné setrvačnosti. Nejideálnější je pokud střída dosahuje 1:1.
Ovšem při vysoké obnovovací frekvenci (100Hz a více), kdy diodu na displeji již vidíme jako jasný svit, děje se to samé i na tranzistoru.
Toto zapojení jsem už zkoušel, sestavil jsem si AKO s proměnou frekvencí, nebyl problém se žárovkou s jejím svícením.
Přiznám se že RS 485 dost dobře nerozumím. Tady už mám vyřešenou část komunikace, kdy po serii COMem posílám data do PIC, akorát mám problém s obvodem a jejím zobrazením. RS 485 si ted hledám nějaké info na googlu.
Kolik by stál takový modul? Jde o to že v GME na Křižíkově v Praze koupím PICAXE 28 za 299kč a PICAXE 40 také za 299kč, kuprextit už mám, diody naletované taky (z dřívějších dob), takže nákup součástek už není tak finančně náročný. Pokud by cena modulů šla výrazně přes současný náklad (350kč), zní to blbě, ale chtěl bych se tomu vyhnout.
Tak alespon misto multiplexu mit na tech mistech krizeni klopny obvod. Nejdriv vyresetovat vsechny krizeni a potom jednim vrzem nahazet do aktivace ty o ktere je zajem.
To je pravda, ale to stejně neřeší to ohromné množství. Mě jde o tu softwarovou část, tedy jak by měl vypadat program, který se stará o výstupní piny.
A přestože jsem našel možnost přepínání řádku pomocí posuvného registru, tak bych narazil na problém, že musím posuvný registr dopočítat na začátek. Což je opět program v PICAXE.
Cowley:
Teoreticky ne. Ale pokud by nastala situace že svítím jednou diodou, stačí
mi zapsat řádek a sloupec a ten nechat cyklit. Tím bude svítit jen ta jedna. Problém nastává v okamžiku kdy jich chci rozsvítit více. Buď budu muset udělat dynamické pole, které bude se bude zvětšovat a zmenšovat podle počtu kolik jich má svítit. Nebo projet celou řadu, což ale znamená zdržovat se těma co se nemění stav.
Lesana:
V okamžiku kdy mi na celém displeji svítí jen jedna dioda (ve skutečnosti kmitá, ale natolik rychle že oko ji vidí jako svítící) a z ní si beru signál do popsané báze tranzistoru, tak už tu střídu tolik neřeším, protože tranzistor se otevíráa zavírá natolik rychle, že to stačí k rozsvícení vlákna žárovky. A pokud jich bude svítit třeba 256 najednou (uvidíme rozsvícený obdélník), bude situace stejná. Protože mě zajímá jen to konkrétní křížení. Samozřejmě pokud se na křížení dostane střída 1:10, tak dioda buď sníží jas, nebo při nízké frekvenci bude blikat. A to se projeví i na tranzistoru a následně na žárovce v jeho kolektoru.
V tomhle zapojení spatřuji velkou výhodu přesné adresace řádku a sloupce. Pokud bych použil posuvný registr na řádky, pak když budu svítit na 3. řádku a vzápětí na 2.řádku, tak budu muset projet posuvný registr tolikrát, než dosáhnu 2.řádku, což mi přijde zbytečné (situace kdy mezi nima žádné řádky nesvítí). Zde si napíšu který řádek a který sloupec rozsvítit a mohu tak vynechat ty které nechci změnit. Ovšem to je to co nevím jak napsat do kodu.
Máš představu / zkoušel jsi jak svítí žárovka, když je 1T zapnutá a 1023T vypnutá?....
Nejideálnější je pokud střída dosahuje 1:1.
nebyl problém se žárovkou s jejím svícením...
No jo, ale při obsluze 1024 žárovek, kdy v jeden okamžik svítí jen jedna, máš střídu 1:1024 a to má do 1:1 krapet daleko...
V okamžiku kdy mi na celém displeji svítí jen jedna dioda (ve skutečnosti kmitá, ale natolik rychle že oko ji vidí jako svítící)...
..........
Ona mi pořád říká, kdy to hrajou a já …
masar:
No příspěvek je velice zajímavý, ale nevím na co narážíš. Možná by stálo za to, místo kravin, napsat kde konkrétně dělám chybu.
Takže já to řeknu jinak. Máme menší displej 8x8, na kterém svítí znak . (tečka) a to v podobě jedné diody. Pokud si z ní vezmu signál a přivedu jej do báze tranzistoru zapojení SE a v jeho kolektoru budu mít žárovku, tak ta žárovka bude svítit. Protože ta tečka, i když bude multiplexována, svítí dostatečně dlouho aby tranzistor (který se otevírá a zavírá v multiplexu, protože si bere signál z křížení do báze) rozsvítil žárovku.
Abys dosáhl rozsvícení všeho najednou, tak je potřeba použít nějaké osvědčené zapojení (mux 1:8 ), ne tohle.
Jak již bylo napsáno, vem nějaké posuvné registry (4094) a udělej to z nich. Jsou to 3 dráty z procesoru a při troše šikovnosti by tam ani nemusel být. Vlastní ovládání bude pak spočívat v poslání řádkových dat a výběru sloupce. To se zopakuje pro 8 sloupců a stále dokola.
Edit: nebo můžeš vzít kýbl těch 4094 a rovnou posílat sériákem těch 1024 stavů přímo na žárovky.
Časy uváděny v GMT + 1 hodina Jdi na stránku 1, 2, 3Další
Strana 1 z 3
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.