- Nepieciešamie materiāli
- Shēmas shēma un savienojums
- STM32 programmēšana LCD, izmantojot Arduino
- Programmas augšupielāde vietnē STM32F103C8T6
Jebkura mikrokontrollera projekta gadījumā displeja bloka sasaistīšana ar to padarītu projektu daudz vienkāršāku un pievilcīgāku lietotājam, ar kuru mijiedarboties. Mikrokontrolleru visbiežāk izmantotā displeja vienība ir 16 × 2 burtu ciparu displeji. Šāda veida displeji ir ne tikai noderīgi, lai parādītu lietotājam svarīgu informāciju, bet arī var darboties kā atkļūdošanas rīks sākotnējā projekta attīstības posmā. Tātad šajā apmācībā mēs uzzināsim, kā mēs varam saskarties ar 16 × 2 LCD displeju ar STM32F103C8T6 STM32 izstrādes paneli un to ieprogrammēt, izmantojot Arduino IDE. Cilvēkiem, kuri ir pazīstami ar Arduino, šī apmācība būs tikai kūku pastaiga, jo viņi abi ir ļoti līdzīgi. Lai uzzinātu vairāk par STM32 Blue Pill Board, sekojiet mūsu apmācības sākšanai.
Nepieciešamie materiāli
- STM32 Zilo tablešu izstrādes padome
- 16 × 2 LCD displejs
- FTDI programmētājs
- Vadu savienošana
- LCD
Īss ievads 16 × 2 punktu matricas LCD displejā
Kā teicām iepriekš, Energia IDE nodrošina skaistu bibliotēku, kas padara saskarni par kūkas gabalu, un tāpēc nav obligāti jāzina nekas par displeja moduli. Bet vai nebūtu interesanti parādīt, ko mēs izmantojam !!
Nosaukums 16 × 2 nozīmē, ka displejā ir 16 kolonnas un 2 rindas, kas kopā (16 * 2) veido 32 lodziņus. Viena atsevišķa kastīte izskatās apmēram šādi zemāk redzamajā attēlā
Vienā lodziņā ir 40 pikseļi (punkti) ar 5 rindu un 8 kolonnu matricas secību. Šie 40 pikseļi kopā veido vienu rakstzīmi. Tāpat visas rūtiņas var parādīt 32 rakstzīmes. Tagad ļaujiet apskatīt pinouts.
LCD ir kopā 16 tapas, kā parādīts iepriekš, tos var iedalīt četrās grupās, piemēram, šādi
Avota tapas (1, 2 un 3): Šīs tapas nodrošina displeja jaudas un kontrasta līmeni
Vadības tapas (4, 5 un 6): Šīs tapas iestata / kontrolē reģistrus LCD saskarnes IC (vairāk tas ir atrodams zemāk esošajā saitē)
Datu / komandu piespraudes (no 7 līdz 14): Šīs tapas sniedz datus par to, kāda informācija būtu jāparāda LCD.
LED tapas (15 un 16): šīs tapas tiek izmantotas, lai nepieciešamības gadījumā spīdētu LCD apgaismojumu (pēc izvēles).
No visām šīm 16 tapām obligāti jāizmanto tikai 10 tapas, lai pareizi darbotos LCD, ja vēlaties uzzināt vairāk par šiem LCD displejiem, pārejiet uz šo 16x2 LCD rakstu.
Shēmas shēma un savienojums
Ķēdes shēma saskarnei 16 * 2 punktu matricas LCD ar STM32F103C8T6 STM32 Blue Pill Board ir parādīta zemāk. Tas ir izgatavots, izmantojot programmatūru Fritzing.
Kā redzat, pilnīgs savienojums tiek veikts virs maizes dēļa. Lai programmētu STM32 mikrokontrolleru, mums ir nepieciešama FTDI dēlis. Tik līdzīgi kā mūsu iepriekšējā apmācībā, mēs esam pievienojuši FTDI plāksni STM32, FDTI programmētāja Vcc un iezemētā tapa ir pievienota attiecīgi STM32 5V tapai un zemējuma tapai. To izmanto, lai darbinātu STM32 plāksni un LCD, jo abi var pieņemt var + 5V. FTDI plates Rx un Tx tapa ir savienota ar STM32 A9 un A10 tapām, lai mēs varētu programmu ieprogrammēt tieši bez sāknēšanas iekrāvēja.
Pēc tam LCD ir jāpievieno STM32 dēlim. Mēs izmantosim LCD 4 bitu režīmā, tāpēc mums ir jāpievieno 4 datu bitu tapas (no DB4 līdz DB7) un divi vadības kontakti (RS un EN) ar STM32 paneli, kā parādīts STM32F103C8T6 LCD saskarnes ķēdē diagramma iepriekš. Tālāk sniegtā tabula palīdzēs jums izveidot savienojumu.
LCD tapas Nr. |
LCD tapas nosaukums |
STM32 tapas nosaukums |
1 |
Zeme (Gnd) |
Zeme (G) |
2 |
VCC |
5V |
3 |
VEE |
Zeme (G) |
4 |
Reģistrēties Atlasīt (RS) |
PB11 |
5 |
Lasīt / rakstīt (RW) |
Zeme (G) |
6 |
Iespējot (EN) |
PB10 |
7 |
Datu bits 0 (DB0) |
Nav savienojuma (NC) |
8 |
1. datu bits (DB1) |
Nav savienojuma (NC) |
9 |
2. datu bits (DB2) |
Nav savienojuma (NC) |
10 |
3. datu bits (DB3) |
Nav savienojuma (NC) |
11 |
4. datu bits (DB4) |
PB0 |
12 |
5. datu bits (DB5) |
PB1 |
13 |
6. datu bits (DB6) |
PC13 |
14 |
7. datu bits (DB7) |
PC14 |
15 |
LED pozitīvs |
5V |
16 |
LED negatīvs |
Zeme (G) |
Kad savienojumi ir izdarīti, mēs varam atvērt Arduino IDE un sākt to programmēt.
STM32 programmēšana LCD, izmantojot Arduino
Kā stāstīts šajā apmācībā, mēs izmantosim Arduino IDE, lai programmētu mūsu STM32 mikrokontrolleru. Bet pēc noklusējuma Arduino IDE nebūs instalēta STM32 dēlis, tāpēc mums ir jālejupielādē pakete un jāsagatavo Arduino IDE. Tas ir tieši tas, ko mēs darījām iepriekšējā apmācībā, sākot darbu ar STM32F103C8T6, izmantojot Arduino IDE. Tātad, ja neesat instalējis nepieciešamās pakotnes, atgriezieties šajā apmācībā un sekojiet tai, pirms turpināt šeit.
Kad STM32 valde ir instalēta Arduino IDE, mēs varam sākt programmēt. Programma ir ļoti līdzīga Arduino dēļa programmai, vienīgais, kas mainīsies, ir tapu nosaukumi, jo STM32 un Arduino apzīmējumi ir atšķirīgi. Pilna programma ir dota šīs lapas beigās, bet, lai izskaidrotu programmu, es to esmu sadalījis mazos nozīmīgos fragmentos, kā parādīts zemāk.
Viena ievērojama Arduino izmantošanas priekšrocība mūsu mikrokontrolleru programmēšanai ir tā, ka Arduino ir gatavas bibliotēkas gandrīz visiem slavenajiem sensoriem un izpildmehānismiem. Tātad šeit mēs sākam savu programmu, iekļaujot LCD bibliotēku, kas daudz atvieglo programmēšanu.
# iekļaut
Nākamajā rindā mums jānorāda, kuriem STM32 GPIO tapām mēs esam pievienojuši LCD displeja vadības un datu līnijas. Lai to izdarītu, mums jāpārbauda mūsu aparatūra, lai atvieglotu, varat arī atsaukties uz augšdaļā sniegto tabulu, kurā LCD kontaktu nosaukumi ir uzskaitīti pret STM32 GPIO tapu. Pēc tapu pieminēšanas mēs varam inicializēt LCD, izmantojot LiquidCrystal funkciju. Mēs arī nosaucam mūsu LCD kā “ lcd ”, kā parādīts zemāk.
const int rs = PB11, en = PB10, d4 = PB0, d5 = PB1, d6 = PC13, d7 = PC14; // pieminēt tapu nosaukumus, lai ar LCD ir savienots ar LiquidCrystal lcd (rs, en, d4, d5, d6, d7); // Inicializējiet LCD
Tālāk mēs ieejam iestatīšanas funkcijā. Šeit vispirms mēs pieminējam, kāda veida LCD mēs izmantojam. Tā kā tas ir 16 * 2 LCD, mēs izmantojam līniju lcd.begin (16,2). Kods tukšās iestatīšanas funkcijā tiek izpildīts tikai vienu reizi. Tāpēc mēs to izmantojam, lai parādītu ievadtekstu, kas ekrānā parādās 2 sekundes un pēc tam tiek notīrīts. Lai pieminētu vietu, kur tekstam jāparādās, mēs izmantojam funkciju lcd.setcursor un teksta drukāšanai izmantojam funkciju lcd.print . Piemēram, lcd.setCursor (0,0) iestatīs kursoru pirmajā rindā un pirmajā kolonnā, kur mēs drukājam “ Interfacing LCD ”, un funkciju lcd.setCursor (0,1) pārvieto kursoru uz otrās rindas pirmo kolonnu, kur mēs izdrukājam līniju “ CircuitDigest ”.
void setup () {lcd.begin (16, 2); // Mēs izmantojam 16 * 2 LCD lcd.setCursor (0, 0); // Pirmajā rindā pirmās kolonnas lcd.print ("Interfacing LCD"); // Izdrukājiet šo lcd.setCursor (0, 1); // Otrās rindas pirmajā kolonnā lcd.print ("- CircuitDigest"); // Izdrukāt šo kavēšanos (2000); // jāgaida divas sekundes lcd.clear (); // Notīrīt ekrānu}
Pēc ievada teksta parādīšanas mēs turam programmu 2 sekundes, izveidojot kavēšanos, lai lietotājs varētu izlasīt ievadziņu. Šo kavēšanos rada līnijas aizkave (2000), kur 2000 ir aizkaves vērtība dzirnavu sekundēs. Pēc kavēšanās mēs notīrām LCD, izmantojot funkciju lcd.clear (), kas notīra LCD, noņemot visu tekstu uz LCD.
Beidzot iekšpusē tukšumu cilpas, mēs parādītu "STM32 -Blue Pill" pirmajā rindā un vērtību sekundēs otrajā rindā. Sekundes vērtību var iegūt no funkcijas milis () . Par milisekundes () ir taimeris, kas saņem palielināšanai tiesības no brīža, kad MCU ir powered. Vērtība ir mili sekundes, tāpēc mēs to dalām ar 1000, pirms parādāt to mūsu LCD.
void loop () { lcd.setCursor (0, 0); // Pirmajā rindā pirmā kolonna lcd.print ("STM32 -Zilā tablete"); // Izdrukājiet šo lcd.setCursor (0, 1); // Otrās rindas pirmajā kolonnā lcd.print (millis () / 1000); // Izdrukājiet secounds vērtību }
Programmas augšupielāde vietnē STM32F103C8T6
Kā minēts iepriekšējā punktā, jums vajadzētu būt iespējai pamanīt izvadi, tiklīdz kods ir augšupielādēts. Bet šī programma nedarbosies nākamajā reizē, kad ieslēdzat dēli, jo tā joprojām ir programmēšanas režīmā. Tātad, kad programma ir augšupielādēta, džemperis uz sāknēšanas 0 jāmaina atpakaļ uz 0 pozīcijām, kā parādīts zemāk. Arī tagad, tā kā programma ir augšupielādēta STM32 dēlī, mums FTDI dēlis nav vajadzīgs, un visu iestatījumu var darbināt ar STM32 dēļa mikro-USB pieslēgvietu, kā parādīts zemāk.
Šis ir tikai vienkāršs saskarnes projekts, kas palīdz izmantot LCD displeju ar STM32 dēli, taču tālāk jūs to varat izmantot, lai izveidotu foršus projektus. Ceru, ka sapratāt apmācību un uzzinājāt no tās kaut ko noderīgu. Ja jums ir radušās kādas problēmas, lai tas darbotos, lūdzu, izmantojiet komentāru sadaļu, lai publicētu problēmu, vai izmantojiet forumus citiem tehniskiem jautājumiem. Pilnīga apstrāde LCD displejs ar STM32 var atrast arī par video zemāk dotajā.