Pagkokonekta ng LCD 1602 sa Arduino: paglalarawan, mga function, tagubilin, feature, problema at solusyon

Talaan ng mga Nilalaman:

Pagkokonekta ng LCD 1602 sa Arduino: paglalarawan, mga function, tagubilin, feature, problema at solusyon
Pagkokonekta ng LCD 1602 sa Arduino: paglalarawan, mga function, tagubilin, feature, problema at solusyon
Anonim

Bawat radio amateur, pagkatapos ng ilang simpleng gawaing DIY, ay umaabot sa layuning gumawa ng isang bagay na engrande gamit ang mga sensor at button. Pagkatapos ng lahat, mas kawili-wiling magpakita ng data sa display kaysa sa port monitor. Ngunit pagkatapos ay lumitaw ang tanong: aling display ang pipiliin? At sa pangkalahatan, kung paano ikonekta ito, ano ang kailangan upang kumonekta? Ang mga sagot sa mga tanong na ito ay tatalakayin sa artikulong ito.

LCD 1602 display para sa koneksyon sa arduino
LCD 1602 display para sa koneksyon sa arduino

LCD 1602

Sa maraming mga opsyon sa mga display, gusto kong isa-isa ang LCD1602 display batay sa HD4478 controller. Mayroong ganitong display sa dalawang kulay: puting mga titik sa isang asul na background, itim na mga titik sa isang dilaw na background. Ang pagkonekta sa LCD 1602 sa Arduino ay hindi rin magdudulot ng anumang problema, dahil mayroong built-in na library, at hindi mo kailangang mag-download ng anumang karagdagang bagay. Ang mga display ay naiiba hindi lamang sa presyo, kundi pati na rin sa laki. Kadalasan ang mga radio amateur ay gumagamit ng 16x 2, ibig sabihin, 2 linya ng 16 na character. Ngunit mayroon ding 20 x 4, kung saan mayroong 4 na linya ng 20 character. Ang mga sukat at kulay ay hindi gumaganap ng anumang papel sa pagkonekta ng lcd 1602 display sa Arduno, sila ay konektado sa parehong paraan. Ang anggulo ng pagtingin ay 35 degrees, ang oras ng pagtugon sa display ay 250 ms. Maaaring gumana sa temperatura mula -20 hanggang 70 degrees Celsius. Kapag nagtatrabaho, gumagamit ito ng 4 mA para sa screen at 120 mA para sa backlight.

LCD 1602 display pinout
LCD 1602 display pinout

Saan ito ginagamit?

Ang display na ito ay may kasikatan hindi lamang sa mga radio amateur, kundi pati na rin sa malalaking manufacturer. Halimbawa, ang mga printer, coffee machine ay gumagamit din ng LCD1602. Ito ay dahil sa mababang presyo nito, ang display na ito ay nagkakahalaga ng 200-300 rubles sa mga site ng Tsino. Sulit na bumili doon, dahil sa aming mga tindahan ang mga margin para sa display na ito ay napakataas.

Kumonekta sa Arduino

Ang pagkonekta ng LCD 1602 sa Arduino Nano at Uno ay hindi naiiba. Maaari kang magtrabaho kasama ang display sa dalawang mga mode: 4 bits at 8. Kapag nagtatrabaho sa isang 8-bit na display, parehong mas mababa at mas mataas na mga bit ang ginagamit, at sa isang 4-bit, ang mga mas mababa lamang. Walang partikular na punto sa pagtatrabaho sa 8-bit, dahil 4 pang mga contact ang idadagdag upang kumonekta, na hindi ipinapayong, dahil ang bilis ay hindi tataas, ang limitasyon sa pag-update ng display ay 10 beses bawat segundo. Sa pangkalahatan, maraming mga wire ang ginagamit upang ikonekta ang lcd 1602 sa Arduino, na nagdudulot ng ilang abala, ngunit may mga espesyal na kalasag, ngunit higit pa tungkol doon sa ibang pagkakataon. Ipinapakita ng larawan ang koneksyon ng display sa Arduino Uno:

Pagkonekta ng display sa arduino
Pagkonekta ng display sa arduino

Halimbawa ng code:


isama ang //Idagdag ang kinakailangang library LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Itakda ang sukat ng screen lcd.setCursor(0, 0); // Itakda ang cursor sa simula ng linya 1 lcd.print("Hello, world!"); // Display text lcd.setCursor(0, 1); // Itakda ang cursor sa simula ng linya 2 lcd.print("fb.ru"); // Output text } void loop(){ }

