Tək LCD Xəttini sürüşdürün: 4 addım (şəkillərlə birlikdə)
Tək LCD Xəttini sürüşdürün: 4 addım (şəkillərlə birlikdə)
Anonim
Image
Image

Maye Kristal Kitabxanasının scrollDisplayLeft () və scrollDisplayRight () iki faydalı funksiyası var. Bu funksiyalar bütün ekranı sürüşdürür. Yəni hər iki sətri 1602 LCD -də, dörd sətrin hamısını 2004 -cü il LCD -də sürüşdürürlər. Tez -tez ehtiyac duyduğumuz şey, bütün ekranı sürüşdürməkdənsə, bu sətirlərə tək bir sətir sürüşdürmə qabiliyyətidir.

Bu Təlimat iki əlavə funksiyanı təmin edir: scrollInFromRight (mətni göstərmək üçün sətir, sürüşdürülən sətir) və scrollInFromLeft (mətni göstərmək üçün sətir, sürüşdürülməli olan sim). Təqdim etdiyim əvvəlki Instructable -dan iki funksiya ilə birlikdə xətləri LCD ekrana sürüşdürən bu iki funksiya var: scrollLineRight (mətni göstərmək üçün sətir, kaydırılacaq simli) və scrollLineLeft (mətni göstərmək üçün sətir, sürüşdürülməli olan sətir). xətləri ekrandan kənara çıxarmaq funksiyası bizə mətnin LCD ekranda necə təqdim oluna biləcəyini və ya ondan necə çıxarılacağını idarə etmək üçün bir neçə güclü yol təqdim edir.

Addım 1: Nə lazımdır

Əlaqə
Əlaqə

- 1602 və ya 2004 -cü il LCD ekran və ya LCD ekran

- 2004-cü il LCD displeyinin istifadəsi ilə bağlı aşağıdakı qeydə baxın

- Arduino UNO R3 və ya klon

- Arduino -nu kompüterə qoşmaq üçün USB kabeli

- Yarım ölçülü, 400 bağlama nöqtəsi, çörək taxtası

- Arduino IDE

- Təcrübə platforması (isteğe bağlı, lakin faydalı)

