- Potrebné materiály
- Schéma zapojenia a zapojenie
- Programovanie STM32 pre LCD pomocou Arduina
- Načítava sa program do STM32F103C8T6
Pre každý projekt mikrokontroléra by prepojenie zobrazovacej jednotky s ním výrazne uľahčilo a prilákalo používateľa k interakcii s projektom. Najbežnejšie používanou zobrazovacou jednotkou pre mikrokontroléry sú numerické displeje 16 × 2 Alpha. Tieto typy displejov sú nielen užitočné na zobrazenie dôležitých informácií používateľovi, ale môžu tiež slúžiť ako ladiaci nástroj počas počiatočnej vývojovej fázy projektu. V tomto tutoriále sa teda dozvieme, ako môžeme prepojiť 16 × 2 LCD displej s vývojovou doskou STM32F103C8T6 STM32 a programovať ho pomocou Arduino IDE. Pre ľudí, ktorí poznajú Arduino, bude tento návod iba prechádzkou, pretože obe sú si veľmi podobné. Ak sa chcete dozvedieť viac informácií o modrej tabletke STM32, postupujte podľa nášho úvodného tutoriálu.
Potrebné materiály
- Vývojová doska STM32 Blue Pill
- 16 × 2 LCD displej
- Programátor FTDI
- Pripojenie drôtov
- LCD
Stručný úvod do 16 × 2 Dot matrix LCD displeja
Ako už bolo povedané, Energia IDE poskytuje nádhernú knižnicu, ktorá robí z rozhrania hračku, a preto nie je povinné vedieť o zobrazovacom module nič. Ale nebolo by zaujímavé ukázať, čo používame !!
Názov 16 × 2 znamená, že displej má 16 stĺpcov a 2 riadky, ktoré spolu (16 * 2) tvoria 32 políčok. Jedna samostatná škatuľa by na obrázku nižšie vyzerala asi takto
Jedno políčko má 40 pixelov (bodiek) s maticovým usporiadaním 5 riadkov a 8 stĺpcov, týchto 40 pixelov spolu tvorí jeden znak. Podobne je možné pomocou všetkých políčok zobraziť 32 znakov. Teraz sa pozrime na pinouty.
Displej LCD má celkom 16 pinov, ako je uvedené vyššie, a je možné ich rozdeliť do štyroch skupín nasledovne
Zdrojové kolíky (1, 2 a 3): Tieto kolíky napájajú napájanie a úroveň kontrastu pre displej
Control Pins (4, 5 a 6): Tieto piny nastavujú / riadia registre na rozhraní IC prepojenom s LCD (viac nájdete v odkaze nižšie)
Dátové / príkazové piny (7 až 14): Tieto piny poskytujú údaje o tom, aké informácie by sa mali zobrazovať na LCD displeji.
Kolíky LED (15 a 16): Tieto kolíky sa používajú, ak je to potrebné, na podsvietenie displeja LCD (voliteľné).
Zo všetkých týchto 16 pinov musí byť použitých iba 10 pinov povinných pre správne fungovanie LCD, ak sa chcete dozvedieť viac o týchto LCD displejoch, prejdite na tento článok 16x2 LCD.
Schéma zapojenia a zapojenie
Schéma zapojenia pre rozhranie 16 * 2 Dot matrix LCD s doskou STM32F103C8T6 STM32 Blue Pill je uvedená nižšie. Vyrába sa pomocou softvéru Fritzing.
Ako vidíte, úplné pripojenie sa vykonáva cez kontaktnú dosku. Na programovanie mikrokontroléra STM32 potrebujeme dosku FTDI. Takže podobne ako v našom predchádzajúcom tutoriáli sme zapojili dosku FTDI k STM32, konektor Vcc a uzemnenie programátora FDTI je pripojený k pinu 5V a uzemňovaciemu kolíku STM32. Používa sa na napájanie dosky STM32 a LCD, pretože oba môžu prijímať plechovku + 5V. Pin Rx a Tx dosky FTDI je pripojený k pinom A9 a A10 modulu STM32, aby sme mohli programovať kartu priamo bez zavádzača.
Ďalej musí byť LCD pripojený k doske STM32. Budeme používať LCD v 4-bitovom režime, takže musíme pripojiť 4 dátové bitové piny (DB4 až DB7) a dva ovládacie piny (RS a EN) k doske STM32, ako je to znázornené v prepojovacom obvode LCD STM32F103C8T6. diagram vyššie. Ďalej uvedená tabuľka vám pomôže pri vytváraní spojenia.
Číslo PIN LCD |
Názov kolíka LCD |
Názov kolíka STM32 |
1 |
Zem (GND) |
Zem (G) |
2 |
VCC |
5V |
3 |
VEE |
Zem (G) |
4 |
Register Select (RS) |
PB11 |
5 |
Čítanie / Zápis (RW) |
Zem (G) |
6 |
Povoliť (EN) |
PB10 |
7 |
Dátový bit 0 (DB0) |
Žiadne pripojenie (NC) |
8 |
Dátový bit 1 (DB1) |
Žiadne pripojenie (NC) |
9 |
Dátový bit 2 (DB2) |
Žiadne pripojenie (NC) |
10 |
Dátový bit 3 (DB3) |
Žiadne pripojenie (NC) |
11 |
Dátový bit 4 (DB4) |
PB0 |
12 |
Dátový bit 5 (DB5) |
PB1 |
13 |
Dátový bit 6 (DB6) |
PC13 |
14 |
Dátový bit 7 (DB7) |
PC14 |
15 |
Pozitívne LED |
5V |
16 |
LED negatívne |
Zem (G) |
Akonáhle sú pripojenia hotové, môžeme otvoriť Arduino IDE a začať ho programovať.
Programovanie STM32 pre LCD pomocou Arduina
Ako bolo povedané v tomto výučbe, na programovanie nášho mikrokontroléra STM32 budeme používať Arduino IDE. Arduino IDE ale štandardne nebude mať nainštalovanú dosku STM32, a preto si musíme stiahnuť balíček a pripraviť Arduino IDE na to isté. To je presne to, čo sme urobili v našom predchádzajúcom tutoriáli, ktorý sme začínali používaním STM32F103C8T6 pomocou Arduino IDE. Ak ste teda nenainštalovali požadované balíčky, vráťte sa k tomuto výučbe a postupujte podľa neho skôr, ako budete pokračovať tu.
Akonáhle je doska STM32 nainštalovaná v Arduino IDE, môžeme začať programovať. Program je veľmi podobný ako na doske Arduino, jediná vec, ktorá sa zmení, sú názvy pinov, pretože zápisy sú pre STM32 a Arduino odlišné. Celý program je uvedený na konci tejto stránky, ale ako vysvetlenie programu som ho rozdelil na malé zmysluplné úryvky, ako je uvedené nižšie.
Jednou znateľnou výhodou použitia Arduina na programovanie našich mikrokontrolérov je, že Arduino má pripravené knižnice pre takmer všetky známe senzory a akčné členy. Takže tu začíname náš program zahrnutím LCD knižnice, ktorá výrazne uľahčuje programovanie.
#include
V ďalšom riadku musíme určiť, ku ktorým GPIO pinom STM32 sme pripojili riadiace a dátové riadky LCD displeja. Aby sme to mohli urobiť, musíme skontrolovať náš hardvér. Pre uľahčenie si pozrite aj tabuľku uvedenú v hornej časti, kde sú uvedené názvy pinov LCD oproti GPIO pinu STM32. Po spomenutí pinov môžeme inicializovať LCD pomocou funkcie LiquidCrystal . Náš LCD displej pomenujeme tiež „ lcd “, ako je uvedené nižšie.
const int rs = PB11, en = PB10, d4 = PB0, d5 = PB1, d6 = PC13, d7 = PC14; // spomenutie mien pinov na s LCD je pripojeny k LiquidCrystal lcd (rs, en, d4, d5, d6, d7); // Inicializuje sa LCD
Ďalej vstúpime do funkcie nastavenia . Tu si najskôr spomenieme, aký typ LCD používame. Pretože sa jedná o 16 * 2 LCD, používame riadok lcd.begin (16,2). Kód vo vnútri funkcie nastavenia neplatnosti sa vykoná iba raz. Používame ho teda na zobrazenie úvodného textu, ktorý sa na obrazovke zobrazí na 2 sekundy a potom sa vymaže. Aby sme spomenuli pozíciu, kde sa má text objaviť, použijeme funkciu lcd.setcursor a na vytlačenie textu použijeme funkciu lcd.print . Napríklad lcd.setCursor (0,0) nastaví kurzor na prvý riadok a prvý stĺpec, kde budeme tlačiť „ Interfacing LCD “ a funkciu lcd.setCursor (0,1) presunie kurzor na druhý riadok, prvý stĺpec, kde vytlačíme riadok „ CircuitDigest “.
void setup () {lcd.begin (16, 2); // Používame 16 * 2 LCD lcd.setCursor (0, 0); // V prvom riadku prvý stĺpec lcd.print ("Prepojovací LCD"); // Vytlačiť tento lcd.setCursor (0, 1); // V nasledujúcom riadku prvý stĺpec lcd.print ("- CircuitDigest"); // Vytlačiť toto oneskorenie (2000); // čakať na dva sekundy lcd.clear (); // Vymazať obrazovku}
Po zobrazení úvodného textu podržíme program na 2 sekundy vytvorením oneskorenia, aby si užívateľ mohol prečítať úvodnú správu. Toto oneskorenie je tvorené riadkovým oneskorením (2000), kde 2000 je hodnota oneskorenia v milisekundách. Po oneskorení vyčistíme LCD pomocou funkcie lcd.clear (), ktorá vyprázdni LCD odstránením všetkého textu na LCD.
Nakoniec vo vnútri prázdnej slučky zobrazíme na prvom riadku „STM32 –Blue Pill“ a na druhom riadku hodnotu sekúnd. Hodnotu sekundy je možné získať z funkcie millis () . Tieto Millis () je časovač, ktorý dostáva incrementing priamo od okamihu, keď je napájaný MCU. Hodnota je vo forme milisekúnd, takže predtým, ako ju zobrazíme na displeji LCD, vydelíme ju číslom 1000.
void loop () { lcd.setCursor (0, 0); // V prvom riadku prvý stĺpec lcd.print ("STM32 - Modrá pilulka"); // Vytlačiť tento lcd.setCursor (0, 1); // V nasledujúcom riadku prvý stĺpec lcd.print (millis () / 1000); // Vytlačte hodnotu nasledujúcich sekúnd }
Načítava sa program do STM32F103C8T6
Ako je uvedené v predchádzajúcom odseku, mali by ste byť schopní všimnúť si výstup hneď po nahraní kódu. Ale tento program nebude fungovať nabudúce, keď zapnete dosku, pretože je stále v programovacom režime. Takže akonáhle je program nahraný, jumper na bootovacej 0 by mal byť zmenený späť na 0 pozícií, ako je uvedené nižšie. Pretože teraz je program nahraný na dosku STM32, už nepotrebujeme dosku FTDI a celé nastavenie je možné napájať z portu micro-USB na doske STM32, ako je to znázornené nižšie.
Jedná sa iba o jednoduchý projekt prepojenia, ktorý pomáha používať LCD displej s doskou STM32, ale ďalej ho môžete použiť na vytváranie skvelých projektov. Dúfam, že ste pochopili návod a naučili sa z neho niečo užitočné. Ak ste pri uvádzaní do prevádzky narazili na akýkoľvek problém, pošlite problém pomocou časti s komentármi alebo použite ďalšie fóra vo fórach. Kompletné pracovné LCD displeja s STM32 možno nájsť aj ako video nižšie uvedené.