Ano ang ginagawa ng code? Una sa lahat, ang library para sa pagtatrabaho sa display ay konektado. Tulad ng nabanggit sa itaas, ang library na ito ay kasama na sa Arduino IDE at hindi mo na kailangang i-download at i-install ito bilang karagdagan. Susunod, ang mga contact na konektado sa mga pin ay tinukoy: RS, E, DB4, DB5, DB6, DB7, ayon sa pagkakabanggit. Pagkatapos ay nakatakda ang laki ng screen. Dahil nagtatrabaho kami sa isang bersyon na may 16 na character at 2 linya, isinusulat namin ang mga naturang halaga. Itinakda namin ang cursor sa simula ng unang linya at ipinapakita ang aming unang text na Hello World. Susunod, ilagay ang cursor sa pangalawang linya at ipakita ang pangalan ng site. Iyon lang! Isinaalang-alang ang pagkonekta sa lcd 1602 sa Arduino Uno.

Ano ang I2C at bakit ito kailangan?

Gaya ng nabanggit sa itaas, ang pagkonekta sa display ay nangangailangan ng maraming pin. Halimbawa, kapag nagtatrabaho sa maraming sensor at isang LCD display 1602 contact ay maaaring hindi sapat. Kadalasan, ginagamit ng mga radio amateur ang mga bersyon ng Uno o Nano, kung saan walang maraming contact. Pagkatapos ang mga tao ay may mga espesyal na kalasag. Halimbawa, ang I2C. Pinapayagan ka nitong ikonekta ang display gamit lamang ang 4 na pin. Ito ay dalawang beses na mas mababa. Ang module ng I2C ay ibinebenta nang magkahiwalay, kung saan kailangan mong maghinang ito mismo, at na-solder na saLCD display 1602.

I2C module para sa LCD display 1602
I2C module para sa LCD display 1602

Koneksyon sa I2C module

Ang pagkonekta ng LCD 1602 sa Arduino Nano gamit ang I2C ay tumatagal ng kaunting espasyo, 4 na pin lang: ground, power at 2 data output. Ikinonekta namin ang kapangyarihan at lupa sa 5V at GND sa Arduino, ayon sa pagkakabanggit. Ang natitirang dalawang contact: SCL at SDA ay konektado sa anumang mga analog na pin. Sa larawan makikita mo ang isang halimbawa ng pagkonekta ng lcd 1602 sa arduino gamit ang I2C module:

Ipakita ang mga koneksyon gamit ang I2C module
Ipakita ang mga koneksyon gamit ang I2C module

Program code

Kung kinailangang gumamit lamang ng isang library para gumana sa isang display na walang module, dalawang library ang kailangan para gumana sa isang module. Ang isa sa mga ito ay nasa Arduino IDE - Wire. Ang isa pang library, ang LiquidCrystal I2C, ay kailangang i-download nang hiwalay at mai-install. Upang i-install ang library sa Arduino, ang mga nilalaman ng na-download na archive ay dapat na ma-upload sa folder ng root ng Library. Halimbawa ng code gamit ang I2C:


isama ang isama ang LiquidCrystal_I2C lcd(0x27, 16, 2); // I-set up ang display void setup() { lcd.init(); lcd.backlight();// I-on ang display backlight lcd.print("FB.ru"); lcd.setCursor(8, 1); lcd.print("LCD 1602"); } void loop() { // Itakda ang cursor sa pangalawang linya at null na character. lcd.setCursor(0, 1); // I-print ang bilang ng mga segundo mula noong nagsimula ang arduino lcd.print(millis()/1000); }

Sa nakikita mo, halos pareho ang code.

Paano ko idadagdag ang sarili kong simbolo?

Ang problema sa mga display na ito ay walasuporta para sa Cyrillic at mga simbolo. Halimbawa, kailangan mong mag-load ng ilang character sa display upang maipakita nito ito. Upang gawin ito, pinapayagan ka ng display na lumikha ng hanggang 7 sa iyong mga character. Ipakita ang talahanayan:

0 0 0 1 0
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
0 0 0 1 0
0 0 0 0 0

Kung 0 - wala doon, kung 1 - ito ay isang may kulay na lugar. Sa halimbawa sa itaas, makikita mo ang paglikha ng karakter na "nakangiting smiley". Gamit ang isang halimbawang programa sa Arduino, magiging ganito ang hitsura:


isama ang include // Isama ang kinakailangang library // Smile symbol bitmask byte smile[8]={ B00010, B00001, B11001, B00001, B11001, B00001, B00010, }; LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Itakda ang sukat ng screen lcd.createChar(1, smile); // Lumikha ng character number 1 lcd.setCursor(0, 0); // Itakda ang cursor sa simula ng linya 1 lcd.print("\1"); // Ipakita ang smiley (character number 1) - "\1" } void loop(){ }

Tulad ng nakikita mo, ay nilikhaang bitmask ay kapareho ng talahanayan. Kapag nalikha na, maaari itong maging output bilang variable sa display. Tandaan na 7 character lang ang maiimbak sa memorya. Sa prinsipyo, ito ay sapat na. Halimbawa, kung gusto mong ipakita ang simbolo ng degree.

Pagdaragdag ng mga custom na character sa LCD 1602
Pagdaragdag ng mga custom na character sa LCD 1602

Mga problema kung saan maaaring hindi gumana ang display

May mga pagkakataong hindi gumagana ang display. Halimbawa, ito ay naka-on, ngunit hindi nagpapakita ng mga character. O hindi ito naka-on sa lahat. Una, tingnan kung naikonekta mo nang tama ang mga contact. Kung dati mong ikinonekta ang lcd 1202 sa Arduino nang walang I2C, napakadaling mabuhol-buhol sa mga wire, na maaaring maging sanhi ng hindi wastong paggana ng display. Dapat mo ring tiyakin na ang contrast ng display ay tumaas, dahil sa pinakamababang contrast ay hindi rin ito makikita kung ang LCD 1602 ay naka-on o hindi. Kung hindi ito makakatulong, kung gayon marahil ang problema ay maaaring nasa paghihinang ng mga contact, ito ay kapag ginagamit ang I2C module. Gayundin, ang isang karaniwang dahilan kung bakit maaaring hindi gumana ang display ay ang maling setting ng I2C address. Ang katotohanan ay maraming mga tagagawa, at maaari silang magtakda ng ibang address, kailangan mong itama ito dito:


LiquidCrystal_I2C lcd(0x27, 16, 2);

Sa mga bracket, makikita mo ang dalawang value, 0x27 at 16, 2 (16, 2 ang laki ng display, at ang 0x27 ay ang I2C address lang). Sa halip na mga value na ito, maaari mong subukang ilagay ang 0x37 o 0x3F. Buweno, ang isa pang dahilan ay isang may sira na LCD 1602. Isinasaalang-alang na halos lahat ng bagay para sa Arduino ay ginawa sa China, hindi ka maaaring 100% sigurado na ang biniliang produkto ay walang depekto.

LCD 1602 na kalamangan at kahinaan

Tingnan natin ang mga kalamangan at kahinaan ng LCD 1602.

Pros

  • Presyo. Ang modyul na ito ay mabibili sa napaka-abot-kayang presyo sa mga tindahang Tsino. Ang presyo ay 200-300 rubles. Minsan ay ibinebenta pa gamit ang isang I2C module.
  • Madaling kumonekta. Marahil walang nagkokonekta sa isang LCD 1602 na walang I2C sa mga araw na ito. At sa module na ito, ang koneksyon ay tumatagal lamang ng 4 na pin, walang "mga web" ng mga wire.
  • Pagprograma. Salamat sa mga handa na aklatan, ang pagtatrabaho sa modyul na ito ay madali, ang lahat ng mga pag-andar ay nakarehistro na. At kung kailangan mong idagdag ang iyong karakter, tatagal lang ng ilang minuto.

Cons

Sa panahon ng paggamit ng libu-libong radio amateurs, walang natukoy na malalaking minus, mayroon lamang mga kaso ng pagbili ng kasal, dahil ang mga Chinese display option ang pangunahing ginagamit

Tinalakay ng artikulong ito kung paano ikonekta ang LCD 1602 display sa Arduino, at ipinakita rin ang mga sample na programa para sa pagtatrabaho sa display na ito. Isa talaga ito sa pinakamahusay sa kategorya nito, hindi lang ito pipiliin ng libu-libong radio amateurs para sa kanilang mga proyekto!

Inirerekumendang: