- Mga Materyal na Kinakailangan:
- Maikling Intro sa 16 × 2 Dot matrix LCD display:
- Circuit Diagram at Koneksyon:
- Programming MSP430 para sa LCD gamit ang Energia:
- 16x2 LCD na may MSP430G2:
Ito ang pangatlong tutorial sa pagkakasunud-sunod ng mga tutorial kung saan natututunan naming i-program ang MSP430G2 LaunchPad gamit ang Energia IDE. Sa aming nakaraang tutorial, natutunan namin kung paano makontrol ang mga Digital Input at Output na pin sa aming board ng MSP. Sa tutorial na ito, matututunan namin kung paano mag-interface ng isang LCD sa board upang maipakita namin ang kapaki-pakinabang na impormasyon.
Ang LCD na ginagamit namin sa proyektong ito ay ang pinakakaraniwang ginagamit na 16 × 2 Dot matrix LCD display na makikita sa Alphanumeric Displays. Karamihan sa atin ay makatagpo din nito sa pamamagitan ng mga pampublikong PCO o iba pang mga proyekto sa electronics. Ang isang display tulad nito ay darating sa napaka madaling gamiting para sa aming mga hinaharap na mga tutorial upang ipakita ang data at iba pang impormasyon sa pag-debug. Ang pag-interface ng LCD na ito sa MSP430 ay napakadali, salamat sa magagamit na library. Kaya sumisid tayo !!
Mga Materyal na Kinakailangan:
- MSP430G2 LaunchPad mula sa Texas Instruments
- 16 × 2 Dot matrix LCD display
- Mga kumokonekta na mga wire
- Energia IDE
Maikling Intro sa 16 × 2 Dot matrix LCD display:
Tulad ng sinabi nang mas maaga sa Energia IDE ay nagbibigay ng isang magandang silid-aklatan na gumagawa ng interfacing isang piraso ng cake at samakatuwid hindi sapilitan na malaman ang anuman tungkol sa display module. Ngunit, hindi ba naging kagiliw-giliw na ipakita kung ano ang ginagamit namin !!
Ang pangalan na 16 × 2 ay nagpapahiwatig na ang display ay may 16 Columns at 2 Rows, na magkakasama (16 * 2) ay bumubuo ng 32 mga kahon. Ang isang solong kahon ay magmukhang ganito sa larawan sa ibaba
Ang isang solong kahon ay mayroong 40 mga pixel (tuldok) na may isang pagkakasunud-sunod ng matrix ng 5 Mga hilera at 8 mga haligi, ang 40 na mga pixel na magkasama ay bumubuo ng isang character. Katulad nito, maaaring ipakita ang 32 character gamit ang lahat ng mga kahon. Hinahayaan ka ngayong tingnan ang mga pinout.
Ang LCD ay may kabuuang 16 na Pin, tulad ng ipinakita sa itaas, maaari silang ikinategorya sa apat na pangkat tulad ng mga sumusunod
Mga Pin ng Pinagmulan (1, 2 at 3): Ang mga pin na ito ay pinagmumulan ng lakas at antas ng kaibahan para sa display
Mga Control Pins (4, 5 at 6): Itinatakda / kinokontrol ng mga pin na ito ang mga rehistro sa LCD interfacing IC (higit pa ay matatagpuan ito sa link sa ibaba)
Data / Command Pins (7 hanggang 14): Ang mga pin na ito ay nagbibigay ng data ng kung anong impormasyon ang dapat ipakita sa LCD.
Mga LED pin (15 at 16): Ang mga pin na ito ay ginagamit upang magaan ang backlight ng LCD kung kinakailangan (opsyonal).
Sa lahat ng 16 na pin na ito, 10 pin lamang ang dapat gamitin mandatory para sa wastong pagtatrabaho ng LCD kung nais mong malaman ang higit pa tungkol sa LCD display jump na ito sa artikulong LCD na ito.
Circuit Diagram at Koneksyon:
Ang kumpletong diagram ng circuit upang mag- interface ng isang 16 × 2 Dot matrix LCD display na may MSP430G2 ay ipinapakita sa ibaba.
Ang isang pangunahing hadlang habang pinapasok ang dalawang ito ay ang kanilang mga boltahe sa pagpapatakbo. Ang LCD display ay mayroong operating boltahe na + 5V habang ang MSP ay nagpapatakbo lamang ng 3.6V. Masuwerte para sa amin ang data pin ng LCD interface IC (HD44780U) ay may malawak na boltahe sa pagpapatakbo ng 2.7V hanggang 5.5V. Kaya't magalala lamang tayo tungkol sa Vdd (pin 2) ng LCD habang ang mga data pin ay maaaring gumana kahit na sa 3.6V.
Ang board ng MSP430G2 bilang default ay hindi magbibigay sa iyo ng isang + 5V pin, ngunit sa pamamagitan ng maaari naming gawin ang isang maliit na hack upang makakuha ng + 5V mula sa MSP430 gamit ang USB port. Kung titingnan mong mabuti malapit sa USB port maaari kang makahanap ng isang terminal na tinatawag na TP1, bibigyan kami ng terminal na ito ng + 5v. Ang kailangan lang nating gawin ay ang maghinang ng isang maliit na pin ng header na lalaki tulad ng ipinakita sa ibaba upang maikonekta namin ito sa aming LCD display.
Tandaan: Huwag ikonekta ang mga pag-load na maaaring ubusin ng higit sa 50mA sa 5V pin na ito maaari itong iprito ang iyong USB port.
Kung hindi ka interesado sa paghihinang gamitin lang ang anumang + 5V na kinokontrol na supply at paganahin ang LCD, sa kasong iyon, tiyaking ikinonekta mo ang lupa ng iyong power supply sa lupa ng board ng MSP.
Kapag tapos ka na sa + 5V pin na kumokonekta sa iba pang mga pin ay medyo prangka. Ngayon na handa na ang aming hardware, magpatuloy tayo sa bahagi ng software.
Programming MSP430 para sa LCD gamit ang Energia:
Ang kumpletong programa upang mag-interface ng isang MSP430G2553 na may LCD display ay ibinibigay sa dulo ng pahinang ito. Ang code ay maaaring maiipon, mai-upload at magamit tulad nito. Sa mga sumusunod na talata, ipapaliwanag ko kung paano gumagana ang programa.
Bago kami magpatuloy sa paliwanag, kailangan naming gumawa ng isang tala ng mga pin na ginagamit namin. Kung titingnan mo ang circuit diagram sa itaas at ang MSP430 pin-out diagram sa ibaba
Maaari mong tapusin na nakakonekta namin ang LCD ayon sa sumusunod na talahanayan
Pangalan ng LCD pin |
Nakakonekta sa |
Vss |
Lupa |
Vdd |
+ 5V USB pin |
Rs |
Pin 2 ng MSP |
R / W |
Lupa |
Paganahin |
Pin 3 ng MSP |
D4 |
Pin 4 ng MSP |
D5 |
Pin 5 ng MSP |
D6 |
Pin 6 ng MSP |
D7 |
Pin 7 ng MSP |
Sa pag-iisip na ito, simulan nating tukuyin ang mga LCD pin na ginamit sa aming programa. Pangalanan namin ang bawat pin na may isang mas makabuluhang pangalan upang madali namin itong magamit sa paglaon.
#define RS 2 # tukuyin ang EN 3 # tukuyin ang D4 4 # tukuyin ang D5 5 # tukuyin ang D6 6 # tukuyin ang D7 7
Nangangahulugan lamang ito na sa halip na tumawag sa pin 2 maaari akong sumangguni dito bilang RS pagkatapos nito, katulad para sa lahat ng 6 na mga pin.
Ang susunod na hakbang ay upang isama ang LCD library. Ang library na ito ay awtomatikong mai-install kapag na-install mo ang Energia IDE. Kaya idagdag lamang ito sa pamamagitan ng paggamit ng sumusunod na linya
# isama
Ang susunod na hakbang ay banggitin ang mga pin kung saan nakakonekta ang LCD, dahil pinangalanan na namin ito gamit ang #define maaari na lamang naming banggitin ang mga pangalan ng mga LCD pin. Tiyaking nasusunod ang parehong pagkakasunud-sunod.
LiquidCrystal lcd (RS, EN, D4, D5, D6, D7);
Ngayon ipaalam sa amin ilipat sa void setup () function. Maraming uri ng mga LCD display na magkakaiba-iba sa laki at kalikasan, ang ginagamit namin ay 16 * 2 kaya't tukuyin natin iyon sa aming programa
lcd.begin (16, 2);
Upang mag-print ng isang bagay sa LCD kailangan nating banggitin ang dalawang bagay sa programa. Ang isa ay ang posisyon ng teksto na maaaring mabanggit gamit ang linya lcd.setCursor () at iba pa ay ang nilalamang mai-print na maaaring mabanggit ng lcd.print (). Sa linyang ito itinatakda namin ang cursor sa 1 st row at 1 st na haligi.
lcd.setCursor (0,0);
Katulad nito, kaya rin natin
lcd.setCursor (0, 1); // itakda ang cursor sa ika-1 haligi ika-2 hilera
Tulad ng pagbura ng isang whiteboard pagkatapos isulat ito, dapat ding mabura ang isang LCD sa sandaling may nakasulat dito. Maaari itong magawa sa pamamagitan ng paggamit ng linya sa ibaba
lcd.clear ();
Kaya't ang kumpletong void setup () na pagpapaandar ay magmukhang ganito.
void setup () {lcd.begin (16, 2); // Gumagamit kami ng isang 16 * 2 LCD display lcd.setCursor (0,0); // Ilagay ang cursor sa ika-1 hilera ng 1st haligi lcd.print ("MSP430G2553"); // Ipakita ang isang intro message lcd.setCursor (0, 1); // itakda ang cursor sa ika-1 haligi ika-2 hilera lcd.print ("- CircuitDigest"); // Ipakita ang isang pagkaantala ng intro message (2000); // Maghintay para sa pagpapakita upang maipakita ang impormasyon lcd.clear (); // Pagkatapos linisin ito}
Susunod, sa loob ng pag- andar ng void loop () , panatilihin nating magdagdag ng isang numero para sa bawat 500ms at ipakita ang numero sa LCD. Ang bilang ng mga pagsubok at isinisimula sa 1 tulad ng ipinakita sa ibaba
int pagsubok = 1;
Upang lumikha ng isang pagkaantala maaari naming gamitin ang inbuilt function na pagkaantala (). Kailangan nating banggitin kung gaano karaming oras ang kailangan natin ng pagkaantala upang maganap. Sa aming kaso, gumamit ako ng 500ms tulad ng ipinakita sa ibaba
pagkaantala (500);
Ang pagdaragdag ng isang variable ay maaaring gawin sa pamamagitan ng pagsubok ++, ang natitirang lahat ay naipaliwanag na. Ang kumpletong code sa loob ng void loop ay ipinapakita sa ibaba
void loop () {lcd.print ("LCD na may MSP"); // Ipakita ang isang intro message lcd.setCursor (0, 1); // itakda ang cursor sa haligi 0, linya 1 lcd.print (pagsubok); // Ipakita ang isang pagkaantala ng intro message (500); lcd.clear (); // Pagkatapos linisin ito sa pagsubok ++; }
16x2 LCD na may MSP430G2:
Kapag handa na ang iyong hardware at code, ikonekta lamang ang iyong board sa computer at i-upload ang code tulad ng ginawa namin sa isang tutorial. Kapag na-upload na ang code dapat mong makita ang pagpapakita na ipinapakita ang sumusunod.
Pagkatapos ng dalawang segundo, ang display screen ay magbabago mula sa pag-set up hanggang sa loop at simulang dagdagan ang variable at ipakita sa screen tulad ng ipinakita sa larawan sa ibaba.
Ang kumpletong pagtatrabaho ay matatagpuan sa video sa ibaba. Sige at subukang baguhin kung ano ang ipinapakita sa LCD at i-play ito. Inaasahan kong naunawaan mo ang tutorial at natutunan ang isang bagay na kapaki-pakinabang na form na ito. Kung mayroon kang anumang mga pagdududa iwanan ang mga ito sa seksyon ng komento sa ibaba o gamitin ang mga forum. Magkita tayo sa isa pang tutorial.