Სარჩევი:

გადახვევა ერთი LCD ხაზი: 4 ნაბიჯი (სურათებით)
გადახვევა ერთი LCD ხაზი: 4 ნაბიჯი (სურათებით)

ვიდეო: გადახვევა ერთი LCD ხაზი: 4 ნაბიჯი (სურათებით)

ვიდეო: გადახვევა ერთი LCD ხაზი: 4 ნაბიჯი (სურათებით)
ვიდეო: რა ხდება კანონიერი ქურდების საკნებში 2024, ივლისი
Anonim
Image
Image

თხევადი ბროლის ბიბლიოთეკას აქვს ორი სასარგებლო ფუნქცია scrollDisplayLeft () და scrollDisplayRight (). ეს ფუნქციები გადაადგილდება მთელ ეკრანზე. ანუ, ისინი გადადიან ორივე ხაზზე 1602 LCD და ოთხივე სტრიქონი 2004 წლის LCD– ზე. რაც ჩვენ ხშირად გვჭირდება არის უნარი გადავაადგილოთ ერთი ხაზი ამ ეკრანებზე და არა გადავიტანოთ მთლიანი ეკრანი.

ეს ინსტრუქცია უზრუნველყოფს ორ დამატებით ფუნქციას, scrollInFromRight (ხაზი ტექსტის საჩვენებლად, სტრიქონი გადასაადგილებლად) და scrollInFromLeft (ხაზი ტექსტის გამოსახატავად, სტრიქონი გადახვევისთვის). ეს ორი ფუნქცია, რომელიც გადაახვევს ხაზებს LCD ეკრანზე ორ ფუნქციასთან ერთად: scrollLineRight (ხაზი ტექსტის საჩვენებლად, სტრიქონი გადასაადგილებლად) და scrollLineLeft (ხაზი ტექსტის საჩვენებლად, სტრიქონი გადახვევის მიზნით) ჩემი ადრინდელი ინსტრუქციიდან, რომელიც წარმოდგენილია ეკრანიდან ხაზების გადახვევის ფუნქცია, გვაძლევს რამოდენიმე მძლავრ გზას იმის გასაკონტროლებლად, თუ როგორ შეიძლება ტექსტის წარმოდგენა ან ამოღება LCD ეკრანზე.

ნაბიჯი 1: რა არის საჭირო

Შეკვრა
Შეკვრა

- 1602 ან 2004 წლის LCD დამოუკიდებელი ჩვენება, ან LCD ფარი

- იხილეთ ქვემოთ შენიშვნა 2004 წლის LCD ეკრანის გამოყენებასთან დაკავშირებით

- Arduino UNO R3 ან კლონი

- USB კაბელი Arduino– ს კომპიუტერთან დასაკავშირებლად

- ნახევრად ზომის, 400 ჰალსტუხის ქულა, პურის დაფა

- Arduino IDE

- ექსპერიმენტული პლატფორმა (სურვილისამებრ, მაგრამ გამოსადეგი)

