Stránka 1 z 1

7-segmentový displej

Napsal: 29 črc 2013, 18:15
od Kopeck
Dobrý den,
Jak víte z předchozích dotazů, nejsem s angličtinou moc velký kamarád a tak již několik dní se snažím, ale bez úpěchu pochopit ovládání 7-segmentového displeje (LCD 16x2 jsem zvládl bez problémů ;) ). Jedná se o zapojení 2-3ks 7-segmentů podle obrázku : http://www.sqlskills.com/blogs/paulsele ... sters2.jpg kde se budou zobrazovat čísla od 00-99 (případně 000-999) a pro zadávání čísel bych chtěl použít okno SERIAL MONITOR. Našel by se zde PROSÍM někdo tak hodný, kdo by mi napsal kód pro výše uvedené zadání, včetně popisu, abych pochopil jak to funguje?
Předem moc a moc děkuji.

Re: 7-segmentový displej

Napsal: 29 črc 2013, 19:57
od Dex
Klíčem je pochopení posuvného registru.

Zkuste si přečíst toto http://www.josefnav.cz/Arduino_pos_reg.html

Ten displej je vlastně jen několik LEDek v jednom pouzdře. Co mě ale trochu zaráží je fakt, že LEDky jsou připojené přímo na ty registry. Ovšem na tuto otázku jistě rád odpoví některý ze zdejších elektroniků.

Re: 7-segmentový displej

Napsal: 29 črc 2013, 20:29
od Pirx
Tato reakce je na zapojeni na tomto odkazu:
http://www.josefnav.cz/Arduino_pos_reg.html
To jenom pro poradek.
-----
Nechtelo se mi to cist, ale nemuzu si pomoct - vidim tam rezistory 220R, coz pro cervene (ubytek od cca 1.8V) dava 14.5 mA a pro zelene (2.6V) je to 10.9 mA. Navic proud bude mensi, protoze logicky vystup nepujde az na 5 V. Nedival jsem se na proudove zatizeni vystupu svabu, ale zjevne to nejak utahne. Jenom bych dlouho nesvitil staticky vsemi ledkami najednou (116 mA je nejspis za limitem). BTW, dal bych tam tranzistory nebo TPIC6C595D za 10 Kc z GME a byl by klid. Navic se delaji shift registry s buzenim LED (treba TLC6C598 od Texas Instruments).

Re: 7-segmentový displej

Napsal: 30 črc 2013, 10:48
od petr-kubac
Tahle konstrukce zjevně není nejšťastnější - 74HC595 jse posuvný registr - takže do registrů se "naclockují" data - celkem 32 bitů. Na AVR jsem to dělal pomocí softwarového SPI - to jet na datový pin se nastaví první bit dat pak se clock pin nastaví nahoru, počká se jeden takt a pak se zase shodí dolů a takhle opakovat ještě 31x nakonec je tam ještě třetí pin - na schémátku označený jako LATCH, kterým se "naclockovaná" data najednou pustí na výstup. Podle mých zkušností místo 74hc595 stačí klidně 74hc164 - což je úplně obyč posuvný registr - bez pinu LATCH - při nahrávání dat do registrů sice LEDky blikají, ale u AVR to bylo tak rychlé, že to vůbec nebylo patrné.

jaká data se mají nahrát - se spočte takto - nejprve si číselhou hodnotu rozložíte postupným dělením na nednotlivé cifry a pak se podíváte do tabulky (kterou si musíte nakreslit a naprogramovat) které segmenty odpovídají dané cifře - z toho sestavíte 32bitové slovo které pošlete na displej. Displej je statický, takže poté co rozsvítíte patřičnbé segmenty - už budou svítit až do další změny (nemusí se multiplexovat )

Odpory 220 ohm jsou krajně nešťastné - takhle jsou zapojené laciné radiobudíky od Vitetnamce - aby se ušetřilo pár odporů. Čím více segmentů svítí tím celé číslo svítí slaběji - čísla poblikávají podle hodnoty co na nich svítí - vypadá to hrozně. Správně by měl být pro každou LED extra odpor mezi 595 a 7 segmentovkou.

Re: 7-segmentový displej

Napsal: 30 črc 2013, 16:16
od DavidJK
Tak že bych si přihřál polívčičku :D
Sice jsem to dělal pro PICAXE, ale princip je podobný:
http://robodoupe.cz/2013/segmentovy-dis ... #more-3089
Jak píše "petr-kubac" s každým hodinovým pulsem (CLK) se odešle bit (SERIN)
a až jich je 32 tak se zobrazí (LATCH). Jen to chce podle DATASHEETu zjistit
přesnou funkci tohoto posuvného registru.
Dex píše:Zkuste si přečíst toto http://www.josefnav.cz/Arduino_pos_reg.html


Na těchto stránkách je i kostka z LED diod ovládaná přes registry a AVR.
Myslím že sem tam viděl i video s tou kostkou a docela mě to jednu dobu bavilo. ;)
http://www.josefnav.cz/LED_kostka.html

Re: 7-segmentový displej

Napsal: 30 črc 2013, 18:26
od Kopeck
Tak jsem si našel toto : http://arduino8.webnode.cz/news/lekce-1 ... r-74hc595/ ,ale nějak nerozumím z posledního příkladu před videem zápisu:

Kód: Vybrat vše

byte DigitData[11] = {
// zde uloženy data pro číslice a symboly
B00000010, //0
B11001111, //1
B00010001, //2
B00000101, //3
B01001100, //4
B00100100, //5
B00100000, //6
B00001111, //7
B00000000, //8
B00000100, //9
B11111111, //10 - smazat
v jiných příkladech jsou totiž binární zápisy pro čísla jiné, může mi to prosím někdo vysvětlit?

Re: 7-segmentový displej

Napsal: 30 črc 2013, 20:07
od Pirx
Jisteze - zalezi na tom jestli spinas nulou nebo jednickou a na ktere bity si segmenty nadratujes. Podle toho si potom vytvoris binarni "obraz" znaku na segmentovce. Pokud tedy nemas schema pripojeni segmentu k bitum portu (shift registru apod.), nejsi schopen rict, ktery bit ovlada ktery segment a kody pro jednotlive znaky se zdaji pro ruzna zapojeni ruzne.

Re: 7-segmentový displej

Napsal: 30 črc 2013, 20:16
od Kopeck
Zase jsem o něco chytřejší, moc děkuji za vysvětlení. :D