- Potrebni materijali
- Kružni dijagram i veza
- Programiranje STM32 za LCD pomoću Arduina
- Učitavanje programa na STM32F103C8T6
Za bilo koji projekt mikrokontrolera, povezivanje jedinice zaslona s njim učinilo bi projekt mnogo lakšim i privlačnijim za interakciju s korisnikom. Najčešće korištena jedinica zaslona za mikrokontrolere su alfa numerički zasloni 16 × 2. Ove vrste zaslona nisu korisne samo za prikaz vitalnih informacija korisniku, već mogu djelovati i kao alat za uklanjanje pogrešaka tijekom početne razvojne faze projekta. Dakle, u ovom uputstvu naučit ćemo kako možemo povezati LCD zaslon 16 × 2 s razvojnom pločom STM32F103C8T6 STM32 i programirati ga pomoću Arduino IDE-a. Za ljude koji su upoznati s Arduinom, ovaj će vodič biti samo šetnja, jer su oboje vrlo slični. Da biste saznali više o STM32 odboru za plave tablete, slijedite naš vodič za početak rada.
Potrebni materijali
- STM32 odbor za razvoj plavih tableta
- LCD zaslon 16 × 2
- FTDI programer
- Spajanje žica
- LCD
Kratki uvod u matrični LCD zaslon 16 × 2 točke
Kao što je ranije rečeno, Energia IDE nudi prekrasnu biblioteku koja čini povezivanje dijelom kolača, pa stoga nije obavezno znati bilo što o modulu zaslona. Ali, zar ne bi bilo zanimljivo pokazati što koristimo !!
Naziv 16 × 2 implicira da zaslon ima 16 stupaca i 2 reda, što zajedno (16 * 2) tvori 32 okvira. Jedna pojedinačna kutija izgledala bi otprilike ovako na donjoj slici

Jedan okvir ima 40 piksela (točkica) s redoslijedom matrice od 5 redaka i 8 stupaca, tih 40 piksela zajedno tvori jedan znak. Slično tome, 32 znaka mogu se prikazati pomoću svih okvira. Sada ćemo pogledati pinouts.

LCD ima ukupno 16 pinova, kao što je gore prikazano, oni se mogu svrstati u četiri skupine kao što slijedi
Izvorne igle (1, 2 i 3): ove iglice daju snagu i razinu kontrasta zaslona
Upravljački pinovi (4, 5 i 6): Ovi pinovi postavljaju / kontroliraju registre u IC-u za povezivanje LCD-a (više o tome možete pronaći na donjoj poveznici)
Podaci / naredbe (7 do 14): Ove iglice pružaju podatke o tome koje informacije trebaju biti prikazane na LCD-u.
LED igle (15 i 16): Ove se igle koriste za osvjetljavanje pozadinskog osvjetljenja LCD-a ako je potrebno (nije obavezno).
Od svih ovih 16 pinova, samo 10 pinova treba koristiti obvezno za ispravan rad LCD-a ako želite saznati više o ovim LCD zaslonima, prijeđite na ovaj članak od 16x2 LCD-a.
Kružni dijagram i veza
Shema spoja za sučelje 16 * 2-matričnog LCD zaslona s pločicom STM32F103C8T6 STM32 Blue Pill prikazana je u nastavku. Izrađen je pomoću softvera Fritzing.

