- Potřebné materiály
- Schéma zapojení a připojení
- Programování STM32 pro LCD pomocí Arduina
- Nahrávání programu do STM32F103C8T6
Pro jakýkoli projekt mikrokontroléru by propojení zobrazovací jednotky s ním výrazně usnadnilo a přitahovalo interakci uživatele s projektem. Nejběžněji používanou zobrazovací jednotkou pro mikrokontroléry jsou 16 × 2 číselné displeje Alpha. Tyto typy displejů jsou nejen užitečné k zobrazení důležitých informací uživateli, ale mohou také sloužit jako nástroj pro ladění během počáteční vývojové fáze projektu. V tomto výukovém programu se tedy naučíme, jak propojit LCD displej 16 × 2 s vývojovou deskou STM32F103C8T6 STM32 a programovat jej pomocí Arduino IDE. Pro lidi, kteří znají Arduino, bude tento tutoriál jen procházka dortem, protože jsou si velmi podobní. Chcete-li se dozvědět více o STM32 Blue Pill Board, postupujte podle našeho tutoriálu Začínáme.
Potřebné materiály
- Vývojová deska STM32 Blue Pill
- 16 × 2 LCD displej
- Programátor FTDI
- Připojení vodičů
- LCD
Krátký ú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 16x2 LCD.
Schéma zapojení a připojení
Níže je uvedeno schéma zapojení rozhraní 16 * 2 Dot matrix LCD s deskou STM32F103C8T6 STM32 Blue Pill. Vyrábí se pomocí softwaru Fritzing.
Jak vidíte, kompletní připojení je provedeno přes prkénko. K programování mikrokontroléru STM32 potřebujeme desku FTDI. Podobně jako v předchozím tutoriálu jsme zapojili desku FTDI do STM32, Vcc a zemnící pin programátoru FDTI jsou připojeny k 5V kolíku a zemnícímu kolíku STM32. Slouží k napájení desky STM32 a LCD, protože oba mohou přijímat plechovku + 5V. Pin Rx a Tx desky FTDI je připojen k pinům A9 a A10 STM32, takže můžeme programovat desku přímo bez zavaděče.
Dále musí být LCD připojen k desce STM32. Budeme používat LCD ve 4bitovém režimu, takže musíme připojit 4 datové bitové piny (DB4 až DB7) a dva ovládací piny (RS a EN) k desce STM32, jak je znázorněno v propojovacím obvodu LCD STM32F103C8T6 diagram výše. Níže uvedená tabulka vám pomůže při navazování spojení.
Číslo PIN LCD |
Název PINu LCD |
Název PIN STM32 |
1 |
Ground (GND) |
Zem (G) |
2 |
VCC |
5V |
3 |
VEE |
Zem (G) |
4 |
Výběr rejstříku (RS) |
PB11 |
5 |
Čtení / zápis (RW) |
Zem (G) |
6 |
Povolit (EN) |
PB10 |
7 |
Datový bit 0 (DB0) |
Žádné připojení (NC) |
8 |
Datový bit 1 (DB1) |
Žádné připojení (NC) |
9 |
Datový bit 2 (DB2) |
Žádné připojení (NC) |
10 |
Datový bit 3 (DB3) |
Žádné připojení (NC) |
11 |
Datový bit 4 (DB4) |
PB0 |
12 |
Datový bit 5 (DB5) |
PB1 |
13 |
Datový bit 6 (DB6) |
PC13 |
14 |
Datový bit 7 (DB7) |
PC14 |
15 |
Pozitivní LED |
5V |
16 |
LED negativní |
Zem (G) |
Po dokončení připojení můžeme otevřít Arduino IDE a začít ho programovat.
Programování STM32 pro LCD pomocí Arduina
Jak bylo řečeno v tomto tutoriálu, k programování našeho mikrokontroléru STM32 budeme používat Arduino IDE. Arduino IDE však ve výchozím nastavení nebude mít nainstalovanou desku STM32, a proto si musíme stáhnout balíček a připravit Arduino IDE na to samé. To je přesně to, co jsme udělali v našem předchozím výukovém programu Začínáme s STM32F103C8T6 pomocí Arduino IDE. Pokud jste tedy nenainstalovali požadované balíčky, přejděte zpět k tomuto výukovému programu a postupujte podle něj, než budete pokračovat zde.
Jakmile je deska STM32 nainstalována v Arduino IDE, můžeme začít programovat. Program je velmi podobný tomu na desce Arduino, jediná věc, která se změní, jsou názvy pinů, protože notace se liší pro STM32 a Arduino. Celý program je uveden na konci této stránky, ale pro vysvětlení programu jsem jej rozdělil na malé smysluplné úryvky, jak je uvedeno níže.
Jednou znatelnou výhodou používání Arduina pro programování našich mikrokontrolérů je, že Arduino má připravené knihovny pro téměř všechny slavné senzory a akční členy. Takže tady začneme náš program tím, že začleníme knihovnu LCD, což programování výrazně usnadní.
#zahrnout
V dalším řádku musíme určit, ke kterým GPIO pinům STM32 jsme připojili ovládací a datové linky LCD displeje. Abychom to mohli udělat, musíme zkontrolovat náš hardware, pro usnadnění se můžete také podívat na tabulku uvedenou nahoře, která uvádí názvy pinů LCD proti GPIO pinům STM32. Po zmínce pinů můžeme inicializovat LCD pomocí funkce LiquidCrystal . Náš LCD displej také pojmenujeme „ lcd “, jak je uvedeno níže.
const int rs = PB11, en = PB10, d4 = PB0, d5 = PB1, d6 = PC13, d7 = PC14; // uveďte názvy pinů, na kterých je LCD připojen k LiquidCrystal lcd (rs, en, d4, d5, d6, d7); // Inicializujte LCD
Dále vstoupíme do funkce nastavení . Nejprve zde zmíníme, jaký typ LCD používáme. Protože se jedná o 16 * 2 LCD, používáme řádek lcd.begin (16,2). Kód uvnitř funkce nastavení neplatnosti se provede pouze jednou. Používáme jej tedy k zobrazení úvodního textu, který se na 2 sekundy zobrazí na obrazovce a poté se vymaže. Abychom zmínili pozici, kde se má text objevit, použijeme funkci lcd.setcursor a pro tisk textu použijeme funkci lcd.print . Například lcd.setCursor (0,0) nastaví kurzor na první řádek a první sloupec, kde vytiskneme „ Interfacing LCD “ a funkci lcd.setCursor (0,1) přesune kurzor do druhého řádku prvního sloupce, kde vytiskneme řádek „ CircuitDigest “.
void setup () {lcd.begin (16, 2); // Používáme 16 * 2 LCD lcd.setCursor (0, 0); // V prvním řádku první sloupec lcd.print ("Propojovací LCD"); // Vytisknout tento lcd.setCursor (0, 1); // Na druhém řádku první sloupec lcd.print ("- CircuitDigest"); // Tisk tohoto zpoždění (2000); // čekat na dva sekundy lcd.clear (); // Vymazat obrazovku}
Po zobrazení úvodního textu podržíme program po dobu 2 sekund vytvořením zpoždění, aby si uživatel mohl přečíst úvodní zprávu. Toto zpoždění je vytvořeno zpožděním linky (2000), kde 2000 je hodnota zpoždění v milisekundách. Po prodlevě vymažeme LCD pomocí funkce lcd.clear (), která vymaže LCD odstraněním veškerého textu na LCD.
Konečně uvnitř prázdného smyčky, můžeme zobrazit „STM32 -Blue pilulka“ na prvním řádku a hodnoty sekund na druhém řádku. Hodnotu sekundy lze získat z funkce millis () . Tyto Millis () je časovač, který dostává incrementing přímo od okamžiku, kdy je napájen MCU. Hodnota je ve formě milisekund, takže ji před zobrazením na našem LCD vydělíme 1000.
void loop () { lcd.setCursor (0, 0); // V prvním řádku první sloupec lcd.print ("STM32 -Blue Pill"); // Vytisknout tento lcd.setCursor (0, 1); // Na druhém řádku první sloupec lcd.print (millis () / 1000); // Tisk hodnotu secounds }
Nahrávání programu do STM32F103C8T6
Jak je popsáno v předchozím odstavci, měli byste být schopni si všimnout výstupu, jakmile je kód nahrán. Tento program ale při příštím zapnutí desky nebude fungovat, protože deska je stále v programovacím režimu. Takže jakmile je program nahrán, propojka na boot 0 by měla být změněna zpět na 0 pozic, jak je uvedeno níže. Také nyní, protože program je již nahrán na desku STM32, již desku FTDI nepotřebujeme a celé nastavení lze napájet z portu micro-USB na desce STM32, jak je znázorněno níže.
Jedná se pouze o jednoduchý projekt propojení, který vám pomůže používat LCD displej s deskou STM32, ale dále jej můžete použít k vytváření skvělých projektů. Doufám, že jste pochopili výukový program a naučili se z něj něco užitečného. Pokud jste při uvádění do provozu narazili na nějaký problém, odešlete problém pomocí sekce komentářů nebo použijte další fóra ve fórech. Kompletní pracovní LCD displeje s STM32 lze nalézt také jako video níže uvedené.