Menu

Email: SakulRaider@seznam.cz

Servery:

Dnes návštěv: 310  On-line: 2

Elektronika

uProcesorové konstrukce

 - Serial LED Display (PE10/2015)

Vyšlo v Praktické Elektronice 10 2015

Serial LED Display

 
 

Již několikrát jsem se setkal s tím, že jsem konstruoval jednoduché zařízení s malým procesorem (s osmi vývody) a potřeboval jsem nějak zobrazovat data na displeji (například teploměr). Díky tomu, že procesor neměl dostatek portů pro řízení sedmisegmentového zobrazovače, je to celkem oříšek. Lze použít například některý LCD displej doplněný o I2C nebo UART rozhraní. Problém je pokud potřebujete, aby displej byl čitelný z větší vzdálenosti. Zde by se právě výborně hodily sedmisegmentovky. Ale jak je řídit? Proto jsem navrhl tento displej, který komunikuje s okolím přes UART.

Technické specifikace

Napájecí napětí: 5V/DC
Spotřeba proudu: cca 100mA
Komunikační rozhraní: UART 19,2/2,4kbps
Počet znaků na displeji: 6
Řízení dvojteček: Samostatným vodičem

 

Popis a zapojení displeje

Jedná se o šesti místný displej složený z LED zobrazovačů, doplněný vždy mezi dvěma znaky dvojtečkou tvořenou dvojicí klasických 3mm LED diod. Toto rozložení je vhodné jako displej pro hodiny, různé stopky a jistě se najde i další uplatnění. Výhodou je řízení tohoto displeje po datové lince UART, plus jeden vodič pro samostatné řízení dvojteček. Lze ho tedy použít do konstrukcí, kde používáme pro řízení procesor s malým počtem výstupních portů, případně ho je možno připojit i například přes USB/TTL převodník k počítači a tak snadno zobrazovat nějaké hodnoty.
Základem je procesor PIC16F628A, který se stará o řízení zobrazovačů. Zobrazovače jsou použity se společnou ANODOU a jsou spínány tranzistory Q1-Q6. Display pracuje v multiplexním režimu. Řízení dvojteček (LED1-LED4) je řešeno samostatně vodičem vyvedeným do konektoru SV2 na piny 7 a 8. Bohužel už nebyl volný port na procesoru, jinak by samozřejmě šly dvojtečky řídit také přes UART. Data jsou do procesoru přenášena přes konektor SV2 z pinů 3 a 4. Kladné napájecí napětí se přivádí na piny 5 a 6. Zbylé piny 1,2, 9 a 10 jsou GND.
JP2 je programovací konektor v klasickém zapojení pro PIC a to vývod 1=MCLR, 2=VDD, 3=GND, 4=PGD a 5=PGC. Zde je nutno upozornit na fakt, že pokud programujete procesor na desce, nesmí být osazen JP3, který slouží k volbě přenosové rychlosti. Pokud není osazen je nastavena rychlost komunikace 19,2kbps, pokud je osazen je to 2,4kbps.
Jinak myslím, že k zapojení již není co dodat. 

Schéma zapojení

 

Deska spoje a osazovací plán

  
 
 
 

Plošný spoj je vytvořen na oboustranné desce plošných spojů o rozměru 120x36mm. Spoj je bohužel oboustranný s prokovenými otvory, aby mohl být co nejmenší. Taktéž všechny součástky kromě konektorů, procesoru, zobrazovačů a LED diod pro dvojtečky jsou SMD a při osazování je nutné pracovat pečlivě. Konektory je vhodné osadit na spodní stranu PCB (Bottom), aby případná kabeláž nevadila při montáži displeje. Osazovací schéma je na následujícím obrázku. 

Komunikace s displejem

