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

Სარჩევი:

LCD 1602-ის დაკავშირება Arduino-სთან: აღწერა, ფუნქციები, ინსტრუქციები, მახასიათებლები, პრობლემები და გადაწყვეტილებები
LCD 1602-ის დაკავშირება Arduino-სთან: აღწერა, ფუნქციები, ინსტრუქციები, მახასიათებლები, პრობლემები და გადაწყვეტილებები
Anonim

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

LCD 1602 დისპლეი არდუინოს დასაკავშირებლად
LCD 1602 დისპლეი არდუინოს დასაკავშირებლად

LCD 1602

დისპლეებს შორის მრავალ ვარიანტს შორის მინდა გამოვყო LCD1602 დისპლეი HD4478 კონტროლერზე დაფუძნებული. ეს ჩვენება ორ ფერშია: თეთრი ასოები ლურჯ ფონზე, შავი ასოები ყვითელ ფონზე. LCD 1602-ის Arduino-სთან დაკავშირებაც არ გამოიწვევს რაიმე პრობლემას, რადგან არის ჩაშენებული ბიბლიოთეკა და არ გჭირდებათ რაიმე დამატებითი ჩამოტვირთვა. დისპლეები განსხვავდება არა მხოლოდ ფასით, არამედ ზომითაც. ხშირად რადიომოყვარულები იყენებენ 16x 2, ანუ 2 სტრიქონი 16 სიმბოლოსგან. მაგრამ ასევე არის 20 x 4, სადაც არის 4 სტრიქონი 20 სიმბოლოსგან. ზომები და ფერი არანაირ როლს არ თამაშობს LCD 1602 დისპლეის Arduno-სთან დაკავშირებაში, ისინი დაკავშირებულია იმავე გზით. ხედვის კუთხე 35 გრადუსია, ეკრანის რეაგირების დრო 250 ms. შეუძლია მუშაობა -20-დან 70 გრადუს ცელსიუსამდე ტემპერატურაზე. მუშაობისას ის იყენებს 4 mA-ს ეკრანისთვის და 120 mA-ს განათებისთვის.

LCD 1602 დისპლეის პინი
LCD 1602 დისპლეის პინი

სად გამოიყენება?

ამ დისპლეი პოპულარობით სარგებლობს არა მხოლოდ რადიომოყვარულებში, არამედ დიდ მწარმოებლებს შორისაც. მაგალითად, პრინტერები, ყავის აპარატები ასევე იყენებენ LCD1602. ეს გამოწვეულია მისი დაბალი ფასით, ეს ჩვენება ჩინურ საიტებზე 200-300 რუბლს შეადგენს. ღირს იქ ყიდვა, რადგან ჩვენს მაღაზიებში ამ ჩვენების ზღვარი ძალიან მაღალია.

დაკავშირება Arduino

LCD 1602 Arduino Nano-სა და Uno-სთან დაკავშირება არაფრით განსხვავდება. დისპლეით შეგიძლიათ იმუშაოთ ორ რეჟიმში: 4 ბიტიანი და 8. 8 ბიტიან ეკრანთან მუშაობისას გამოიყენება როგორც ქვედა, ასევე უფრო მაღალი ბიტი, ხოლო 4 ბიტიანი - მხოლოდ ქვედა. 8-ბიტიანთან მუშაობას განსაკუთრებული აზრი არ აქვს, რადგან დასაკავშირებლად დაემატება კიდევ 4 კონტაქტი, რაც არ არის მიზანშეწონილი, რადგან სიჩქარე არ იქნება უფრო მაღალი, ეკრანის განახლების ლიმიტი არის 10-ჯერ წამში. ზოგადად, lcd 1602-ის Arduino-სთან დასაკავშირებლად ბევრი მავთული გამოიყენება, რაც გარკვეულ უხერხულობას იწვევს, მაგრამ არის სპეციალური ფარები, მაგრამ ამაზე მოგვიანებით. ფოტოზე ნაჩვენებია დისპლეის კავშირი Arduino Uno-სთან:

დისპლეის დაკავშირება arduino-სთან
დისპლეის დაკავშირება arduino-სთან

კოდის მაგალითი:


შეიცავს //დაამატეთ საჭირო ბიბლიოთეკა LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // ეკრანის განზომილების დაყენება lcd.setCursor(0, 0); // დააყენეთ კურსორი 1-ლი ხაზის დასაწყისში lcd.print("Hello, World!"); // ტექსტის ჩვენება LCD setCursor(0, 1); // დააყენეთ კურსორი 2 სტრიქონის დასაწყისში lcd.print("fb.ru"); // ტექსტის გამოტანა } void loop(){ }

რას აკეთებს კოდი? უპირველეს ყოვლისა, დაკავშირებულია ეკრანთან მუშაობის ბიბლიოთეკა. როგორც ზემოთ აღვნიშნეთ, ეს ბიბლიოთეკა უკვე შედის Arduino IDE-ში და არ გჭირდებათ მისი დამატებითი ჩამოტვირთვა და ინსტალაცია. შემდეგი, განისაზღვრება კონტაქტები, რომლებიც დაკავშირებულია ქინძისთავებთან: RS, E, DB4, DB5, DB6, DB7, შესაბამისად. შემდეგ დაყენებულია ეკრანის ზომა. ვინაიდან ჩვენ ვმუშაობთ ვერსიაზე 16 სიმბოლოთი და 2 ხაზით, ჩვენ ვწერთ ასეთ მნიშვნელობებს. ჩვენ ვაყენებთ კურსორს პირველი ხაზის დასაწყისში და ვაჩვენებთ ჩვენს პირველ ტექსტს Hello World. შემდეგი, დააყენეთ კურსორი მეორე ხაზზე და აჩვენეთ საიტის სახელი. Სულ ეს არის! გათვალისწინებული იყო LCD 1602-ის Arduino Uno-სთან დაკავშირება.

რა არის I2C და რატომ არის საჭირო?

როგორც ზემოთ აღინიშნა, დისპლეის დაკავშირებას ბევრი ქინძისთავი სჭირდება. მაგალითად, მრავალ სენსორთან და LCD ეკრანთან მუშაობისას 1602 კონტაქტები შეიძლება უბრალოდ არ იყოს საკმარისი. ხშირად, რადიომოყვარულები იყენებენ Uno ან Nano ვერსიებს, სადაც ბევრი კონტაქტი არ არის. შემდეგ ხალხი გამოვიდა სპეციალური ფარებით. მაგალითად, I2C. ის საშუალებას გაძლევთ დააკავშიროთ ეკრანი მხოლოდ 4 პინით. ეს ორჯერ ნაკლებია. I2C მოდული იყიდება როგორც ცალ-ცალკე, სადაც თქვენ თვითონ უნდა შეადუღოთ, ისე უკვე შედუღებულიLCD დისპლეი 1602.

I2C მოდული LCD ეკრანისთვის 1602
I2C მოდული LCD ეკრანისთვის 1602

დაკავშირება I2C მოდულთან

LCD 1602 Arduino Nano-სთან I2C-ით დაკავშირება იკავებს მცირე ადგილს, მხოლოდ 4 პინი: დამიწება, დენი და 2 მონაცემთა გამომავალი. ჩვენ ვაკავშირებთ სიმძლავრეს და დამიწებას Arduino-ზე, შესაბამისად, 5V-ს და GND-ს. დარჩენილი ორი კონტაქტი: SCL და SDA დაკავშირებულია ნებისმიერ ანალოგურ პინებთან. ფოტოზე შეგიძლიათ იხილოთ LCD 1602-ის I2C მოდულით arduino-სთან დაკავშირების მაგალითი:

აჩვენეთ კავშირები I2C მოდულის გამოყენებით
აჩვენეთ კავშირები I2C მოდულის გამოყენებით

პროგრამის კოდი

თუ საჭირო იყო მხოლოდ ერთი ბიბლიოთეკის გამოყენება მოდულის გარეშე დისპლეით სამუშაოდ, მაშინ ორი ბიბლიოთეკაა საჭირო მოდულთან მუშაობისთვის. ერთი მათგანი უკვე Arduino IDE - Wire-შია. სხვა ბიბლიოთეკა, LiquidCrystal I2C, ცალკე უნდა გადმოწეროთ და დააინსტალიროთ. ბიბლიოთეკის Arduino-ში დასაინსტალირებლად, გადმოწერილი არქივის შიგთავსი უნდა აიტვირთოს Libraries root საქაღალდეში. კოდის მაგალითი I2C გამოყენებით:


