- Tarvittavat materiaalit
- Piirikaavio ja liitäntä
- STM32: n ohjelmointi LCD-näyttöä varten Arduinolla
- Ohjelman lataaminen STM32F103C8T6: een
Kaikille mikro-ohjainprojekteille näyttöyksikön liittäminen sen kanssa tekisi projektista paljon helpompaa ja houkuttelevampaa käyttäjälle vuorovaikutuksessa. Mikrokontrollereiden yleisimmin käytetty näyttöyksikkö on 16 × 2 aakkosnumeerinen näyttö. Tämäntyyppiset näytöt ovat hyödyllisiä paitsi näyttämään elintärkeää tietoa käyttäjälle, mutta ne voivat toimia myös virheenkorjaustyökaluna projektin alkuvaiheessa. Joten tässä opetusohjelmassa opimme, kuinka voimme liittää 16 × 2 LCD-näytön STM32F103C8T6 STM32 -kehityslevyyn ja ohjelmoida sen Arduino IDE: n avulla. Arduinoa tunteville ihmisille tämä opetusohjelma on vain kakkukävely, koska molemmat ovat hyvin samankaltaisia. Jos haluat oppia lisää STM32 Blue Pill Boardista, seuraa aloitusoppaamme.
Tarvittavat materiaalit
- STM32 Blue Pill -kehityslauta
- 16 × 2 LCD-näyttö
- FTDI-ohjelmoija
- Johtojen liittäminen
- LCD-näyttö
Lyhyt esittely 16 × 2 pistematriisin LCD-näytölle
Kuten aiemmin kerrottiin, Energia IDE tarjoaa kauniin kirjaston, joka tekee liitännästä kakunpalan, joten ei ole pakollista tietää mitään näyttömoduulista. Mutta eikö olisikin mielenkiintoista näyttää mitä käytämme !!
Nimi 16 × 2 tarkoittaa, että näytöllä on 16 saraketta ja 2 riviä, jotka yhdessä (16 * 2) muodostavat 32 ruutua. Yksi yksittäinen laatikko näyttäisi tältä tältä alla olevassa kuvassa
Yhdessä ruudussa on 40 pikseliä (pisteitä) matriisijärjestyksessä 5 riviä ja 8 saraketta, nämä 40 pikseliä muodostavat yhdessä yhden merkin. Vastaavasti 32 merkkiä voidaan näyttää kaikissa ruuduissa. Katsotaanpa nyt pinouteja.
LCD-näytöllä on yhteensä 16 nastaa, kuten yllä on esitetty, ne voidaan luokitella neljään ryhmään kuten seuraavasti
Lähdönastat (1, 2 ja 3): Nämä nastat tuottavat näytön tehon ja kontrastin
Ohjaustapit (4, 5 ja 6): Nämä tapit asettavat / ohjaavat rekisterit LCD-liitäntäpiirissä (lisätietoja löytyy alla olevasta linkistä)
Data / komentotapit (7-14): Nämä nastat antavat tiedot siitä, mitä tietoja nestekidenäytössä tulisi näyttää.
LED-nastat (15 ja 16): Näitä nastoja käytetään tarvittaessa LCD-näytön taustavalon hehkuttamiseen (valinnainen).
Kaikista näistä 16 nastasta vain 10 nastaa on käytettävä pakollisena nestekidenäytön moitteettomaan toimintaan, jos haluat tietää enemmän näistä LCD-näytöistä tästä 16x2 LCD-artikkelista.
Piirikaavio ja liitäntä
Kytkentäkaavio 16 * 2 pistematriisin LCD-näytön ja STM32F103C8T6 STM32 Blue Pill -taulun kanssa on esitetty alla. Se on valmistettu Fritzing-ohjelmistolla.
Kuten näette, koko yhteys on tehty leivän yli. Tarvitsemme FTDI-kortin STM32-mikrokontrollerin ohjelmointiin. Joten samanlainen kuin edellinen opetusohjelma, olemme kytkeneet FTDI-kortin STM32: een, FDTI-ohjelmoijan Vcc ja maadoitettu tappi on kytketty STM32: n 5 V: n ja maadoitettuun tapiin. Tätä käytetään STM32-kortin ja nestekidenäytön virtalähteeseen, koska molemmat voivat hyväksyä tölkin + 5 V. FTDI-kortin Rx- ja Tx-nasta on kytketty STM32: n A9- ja A10-nastoihin, jotta voimme ohjelmoida levyn suoraan ilman käynnistyslatainta.
Seuraavaksi nestekidenäyttö on kytkettävä STM32-korttiin. Aiomme käyttää LCD-näyttöä 4-bittisessä tilassa, joten meidän on kytkettävä 4 databittinastaa (DB4 - DB7) ja kaksi ohjaustappia (RS ja EN) STM32-korttiin, kuten LCD- liitäntäpiirissä STM32F103C8T6 on esitetty. kaavio yllä. Seuraava taulukko auttaa sinua yhteyden muodostamisessa.
LCD-nastanumero |
LCD-nastan nimi |
STM32-nastan nimi |
1 |
Maa (Gnd) |
Maa (G) |
2 |
VCC |
5 V |
3 |
VEE |
Maa (G) |
4 |
Rekisteröinti Valitse (RS) |
PB11 |
5 |
Lue / kirjoita (RW) |
Maa (G) |
6 |
Ota käyttöön (EN) |
PB10 |
7 |
Databitti 0 (DB0) |
Ei yhteyttä (NC) |
8 |
Databitti 1 (DB1) |
Ei yhteyttä (NC) |
9 |
Databitti 2 (DB2) |
Ei yhteyttä (NC) |
10 |
Databitti 3 (DB3) |
Ei yhteyttä (NC) |
11 |
Databitti 4 (DB4) |
PB0 |
12 |
Databitti 5 (DB5) |
PB1 |
13 |
Databitti 6 (DB6) |
PC13 |
14 |
Databitti 7 (DB7) |
PC14 |
15 |
LED positiivinen |
5 V |
16 |
LED negatiivinen |
Maa (G) |
Kun yhteydet on tehty, voimme avata Arduino IDE: n ja aloittaa sen ohjelmoinnin.
STM32: n ohjelmointi LCD-näyttöä varten Arduinolla
Kuten tässä opetusohjelmassa kerrotaan, käytämme Arduino IDE: tä STM32-mikrokontrollerin ohjelmointiin. Mutta Arduino IDE: ssä ei oletusarvoisesti ole asennettuna STM32-korttia, joten meidän on ladattava paketti ja valmisteltava Arduino IDE samalle. Näin teimme edellisessä opetusohjelmassa aloittaessamme STM32F103C8T6: n Arduino IDE: n avulla. Joten jos et ole asentanut vaadittuja paketteja, palaa tähän opetusohjelmaan ja seuraa sitä ennen kuin jatkat täällä.
Kun STM32-kortti on asennettu Arduino IDE -ohjelmaan, voimme aloittaa ohjelmoinnin. Ohjelma on hyvin samanlainen kuin Arduino-kortti, ainoa asia, joka muuttuu, on pin-nimet, koska STM32: n ja Arduinon merkinnät ovat erilaiset. Koko ohjelma on tämän sivun lopussa, mutta ohjelman selittämiseksi olen jakanut sen pieniin mielekkäisiin katkelmiin alla olevan kuvan mukaisesti.
Yksi huomattava etu Arduinon käytöstä mikrokontrollereidemme ohjelmoinnissa on, että Arduinolla on valmiita kirjastoja melkein kaikille tunnetuille antureille ja toimilaitteille. Joten tässä aloitamme ohjelmamme sisällyttämällä LCD-kirjaston, mikä helpottaa ohjelmointia.
#sisältää
Seuraavalla rivillä on määriteltävä, mihin STM32: n GPIO-nastoihin olemme liittäneet LCD- näytön ohjauksen ja datalinjat. Tätä varten meidän on tarkistettava laitteistomme, helppouden vuoksi voit myös viitata yläosassa olevaan taulukkoon, jossa luetellaan nestekidenäytön pin-nimet STM32: n GPIO-nastalla. Mainittuaan nastat voimme aloittaa nestekidenäytön LiquidCrystal- toiminnolla. Nimeämme nestekidenäytön myös nimellä " lcd " alla olevan kuvan mukaisesti.
const int rs = PB11, en = PB10, d4 = PB0, d5 = PB1, d6 = PC13, d7 = PC14; // mainita pin-nimet, joihin LCD on kytketty LiquidCrystal lcd: hen (rs, en, d4, d5, d6, d7); // Alusta nestekidenäyttö
Seuraavaksi astumme asetustoiminnon sisään . Tässä on ensin mainittava, minkä tyyppistä nestekidenäyttöä käytämme. Koska kyseessä on 16 * 2 nestekidenäyttö, käytämme linjaa lcd.begin (16,2). Void-asetustoiminnon sisällä oleva koodi suoritetaan vain kerran. Joten käytämme sitä esittelytekstin näyttämiseen, joka tulee näyttöön 2 sekunniksi ja sitten tyhjennetään. Mainitsemme paikan, jossa tekstin on oltava, käytämme toimintoa lcd.setcursor ja tekstin tulostamiseen lcd.print- toimintoa. Esimerkiksi lcd.setCursor (0,0) asettaa kohdistimen ensimmäiselle riville ja ensimmäiseen sarakkeeseen, johon tulostamme ” Interfacing LCD ”, ja toiminnon lcd.setCursor (0,1) siirtää kohdistimen toisen rivin ensimmäiseen sarakkeeseen, jossa tulostetaan rivi ” CircuitDigest ”.
void setup () {lcd.begin (16, 2); // Käytämme 16 * 2 LCD-näyttöä lcd.setCursor (0, 0); // Ensimmäisen rivin ensimmäisessä sarakkeessa lcd.print ("Interfacing LCD"); // Tulosta tämä lcd.setCursor (0, 1); // Toisen rivin ensimmäisessä sarakkeessa lcd.print ("- CircuitDigest"); // Tulosta tämä viive (2000); // odota kaksi sekuntia lcd.clear (); // Tyhjennä näyttö}
Esittelytekstin näyttämisen jälkeen pidämme ohjelmaa 2 sekunnin ajan luomalla viiveen, jotta käyttäjä voi lukea intro-viestin. Tämä viive syntyy linjaviiveellä (2000), jossa 2000 on viivearvo millisekunnissa. Viiveen jälkeen tyhjennämme nestekidenäytön käyttämällä lcd.clear () -toimintoa, joka tyhjentää nestekidenäytön poistamalla kaiken tekstin LCD- näytöltä .
Lopuksi tyhjän silmukan sisällä näytämme ensimmäisellä rivillä “STM32 –sininen pilleri” ja toisella rivillä sekuntien arvon. Sekunnin arvo saadaan funktiosta millis () . Millis () on ajastin, joka saa kasvattamalla suoraan, kun MCU on kytketty. Arvo on millisekuntien muodossa, joten jaamme sen 1000: lla ennen sen näyttämistä nestekidenäytöllä.
void loop () { lcd.setCursor (0, 0); // Ensimmäisen rivin ensimmäinen sarake lcd.print ("STM32 -sininen pilleri"); // Tulosta tämä lcd.setCursor (0, 1); // Toisen rivin ensimmäisessä sarakkeessa lcd.print (millis () / 1000); // Tulosta sekuntien arvo }
Ohjelman lataaminen STM32F103C8T6: een
Kuten edellisessä kappaleessa todettiin, sinun pitäisi pystyä havaitsemaan tulosteet heti, kun koodi on ladattu. Mutta tämä ohjelma ei toimi seuraavalla kerralla, kun käynnistät kortin, koska levy on edelleen ohjelmointitilassa. Joten kun ohjelma on ladattu, käynnistyksen 0 hyppääjä tulisi vaihtaa takaisin 0 asentoon alla olevan kuvan mukaisesti. Myös nyt, koska ohjelma on ladattu STM32-kortille, emme tarvitse FTDI-korttia, ja koko kokoonpano voidaan virrata STM32-kortin mikro-USB-portista, kuten alla on esitetty.
Tämä on vain yksinkertainen liitäntäprojekti, joka auttaa LCD-näyttöä käyttämään STM32-korttia, mutta voit käyttää sitä myös hienojen projektien rakentamiseen. Toivottavasti ymmärrät opetusohjelman ja opit siitä jotain hyödyllistä. Jos sinulla on ollut ongelmia saada se toimimaan, käytä kommenttiosaa ongelman lähettämiseen tai käytä foorumeita muihin teknisiin kysymyksiin. Täydellinen toiminnan nestekidenäyttö STM32 löytyy myös videona alla.