Jak už jsem zmínil, data se do displeje zasílají přes rozhraní UART. Jenom dvojtečky se řídí samostatně. Pro komunikaci byl vytvořen jednoduchý protokol, který používá 1byte. V tomto bytu je uložena adresa zobrazovače a znak, který se na něm má zobrazit. Zobrazovat je možno následující znaky: („NIC“, 0,1,2,3,4,5,6,7,8,9,L,P,U,E,-). Znak NIC znamená, že daný zobrazovač je vypnutý a nezobrazuje se na něm nic. Následují čísla, několik písmen a pomlčka. Adresa a zobrazovaný znak jsou v bytu rozděleny tak, že nižší 4bity jsou ADRESA a vyšší 4bity jsou zobrazovaný ZNAK. Tento displej používá 6 adres, kdy adresa 1 patří pro DIS1, adresa 2 je pro DIS2 až po adresu 6 pro DIS6. Teoreticky je možno použít až 16 adres, ale zde je použito pouze těchto šest. Pro lepší orientaci jsem přidal tabulku s významem jednotlivých bitů v odesílaném bytu.
Dobře se v tom dá orientovat, pokud budeme hodnoty zapisovat v HEX formátu. Pro pochopení uvedu několik příkladů. Pokud chceme například na zobrazovač DIS1 odeslat číslo 6, bude odeslaný byte vypadat takto 71h, kde 7 je právě hodnota znaku 6 (Zde si můžete všimnout, že je hodnota znaku vždy o jedna vyšší než co se skutečně zobrazí. To je způsobeno posunem, neboť 0 nereprezentuje nulu, ale hodnotu NIC, tedy zhasnutý zobrazovač. Tím pádem znak 0 na displeji, reprezentuje číslo 1 a tak dále.) a 1 je adresa jedna, tedy DIS1. Když budeme chtít na displej zapsat čísla 123456, odešleme následující: 71h 62h 53h 44h 35h a 26h. Budeme-li chtít zhasnout celý display, odešleme: 01h 02h 03h 04h 05h 06h. Myslím, že je to poměrně jasné a po prostudování tabulky není co dodat. Přesto přidám ještě obrázek z terminálu, kde je patrné nastavení komunikační rychlosti a sekvence znaků pro zhasnutí celého displeje (pole Data input).

Veškerá data, která jsou do displeje odeslána, jsou uložena a displej je zobrazuje stále, dokud nejsou přepsána novějšími daty, nebo dokud nedojde k restartu displeje. Není tedy nutné neustále posílat data do displeje. Stačí poslat pouze změnu na konkrétní zobrazovač. Při zapnutí displeje, je vždy zobrazen na všech zobrazovačích znak  – (-- -- --), který signalizuje, že displej dosud nepřijal žádná platná data. Pokud by jste chtěli odeslat do displeje nějaká neplatná data (nejspíše se špatnou adresou) bude je ignorovat a stav se nezmění.

Závěrem

Jak už jsem psal, tento displej je vhodný do konstrukcí, kde se nedostává dostatek volných portů pro samostatné řízení displejů, případně pokud chceme zobrazovat nějaká data z počítače. Samozřejmě rozložení displejů jak je navrženo na tomto plošném spoji, nemusí vyhovět každému, ale není problém si navrhnout vlastní desku spojů, kde nebude třeba použito všech šest zobrazovačů. Tak lze realizovat například displej pro měření teploty o 3 znacích.

Seznam součástek

R1, R2                220R    (SMD 1206)
R3                1K    (SMD 1206)
R4-R9                3K9    (SMD 1206)
R10-R16            330R    (SMD 1206)
R17                10K    (SMD 1206)
LED1-LED4            3mm/2mA červená
DIS1-DIS6            HD-H101 (SA56-11SRWA)
Q1-Q6                BC807    (SMD)
IC1                PIC16F628A (naprogramovaný)
JP2                Jumper lišta přímá 5pinů
JP3                Jumper lišta přímá 2piny
SV2                MLW10GT

DOKUMENTACE

Závěrem si zde můžete stáhnout veškerou dokumentaci pro stavbu. Je zde i projekt pro Eagle.
DOWNLOAD  - Včetně programu pro procesor
Diskusi pro tuto konstrukci najdete ZDE.

Podpořte tuto konstrukci

Pokud Vás tato konstrukce zaujala nebo Vám dobře slouží, můžete ji podpořit volitelnou částkou. Stačí kliknout na tlačítko DONATE, zadat požadovanou částku, kterou chcete přispět na další rozvoj této a jiných konstrukcí, poté stiskněte Update Total a přihlaste se k odeslání příspěvku. Za jakékoli příspěvky předem děkuji a věřím, že zde najdete mnoho dalších zajímavých konstrukcí, které třeba vzniknou právě díky Vám.

       

Prohlášení

Tato konstrukce je z mé hlavy a proto není povoleno bez mého souhlasu přejímání na jiné stránky nebo komerční využití. Je povoleno se pouze odkazovat na tento web a tuto konstrukci. Pro více informací mne stačí kontaktovat. Zároveň nepřebírám jakoukoli odpovědnost za chování zařízení a případné škody spůsobené použitím tohoto zařízení, ať by byly jakéhokoli rázu. Zařízení je určeno pouze k užití pro vlastní potřebu.
V této konstrukci je použit program (program mikrokontroleru), na který se vztahují autorská práva. Jakýkoli prodej není bez souhlasu autora možný.

 

Můj Youtube kanál:

fb-large.png, 5,8kB
Copyright © Resi-Design 2017 www.resi-design.cz.
TOPlist