- Potřebné materiály:
- Stručný úvod do 16 × 2 Dot matrix LCD displeje:
- Schéma zapojení a připojení:
- Programování MSP430 pro LCD pomocí Energia:
- 16x2 LCD s MSP430G2:
Toto je třetí výukový program v pořadí výukových programů, ve kterém se učíme programovat MSP430G2 LaunchPad pomocí IDE Energia. V našem předchozím tutoriálu jsme se naučili ovládat piny digitálního vstupu a výstupu na naší desce MSP. V tomto tutoriálu se naučíme, jak propojit LCD s deskou, abychom mohli zobrazit užitečné informace.
LCD, který v tomto projektu používáme, je nejčastěji používaným 16 × 2 Dot matrix LCD displejem a alfanumerickými displeji. Většina z nás by na to narazila buď prostřednictvím veřejných PCO nebo jiných elektronických projektů. Takové zobrazení přijde velmi užitečné pro naše budoucí výukové programy pro zobrazení dat a dalších ladicích informací. Propojení tohoto LCD displeje s MSP430 je velmi snadné díky dostupné knihovně. Pojďme se tedy ponořit !!
Potřebné materiály:
- MSP430G2 LaunchPad od společnosti Texas Instruments
- 16 × 2 Dot matrix LCD displej
- Připojovací vodiče
- Energia IDE
Stručný úvod do 16 × 2 Dot matrix LCD displeje:
Jak již bylo řečeno, Energia IDE poskytuje nádhernou knihovnu, která dělá rozhraní hračkou, a proto není povinné vědět o zobrazovacím modulu nic. Nebylo by ale zajímavé ukázat, co používáme !!
Název 16 × 2 znamená, že displej má 16 sloupců a 2 řádky, které dohromady (16 * 2) tvoří 32 polí. Jedna krabice by na obrázku níže vypadala nějak takto
Jedno pole má 40 pixelů (teček) s maticovým řádem 5 řádků a 8 sloupců, těchto 40 pixelů dohromady tvoří jeden znak. Podobně lze pomocí všech polí zobrazit 32 znaků. Nyní se podívejme na pinouts.
Displej LCD má celkem 16 pinů, jak je znázorněno výše, lze je rozdělit do čtyř skupin následujícím způsobem
Zdrojové kolíky (1, 2 a 3): Tyto kolíky dodávají energii a úroveň kontrastu pro displej
Ovládací piny (4, 5 a 6): Tyto piny nastavují / řídí registry v IC rozhraní IC (více najdete v odkazu níže)
Datové / příkazové piny (7 až 14): Tyto piny poskytují údaje o tom, jaké informace by se měly zobrazovat na LCD.
Kolíky LED (15 a 16): Tyto kolíky se v případě potřeby používají k podsvícení LCD displeje (volitelné).
Ze všech těchto 16 pinů je pro správnou funkci LCD povinně použito pouze 10 pinů, pokud se chcete dozvědět více o těchto LCD displejích, přejděte na tento článek o LCD.
Schéma zapojení a připojení:
Kompletní schéma zapojení rozhraní 16 × 2 Dot matrix LCD displeje s MSP430G2 je uvedeno níže.
Jedním z hlavních omezení při propojení těchto dvou je jejich provozní napětí. LCD displej má provozní napětí + 5V, zatímco MSP pracuje pouze s 3,6V. Naštěstí pro nás má datový kolík IC rozhraní LCD (HD44780U) široké provozní napětí 2,7 V až 5,5 V. Musíme se tedy starat pouze o Vdd (pin 2) LCD, zatímco datové piny mohou fungovat i při 3,6V.
Deska MSP430G2 vám ve výchozím nastavení nedává pin + 5V, ale můžeme udělat malý hack, abychom získali + 5V z MSP430 pomocí USB portu. Pokud se podíváte zblízka na port USB, najdete terminál s názvem TP1, tento terminál nám dá + 5v. Jediné, co musíme udělat, je pájet malý kolíkový konektor, jak je znázorněno níže, abychom jej mohli připojit k našemu LCD displeji.
Poznámka: K tomuto 5V kolíku nepřipojujte zátěže, které by mohly spotřebovat více než 50 mA, mohlo by to smažit váš USB port.
Pokud nemáte zájem o pájení, jednoduše použijte jakýkoli regulovaný zdroj + 5 V a napájejte LCD, v takovém případě nezapomeňte připojit uzemnění vašeho napájecího zdroje k zemi desky MSP.
Jakmile dokončíte připojení kolíku + 5V, ostatní kolíky jsou docela jednoduché. Nyní, když je náš hardware připraven, pojďme k softwarové části.
Programování MSP430 pro LCD pomocí Energia:
Kompletní program pro komunikaci s MSP430G2553 s LCD displejem je uveden na konci této stránky. Kód lze zkompilovat, nahrát a použít jako takový. V následujících odstavcích vysvětlím, jak program funguje.
Než budeme pokračovat vysvětlením, musíme si poznamenat piny, které používáme. Podíváte-li se na schéma zapojení výše a schéma pin-out MSP430 níže
Můžete vyvodit závěr, že jsme připojili LCD podle následující tabulky
Název pinu LCD |
Připojen k |
Vss |
Přízemní |
Vdd |
+ 5V USB kolík |
Rs |
Pin 2 z MSP |
R / W |
Přízemní |
Umožnit |
Kolík 3 MSP |
D4 |
Kolík 4 MSP |
D5 |
Kolík 5 MSP |
D6 |
Kolík 6 MSP |
D7 |
Kolík 7 MSP |
S ohledem na to začneme definovat piny LCD použité v našem programu. Každý pin pojmenujeme smysluplnějším názvem, abychom jej mohli později snadno použít.
#define RS 2 #define EN 3 #define D4 4 #define D5 5 #define D6 6 #define D7 7
To jednoduše znamená, že místo volání pinu 2 ho mohu dále označovat jako RS, podobně pro všech 6 pinů.
Dalším krokem by bylo zahrnout knihovnu LCD. Tato knihovna by byla nainstalována automaticky při instalaci IDE Energia. Stačí jej tedy přidat pomocí následujícího řádku
#zahrnout
Dalším krokem je zmínka o pinech, ke kterým je LCD připojen, protože jsme jej již pojmenovali pomocí #define , nyní můžeme jednoduše zmínit názvy LCD pinů. Ujistěte se, že je dodrženo stejné pořadí.
LiquidCrystal lcd (RS, EN, D4, D5, D6, D7);
Nyní se přesuňte do void setup () funkce. Existuje tolik typů LCD displejů, které se liší velikostí a povahou, ten, který používáme, je 16 * 2, tak to specifikujme v našem programu
lcd.begin (16, 2);
Chcete-li něco vytisknout na LCD, musíme v programu zmínit dvě věci. Jedním z nich je poloha textu, který lze zmínit pomocí řádku lcd.setCursor (), a druhým je obsah pro tisk, který lze zmínit pomocí lcd.print (). V tomto řádku nastavujeme kurzor na 1. řádek a 1. sloupec.
lcd.setCursor (0,0);
Podobně můžeme také
lcd.setCursor (0, 1); // nastavit kurzor na 1. sloupec 2. řádek
Stejně jako vymazání tabule po napsání na ni by měl být vymazán také LCD displej, jakmile je na ní něco napsáno. Toho lze dosáhnout pomocí níže uvedeného řádku
lcd.clear ();
Takže kompletní void setup () funkce bude vypadat nějak takhle.
void setup () {lcd.begin (16, 2); // Používáme 16 * 2 LCD displej lcd.setCursor (0,0); // Umístěte kurzor na 1. řádek 1. sloupec lcd.print ("MSP430G2553"); // Zobrazit úvodní zprávu lcd.setCursor (0, 1); // nastavit kurzor na 1. sloupec 2. řádek lcd.print ("- CircuitDigest"); // Zobrazit zpoždění úvodní zprávy (2000); // Počkejte, až se na displeji zobrazí informace lcd.clear (); // Pak jej vyčistěte}
Dále v naší funkci void loop () pokračujme v navyšování čísla každých 500 ms a zobrazme číslo na LCD. Toto číslo testuje a inicializuje se na 1, jak je znázorněno níže
int test = 1;
K vytvoření zpoždění můžeme použít vestavěnou funkci delay (). Musíme zmínit, kolik času potřebujeme, aby došlo ke zpoždění. V našem případě jsem použil 500ms, jak je uvedeno níže
zpoždění (500);
Přírůstek proměnné lze provést testem ++, ostatní jsou již vysvětleny. Kompletní kód uvnitř dutin smyčky je uvedeno níže
void loop () {lcd.print ("LCD s MSP"); // Zobrazit úvodní zprávu lcd.setCursor (0, 1); // nastavit kurzor na sloupec 0, řádek 1 lcd.print (test); // Zobrazit zpoždění úvodní zprávy (500); lcd.clear (); // Poté jej vyčistěte test ++; }
16x2 LCD s MSP430G2:
Jakmile je váš hardware a kód připraven, jednoduše připojte desku k počítači a nahrajte kód, jak jsme to udělali v tutoriálu. Jakmile je kód nahrán, měli byste vidět displej zobrazující následující.
Po dvou sekundách se obrazovka displeje změní z nastavení na smyčku a začne zvyšovat proměnnou a zobrazení na obrazovce, jak je znázorněno na následujícím obrázku.
Kompletní pracovní lze nalézt ve videu níže. Jděte do toho a zkuste změnit to, co se zobrazuje na LCD, a hrajte si s tím. Doufám, že jste pochopili výukový program a naučili se z něj něco užitečného. Máte-li jakékoli pochybnosti, nechte je v sekci komentářů níže nebo použijte fóra. Pojďme se setkat v jiném kurzu.