მთავარი ქსელის აპარატურა LSD დისპლეის დაკავშირება. სიმბოლო LCD და Arduino

LSD დისპლეის დაკავშირება. სიმბოლო LCD და Arduino

როგორ დააკავშიროთ Arduino დაფა სიმბოლოების ეკრანთან? Საკმაოდ მარტივი! ქვემოთ ყველაფერი წესრიგშია და დეტალებით.

თუ გსურთ მიიღოთ ინფორმაცია Arduino-დან კომპიუტერთან დაკავშირების და სერიულ პორტში გადატანის გარეშე, შეგიძლიათ გამოიყენოთ სიმბოლოების ჩვენება. არც ისე რთულია ამის გაკეთება. კომუნიკაციის შედეგად მიღებული კომფორტი ფასდაუდებელია.
სამუშაოდ გამოვიყენე J204A სიმბოლო LCD დისპლეი, რომელიც დაფუძნებულია HD44780 ჩიპზე, რომელიც ხშირად გვხვდება eBay-ზე, როგორც LCD2004. 4 სტრიქონი 20 სიმბოლოსგან, შებრუნებული. ნაყიდი სხვა თაიგულთან ერთად eBay-ზე, უბრალო პენში, 60-დან 100 რუბლამდე თითო. რუსული ენა არ არის მხარდაჭერილი ნაგულისხმევად, მაგრამ ეს არის გადაჭრადი პრობლემა, უფრო ამის შესახებ შემდეგ ჯერზე. და დიაგრამაში კონექტორები არ არის შედუღებული, მოგიწევთ მუშაობა გამაგრილებელ უთოთან.
ბიბლიოთეკა გამოიყენება დისპლეებთან მუშაობისთვის თხევადი კრისტალი.თშედის ნაგულისხმევი Arduino IDE-ში.

მაგრამ მე ვერ ვიპოვე მონაცემთა ფურცელი LCD2004 ეკრანისთვის, მაგრამ ინტერნეტი სავსეა ჩვენების ცხრილებით. მაგრამ ისინი პრაქტიკულად არ განსხვავდებიან ერთმანეთისგან. კონტროლი და კავშირები სრულიად იდენტურია. განსხვავება მხოლოდ ეკრანზე ხაზების/სიმბოლოების რაოდენობაა. მაგრამ ამას არანაირი ეფექტი არ ექნება, თუ თქვენ გაქვთ 1602.

ყველა კონტაქტი მითითებულია ცხრილში. თუ ეკრანს აიღებთ და თქვენსკენ მოაბრუნებთ, კონტაქტები განთავსდება მარცხნიდან მარჯვნივ, შესაბამისად, ცხრილში ისინი ჩამოთვლილია რიცხვების გაზრდის მიხედვით. კონტაქტების სვეტში, მონაცემების ფურცელში აღნიშვნა მითითებულია ფრჩხილებში.

# კონტაქტები რისთვის გამოიყენება? შენიშვნა
1 VSS (VSS) GND. Დედამიწა. ელექტრომომარაგება დისპლეის მიკროკონტროლერისთვის. 0 ვ
2 VDD (VCC) მიწოდების ძაბვა დისპლეის მიკროკონტროლერისთვის. +5 ვ
3 V0 (VEE) სიმბოლოების კონტრასტი ეკრანზე. უკეთესია დაკავშირება პოტენციომეტრის საშუალებით. 0V-დან +5V-მდე
4 RS (RS) შერჩევის რეგისტრაცია.
5 RW (R/W) წაკითხვის/ჩაწერის რეჟიმის შეცვლა. მოდი, მიწაზე დავაგდოთ, ჩვენ მხოლოდ ინფორმაციის გადაცემა გვჭირდება ეკრანზე. 0-ჩაწერა +5V-წაკითხვა
6 დათქმა
7 D0 (DB0) მონაცემები
8 D1 (DB1) მონაცემთა გადაცემა. (ჩვენ არ გამოვიყენებთ) მონაცემები
9 D2 (DB2) მონაცემთა გადაცემა. (ჩვენ არ გამოვიყენებთ) მონაცემები
10 D3 (DB3) მონაცემთა გადაცემა. (ჩვენ არ გამოვიყენებთ) მონაცემები
11 D4 (DB4) მონაცემები
12 D5 (DB5) მონაცემთა გადაცემა. (დანიშნა) მონაცემები
13 D6 (DB6) მონაცემთა გადაცემა. (დანიშნა) მონაცემები
14 D7 (DB7) მონაცემთა გადაცემა. (დანიშნა) მონაცემები
15 A (LED+) +5V ძაბვა, ეკრანის განათება, ეკრანის სიკაშკაშე შეიძლება დარეგულირდეს პოტენციომეტრის საშუალებით. +5 ვ
16 K(LED-) GND Ground, ეკრანის განათება 0 ვ



მონაცემთა გადაცემა ეკრანზე შესაძლებელია ორი ვარიანტით: 8 და 4 ბიტი საათზე. იმიტომ რომ Arduino-ს რამდენიმე კონტაქტი აქვს, ჩვენ გამოვიყენებთ 4 - ეს საკმარისზე მეტია იმისათვის, რომ განაახლოთ ინფორმაცია ეკრანზე აღქმისთვის აკრძალული სიჩქარით.

აი, ეს ყველაფერი ჩემთან არის დაკავშირებული. შეიძლება ქაოსად მოგეჩვენოთ, მაგრამ აქ არის სისტემა. შეგიძლიათ განასხვავოთ წითელი, მწვანე, ყვითელი და ნარინჯისფერი მავთულები. წითელი ყოველთვის მიდის +5V-ზე, მწვანეები GND-ზე, ხოლო ყვითელი და ნარინჯისფერი არის Arduino-სთან დასაკავშირებელი მავთული, რომელიც ატარებს მონაცემებს.

ყველაზე მნიშვნელოვანი ნაწილი არის დისპლეის ფიზიკური კავშირი. დაწკაპუნებით იხსნება მაღალი გარჩევადობით, სადაც ყველაფერი ნათლად ჩანს.
R1 - 200OM რეზისტორი. წინააღმდეგობა ზღუდავს დენს, რომელიც გადის ეკრანის შუქზე.
R2 - პოტენციომეტრი 10kOM-მდე წინააღმდეგობით. ვატრიალებთ კალამს და ვირჩევთ სიმბოლოების კონტრასტს.


და ძალიან მარტივი ესკიზი ეკრანზე რამდენიმე სტრიქონის გამოსატანად.

H> // ჩვენ ვუკავშირდებით ბიბლიოთეკას ეკრანთან მუშაობისთვის. /* LiquidCrystal ბრძანება lcd(rs, enable, d4, d5, d6, d7); ჩვენ ვქმნით LiquidCrystal ტიპის ცვლადს და ვადგენთ, რომელი კონტაქტების საშუალებით მუშაობს Arduino ეკრანთან. დამატებითი დეტალები ამ ბრძანების შესახებ აქ http://arduino.cc/en/Reference/LiquidCrystalConstructor */ LiquidCrystal lcd(6, 7, 8, 9, 10, 11); void setup() ( lcd.begin(20, 4); // განსაზღვრეთ ეკრანის მახასიათებლები (20 სიმბოლო თითო ხაზზე, 4 სტრიქონი) // 1602 ეკრანისთვის უნდა მიუთითოთ lcd.begin(16, 2); lcd .setCursor(1, 1) // მიუთითეთ, თუ რომელი პოზიციიდან უნდა დაიწყოს ხაზები და სიმბოლოები ეკრანის დასაწყისიდან სტრიქონი ქვემოთ lcd.print("compblog.vlukyanov" ); "); // ტექსტი დასაბეჭდად. loop() ( // ჩვენ სხვას არაფერს ვაკეთებთ ციკლში; ყველაფერი უკვე გაკეთდა დაფის ინიციალიზაციის დროს. )

შედეგი. თუ იცით, როგორ აკავშირებს ეს ყველაფერი და როგორ უნდა დაწეროთ კოდი, მაშინ ყველა სამუშაოს დრო არის 5 წუთი.

ეკრანს ასევე შეუძლია დამოუკიდებლად შეასრულოს გარკვეული ფუნქციები, ასევე შესაძლებელია გარკვეული პარამეტრების დაყენება.

Მაგალითად:

  • ტექსტის გადახვევა;
  • ფლეშის კურსორის პოზიცია;
  • ჩართვა/გამორთვა.

ახლა კი ბონუსისთვის!
ეკრანის უკანა განათება ხარჯავს ენერგიას, რომელიც, მაგალითად, ბატარეით იკვებება, გსურთ დაზოგოთ. მე გავაკეთე ეს ვარიანტი ჩემთვის - ღილაკზე დაჭერისას ეკრანის უკანა განათება ირთვება 5 წამით.

H> // ჩვენ ვუკავშირდებით ბიბლიოთეკას ეკრანთან მუშაობისთვის. int buttonInt = 0; // შეწყვეტის რაოდენობა, რომელიც გამოიძახება. int screenLed = 4; // პინის რაოდენობა, რომელსაც ეკრანი უკავშირდება. +5V არასტაბილური ხანგრძლივი x = 5000; // ცვლადი დროის შესანახად LiquidCrystal lcd(6, 7, 8, 9, 10, 11); void setup attach() (interrupt(buttonInt, screenon, FALLING); // შეფერხების პარამეტრები lcd.begin(20, 4); pinMode(screenLed, OUTPUT); digitalWrite(screenLed,HIGH); // ჩართეთ ეკრანის LCD. setCursor(0 , 0 lcd.print ("Start screenon test!") ღილაკის დაჭერისას void screenon() ( x = millis()+5000; // დაიმახსოვრე დრო, როდესაც უნდა გამორთოთ უკანა განათება. მიმდინარე მუშაობის დრო +5 წამი. digitalWrite(screenLed,HIGH); // დააყენეთ ძაბვა ეკრანის განათებაზე. ) void loop() ( lcd.setCursor(0, 2); // გადადით მესამე სტრიქონზე lcd.print(x); // და აჩვენეთ დრო, როდესაც ეკრანი გამორთულია lcd.setCursor(0, 3); / / გადადით მეოთხე სტრიქონზე lcd.print( millis() // ამობეჭდეთ მიმდინარე სამუშაო დრო, თუ (x< millis()) // если время работы выключения наступило >(ციფრული ჩაწერა (screenLed,LOW); // შემდეგ გამორთეთ ეკრანი) )

და შედეგი:

HD44780 კონტროლერის ბაზაზე შექმნილი 1602 ზომის LCD დისპლეები დღესაც რჩება ერთ-ერთ ყველაზე ხელმისაწვდომ, მარტივ და მოთხოვნად ნებისმიერი სახის ელექტრონული მოწყობილობის შემუშავებისთვის. გასაკვირი არ არის, რომ მათი ნახვა შესაძლებელია როგორც მარტივ ერთეულებში, რომლებიც აწყობილია სიტყვასიტყვით მუხლზე, ასევე უფრო სერიოზულ სამრეწველოებში, მაგალითად, ყავის აპარატებში. სწორედ ამ დისპლეით იკრიბება Arduino-სთან დაკავშირებული ყველაზე პოპულარული მოდულები და ფარები, მაგალითად LCD I2C მოდული და LCD კლავიატურის ფარი.

ეს სტატია დეტალურად განმარტავს სურათებით, თუ როგორ უნდა დააკავშიროთ LCD ეკრანი Arduino-სთან და აჩვენოთ ინფორმაცია.

ნაბიჯი 1: 1602 LCD ეკრანი Arduino-სთვის

1602 დისპლეი აქვს ორი განსხვავებული ვერსია:

ყვითელი განათება შავი ასოებით
- ან (ეს ხდება ბევრად უფრო ხშირად) ლურჯი შუქი თეთრით.

HD44780 კონტროლერზე დისპლეების ზომა მნიშვნელოვნად განსხვავდება, მაგრამ ისინი კონტროლდება იმავე გზით. ყველაზე გავრცელებული ზომებია 16-ზე 02-ზე (ანუ 16 სიმბოლო ორ სტრიქონში) ან 20-ზე 04. თავად სიმბოლოებს აქვთ გარჩევადობა 5/8 პიქსელი.

დისპლეების უმეტესობა არ უჭერს მხარს კირილიცას (გამონაკლისია CTK მარკირებული დისპლეები). მაგრამ ეს პრობლემა ნაწილობრივ მოსაგვარებელია და სტატიაში დეტალურად არის აღწერილი, თუ როგორ უნდა გავაკეთოთ ეს.

ეკრანს აქვს 16-PIN კონექტორი დასაკავშირებლად. დასკვნები აქვს ნიშნები დაფის უკანა მხარეს, ეს არის შემდეგი:

1 (VSS) – უარყოფითი კვების წყარო კონტროლერისთვის.
2 (VDD) – დადებითი კვების წყარო კონტროლერისთვის.
3 (VO) - კონტრასტის კონტროლის პარამეტრები.
4 (RS) – რეგისტრაცია შერჩევა.
5 (R/W) – კითხვა და წერა, კერძოდ, წერა მიწასთან დაკავშირებისას.
6 (E) – გააქტიურება (ჩართვა).
7–10 (DB0-DB3) – დაბალი რიგის ბიტები რვა ბიტიანი ინტერფეისიდან.
11–14 (DB4-DB7) – ყველაზე მნიშვნელოვანი ბიტები ინტერფეისიდან
15 (A) - დადებითი ანოდი შუქის კვების წყაროსთვის.
16 (K) - ნეგატიური კათოდი შუქის კვების წყაროსთვის.

ნაბიჯი 2: შეაერთეთ LCD ეკრანი

ეკრანის დაკავშირებამდე და მასზე ინფორმაციის გადაცემამდე, ღირს მისი ფუნქციონირების შემოწმება. პირველ რიგში, გამოიყენეთ ძაბვა VSS და VDD კონტროლერზე, ჩართეთ განათება (A, K) და შემდეგ შეცვალეთ კონტრასტი. ასეთი პარამეტრებისთვის, 10 kOhm პოტენციომეტრი არ არის მნიშვნელოვანი. +5V და GND მიეწოდება გარე ფეხებს, ხოლო ფეხი ცენტრში არის დაკავშირებული VO პინთან.