include include LiquidCrystal_I2C LCD (0x27, 16, 2); // ეკრანის დაყენება void setup() { lcd.init(); lcd.backlight();// ჩართეთ ეკრანის განათება lcd.print("FB.ru"); lcd.setCursor(8, 1); lcd.print ("LCD 1602"); } void loop() { // დააყენეთ კურსორი მეორე სტრიქონზე და ნულ სიმბოლოზე. lcd.setCursor(0, 1); // ამობეჭდეთ წამების რაოდენობა მას შემდეგ, რაც arduino დაიწყო lcd.print(millis()/1000); }

როგორც ხედავთ, კოდი თითქმის იგივეა.

როგორ დავამატო ჩემი საკუთარი სიმბოლო?

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

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

თუ 0 - იქ არაფერია, თუ 1 - ეს არის დაჩრდილული ადგილი. ზემოთ მოყვანილ მაგალითში ხედავთ "ღიმილიანი ღიმილის" პერსონაჟის შექმნას. არდუინოში მაგალითის პროგრამის გამოყენებით, ასე გამოიყურება:


include include // ჩართეთ საჭირო ბიბლიოთეკა // ღიმილის სიმბოლო ბიტმასკი ბაიტი 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); // ეკრანის განზომილების დაყენება lcd.createChar(1, smile); // შექმენით სიმბოლო ნომერი 1 lcd.setCursor(0, 0); // დააყენეთ კურსორი 1 სტრიქონის დასაწყისში lcd.print("\1"); // სმაილიკის ჩვენება (სიმბოლო ნომერი 1) - "\1" } void loop(){ }

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

მორგებული სიმბოლოების დამატება LCD 1602-ზე
მორგებული სიმბოლოების დამატება LCD 1602-ზე

პრობლემები, როდესაც ეკრანი შეიძლება არ იმუშაოს

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


LiquidCrystal_I2C LCD (0x27, 16, 2);

ფრჩხილებში შეგიძლიათ იხილოთ ორი მნიშვნელობა, 0x27 და 16, 2 (16, 2 არის ეკრანის ზომა და 0x27 არის მხოლოდ I2C მისამართი). ამ მნიშვნელობების ნაცვლად, შეგიძლიათ სცადოთ დააყენოთ 0x37 ან 0x3F. კიდევ ერთი მიზეზი არის უბრალოდ გაუმართავი LCD 1602. იმის გათვალისწინებით, რომ Arduino-სთვის თითქმის ყველაფერი დამზადებულია ჩინეთში, თქვენ ვერ იქნებით 100% დარწმუნებული, რომ შეძენილიაპროდუქტი არ არის დეფექტური.

LCD 1602 დადებითი და უარყოფითი მხარეები

მოდით შევხედოთ LCD 1602-ის დადებით და უარყოფით მხარეებს.

დადებითი

  • ფასი. ამ მოდულის შეძენა შესაძლებელია ძალიან ხელმისაწვდომ ფასად ჩინურ მაღაზიებში. ფასი 200-300 რუბლია. ზოგჯერ იყიდება I2C მოდულითაც კი.
  • მარტივი დაკავშირება. ალბათ არავინ აკავშირებს LCD 1602-ს I2C-ის გარეშე ამ დღეებში. და ამ მოდულით, კავშირი იღებს მხოლოდ 4 პინს, არ იქნება მავთულის "ვებები".
  • პროგრამირება. მზა ბიბლიოთეკების წყალობით, ამ მოდულთან მუშაობა მარტივია, ყველა ფუნქცია უკვე რეგისტრირებულია. და თუ თქვენი პერსონაჟის დამატება გჭირდებათ, ამას მხოლოდ რამდენიმე წუთი სჭირდება.

მინუსები

ათასობით რადიომოყვარულის მიერ გამოყენების დროს, დიდი მინუსები არ გამოვლენილა, მხოლოდ ქორწინების ყიდვის შემთხვევებია, რადგან ძირითადად გამოიყენება ჩინური ჩვენების ვარიანტები

ამ სტატიაში განხილული იყო, თუ როგორ უნდა დააკავშიროთ LCD 1602 დისპლეი Arduino-სთან და ასევე წარმოადგინა პროგრამების ნიმუში ამ ეკრანთან მუშაობისთვის. ის ნამდვილად ერთ-ერთი საუკეთესოა თავის კატეგორიაში, ის არ არის მხოლოდ ის, რომ ათასობით რადიომოყვარული ირჩევს მას თავისი პროექტებისთვის!

გირჩევთ: