- Potrebni materiali
- Shema vezja in povezava
- Programiranje STM32 za LCD z uporabo Arduina
- Nalaganje programa na STM32F103C8T6
Za vsak projekt mikrokrmilnika bi povezovanje zaslona z njim projekt olajšalo in uporabniku pritegnilo interakcijo. Najpogosteje uporabljena prikazovalna enota za mikrokrmilnike so številčni zasloni 16 × 2 Alfa. Te vrste zaslonov niso uporabne samo za prikaz vitalnih informacij uporabniku, temveč lahko delujejo tudi kot orodje za odpravljanje napak v začetni razvojni fazi projekta. V tej vadnici bomo torej izvedeli, kako lahko povežemo 16 × 2 LCD zaslon z razvojno ploščo STM32F103C8T6 STM32 in ga programiramo z uporabo Arduino IDE. Za ljudi, ki poznajo Arduino, bo ta vadnica le sprehod, saj sta si zelo podobna. Če želite izvedeti več o plošči STM32 Blue Pill Board, sledite našim navodilom za začetek.
Potrebni materiali
- Odbor za razvoj modrih tablet STM32
- 16 × 2 LCD zaslon
- Programer FTDI
- Povezovanje žic
- LCD
Kratek uvod v matrični LCD zaslon 16 × 2 piki
Kot smo že povedali, ima Energia IDE čudovito knjižnico, ki naredi povezovanje kos torte, zato ni treba vedeti ničesar o prikazovalnem modulu. Ampak, ali ne bi bilo zanimivo pokazati, kaj uporabljamo !!
Ime 16 × 2 pomeni, da ima zaslon 16 stolpcev in 2 vrstici, kar skupaj (16 * 2) tvori 32 polj. Ena sama škatla bi izgledala nekako takole na spodnji sliki
Eno polje vsebuje 40 pik (pik) z vrstnim redom matrike 5 vrstic in 8 stolpcev, teh 40 pik skupaj tvori en znak. Podobno je v vseh poljih mogoče prikazati 32 znakov. Zdaj pa si oglejmo pinouts.
LCD ima skupaj 16 nožic, kot je prikazano zgoraj, jih lahko razvrstimo v štiri skupine, kot sledi
Izvorni zatiči (1, 2 in 3): ti zatiči napajajo moč in kontrast zaslona
Nadzorni zatiči (4, 5 in 6): ti zatiči nastavljajo / nadzirajo registre v vmesniški IC povezave LCD (več tega najdete na spodnji povezavi)
Zatiči za podatke / ukaze (7 do 14): Ti zatiči zagotavljajo podatke o tem, katere informacije naj bodo prikazane na LCD-prikazovalniku.
LED zatiči (15 in 16): ti zatiči se po potrebi uporabljajo za osvetlitev ozadja LCD-ja (neobvezno).
Od vseh teh 16 zatičev je treba za pravilno delovanje LCD-ja obvezno uporabiti le 10 zatičev, če želite izvedeti več o teh LCD-zaslonih, pojdite na ta članek o LCD-u 16x2.
Shema vezja in povezava
Shema vezja za vmesnik 16 * 2-točkovnega matričnega LCD-ja s ploščo STM32F103C8T6 STM32 Blue Pill je prikazana spodaj. Izdelano je s programsko opremo Fritzing.
Kot lahko vidite, je celotna povezava vzpostavljena prek plošče. Za programiranje mikrokrmilnika STM32 potrebujemo ploščo FTDI. Podobno kot pri prejšnji vadnici smo FTDI ploščo povezali na STM32, Vcc in ozemljitveni zatič programerja FDTI sta povezani s 5-vtičnim in ozemljitvenim zatičem STM32. Ta se uporablja za napajanje plošče STM32 in LCD-ja, saj lahko sprejemamo + 5V. Zatič Rx in Tx plošče FTDI je povezan z zatičem A9 in A10 STM32, tako da lahko ploščo programiramo neposredno brez zagonskega nakladalnika.
Nato mora biti LCD povezan s ploščo STM32. LCD bomo uporabljali v 4-bitnem načinu, zato moramo 4 plošče podatkovnih bitov (DB4 do DB7) in dva krmilna zatiča (RS in EN) priključiti na ploščo STM32, kot je prikazano v vezju povezave LCD STM32F103C8T6 diagram zgoraj. Nadalje vam bo spodnja tabela pomagala pri vzpostavitvi povezave.
Številka LCD-ja |
Ime pin LCD |
Ime pin STM32 |
1. |
Tla (Gnd) |
Tla (G) |
2. |
VCC |
5V |
3. |
VEE |
Tla (G) |
4. |
Izbira registra (RS) |
PB11 |
5. |
Branje / pisanje (RW) |
Tla (G) |
6. |
Omogoči (EN) |
PB10 |
7. |
Podatkovni bit 0 (DB0) |
Brez povezave (NC) |
8. |
Podatkovni bit 1 (DB1) |
Brez povezave (NC) |
9. |
Podatkovni bit 2 (DB2) |
Brez povezave (NC) |
10. |
Podatkovni bit 3 (DB3) |
Brez povezave (NC) |
11. |
Podatkovni bit 4 (DB4) |
PB0 |
12. |
Podatkovni bit 5 (DB5) |
PB1 |
13. |
Podatkovni bit 6 (DB6) |
PC13 |
14. |
Podatkovni bit 7 (DB7) |
PC14 |
15. |
LED pozitivna |
5V |
16. |
LED negativno |
Tla (G) |
Ko so povezave končane, lahko odpremo Arduino IDE in ga začnemo programirati.
Programiranje STM32 za LCD z uporabo Arduina
Kot je rečeno v tej vadnici, bomo Arduino IDE uporabili za programiranje našega mikrokrmilnika STM32. Toda Arduino IDE privzeto ne bo imel nameščene plošče STM32, zato moramo prenesti paket in pripraviti Arduino IDE za isto. To je točno tisto, kar smo storili v prejšnji vadnici za začetek uporabe STM32F103C8T6 z uporabo Arduino IDE. Torej, če niste namestili zahtevanih paketov, se vrnite na to vadnico in ji sledite, preden nadaljujete tukaj.
Ko je plošča STM32 nameščena v Arduino IDE, lahko začnemo s programiranjem. Program je zelo podoben programu Arduino, edina stvar, ki se bo spremenila, so imena pinov, saj so zapisi STM32 in Arduino različni. Celoten program je podan na koncu te strani, vendar sem ga za razlago razdelil na majhne pomembne delčke, kot je prikazano spodaj.
Ena opazna prednost uporabe Arduina za programiranje naših mikrokrmilnikov je ta, da ima Arduino že izdelane knjižnice za skoraj vse znane senzorje in aktuatorje. Torej, tu začnemo svoj program z vključitvijo knjižnice LCD, ki zelo olajša programiranje.
#include
V naslednji vrstici moramo določiti, na katere GPIO nožice STM32 smo povezali krmilno in podatkovno linijo LCD zaslona. Če želite to narediti, moramo preveriti našo strojno opremo, za lažjo uporabo si lahko ogledate tudi tabelo na vrhu, kjer so navedena imena pinov LCD-ja proti GPIO-pinu STM32. Po omembi nožic lahko LCD inicializiramo s funkcijo LiquidCrystal . Naš LCD tudi imenujemo " lcd ", kot je prikazano spodaj.
const int rs = PB11, en = PB10, d4 = PB0, d5 = PB1, d6 = PC13, d7 = PC14; // omenimo imena pinov, saj je LCD povezan z LiquidCrystal lcd (rs, en, d4, d5, d6, d7); // Inicializirajte LCD
Nato stopimo v nastavitveno funkcijo. Tu najprej omenimo, katero vrsto LCD-zaslona uporabljamo. Ker gre za LCD 16 * 2, uporabljamo črto lcd.begin (16,2). Koda v funkciji nastavitve void se izvede samo enkrat. Tako ga uporabljamo za prikaz uvodnega besedila, ki se na zaslonu prikaže za 2 sekundi in se nato počisti. Za omembo položaja, kjer se mora besedilo pojaviti, uporabimo funkcijo lcd.setcursor, za tiskanje besedila pa funkcijo lcd.print . Na primer, lcd.setCursor (0,0) nastavi kurzor v prvi vrstici in prvem stolpcu, kjer natisnemo " Interfacing LCD " in funkcijo lcd.setCursor (0,1) premakne kazalec v prvi stolpec druge vrstice, kjer natisnemo vrstico " CircuitDigest ".
void setup () {lcd.begin (16, 2); // Uporabljamo LCD lcd.setCursor 16 * 2 LCD (0, 0); // v prvi vrstici prvi stolpec lcd.print ("Interfacing LCD"); // Natisni ta lcd.setCursor (0, 1); // V prvi vrstici prve stolpca lcd.print ("- CircuitDigest"); // Natisni to zamudo (2000); // čakamo dve sekundi na lcd.clear (); // počisti zaslon}
Po prikazu uvodnega besedila držimo program za 2 sekundi z ustvarjanjem zamika, tako da lahko uporabnik prebere uvodno sporočilo. Ta zakasnitev nastane z zakasnitvijo linije (2000), kjer je 2000 vrednost zakasnitve v milionskih sekundah. Po zakasnitvi LCD izbrišemo s funkcijo lcd.clear (), ki zbriše LCD, tako da odstrani vse besedilo na LCD-ju.
Končno znotraj praznem zanke, smo prikazati "STM32 modra tabletko" na prvi vrstici in vrednostjo sekund na drugi liniji. Vrednost sekunde lahko dobimo iz funkcije milis () . V milisekundah () je timer, ki dobi povečevanje pravico od trenutka, ko MCU se napaja. Vrednost je v obliki mili sekund, zato jo pred prikazom na LCD-prikazovalniku delimo s 1000.
void loop () { lcd.setCursor (0, 0); // v prvi vrstici prvi stolpec lcd.print ("STM32-Modra tabletka"); // Natisni ta lcd.setCursor (0, 1); // V drugi vrstici prvi stolpec lcd.print (milis () / 1000); // Natisni vrednost secounds }
Nalaganje programa na STM32F103C8T6
Kot je razloženo v zgornjem odstavku, boste lahko opazili izhod takoj, ko je koda naložena. Toda ta program ob naslednjem vklopu plošče ne bo deloval, saj je plošča še vedno v načinu programiranja. Torej , ko je program naložili mostiček na prtljažniku 0 je treba spremeniti nazaj na 0 položaje, kot je prikazano spodaj. Tudi zdaj, ko je program naložen na ploščo STM32, plošče FTDI že ne potrebujemo in celotno nastavitev lahko napajamo prek vrat micro-USB plošče STM32, kot je prikazano spodaj.
To je le preprost projekt povezovanja, ki vam pomaga pri uporabi LCD zaslona s ploščo STM32, vendar lahko to uporabite tudi za izdelavo kul projektov. Upam, da ste razumeli vadnico in se iz nje naučili kaj koristnega. Če ste naleteli na kakršno koli težavo pri delovanju, v razdelku s komentarji objavite težavo ali uporabite forume za druga tehnična vprašanja. Popolno delovanje LCD zaslon z STM32 je mogoče najti tudi kot video spodaj navedeni.