როდესაც ელექტროენერგია მიეწოდება წრეს, თქვენ უნდა მიაღწიოთ საჭირო კონტრასტს, თუ ის არასწორად არის მორგებული, მაშინ გამოსახულება ეკრანზე არ გამოჩნდება. კონტრასტის დასარეგულირებლად, თქვენ უნდა "თამაში" პოტენციომეტრით. როდესაც წრე სწორად არის აწყობილი და კონტრასტი სწორად არის მორგებული, ეკრანის ზედა ხაზი უნდა იყოს სავსე მართკუთხედებით.

ჩვენების მუშაობისთვის გამოიყენება Arduino IDE-ში ჩაშენებული სპეციალური ბიბლიოთეკა LiquidCrystal.h, რომლის შესახებაც ქვემოთ დავწერ. მას შეუძლია იმუშაოს 8-ბიტიან და 4-ბიტიან რეჟიმში. პირველ ვარიანტში გამოიყენება მხოლოდ ყველაზე ნაკლებად მნიშვნელოვანი და ყველაზე მნიშვნელოვანი ბიტები (BB0-DB7), მეორეში - მხოლოდ ყველაზე ნაკლებად მნიშვნელოვანი (BB4-DB7).

მაგრამ ამ ეკრანზე 8-ბიტიანი რეჟიმის გამოყენება არასწორი გადაწყვეტილებაა, სიჩქარის უპირატესობა თითქმის არ არის, რადგან მისი განახლების სიჩქარე წამში ყოველთვის 10-ჯერ ნაკლებია. ტექსტის საჩვენებლად, თქვენ უნდა დააკავშიროთ პინები DB7, DB6, DB5, DB4, E და RS კონტროლერის ქინძისთავებთან. მათი დაკავშირება შესაძლებელია Arduino-ს ნებისმიერ ქინძისთავთან, მთავარია კოდში სწორი თანმიმდევრობის დაყენება.

თუ საჭირო სიმბოლო ჯერ არ არის კონტროლერის მეხსიერებაში, შეგიძლიათ ხელით განსაზღვროთ (სულ შვიდამდე სიმბოლო). განსახილველ დისპლეებში უჯრედს აქვს გაფართოება ხუთი რვა პიქსელით. სიმბოლოს შექმნის ამოცანაა დაწეროთ ბიტი ნიღაბი და განათავსოთ ერთეულები იმ ადგილებში, სადაც წერტილები უნდა იყოს განათებული და ნულები, სადაც არ უნდა იყოს.

ზემოთ განხილული კავშირის დიაგრამა ყოველთვის არ არის კარგი, რადგან მინიმუმ ექვსი ციფრული გამოსავალი გამოიყენება Arduino-ზე.

ნაბიჯი 3: გამოსავალი

მოდით, გამოვიკვლიოთ ვარიანტი, რომ გადავლახოთ ეს და დავკმაყოფილდეთ მხოლოდ ორით. ჩვენ გვჭირდება დამატებითი გადამყვანის მოდული LCD-სთვის IIC/I2C-ზე. როგორ არის შედუღებული ეკრანზე და უკავშირდება Arduino-ს, შეგიძლიათ იხილოთ ქვემოთ მოცემულ სურათებში.

მაგრამ კავშირის ეს ვარიანტი მუშაობს მხოლოდ სპეციალურ ბიბლიოთეკასთან, LiquidCrystal_I2C1602V1, რომელიც, თუმცა, მარტივია ინტერნეტში პოვნა და ინსტალაცია, რის შემდეგაც შეგიძლიათ გამოიყენოთ იგი უპრობლემოდ.

ნაბიჯი 4: LiquidCrystal.h ბიბლიოთეკა

LiquidCrystal.h ბიბლიოთეკის ჩამოტვირთვა შესაძლებელია ოფიციალური რესურსიდან -. ასევე შეგიძლიათ ჩამოტვირთოთ ქვემოთ მოცემული ბმულებიდან:

ესკიზი

არქივის ჩამოტვირთვის შემდეგ, შეცვალეთ LiquidCrystal საქაღალდე თქვენი Arduino ინსტალაციის დირექტორიაში ბიბლიოთეკების საქაღალდეში.

თქვენ შეგიძლიათ ნახოთ ესკიზის ნიმუში ფაილი -> მაგალითები -> LiquidCrystal -> HelloWorld_SPI(ფაილი -> მაგალითები -> LiquidCrystal -> HelloWorld_SPI).

ამით დასრულდა ჩვენი შემდეგი გაკვეთილი. გისურვებთ ხარისხიან პროექტებს!

ჩამოვიდა Arduino Nano, ჩამოვიდა ნაკრები, რომელიც შეიცავს პურის დაფას (ბრიდბორდი) და LCD დისპლეს. დაფაზე დისპლეი ამბობს - 1602A, ქვემოთ - QAPASS. დავიწყე პირველი მოწყობილობის ქანდაკება და, რა თქმა უნდა, მსურდა ინფორმაციის ჩვენება ეკრანზე და არა ციმციმების LED-ები.

Google დამეხმარა, მითხრა, რომ ეს არის სიმბოლოების ჩვენება; თუ არ დაამახინჯებთ მას, მაშინ, სავარაუდოდ, ხელმისაწვდომია ASCII სიმბოლოები - რიცხვები, ლათინური, ზოგიერთი ძირითადი სიმბოლო.

შემდეგი მასალები დაეხმარა დისპლეის გაშვებას: კომპიუტერის პრინტერის პორტიდან სიმბოლოს ტიპის LCD-ის ამოღება; როგორ დააკავშიროთ Arduino სიმბოლო LCD-თან; Pwm Servo Driver Motor Control PDF.

ჩვენება საკმაოდ გავრცელებულია და ამისთვის უკვე გამოიგონეს ფარები - არის ვარიანტები SPI-ით, ლაიქით და/ან I2C-ით და ინტერნეტი სავსეა ამ შემთხვევების რეცეპტებით. მაგრამ მე მქონდა მხოლოდ ორიგინალი 16x2 დისპლეი და Arduino, რომელზეც მინდოდა მიმაგრება.

დისპლეს აქვს მუშაობის რეჟიმი და მონაცემთა გადაცემის ნიბლებით, თითო 4 ბიტიანი, ხოლო ავტობუსის დაბალი რიგის ბიტები არ გამოიყენება. მონაცემთა ავტობუსის მხოლოდ ნახევრის დაკავშირება აღწერილია ბევრგან, და მე ვერ მივხვდი, როგორ დავაკავშირო დისპლეი და ვიმუშაო მასთან 8 ხაზზე. მე საკმაოდ კმაყოფილი ვარ როგორ მუშაობს.

ამ ტიპის ჩვენების კარგი აღწერა ვიპოვე აქ - http://greathard.ucoz.com/44780_rus.pdf. და აქ (http://arduino.ru/forum/programmirovanie/lcd-i2c-partizanit#comment-40748) არის სიმბოლოების გენერატორის მითითების მაგალითი.

კავშირი

ჩემს დისპლეს მოჰყვა გაუხსნელი კონტაქტები. თავიდანვე მინდოდა კაბელის შედუღება, დუპონებით 16 მავთულის გაჭრა და გაწმენდა. შემდეგ კი ვეშაპს გავთხარე და ვიპოვე დუპონის სავარცხელი დაფაზე შესადუღებლად. იქიდან გავწყვიტე 16 კონტაქტი და გავადუღე.
ჩემი ეკრანი ასე გამოიყურებოდა (კონტაქტების შედუღებამდე):

ჯერ დავაკავშირე pin 15 (A) +5V-ს, 16 (K) მიწას და დავრწმუნდი, რომ განათება მუშაობდა. ზოგადად, სწორია კათოდის დაკავშირება მიწასთან 220 Ohm რეზისტორის საშუალებით, რაც მე გავაკეთე.

შემდეგ დავაკავშირე მიწა (1) და დენი (2). Arduino შეიძლება იკვებებოდეს USB-დან, სტაბილიზირებული ძაბვისგან 5V და არასტაბილიზირებული 6-12V-დან, ავტომატურად ირჩევა უმაღლესი ძაბვა. ახლა Arduino იკვებება USB-დან და მაინტერესებდა სად ვიშოვო 5 ვოლტი. აღმოჩნდა, რომ 5V არის Arduino პინზე, სადაც გარე სტაბილიზირებული 5V არის დაკავშირებული. უფრო სწორად, 4.7V აღმოჩნდა, მაგრამ ეს საკმარისი იყო ჩემთვის.

დენის შეერთების შემდეგ, თუ ყველაფერი კარგადაა, მაშინ ზედა რიგი ანათებს ნაცნობობის მყარი მართკუთხედებით.

შემდეგ ვაკავშირებთ კონტრასტის პოტენციომეტრს (პინი 3 V0). ჩვენ ვყრით პოტენციომეტრის ერთ-ერთ გარე ტერმინალს მიწაზე, მეორეს +5 ვ-ზე, შუა დისპლეის მე-3 პინზე. რეკომენდებულია 10K პოტენციომეტრი. ვეშაპისგან 50K მქონდა, ჯერ გამოვიყენე. კორექტირება იყო მხოლოდ ერთ კიდეზე, საჭირო იყო სასურველი კონტრასტის დაჭერა ძალიან დახვეწილად. მერე სხვა ვეშაპში 5K-ზე მსგავსი ვიპოვე და დავაყენე. პარამეტრი გადაჭიმული იყო ერთი კიდიდან ნახევარ შემობრუნებამდე. როგორც ჩანს, თქვენ შეგიძლიათ აიღოთ კიდევ უფრო მცირე პოტენციომეტრი. 10K ალბათ რეკომენდირებულია, რომ წრე ნაკლები მოიხმაროს. დიახ, ცოტა შედუღება მომიწია.

სატესტო ესკიზი

ჩვენ ვიღებთ სატესტო ჩანახატს Arduino Studio-ს მაგალითებიდან - "C:\Program Files (x86)\Arduino\libraries\LiquidCrystal\ex amples\HelloWorld\HelloWorld.ino", უბრალოდ უნდა შევცვალოთ კონტაქტები ჩვენთან - LiquidCrystal lcd( 7, 6, 5, 4, 3, 2);

პრინციპში, ეს ესკიზი ასევე შეიცავს აღწერას, თუ სად უნდა დააკავშიროთ. თქვენ შეგიძლიათ დააკავშიროთ ის, როგორც მითითებულია იქ, მაშინ საერთოდ არ გჭირდებათ არაფრის შეცვლა.

// მოიცავს ბიბლიოთეკის კოდს: #include // ბიბლიოთეკის ინიციალიზაცია LiquidCrystal lcd(7, 6, 5, 4, 3, 2) ინტერფეისის პინების ნომრებით; void setup() ( // დააყენეთ LCD "s სვეტების და მწკრივების რაოდენობა: lcd.begin(16, 2); // დაბეჭდეთ შეტყობინება LCD-ზე. lcd.print("Hello, World!"); ) void loop() ( // დააყენეთ კურსორი სვეტზე 0, სტრიქონი 1 // (შენიშვნა: სტრიქონი 1 არის მეორე მწკრივი, რადგან დათვლა იწყება 0-ით): lcd.setCursor(0, 1); // ამობეჭდეთ რიცხვი წამი გადატვირთვის შემდეგ: lcd.print(millis() / 1000);

გამოდის მსგავსი რამ:

სხვათა შორის, დისპლეი, რომელიც ჩემს ხელში მოვიდა, არ მუშაობს განათების გარეშე. ვგულისხმობ, მუშაობს, მაგრამ შენ ვერაფერს ხედავ.

1602A კონტაქტების ჩვენება

# კონტაქტი სახელი როგორ დაკავშირება
1 VSS GND
2 VDD +5 ვ
3 V0 კონტრასტი - პოტენციომეტრის შუა ტერმინალამდე
4 RS (არჩევანი რეგისტრაცია) D7 Arduino
5 R/W (წაკითხვა ან ჩაწერა) GND
6 E (სიგნალის ჩართვა) D6 Arduino
7-14 D0-D7 D0-D3 - არ არის დაკავშირებული; D4-D7 - დაკავშირებულია Arduino-ს D5-D2 ქინძისთავებთან
15 განათების ანოდი, დაკავშირებულია +5 ვ
16 განათების კათოდი, რომელიც დაკავშირებულია მიწასთან 220 Ohm რეზისტორის საშუალებით

თხევადი კრისტალური ეკრანი (LCD), შემოკლებით LCD, დაფუძნებულია თხევადი ბროლის ტექნოლოგიაზე. ელექტრონული მოწყობილობების დაპროექტებისას ჩვენ გვჭირდება იაფი მოწყობილობა ინფორმაციის ჩვენებისთვის და მეორე არანაკლებ მნიშვნელოვანი ფაქტორია Arduino-სთვის მზა ბიბლიოთეკების ხელმისაწვდომობა. ბაზარზე არსებული ყველა LCD დისპლეიდან ყველაზე ხშირად გამოიყენება LCD 1602A, რომელსაც შეუძლია აჩვენოს ASCII სიმბოლოები 2 სტრიქონში (16 სიმბოლო 1 სტრიქონში) თითოეული სიმბოლო 5x7 პიქსელის მატრიცაში. ამ სტატიაში განვიხილავთ დისპლეის Arduino-სთან დაკავშირების საფუძვლებს.

ტექნიკური მახასიათებლები

მიწოდების ძაბვა: 5 ვ
ეკრანის ზომა: 2.6 ინჩი
ეკრანის ტიპი: 2 სტრიქონი x 16 სიმბოლო
განათების ფერი: ლურჯი
პერსონაჟის ფერი: თეთრი
ზომები: 80 მმ x 35 მმ x 11 მმ

ჩვენების აღწერა

LCD 1602A არის ელექტრონული მოდული, რომელიც დაფუძნებულია ჰიტაჩის HD44780 დრაივერზე. LCD1602-ს აქვს 16 პინი და შეუძლია იმუშაოს 4-ბიტიან რეჟიმში (მხოლოდ 4 მონაცემთა ხაზის გამოყენებით) ან 8-ბიტიან რეჟიმში (ყველა 8 მონაცემთა ხაზის გამოყენებით), ასევე შესაძლებელია მისი გამოყენება. ამ სტატიაში ვისაუბრებ 4-ბიტიან რეჟიმში დაკავშირებაზე.

საკონტაქტო დავალება:
VSS: "-" მოდულის კვების წყარო
VDD: "+" მოდულის კვების წყარო
VO: კონტრასტის კონტროლის პინი
RS: რეგისტრაცია აირჩიეთ
RW: აირჩიეთ ჩაწერის ან წაკითხვის რეჟიმი (როდესაც დაკავშირებულია მიწასთან, დააყენეთ ჩაწერის რეჟიმში)
E: საშემოდგომო კარიბჭე
DB0-DB3: ინტერფეისის ბიტები
DB4-DB7: ინტერფეისის ბიტები
A: "+" განათების ძალა
K: "-" განათების ძალა

მოდულის წინა მხარეს არის LCD დისპლეი და კონტაქტების ჯგუფი.

მოდულის უკანა მხარეს არის ორი ჩიპი "წვეთოვანი" დიზაინით (ST7066U და ST7065S) და ელექტრო გაყვანილობა, მე ვერ ვხედავ აზრს წრედის დიაგრამის დახატვაში, უბრალოდ გეტყვით რეზისტორის R8 (100) შესახებ. Ohm), რომელიც ემსახურება როგორც შემზღუდველი რეზისტორს LED განათებისთვის, ასე რომ თქვენ შეგიძლიათ დაუკავშიროთ 5V პირდაპირ პინ A-ს. ცოტა მოგვიანებით დავწერ სტატიას, რომელშიც გეტყვით, თუ როგორ შეგიძლიათ შეცვალოთ LCD ეკრანის განათება PWB და ტრანზისტორი.

LCD 1602A დაკავშირება Arduino-სთან (4-ბიტიანი რეჟიმი)

საჭირო ნაწილები:
Arduino UNO R3 x 1 ც.
LCD დისპლეი 1602A (2×16, 5V, ლურჯი) x 1 ც.
DuPont Wire, 2.54 მმ, 20 სმ, F-F (ქალი - ქალი) x 1 ც.
პოტენციომეტრი 10 kOhm x 1 pc.
PLS-16 კონექტორი x 1 ც.
განვითარების დაფა MB-102 x 1 pc.
USB 2.0 A-B კაბელი x 1 ც.

კავშირი:
დასაკავშირებლად გამოვიყენებთ დეველოპერულ დაფას, დიაგრამა და ცხრილი LCD1602a-ს Arduino-სთან დასაკავშირებლად 4-ბიტიან რეჟიმში ჩანს ქვემოთ მოცემულ ფიგურაში.

დისპლეის პურის დაფასთან დაკავშირება განხორციელდება PLS-16 ქინძისთავებით (ისინი უნდა იყოს შედუღებული ეკრანზე). დააინსტალირეთ დისპლეის მოდული პურის დაფაზე და შეაერთეთ დენის VDD (მე-2 პინი) 5V-ზე (Arduino) და VSS (1st pin) GND-ს (Arduino), შემდეგ შეაერთეთ RS (მე-4 პინი) ციფრულ პინ 8-ზე (Arduino). დააფიქსირეთ RW (მე-5 პინი) GND-თან (Arduino) მიერთებით, შემდეგ შეაერთეთ პინი E მე-8 პინზე (Arduino). 4-ბიტიანი კავშირისთვის საჭიროა ოთხი პინი (DB4-დან DB7-მდე). დააკავშირეთ DB4 (მე-11 პინი), DB5 (მე-12 პინი), DB6 (მე-13 პინი) და DB7 (მე-14 პინი) Arduino ციფრულ პინებთან 4, 5, 6 და 7. 10K პოტენციომეტრი გამოიყენება ეკრანის კონტრასტის დასარეგულირებლად, კავშირის დიაგრამა 1602a LCD დისპლეი ნაჩვენებია ქვემოთ

ბიბლიოთეკა უკვე შედის Arduino IDE-ში და არ არის საჭირო მისი ინსტალაცია. დააკოპირეთ და ჩასვით ეს მაგალითი კოდი Arduino IDE პროგრამის ფანჯარაში და ჩატვირთეთ იგი კონტროლერში.

/* ტესტირება ჩატარდა Arduino IDE 1.6.11 ტესტის თარიღი 09/20/2016. */ #შეიცავს LiquidCrystal LCD (8, 9, 4, 5, 6, 7); void setup() ( lcd.begin(16, 2); // ახდენს LCD 16x2 ინიციალიზაციას) void loop() ( lcd.setCursor(0,0); // დააყენეთ კურსორი პირველ სტრიქონზე lcd.print("გამარჯობა, world"); // დაბეჭდეთ ტექსტი lcd.setCursor(0,1); // დააყენეთ კურსორი მეორე სტრიქონზე lcd.print("www.site"); // ტექსტის ამობეჭდვა)

ცოტა პროგრამის შესახებ.
Arduino-სა და LCD ეკრანს შორის კომუნიკაციის გასაადვილებლად გამოიყენება ჩაშენებული ბიბლიოთეკა Arduino IDE-ში. LiquidCrystal.h « - რომელიც დაწერილია LCD დისპლეებისთვის გამოყენებით HD44780 (Hitachi) ჩიპსეტი (ან თავსებადი ჩიპები). ამ ბიბლიოთეკას შეუძლია გაუმკლავდეს როგორც 4-ბიტიან, ასევე 8-ბიტიან რეჟიმში LCD კავშირს.

შეიძინეთ Aliexpress-ზე
Arduino UNO R3 კონტროლერი

საკუთარი მოწყობილობის შექმნისას ხშირად საჭიროა სხვადასხვა ინფორმაციის სწრაფად ჩვენება. მაგალითად, თუ თქვენ ქმნით ჭკვიანი სახლის კონტროლერს, მაშინ მიზანშეწონილია მოწყობილობის აღჭურვა გამომავალი მოწყობილობით, რომელიც საშუალებას გაძლევთ სწრაფად გაარკვიოთ სისტემების მიმდინარე მდგომარეობა. საუკეთესო გამოსავალი არის თხევადი ბროლის ეკრანი. ენერგიის მოხმარება, როდესაც უკანა განათება გამორთულია, მინიმალურია, ხოლო ეკრანთან მუშაობა ძალიან მარტივია და არ საჭიროებს დიდ ჩარევას პროგრამის კოდში. ფაქტობრივად, ინფორმაციის გამომავალი LCD ეკრანზე დიდად არ განსხვავდება სერიულ პორტში გამომავალისგან. სტატიაში განხილულია პოპულარულ HD44780 ჩიპზე დაფუძნებული სიმბოლოების წარმომქმნელი დისპლეის კავშირი Arduino კონტროლერთან.

როგორ მუშაობს LCD ტექსტის ჩვენება?

ზოგიერთი ნიუანსის გასაგებად, სასარგებლოა იმის ცოდნა, თუ როგორ მუშაობს პერსონაჟების წარმომქმნელი ჩვენება. ამ ტიპის ჩვენების განსაკუთრებული მახასიათებელია საკუთარი კონტროლერის არსებობა საკუთარი მეხსიერებით. DDRAM - მეხსიერების ჩვენება. სიმბოლოს ეკრანზე გამოსაჩენად, თქვენ უნდა ჩატვირთოთ სიმბოლო მეხსიერების უჯრედში და შემდეგ გასცეთ ბრძანება მეხსიერების უჯრედის გამოსაჩენად. გადაცემის დროს, სიმბოლოები დაშიფრულია ASCII კოდების გამოყენებით. მაგალითად, კოდის 0x31 მეხსიერებაში ჩაწერისას, სიმბოლო " 1 " სიმბოლოს კოდის შესაბამისობა მის ჩვენებასთან ეკრანზე (ანუ სიმბოლოს „სურათი“) ინახება CGROM მეხსიერებაში. CGROM არის არასტაბილური მეხსიერება. მაშასადამე, ეკრანზე მხოლოდ იმ სიმბოლოების ჩვენებაა შესაძლებელი, რომლებიც კონტროლერშია "დაკავშირებული". ამიტომ ყველა ჩვენებას არ შეუძლია აჩვენოს, მაგალითად, რუსული სიმბოლოები. ჩვენს მაღაზიაში გაყიდული დისპლეები, სამწუხაროდ, არ არის რუსიფიცირებული. ასევე არის CGRAM მეხსიერება. ცვალებადია. ჩვენ შეგვიძლია შევქმნათ საკუთარი სიმბოლოები და გამოვაჩინოთ ისინი ეკრანზე. გასათვალისწინებელია, რომ თქვენ შეგიძლიათ შექმნათ არაუმეტეს რვა სიმბოლო.

მთელი ეს „ქუდის ქვეშ“ ნამუშევარი მნიშვნელოვანია მხოლოდ ზოგიერთი ნიუანსის გასაგებად. Arduino-სთვის არის მარტივი და მარტივი ბიბლიოთეკა, რომელიც ყველა ღრძილს აკეთებს თქვენთვის, რაც საშუალებას გაძლევთ მარტივად და მარტივად აკონტროლოთ ეკრანის გამომავალი.

LCD ეკრანის დაკავშირება Arduino-სთან

დისპლეის დასაკავშირებლად, რა თქმა უნდა, თქვენ უნდა დააინსტალიროთ იგი პურის დაფაზე. გთხოვთ გაითვალისწინოთ: ჩვენს მაღაზიაში გაყიდული დისპლეები იყიდება შედუღებული პინის კონექტორის გარეშე. თუ გსურთ მიიღოთ პურის დაფაზე ინსტალაციისთვის მზად დისპლეი, შეამოწმეთ პროდუქტის გვერდზე „გამაგრების დამაკავშირებელი“ ჩამრთველი და ჩვენ შევამაგრებთ კონექტორს თქვენთვის. მონაცემთა გადაცემა ეკრანზე შეიძლება ორგანიზებული იყოს ორი გზით: 4 ან 8 ბიტით ერთდროულად. შესაბამისად, დაგჭირდებათ ან 4 ან 8 არდუინოს პინი. პრაქტიკაში, არ იქნება სიჩქარის მომატება რვა ბიტიანი ინტერფეისის გამოყენებისას. აქედან გამომდინარე, ჩვენ გვჭირდება მხოლოდ 4 ციფრული პინი მონაცემების გადასაცემად. ეკრანის მუშაობის რეჟიმის დასაყენებლად დაგჭირდებათ კიდევ 3 პინი. საერთო ჯამში, დისპლეის დასაკავშირებლად დაგჭირდებათ კონტროლერის მხოლოდ 7 ციფრული გამომავალი. ეკრანზე კონტაქტები მონიშნულია, რაც დაგეხმარებათ თავიდან აიცილოთ დაბნეულობა დაკავშირებისას:

ჩვენ ვთვლით დასკვნებს მარცხნიდან მარჯვნივ:

  • 1-(VSS) ჩვენება ადგილზე. უკავშირდება მიწის ლიანდაგს.
  • 2-(VDD) დენის წყაროს ჩვენება. უერთდება დენის ლიანდაგს.
  • 3-(ვ.ო.) პოტენციომეტრის შეყვანა (შედის). ეკრანის კონტრასტი რეგულირდება პოტენციომეტრის გამოყენებით. პოტენციომეტრის შუა გამოსავალი დაკავშირებულია ეკრანის პინთან.
  • 4-(რ.ს.) "ბრძანების" სიგნალის შეყვანა. დაკავშირებულია Arduino-ს ნებისმიერ ციფრულ პინთან. მაგალითში ის დაკავშირებულია No12 პინთან.
  • 5-(RW) აყენებს „წაკითხვის“ ან „ჩაწერის“ რეჟიმს. ჩვენ ვაპირებთ ჩაწერას. ჩვენ ვუკავშირდებით კონტაქტს მიწასთან.
  • 6-() ჩართვა. კიდევ ერთი "ბრძანების" გამომავალი. როდესაც ერთი გამოიყენება გამოსავალზე, ეკრანი ახორციელებს ადრე გადაცემულ ბრძანებას. უკავშირდება ნებისმიერ ციფრულ გამომავალს. მაგალითში ის დაკავშირებულია No11 პინთან.
  • 7-10 (D0-D3) უკავშიროდ ვტოვებთ. ეს არის მონაცემთა ქინძისთავები, რომლებიც გამოიყენება რვა ბიტიან ინტერფეისში. ჩვენ არ გვჭირდება.
  • 11-14 (D4-D7) კონტაქტები მონაცემთა გადაცემისთვის ოთხბიტიან რეჟიმში. ისევ და ისევ, ისინი დაკავშირებულია ნებისმიერ ციფრულ გამოსავალთან. მაგალითში, ისინი დაკავშირებულია შესაბამისად 5, 4, 3 და 2 ქინძისთავებთან (D4 პინ 5-მდე, D5 ქინძისთავთან 4 და ა.შ.).
  • 15 () უკანა განათება LED ანოდი. დენის შემზღუდველი რეზისტორი უკვე დამონტაჟებულია ეკრანზე, ამიტომ ანოდი უბრალოდ დაკავშირებულია დენის ლიანდაგთან. ვინაიდან განათება იყენებს ყველაზე გავრცელებულ LED-ს, შეგიძლიათ დააკავშიროთ იგი ნებისმიერ პინთან, რომელიც მხარს უჭერს მას და აკონტროლოთ განათების სიკაშკაშე პროგრამულად.
  • 16 () განათების კათოდი. უკავშირდება მიწის ლიანდაგს.

ვიზუალური კავშირის დიაგრამა:

პროგრამირება

Arduino IDE მოყვება შესანიშნავი ბიბლიოთეკა თხევადი კრისტალური დისპლეებისთვის - LiquidCrystal. ბიბლიოთეკა შეიცავს მაგალითებს, რომლებიც სრულად ავლენს ეკრანის შესაძლებლობებს. დასაწყებად გამოიყენეთ სტანდარტული „HelloWorld“ მაგალითი (ფაილი -> მაგალითები -> LiquidCrystal -> HelloWorld) ან ჩატვირთეთ შემდეგი კოდი დაფაზე:

