Hər bir radio həvəskarı sadə bir DIY işindən sonra sensorlar və düymələrdən istifadə edərək möhtəşəm bir şey qurmaq məqsədinə gəlir. Axı, məlumatları ekranda göstərmək port monitorundan daha maraqlıdır. Ancaq sonra sual yaranır: hansı ekranı seçmək lazımdır? Və ümumiyyətlə, onu necə bağlamaq olar, qoşulmaq üçün nə lazımdır? Bu sualların cavabları bu məqalədə müzakirə olunacaq.
LCD 1602
Displeylər arasında bir çox seçimlər arasında HD4478 nəzarətçisinə əsaslanan LCD1602 displeyini qeyd etmək istərdim. Bu displey iki rəngdədir: mavi fonda ağ hərflər, sarı fonda qara hərflər. LCD 1602-nin Arduino-ya qoşulması da heç bir problem yaratmayacaq, çünki daxili kitabxana var və əlavə bir şey yükləməyinizə ehtiyac yoxdur. Displeylər təkcə qiymətinə görə deyil, həm də ölçülərinə görə fərqlənir. Çox vaxt radio həvəskarları 16-dan istifadə edirlərx 2, yəni 16 simvoldan ibarət 2 sətir. Ancaq 20 x 4 də var, burada 20 simvoldan ibarət 4 sətir var. Ölçülər və rənglər lcd 1602 displeyini Arduno-ya qoşmaqda heç bir rol oynamır, eyni şəkildə birləşdirilir. Baxış bucağı 35 dərəcə, ekranın cavab müddəti 250 ms-dir. -20 ilə 70 dərəcə arasında olan temperaturda işləyə bilər. İşləyərkən ekran üçün 4 mA və arxa işıq üçün 120 mA istifadə edir.
Harada istifadə olunur?
Bu displey təkcə radio həvəskarları arasında deyil, həm də böyük istehsalçılar arasında populyarlığa malikdir. Məsələn, printerlər, qəhvə maşınları da LCD1602-dən istifadə edir. Bu, aşağı qiymətə görədir, bu ekran Çin saytlarında 200-300 rubla başa gəlir. Oradan almağa dəyər, çünki mağazalarımızda bu displey üçün marjalar çox yüksəkdir.
Arduino-ya qoşulun
LCD 1602-nin Arduino Nano və Uno-ya qoşulması fərqli deyil. Displeylə iki rejimdə işləyə bilərsiniz: 4 bit və 8. 8 bitlik displeylə işləyərkən həm aşağı, həm də yuxarı bitlər, 4 bitlikdə isə yalnız aşağı olanlar istifadə olunur. 8-bit ilə işləmək üçün xüsusi bir məqam yoxdur, çünki qoşulmaq üçün daha 4 kontakt əlavə olunacaq, bu məqsədəuyğun deyil, çünki sürət daha yüksək olmayacaq, ekran yeniləmə limiti saniyədə 10 dəfədir. Ümumiyyətlə, lcd 1602-ni Arduino-ya qoşmaq üçün çoxlu naqillərdən istifadə olunur ki, bu da bəzi narahatlıqlara səbəb olur, lakin xüsusi qalxanlar var, lakin daha sonra bu haqda. Fotoda displeyin Arduino Uno ilə əlaqəsi göstərilir:
Kod nümunəsi:
daxildir //Tələb olunan kitabxananı əlavə edin LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) etibarsız quraşdırma(){ lcd.begin(16, 2); // Ekran ölçüsünü təyin edin lcd.setCursor(0, 0); // Kursoru 1-ci sətirin əvvəlinə qoyun lcd.print("Salam, dünya!"); // Mətni göstərin lcd.setCursor(0, 1); // Kursoru 2-ci sətrin əvvəlinə qoyun lcd.print("fb.ru"); // Çıxış mətni } void loop(){ }
Kod nə edir? İlk növbədə, displeylə işləmək üçün kitabxana bağlanır. Yuxarıda qeyd edildiyi kimi, bu kitabxana artıq Arduino IDE-yə daxil edilmişdir və onu əlavə olaraq yükləmək və quraşdırmaq lazım deyil. Sonra, pinlərə qoşulan kontaktlar müəyyən edilir: müvafiq olaraq RS, E, DB4, DB5, DB6, DB7. Sonra ekran ölçüsü təyin olunur. 16 simvol və 2 sətirdən ibarət versiya ilə işlədiyimiz üçün belə dəyərlər yazırıq. Kursoru birinci sətrin əvvəlinə qoyuruq və ilk mətnimizi Hello World ekranına gətiririk. Sonra kursoru ikinci sətirə qoyun və saytın adını göstərin. Hamısı budur! lcd 1602-nin Arduino Uno-ya qoşulması nəzərdən keçirildi.
I2C nədir və nə üçün lazımdır?
Yuxarıda qeyd edildiyi kimi, ekranı birləşdirmək çoxlu sancaqlar tələb edir. Məsələn, bir çox sensorlar və LCD displeylə işləyərkən 1602 kontaktları sadəcə kifayət olmaya bilər. Çox vaxt radio həvəskarları kontaktların çox olmadığı Uno və ya Nano versiyalarından istifadə edirlər. Sonra insanlar xüsusi qalxanlarla çıxdılar. Məsələn, I2C. Bu, ekranı cəmi 4 pinlə birləşdirməyə imkan verir. Bu, iki dəfə azdır. I2C modulu hər ikisi ayrıca satılır, burada onu özünüz lehimləməlisiniz və artıq lehimlənmişdir. LCD displey 1602.
I2C modulu ilə əlaqə
LCD 1602-nin Arduino Nano-ya I2C ilə qoşulması az yer tutur, yalnız 4 pin: torpaq, güc və 2 məlumat çıxışı. Arduino-da müvafiq olaraq güc və zəmini 5V və GND-yə bağlayırıq. Qalan iki kontakt: SCL və SDA istənilən analoq pinlərə qoşulur. Fotoda siz lcd 1602-ni I2C modulu ilə arduino-ya qoşmaq nümunəsini görə bilərsiniz:
Proqram kodu
Modulsuz displeylə işləmək üçün yalnız bir kitabxanadan istifadə etmək lazım idisə, modulla işləmək üçün iki kitabxana lazımdır. Onlardan biri artıq Arduino IDE - Wire-dadır. Başqa bir kitabxana, LiquidCrystal I2C, ayrıca endirilməli və quraşdırılmalıdır. Kitabxananı Arduino-da quraşdırmaq üçün yüklənmiş arxivin məzmunu Kitabxanaların kök qovluğuna yüklənməlidir. I2C istifadə edərək kod nümunəsi:
include include LiquidCrystal_I2C lcd(0x27, 16, 2); // Displeyi qurun void setup() { lcd.init(); lcd.backlight();// Ekranın arxa işığını yandırın lcd.print("FB.ru"); lcd.setCursor(8, 1); lcd.print("LCD 1602"); } void loop() { // Kursoru ikinci sətirə və boş simvola təyin edin. lcd.setCursor(0, 1); // Arduino işə salındıqdan sonra saniyələrin sayını çap edin lcd.print(millis()/1000); }
Gördüyünüz kimi kod demək olar ki, eynidir.
Öz simvolumu necə əlavə edə bilərəm?
Bu displeylərlə bağlı problem ondadır ki, yoxdurkiril və simvollara dəstək. Məsələn, ekrana bəzi simvol yükləməlisiniz ki, onu əks etdirə bilsin. Bunun üçün displey 7-ə qədər simvolunuzu yaratmağa imkan verir. Cədvəli təqdim edin:
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 olarsa - orada heç nə yoxdur, 1 olarsa - kölgəli sahədir. Yuxarıdakı nümunədə siz "gülümseyən gülüş" personajının yaradılmasını görə bilərsiniz. Arduino-da nümunə proqramdan istifadə edərək, belə görünəcək:
include include // Tələb olunan kitabxananı daxil edin // Təbəssüm simvolu bit maskası bayt təbəssümü[8]={ B00010, B00001, B11001, B00001, B11001, B00001, B00010,}; LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) etibarsız quraşdırma(){ lcd.begin(16, 2); // Ekran ölçüsünü təyin edin lcd.createChar(1, smile); // 1 nömrəli simvol yaradın lcd.setCursor(0, 0); // Kursoru 1-ci sətirin əvvəlinə qoyun lcd.print("\1"); // Gülüşü göstərin (1 nömrəli simvol) - "\1" } boş döngə(){ }
Gördüyünüz kimi yaradılmışdırbit maskası cədvəllə eynidir. Yaradıldıqdan sonra ekrana dəyişən kimi çıxarıla bilər. Yaddaşda yalnız 7 simvolun saxlanıla biləcəyini unutmayın. Prinsipcə, bu kifayətdir. Məsələn, dərəcə simvolunu göstərmək istəyirsinizsə.
Ekranın işləmədiyi problemlər
Ekranın işləmədiyi vaxtlar olur. Məsələn, açılır, lakin simvolları göstərmir. Və ya ümumiyyətlə açılmır. Əvvəlcə kontaktları düzgün birləşdirdiyinizə baxın. Əgər əvvəllər lcd 1202-ni Arduino-ya I2C olmadan qoşurdunuzsa, o zaman naqillərə qarışmaq çox asandır, bu da displeyin səhv işləməsinə səbəb ola bilər. Siz həmçinin ekran kontrastının artırıldığından əmin olmalısınız, çünki minimum kontrastda LCD 1602-nin aktiv olub-olmaması belə görünmür. Bu kömək etmirsə, bəlkə də problem kontaktların lehimində ola bilər, bu, I2C modulundan istifadə edərkəndir. Həmçinin, ekranın işləməməsinin ümumi səbəbi I2C ünvanının səhv təyin edilməsidir. Fakt budur ki, bir çox istehsalçı var və onlar fərqli bir ünvan təyin edə bilərlər, onu burada düzəltmək lazımdır:
LiquidCrystal_I2C lcd(0x27, 16, 2);
Mötərizədə siz iki dəyər görə bilərsiniz, 0x27 və 16, 2 (16, 2 ekran ölçüsüdür, 0x27 isə sadəcə I2C ünvanıdır). Bu dəyərlərin yerinə 0x37 və ya 0x3F qoymağa cəhd edə bilərsiniz. Başqa bir səbəb sadəcə olaraq nasaz LCD 1602-dir. Nəzərə alsaq ki, Arduino üçün demək olar ki, hər şey Çin istehsalıdır, siz 100% əmin ola bilməzsiniz ki, satın alınanməhsul qüsurlu deyil.
LCD 1602 müsbət və mənfi cəhətləri
Gəlin LCD 1602-nin müsbət və mənfi cəhətlərinə baxaq.
Pros
- Qiymət. Bu modulu Çin mağazalarında çox sərfəli qiymətə almaq olar. Qiymət 200-300 rubl. Bəzən hətta I2C modulu ilə satılır.
- Qoşulmaq asandır. Yəqin ki, bu günlərdə heç kim LCD 1602-ni I2C olmadan birləşdirmir. Və bu modulla əlaqə yalnız 4 pin götürür, naqillərin "torları" olmayacaq.
- Proqramlaşdırma. Hazır kitabxanalar sayəsində bu modulla işləmək asandır, bütün funksiyalar artıq qeydiyyatdan keçib. Xarakterinizi əlavə etmək lazımdırsa, bu, cəmi bir neçə dəqiqə çəkir.
Eksiklikler
Minlərlə radio həvəskarının istifadə etdiyi müddət ərzində heç bir böyük mənfi cəhət müəyyən edilməmişdir, yalnız nikah almaq halları var, çünki əsasən Çin ekran seçimlərindən istifadə olunur
Bu məqalə LCD 1602 displeyini Arduino-ya necə qoşmağı müzakirə etdi və həmçinin bu displeylə işləmək üçün nümunə proqramları təqdim etdi. O, həqiqətən öz kateqoriyasında ən yaxşılardan biridir, təkcə minlərlə radio həvəskarının onu layihələri üçün seçməsi deyil!