Lazım olan əşyalar ya 1602 və ya 2004 bir LCD ekrandır [2004 istifadə edilərsə, lcd.begin () funksiyasını dəyişdirərək sağda hərəkət etmək indi 20 xarakterli x 4 xətt istifadə etdiyinizi əks etdirmək üçün problemsiz işləyəcəkdir. göstərmək. [2004 -cü il ekranını istifadə edərək soldan daxil olmaq üçün crollInFromLeft () funksiyasının kodunun yenidən yazılması zəruridir]. LCD -yə əlavə olaraq Arduino -nu kompüterə bağlamaq üçün Arduino UNO və ya klon, Arduino IDE və USB kabelə ehtiyacınız olacaq.

Burada göstərilən müstəqil LCD əvəzinə bir LCD ekran istifadə edilə bilər. Əgər belədirsə, aşağıdakı eskizdəki LCD üçün pin təyinatlarının dəyişdirilməsi lazım olacaq.

- Müstəqil 1602 LCD ekran üçün eskizlərimdə aşağıdakı pin tapşırıqlarından istifadə etdim:

// LiquidCrystal (rs, imkan, d4, d5, d6, d7)

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

və LiquidCrystal.h Liquid Crystal kitabxanasına daxildir.

- LCD qalxanı üçün eskizlərimdə aşağıdakı pin tapşırıqlarından istifadə edirəm, həmçinin LiquidCrystal.h -ə Maye Kristal kitabxanası daxildir.

// LiquidCrystal (rs, imkan, d4, d5, d6, d7)

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

İstənilən marşrut kodu burada işlədəcək, yəni ya bir LCD ekran, ya da müstəqil bir LCD. Bu Təlimat kitabçasında 1602 müstəqil bir LCD ekran istifadə edildi, lakin qeyd edildiyi kimi, fərqli pin təyinləri nəzərə alınarsa 1602 ekran da istifadə edilə bilər.

Arduino UNO-nu yarım ölçülü, 400 bağlama nöqtəsinə, çörək taxtasına bağlamaq üçün "təcrübi platforma" dan istifadə etdim. ("Arduino UNO R3 üçün Eksperimental Platforma, İstifadəyə Necə Hazırlanmalı" adlı əvvəlki bir təlimat kitabına baxın). Bununla birlikdə, eksperimental bir platformaya ehtiyac yoxdur, baxmayaraq ki, mənim üçün LCD -ni UNO -ya bağlamağı daha asan və daha sürətli edir.

LCD -ni UNO -ya bağlamaq üçün istifadə etdiyim tapşırıqları yuxarıda görmək olar.

Addım 2: Bağlan

LCD bir çörək taxtasına qoşulur və sonra bağlama telləri çörək taxtasından Arduino üzərindəki müvafiq sancaqlara bağlanır (istifadə etdiyim bağlantılarla bağlı hər hansı bir sualınız varsa 2 -ci addıma baxın).

Mənim üçün daha məmnun olduğu üçün bu layihə üçün qalxan deyil, müstəqil bir LCD -yə üstünlük verdim və hansı pinlərin mövcud olduğunu asanlıqla görməyə imkan verdim. Tornavida ilə tənzimlənməli olan bir qalxanın potansiyometrindən çox, düyməsi olan bir potensiometrdən istifadə etməyimə də imkan verir.

Bağımsız LCD ayrı bir 10k ohm potansiyometrinin istifadəsini tələb edir. Yuxarıda qeyd edildiyi kimi, silecekinin üçüncü LCD pininə bağlı olduğu bir düymə istifadə etdim (LCD pinləri sizə baxan sağdan sayılır). Potensiometr LCD kontrastını idarə etmək üçün istifadə olunur. Bağlantılar 1602 və 2004 -cü illər üçün eynidır. Lakin LCD -nin 16 -dan 16 -ya dəyişdiyini göstərmək üçün lcd.begin (16, 2) ifadəsinin lcd.begin (20, 4) olaraq dəyişdirilməsi lazımdır. xarakteri iki sətirdən 20 simvoldan dörd sətrə qədər.

Əlavə edilmiş fotoşəkillərə nəzər salanda, təcrübə platforması və 10k potensiometr də daxil olmaqla istifadə etdiyim əlaqə göstərilir.

Addım 3: Eskiz

Eskiz
Eskiz
Eskiz
Eskiz
Eskiz
Eskiz

Əlavə edilmiş eskizi Arduino IDE -yə daxil edin. Nəzərə alın ki, Təlimat verilə bilən sayt tez -tez işarələrdən böyük və kiçik olanları və aralarındakı mətni silir. Beləliklə, əmin olun və #LiquidCrystal.h daxil edin və LiquidCrystal.h sözlərini simvollardan böyük və kiçikdən əlavə edin.

// Simvolların LCD ekrana keçməsi üçün eskiz

#include // Mətndə bura ehtiyac duyulan şeyə baxın, yəni içərisində LiquidCrystal.h

// simvollardan böyük və kiçik

// Bu sayt tez -tez simvolları və aralarındakı mətni böyük və kiçikdən çox silir

// LiquidCrystal (rs, imkan, d4, d5, d6, d7)

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

// lcd -ni LiquidCrystal Obyekti elan edin

int i = 0;

int j = 0;

int k = 0;

int delayTime2 = 350; // Növlər arasında gecikmə

void scrollInFromRight (int line, char str1 ) {

// Müəllif R. Jordan Kreindler İyun 2016

i = strlen (str1);

üçün (j = 16; j> = 0; j--) {

lcd.setCursor (0, xətt);

üçün (k = 0; k <= 15; k ++) {

lcd.print (""); // Sil xətt

}

lcd.setCursor (j, xətt);

lcd çapı (str1);

gecikmə (delayTime2);

}

}

void scrollInFromLeft (int line, char str1 ) {

// Müəllif R. Jordan Kreindler İyun 2016

i = 40 - strlen (str1);

xətt = xətt - 1;

üçün (j = i; j <= i+16; j ++) {

üçün (k = 0; k <= 15; k ++) {

lcd.print (""); // Sil xətt

}

lcd.setCursor (j, xətt);

lcd çapı (str1);

gecikmə (delayTime2);

}

}

boş quraşdırma () {

Serial.begin (9600);

Serial.println ("Test başlayır…");

lcd.begin (16, 2);

lcd.clear ();

lcd.print ("Yalnız Test");

}

boşluq döngəsi () {

lcd.clear ();

scrollInFromRight (0, "Sağdan Line1");

scrollInFromRight (1, "Sağdan Line2");

lcd.clear ();

scrollInFromLeft (0, "Soldan Line1");

scrollInFromLeft (1, "Soldan Line2");

lcd.clear ();

scrollInFromRight (0, "Sağdan Line1");

scrollInFromLeft (1, "Soldan Line2");

lcd.clear ();

}

İki funksiya: scrollInFromRight (mətni göstərmək üçün sətir, sürüşdürülməli olan sətir) və scrollInFromLeft (mətni göstərmək üçün sətir, sürüşdürülməli olan simli) LCD ekranın üzərinə sürüşən xətləri idarə etmək üçün eskizinizə köçürülə bilər. Bu funksiyalar yeni mətni ekrana köçürmək üçün zərif bir yol təqdim edir.

"Bir LCD xəttini sola və ya sağa sürüşdürün, Necə Yapılır" Təlimatçılığında olan eskizdəki iki funksiya ilə birləşdirildikdə, dörd funksiya mətni LCD ekranın üzərinə və kənarına sürüşdürmək üçün zərif yollar təqdim edir. Bu funksiyalar mətni bir anda bir sətirdə sürüşdürməyə imkan verir və bütün ekranın scrollDisplayLeft () və scrollDisplayRight () funksiyalarında olduğu kimi sürüşməsini tələb etmir.

Bu sürüşmə qabiliyyəti, ekranın normal göstərə biləcəyi sətirləri daha uzun müddət təqdim etməyə imkan verir. Yəni, 1602 ekran üçün hər sətirdə yalnız 16 simvolla məhdudlaşmırıq (baxmayaraq ki, bir anda yalnız 16 göstəriləcək) və 2004 -cü ildə hər sətirdə 20 simvolla məhdudlaşmamışıq.

Bir kənara, ehtiyaclarınıza uyğun olaraq kaydırmalar arasında ekran müddətini tənzimləmək istəyə bilərsiniz.

Addım 4: Daha sonra

Bütün bunlar var. Bu funksiyalar və əvvəlki Təlimatımdan ikisi, LCD istifadə edən və mətni göstərən hər hansı bir eskizə əlavə edilə bilər. Qeyd edildiyi kimi, daha uzun xətləri istifadə etmək qabiliyyəti, sürüşdürmə vasitəsi ilə mümkün olan müəyyən bir faydadır.

Hər hansı bir sualınız və ya əlavə məlumat üçün mənimlə əlaqə saxlamaq və ya təqdim olunan sahədə biliklərimi genişləndirmək istəyirsinizsə, mənə [email protected] ünvanından müraciət edə bilərsiniz. (mənimlə əlaqə saxlamaq üçün zəhmət olmasa ikinci 'i' hərfini 'e' ilə əvəz edin.