/* *RS დისპლეის პინი arduino პინზე 12 *დისპლეის პინი არდუინოს პინზე 11 *D4 ეკრანის პინი არდუინოს პინზე 5 *D5 დისპლეის პინი არდუინოს პინზე 4 *D6 დისპლეის პინი არდუინოს პინზე 3 *D7 დისპლეის პინი არდუინოს პინზე 2 *დისპლეის R/W გამომავალი მიწაზე *პოტენციომეტრის გამომავალი ეკრანის VO გამომავალზე */ // დააკავშირეთ ბიბლიოთეკა: #include ; // დისპლეის ინიციალიზაცია // ჩამოთვალეთ არდუინოს პინები, რომლებზეც დაკავშირებულია // RS, E, D4, D5, D6, D7 დისპლეის კონტაქტები LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() ( // მიუთითეთ ეკრანის სვეტების და ხაზების რაოდენობა: lcd.begin(16, 2); // აჩვენეთ შეტყობინება ეკრანზე. lcd.print("hello, world!"); ) void loop() ( // დააყენეთ კურსორი პირველი რიგის 0 (ნულოვანი) სვეტზე // ფაქტიურად კურსორი დაყენდება მეორე (ქვედა) მწკრივზე // სტრიქონების და სვეტების ნუმერაცია იწყება ნულიდან lcd.setCursor( 0, 1 // დაფის ჩატვირთვის მომენტიდან გავლილი წამების ჩვენება: lcd.print(millis()/1000);

*RS დისპლეის პინი arduino 12-ზე

*ჩართეთ ჩვენების პინი arduino 11-ზე

*D4 დისპლეის პინი arduino 5-ზე

*D5 დისპლეის პინი arduino 4-ზე

*D6 დისპლეის პინი arduino 3-ზე

*D7 დისპლეის პინი arduino 2-ზე

*R/W დისპლეის გამომავალი მიწაზე

* პოტენციომეტრის გამომავალი ეკრანის VO პინზე

// დააკავშირეთ ბიბლიოთეკა:

#შეიცავს ;

// ჩვენების ინიციალიზაცია

// ჩამოთვალეთ არდუინოს პინები, რომლებთანაც ისინი დაკავშირებულია

// RS, E, D4, D5, D6, D7 დისპლეის ქინძისთავები

void setup() (

// მიუთითეთ ეკრანის სვეტების და რიგების რაოდენობა:

LCD. დაწყება (16, 2);

// ეკრანზე შეტყობინების ჩვენება.

LCD. ბეჭდვა ("გამარჯობა, სამყარო!");

void loop() (

// სტრიქონების და სვეტების ნუმერაცია იწყება ნულიდან

LCD. setCursor(0, 1);

// წამების რაოდენობის ჩვენება

// დაფის ჩატვირთვის შემდეგ გავიდა:

LCD. print(millis()/1000);

ამ კოდის Arduino-ს დაფაზე ჩატვირთვის შემდეგ ეკრანზე გამოჩნდება "გამარჯობა, სამყარო!"( ინგლისური "Გამარჯობა მსოფლიო!") პირველ სტრიქონზე და ტაიმერი, რომელიც წამებს ითვლის მეორე ხაზზე.

როგორც ჩვეულებრივ ხდება, კოდი მარტივი და გასაგებია. თუმცა, ჩვენ მაინც გავაანალიზებთ მას უფრო დეტალურად:

  • თხევადი კრისტალი LCD(12, 11, 5, 4, 3, 2) - ეს ხაზი ქმნის ჩვენების ობიექტს, რომლითაც ჩვენ ვიმუშავებთ მომავალში. ფრჩხილებში არგუმენტად გადაცემულია პინის ნომრები, რომლებთანაც დაკავშირებულია ეკრანის კონტაქტები. შესაბამისად: RS, E, D4, D5, D6, D7. როგორც ზემოთ აღინიშნა, დაკავშირებისას პინის ნომრები შეიძლება შეირჩეს სრულიად თვითნებურად.
  • LCD.დაიწყება(16, 2) - აქ ჩვენ დავაყენეთ ჩვენების ზომები. ამ მაგალითს აქვს 16 სვეტი და 2 მწკრივი. ჩვენი 20X4 ეკრანისთვის ეს ხაზი ასე გამოიყურება: LCD.დაიწყება(20, 4).
  • LCD.ბეჭდვა("გამარჯობა, სამყარო!") - აჩვენებს ტექსტს ეკრანზე. ეკრანის ზომის (lcd.begin) მითითების შემდეგ კურსორი განლაგებულია ეკრანის ზედა მარცხენა კუთხეში. ამიტომ, ეს ტექსტი ნაჩვენები იქნება მარცხნივ პირველ (ზედა) სტრიქონზე.
  • lcd.setCursor(0, 1) - აყენებს კურსორს მითითებულ პოზიციაზე. ამ შემთხვევაში, მითითებულია მეორე ხაზის მარცხენა პოზიცია. სვეტის ნომერი მითითებულია ფრჩხილებში, შემდეგ რიგის ნომერი. ორივე მწკრივი და სვეტი დანომრილია ნულიდან. ამრიგად: lcd.setCursor(0, 0) - დააყენებს კურსორს ზედა მარცხენა კუთხეში, lcd.setCursor(15, 0) - ქვედა მარჯვნივ.
  • LCD.ბეჭდვა(millis()/1000) - უკვე აღწერილია ზემოთ. აქ, ტექსტის ნაცვლად, პარამეტრად გადაეცემა გაანგარიშების ფორმულა. შედეგი ნაჩვენებია ეკრანზე.

ახლა, როცა უმარტივეს მაგალითს განვიხილეთ, შეგვიძლია გადავიდეთ უფრო რთულ მაგალითებზე. და თუ თქვენ უკვე გესმით ყველაფერი და მზად ხართ იყიდოთ LCD დისპლეი, მაშინ მე შევაგროვე თქვენთვის დამადასტურებელი ჩინელი დისპლეის გამყიდველების ლინკები:

სიმბოლოების LCD დისპლეები

ეკრანის ზომა (სვეტები* რიგები)განათების ფერისტატუსი
20*4 ლურჯიდამოწმებული
20*4 ყვითელიდამოწმებული
16*2 ლურჯიდამოწმებული
16*2 ყვითელიდამოწმებული
16*2 მწვანედამოწმებული

LiquidCrystal ბიბლიოთეკის სხვა მაგალითების მიმოხილვა

LiquidCrystal ბიბლიოთეკით მოწოდებულ სტანდარტულ მაგალითებში შეგიძლიათ იპოვოთ შემდეგი ესკიზები:

    • ავტომატური გადახვევა- აჩვენებს ტექსტის ავტომატურად გადახვევის უნარს. ერთგვარი მცოცავი ხაზი. როდესაც სიმბოლო გამოჩნდება, წინა სიმბოლოები გადაინაცვლებს. ამრიგად, ახალი პერსონაჟი ნაჩვენებია იმავე ადგილას.

    • Თვალის დახამხამება- აჩვენებს შესაძლებლობას ჩართოს მოციმციმე კურსორის ჩვენება მართკუთხედის სახით.

    • კურსორი- აჩვენებს კურსორის ჩვენების ჩართვას მოციმციმე ჰორიზონტალური ხაზის სახით.

    • მორგებული პერსონაჟი- ნაჩვენებია თქვენი საკუთარი სიმბოლოების შექმნის შესაძლებლობა ეკრანზე გამოსატანად. სხვათა შორის, ამ ჩანახატში არის შეცდომა. დეტალები ქვემოთ.

    • ჩვენება- აჩვენებს დისპლეის "გამორთვის" გზას. ანუ ნაჩვენები ტექსტის ჩვენება ან დამალვა.

    • გადახვევა- აჩვენებს ტექსტის ხელით გადახვევის უნარს.

    • სერიული ჩვენება- ეკრანზე აჩვენებს პორტის მონიტორის ფანჯარაში დაბეჭდილ ტექსტს (ანუ სერიული პორტით გადაცემული ტექსტი).
    • მითითებული კურსორი- ავსებს ეკრანს ასოებით, რაც აჩვენებს კურსორის დაყენების შესაძლებლობას ეკრანზე ნებისმიერ პოზიციაზე.
    • ტექსტის მიმართულება- აჩვენებს ტექსტის გამოტანის მიმართულების შეცვლის უნარს (მარჯვნიდან მარცხნივ ან მარცხნიდან მარჯვნივ).

მოდით უფრო დეტალურად განვიხილოთ პროცედურები, რომელთა შესაძლებლობები ნაჩვენებია ამ მაგალითებით:

lcd.autoscroll()

ამ პროცედურის გამოძახების შემდეგ ეკრანზე ტექსტი ავტომატურად გადახვევს. გადახვევის შესაჩერებლად დარეკეთ lcd.noAutoscroll().

lcd.blink()

პროცედურის გამოძახების შემდეგ, კურსორი გამოჩნდება მოციმციმე მართკუთხედის სახით. ზარის გამორთვა lcd.noBlink()

lcd.cursor()

პროცედურის გამოძახების შემდეგ, კურსორი გამოჩნდება მოციმციმე ჰორიზონტალური ხაზის სახით. ზარის გამორთვა lcd.noСursor(). კურსორი კვლავ უხილავი გახდება.

lcd.createChar()

პროცედურა ატვირთავს სიმბოლოს, რომელიც აღწერილია როგორც ბაიტის მასივი ცვლადი ეკრანის სიმბოლოების ცხრილში (CGRAM მეხსიერება). არგუმენტი არის სიმბოლოს ნომერი და ბაიტის მასივი, რომელიც აღწერს სიმბოლოს. მოდით შევხედოთ ამას უფრო დეტალურად. ეკრანის მეხსიერებაში შეგიძლიათ მაქსიმუმ რვა სიმბოლო შეიყვანოთ. საკუთარი სიმბოლოს დასამატებლად გჭირდებათ:

  1. შექმენით ბაიტის მასივი, რომელიც აღწერს პერსონაჟს.
  2. ჩაწერეთ სიმბოლო დისპლეის მეხსიერებაში სიმბოლოების ცხრილის რიცხვის მინიჭებით. სიმბოლოები დანომრილია ნულიდან შვიდამდე დიაპაზონში.
  3. აჩვენეთ სიმბოლო ეკრანზე პროცედურის გამოყენებით lcd.write()(არ უნდა აგვერიოს lcd.print()), რომლის არგუმენტად გადადის სიმბოლო ნომერი.

დეველოპერულ გარემოში და ბიბლიოთეკის მახასიათებლებში შეცდომის გამო მოხდა სიმბოლო ნომრის 0 (ნულოვანი) ჩვენების შეუძლებლობა. როდესაც შემდგენელი შეხვდება ხაზს lcd.write(0), ის გაუშვებს შეცდომას: გადატვირთული "write(int)" ზარი ორაზროვანია". ეს არის ზუსტად ის ხაზი, რომელიც ჩანს მაგალითში მორგებული პერსონაჟიბიბლიოთეკები. როდესაც ცდილობთ სტანდარტული მაგალითის შედგენას, მიიღებთ შეცდომას:

CustomCharacter.ino: ფუნქციაში 'void setup()': CustomCharacter:115: შეცდომა: გადატვირთული 'write(int)' გამოძახება ორაზროვანია /home/nazarovd/arduino-1.0.5/libraries/LiquidCrystal/LiquidCrystal.h:82 : შენიშვნა: კანდიდატები არიან: ვირტუალური ზომა_t LiquidCrystal::write(uint8_t) /home/nazarovd/arduino-1.0.5/hardware/arduino/cores/arduino/Print.h:49: შენიშვნა: size_t Print::write(const char *)

მორგებული პერსონაჟი. ino: ფუნქციაში 'void setup()':

CustomCharacter: 115: შეცდომა: გადატვირთული "write (int)" გამოძახება ორაზროვანია

/home/nazarovd/arduino - 1.0.5/libraries/LiquidCrystal/LiquidCrystal. h : 82 : შენიშვნა : კანდიდატები არიან : virtual size_t LiquidCrystal :: write (uint8_t )

/home/nazarovd/arduino - 1.0.5/hardware/arduino/cores/arduino/Print. h : 49 : შენიშვნა : size_t ბეჭდვა :: ჩაწერა (const char * )

შეცდომის აღმოსაფხვრელად, უბრალოდ შეცვალეთ ხაზი lcd.write( 0 ) lcd.write( (ბაიტი) 0).
ახლა პატარა მაგალითი საკუთარი სიმბოლოს შექმნის შესახებ. მოდით აჩვენოთ რუბლის სიმბოლო.

// ჩართეთ ბიბლიოთეკა #include ; // LiquidCrystal დისპლეის ინიციალიზაცია lcd(12, 11, 5, 4, 3, 2); // აღწერეთ ჩვენი სიმბოლო. // ჩვენ უბრალოდ "ვხატავთ" სიმბოლოს ერთეულებით // როდესაც ეკრანზე გამოჩნდება, ერთეულები გამოჩნდება შევსებული წერტილების სახით, ნულები იქნება შეუვსებელი ბაიტი რუბლი = ( 0b00000, 0b01110, 0b01001, 0b01001, 0b01110, 0,1010,0b ); void setup() (// ჩაწერეთ ჩვენი სიმბოლო ეკრანის მეხსიერებაში // გადაიტანეთ სიმბოლო ნომერი // და ბაიტის მასივი, რომელიც აღწერს ჩვენს პერსონაჟს, როგორც არგუმენტები lcd.createChar(0, rubl); // დააყენეთ ჩვენება lcd.begin( 16, 2 ) void loop() ( // დააყენეთ კურსორი ეკრანის ზედა მარცხენა კუთხეში lcd.setCursor(0,0); // აჩვენეთ სიმბოლო ნული ეკრანზე lcd.write((byte)0) 10 წამის დაგვიანებით (10000);

// ბიბლიოთეკის ჩართვა

#შეიცავს ;

// ჩვენების ინიციალიზაცია

LiquidCrystal LCD (12, 11, 5, 4, 3, 2);

სიახლე საიტზე

>

Ყველაზე პოპულარული