Kao što vidite, kompletna veza je izvedena preko ploče. Za programiranje mikrokontrolera STM32 potrebna nam je FTDI ploča. Slično sličnom našem prethodnom vodiču, FTDI ploču smo spojili na STM32, Vcc i uzemljeni pin FDTI programera spojen je na 5V pinski i uzemljeni pin STM32. To se koristi za napajanje ploče STM32 i LCD-a, jer obje mogu prihvatiti limenku + 5V. Rx i Tx pin FTDI ploče spojen je na A9 i A10 pin STM32 tako da možemo izravno programirati ploču bez boot loader-a.
Dalje LCD mora biti povezan na ploču STM32. Koristit ćemo LCD u 4-bitnom načinu, pa moramo spojiti 4 bita podataka (DB4 do DB7) i dva upravljačka zatiča (RS i EN) na ploču STM32 kako je prikazano u krugu povezivanja STM32F103C8T6 LCD gornji dijagram. Dalje će vam donja tablica pomoći u uspostavljanju veze.
|
LCD pin br. |
Naziv LCD ekrana |
Naziv pin-a STM32 |
|
1 |
Prizemlje (Gnd) |
Uzemljenje (G) |
|
2 |
VCC |
5V |
|
3 |
VEE |
Uzemljenje (G) |
|
4 |
Odaberite registar (RS) |
PB11 |
|
5 |
Čitanje / pisanje (RW) |
Uzemljenje (G) |
|
6 |
Omogući (EN) |
PB10 |
|
7 |
Bit podataka 0 (DB0) |
Nema veze (NC) |
|
8 |
Bit podataka 1 (DB1) |
Nema veze (NC) |
|
9 |
Bit podataka 2 (DB2) |
Nema veze (NC) |
|
10 |
Bit podataka 3 (DB3) |
Nema veze (NC) |
|
11 |
Bit podataka 4 (DB4) |
PB0 |
|
12 |
Bit podataka 5 (DB5) |
PB1 |
|
13 |
Bit podataka 6 (DB6) |
PC13 |
|
14 |
Bit podataka 7 (DB7) |
PC14 |
|
15 |
LED pozitivan |
5V |
|
16 |
LED negativan |
Uzemljenje (G) |
Jednom kada su veze gotove, možemo otvoriti Arduino IDE i početi ga programirati.
Programiranje STM32 za LCD pomoću Arduina
Kao što je rečeno u ovom vodiču, koristit ćemo Arduino IDE za programiranje našeg STM32 mikrokontrolera. Ali, Arduino IDE prema zadanim postavkama neće imati instaliranu STM32 ploču, stoga moramo preuzeti paket i pripremiti Arduino IDE za isti. To je upravo ono što smo učinili u našem prethodnom vodiču kako započeti sa STM32F103C8T6 koristeći Arduino IDE. Dakle, ako niste instalirali potrebne pakete, vratite se na ovaj vodič i slijedite ga prije nego što nastavite ovdje.
Nakon što se STM32 ploča instalira u Arduino IDE, možemo započeti s programiranjem. Program je vrlo sličan programu Arduino ploče, jedino što će se promijeniti su nazivi pin-ova jer su notacije različite za STM32 i Arduino. Kompletni program dan je na kraju ove stranice, ali kako bih objasnio program, podijelio sam ga na male smislene isječke kako je prikazano u nastavku.
Jedna primjetna prednost korištenja Arduina za programiranje naših mikrokontrolera je ta što Arduino ima gotove biblioteke za gotovo sve poznate senzore i aktuatore. Dakle, ovdje započinjemo svoj program uključivanjem LCD biblioteke što puno olakšava programiranje.
#include
U sljedećem retku moramo navesti na koje smo GPIO pinove STM32 povezali kontrolu i podatkovne vodove LCD zaslona. Da bismo to učinili, moramo provjeriti svoj hardver, jer se zbog jednostavnosti možete pozvati i na tablicu na vrhu koja navodi nazive pinova LCD-a naspram GPIO pin-a STM32. Nakon spominjanja pinova možemo LCD inicijalizirati pomoću funkcije LiquidCrystal . Naš LCD također nazivamo " lcd " kao što je prikazano u nastavku.
const int rs = PB11, en = PB10, d4 = PB0, d5 = PB1, d6 = PC13, d7 = PC14; // spominjemo nazive pinova na kojima je LCD povezan na LiquidCrystal lcd (rs, en, d4, d5, d6, d7); // Inicijalizirajte LCD
Dalje ulazimo u funkciju postavljanja . Ovdje prvo spominjemo koju vrstu LCD-a koristimo. Budući da se radi o LCD zaslonu 16 * 2, koristimo liniju lcd.begin (16,2). Kôd unutar funkcije postavljanja praznine izvršava se samo jednom. Stoga ga koristimo za prikaz uvodnog teksta koji se na zaslonu prikazuje 2 sekunde, a zatim briše. Da bismo spomenuli položaj na kojem se tekst mora pojaviti, koristimo funkciju lcd.setcursor, a za ispis teksta koristimo funkciju lcd.print . Na primjer, lcd.setCursor (0,0) postavit će kursor na prvi redak i prvi stupac gdje ispisujemo " Interfacing LCD " i funkciju lcd.setCursor (0,1) pomiče kursor u drugi redak prvi stupac gdje ispisujemo redak " CircuitDigest ".
void setup () {lcd.begin (16, 2); // Koristimo LCD LCD 16x2 lcd.setCursor (0, 0); // U prvom retku prvi stupac lcd.print ("Interfacing LCD"); // ispis ovog lcd.setCursor (0, 1); // U prvom stupcu prvog stupca lcd.print ("- CircuitDigest"); // Ispis ovog odlaganja (2000); // čekamo dvije sekunde lcd.clear (); // brisanje zaslona}
Nakon prikaza uvodnog teksta držimo program dvije sekunde stvarajući odgodu tako da korisnik može pročitati uvodnu poruku. Ovo kašnjenje stvara kašnjenje linije (2000) gdje je 2000 vrijednost kašnjenja u milimetrima sekundi. Nakon odgode LCD očistimo pomoću funkcije lcd.clear () koja uklanja LCD uklanjanjem cijelog teksta na LCD-u.
Konačno unutar šupljina petlje, možemo prikazati „STM32 plavi pilula” na prvoj liniji i vrijednosti sekundi na drugoj liniji. Vrijednost sekunde može se dobiti iz funkcije milis () . U milisekundama () je brojač koji dobiva povećavati pravo iz vremena MCU napaja. Vrijednost je u obliku mili sekundi, pa je dijelimo s 1000 prije nego što je prikažemo na našem LCD-u.
petlja void () { lcd.setCursor (0, 0); // U prvom retku prvi stupac lcd.print ("STM32 -Blue Pill"); // ispis ovog lcd.setCursor (0, 1); // U drugom stupcu prvi stupac lcd.print (millis () / 1000); // Ispis vrijednosti secounds }
Učitavanje programa na STM32F103C8T6
Kao što je objašnjeno u gornjem odlomku, trebali biste moći primijetiti izlaz čim se kôd prenese. Ali ovaj program neće raditi sljedeći put kada uključite ploču jer je ploča još uvijek u modu za programiranje. Dakle, nakon što se program prenese, kratkospojnik pri pokretanju 0 treba vratiti na 0 mjesta kao što je prikazano u nastavku. Također sada, budući da je program prenesen na STM32 ploču, već nam ne treba FTDI ploča, a cijelu postavku može napajati mikro-USB priključak STM32 ploče, kao što je prikazano u nastavku.

Ovo je samo jednostavan projekt povezivanja koji će vam pomoći u korištenju LCD zaslona sa STM32 pločom, ali nadalje ovo možete koristiti za izgradnju sjajnih projekata. Nadam se da ste razumjeli tutorial i naučili nešto korisno iz njega. Ako ste naišli na bilo kakav problem prilikom pokretanja, upotrijebite odjeljak za komentare da biste objavili problem ili koristite forume za druga tehnička pitanja. Kompletan radni LCD zaslon s STM32 se također mogu naći u obliku videa dane u nastavku.