საჭირო ელემენტებია LCD ეკრანი 1602 ან 2004 [თუ 2004 წ. გამოიყენება, ის უპრობლემოდ იმუშავებს მარჯვნივ მარჯვნივ lcd.begin () ფუნქციის შეცვლით, რათა ასახოს, რომ თქვენ ახლა იყენებთ 20 სიმბოლოს x 4 ხაზს ჩვენება. [2004 წლის ეკრანის გამოყენებით მარცხნიდან გადახვევისთვის საჭიროა ფუნქციის s crollInFromLeft () კოდის გადაწერა]. LCD– ის გარდა დაგჭირდებათ Arduino UNO ან კლონი, Arduino IDE და USB კაბელი, რომ შეუერთოთ Arduino კომპიუტერს.

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

- დამოუკიდებელი 1602 LCD დისპლეისთვის მე გამოვიყენე შემდეგი პინი დავალებები ჩემს ესკიზებში:

// LiquidCrystal (rs, ჩართვა, d4, d5, d6, d7)

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

და მოიცავდა Liquid Crystal ბიბლიოთეკას LiquidCrystal.h.

- LCD ფარისთვის, მე ვიყენებ შემდეგ pin დავალებებს ჩემს ესკიზებში და ასევე შევიტანე LiquidCrystal.h თხევადი ბროლის ბიბლიოთეკა.

// LiquidCrystal (rs, ჩართვა, d4, d5, d6, d7)

LiquidCrystal LCD (8, 13, 9, 4, 5, 6, 7);

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

მე გამოვიყენე "ექსპერიმენტული პლატფორმა" Arduino UNO– ს დასაკავშირებლად ნახევარ ზომის, 400 ჰალსტუხის პუნქტთან, დაფაზე. (იხილეთ ჩემი ადრეული ინსტრუქცია,”ექსპერიმენტული პლატფორმა Arduino UNO R3– ისთვის, როგორ მოვამზადოთ იგი გამოყენებისთვის”). თუმცა, ექსპერიმენტული პლატფორმა არ არის საჭირო, თუმცა ჩემთვის ის LCD– ის გაერთიანებას UNO– სთან ბევრად უფრო ადვილი და სწრაფი ხდის.

დავალებები, რომლებიც მე გამოვიყენე LCD– ის UNO– ს დასაკავშირებლად, შეგიძლიათ ნახოთ ზემოთ.

ნაბიჯი 2: დაკავშირება

LCD არის ჩართული breadboard და შემდეგ hookup მავთულები უკავშირდება breadboard საწყისი შესაბამისი ქინძისთავები Arduino (იხ. ნაბიჯი 2 თუ თქვენ გაქვთ რაიმე შეკითხვა დაკავშირებით კავშირები მე).

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

დამოუკიდებელი LCD მოითხოვს ცალკე 10k ohm პოტენომეტრის გამოყენებას. როგორც ზემოთ აღვნიშნეთ, მე გამოვიყენე ერთი სახელური, რომელსაც აქვს გამწმენდი, რომელიც დაკავშირებულია მესამე LCD პინთან (მარჯვნივ ვითვლი LCD ქინძისთავებით თქვენსკენ). პოტენომეტრი გამოიყენება LCD ეკრანის კონტრასტის გასაკონტროლებლად. კავშირები იგივეა 1602 და 2004 წლებისათვის. თუმცა, განცხადება lcd. დასაწყისი (16, 2) უნდა შეიცვალოს ესკიზში lcd. დასაწყისი (20, 4), რათა აჩვენოს, რომ ჩვენი LCD შეიცვალა 16 -დან სიმბოლო ორი ხაზით 20 სიმბოლოს ოთხი ხაზით ერთი.

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

ნაბიჯი 3: ესკიზი

ესკიზი
ესკიზი
ესკიზი
ესკიზი
ესკიზი
ესკიზი

უბრალოდ შეიყვანეთ თანდართული ესკიზი Arduino IDE– ში. გთხოვთ გახსოვდეთ, რომ Instructable საიტი ხშირად წაშლის ყველაფერზე დიდს და არანაკლებ ნიშნებს და მათ შორის ტექსტს. ამრიგად, დარწმუნდით და შეიტანეთ ტექსტი, #მოიცავს LiquidCrystal.h და ჩასვით სიტყვები LiquidCrystal.h შიგნით უფრო დიდი და ნაკლები ვიდრე სიმბოლოები.

// ესკიზი პერსონაჟების გადასაადგილებლად LCD ეკრანზე

#მოიცავს // იხილეთ ტექსტში შენიშვნა იმის შესახებ, თუ რა არის საჭირო აქ, ანუ, LiquidCrystal.h შიგნით ჩასმული

// სიმბოლოებზე დიდი და ნაკლები

// ეს საიტი ხშირად აშორებს სიმბოლოებზე მეტ და ნაკლები სიმბოლოებს და მათ შორის ტექსტს

// LiquidCrystal (rs, ჩართვა, d4, d5, d6, d7)

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

// გამოაცხადეთ lcd როგორც LiquidCrystal ობიექტი

int i = 0;

int j = 0;

int k = 0;

int delayTime2 = 350; // ცვლათა შორის შეფერხება

void scrollInFromRight (int line, char str1 ) {

// დაწერილი რ. ჯორდან კრეინდლერის მიერ 2016 წლის ივნისი

i = strlen (str1);

for (j = 16; j> = 0; j--) {

lcd.setCursor (0, ხაზი);

for (k = 0; k <= 15; k ++) {

lcd.print (""); // გასუფთავება ხაზი

}

lcd.setCursor (j, ხაზი);

lcd.print (str1);

შეფერხება (delayTime2);

}

}

void scrollInFromLeft (int line, char str1 ) {

// დაწერილი რ. ჯორდან კრეინდლერის მიერ 2016 წლის ივნისი

i = 40 - strlen (str1);

ხაზი = ხაზი - 1;

for (j = i; j <= i+16; j ++) {

for (k = 0; k <= 15; k ++) {

lcd.print (""); // წმინდა ხაზი

}

lcd.setCursor (j, ხაზი);

lcd.print (str1);

დაგვიანებით (delayTime2);

}

}

void setup () {

სერიული.დაწყება (9600);

Serial.println ("ტესტის დაწყება …");

lcd. დასაწყისი (16, 2);

lcd. წმინდა ();

lcd.print ("მხოლოდ ტესტირება");

}

ბათილი მარყუჟი () {

lcd. წმინდა ();

scrollInFromRight (0, "ხაზი 1 მარჯვნიდან");

scrollInFromRight (1, "ხაზი 2 მარჯვნიდან");

lcd. წმინდა ();

scrollInFromLeft (0, "ხაზი 1 მარცხნიდან.");

scrollInFromLeft (1, "ხაზი 2 მარცხნიდან.");

lcd. წმინდა ();

scrollInFromRight (0, "ხაზი 1 მარჯვნიდან");

scrollInFromLeft (1, "ხაზი 2 მარცხნიდან.");

lcd. წმინდა ();

}

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

ესკიზის ორ ფუნქციასთან ერთად, რომელიც შეიცავს ინსტრუქციულ ჩამონათვალში „გადაახვიეთ ერთი LCD ხაზი მარცხნივ ან მარჯვნივ, როგორ“ოთხი ფუნქცია უზრუნველყოფს ელეგანტურ გზებს ტექსტის გადასაადგილებლად LCD ეკრანზე და მის გარეთ. ეს ფუნქციები საშუალებას გაძლევთ გადაახვიოთ ტექსტი ერთ ხაზზე და არ მოითხოვოს მთლიანი ეკრანის გადახვევა ფუნქციების მსგავსად, scrollDisplayLeft () და scrollDisplayRight ().

ეს გადახვევის უნარი საშუალებას გვაძლევს წარმოვადგინოთ ხაზები უფრო დიდხანს, რისი ჩვენებაც ჩვეულებრივ ეკრანზე შეუძლია. ანუ, 1602 ეკრანისთვის ჩვენ არ ვზღუდავთ მხოლოდ 16 სიმბოლოს თითო სტრიქონში (თუმცა მხოლოდ 16 გამოჩნდება ერთდროულად), ხოლო 2004 წლისთვის ჩვენ არ შემოვიფარგლებით 20 სიმბოლოზე.

გარდა ამისა, შეიძლება დაგჭირდეთ გრაგნილებს შორის ჩვენების დროის მორგება თქვენს საჭიროებებზე.

ნაბიჯი 4: შემდეგ

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

თუ გსურთ დამიკავშირდეთ რაიმე კითხვებით ან დამატებითი ინფორმაციისთვის, ან გააფართოვოთ ჩემი ცოდნა წარმოდგენილ სფეროში, შემიძლია მივიღო [email protected]. (გთხოვთ, შეცვალოთ მეორე 'i' 'e', რომ დამიკავშირდეთ.

გირჩევთ: