Ana səhifə Elektronika 16×2 LCD qurulumu və Arduino ilə işə salınması

16×2 LCD qurulumu və Arduino ilə işə salınması

578

Layihələrdə bəzi sensorlardan gələn siqnalları ekranda görüntüləmək üçün 16X2 LCD modulundan istifadə edilir. Adını üzərindəki xanalardan alan bu ekran iki sətir və 16 xanadan ibarətdir. Hər xana isə 8 sıra 6 sütundan meydana gəlir.

Şəkil 1
Şəkil 2

Bu modulların 8×1, 8×2, 10×2, 16×4, 16×1, 20×4 və s. modelləri də var. Bütün modellər Hitachi firmasının LCD kontrolleri HD44780 ilə çalışdığı üçün eyni məntiqlə işləyir. Arduino developerləri bu kontroller üçün kitabxana işləyib hazırlayıb kod bazasına da əlavə etdikləri üçün Arduino-da daha asan istifadə edilir. Biz bu məqalədə əlimizdə olan 16×2 modeli ilə misal göstərəcəyik.

Ekranın quruluşu ilə tanış olduqdan sonra giriş pinlərinə keçid alaq. Şəkildə sizin üçün pin çıxışlarını və açıqlamalarını da şəkildən sonra qeyd etdim.

Şəkil 3

GND – Ekranın işə düşməsi üçün mənfi ayağıdır. Arduinonun torpaqlama pininə yaxud kənardan qidalanma varsa o blokun mənfi ayağına bağlanır. Əgər Arduino ilə qoşuruqsa kənar qida blokunun mənfisini Arduino-nun GND-si(Şəkil 5) ilə Şəkil 4-də göstərilən kimi birləşdirin.

VCC – Ekranın işə düşməsi üçün müsbət ayağı. Bu Arduino-nun 5V(Şəkil 5) ayağına yaxud kənar 5V qida blokuna(Şəkil 4) bağlana bilər.

Şəkil 4
Şəkil 5

Güc bağlantılarından sonra ekran artıq işə düşür və proqramlanmağa hazır vəziyyətə gəlir.

Vo (LCD Contrast) – Ekranın kontrastını azaldıb çoxaltmaq üçündür. Bu ayağı bir potensiometr ilə qoşub ekrandakı simvolların aydın görsənməsi üçün ayarlaya bilərsiniz.

RS (Register Select) – Əmr reyesteri ilə data reyesteri arasında keçid etmək pinidir. RS Pini LOW (0) olduğunda əmr reyesterini seçir, RS Pini HIGH (1) olduğunda data reyesterini seçir.

R/W (Read/Write) – Pini LCD-dən məlumatları oxumağa və ya LCD-yə məlumat yazmağa imkan verir. R/W Pininə LOW (0) dəyərini göndərərsək Yazma əməliyyatını, HIGH (1) göndərərsək Okuma əməliyyatını yerinə yetirir

En (Enable) – Pin ekranı aktivləşdirmək üçün istifadə olunur. Bu pin LOW təyin edildikdə, LCD R/W, RS və məlumat xətlərində baş verənlərə əhəmiyyət vermir. Bu pin HIGH olaraq təyin edildikdə, LCD daxil olan məlumatları emal edir.

7 – 14 (Data Bus) – 7-dən 14-ə qədər olan pinlərlə LCD-yə əmr və data göndərilir. Pinlər ekrana göndərdiyimiz 8 bitlik məlumatları daşıyır. Məsələn, ekranda böyük hərf ‘A’ simvolunu görmək istəyiriksə, bu pinləri 0100 0001 (ASCII cədvəlinə uyğun olaraq) təyin edirik.

A-C (Anode & Cathode) – Pinlər LCD-nin arxa işığını idarə etmək üçün istifadə olunur. Anode müsbət, Cathode isə mənfi ayaqdır. Qoşulma zamanı Anode ayağında 220 Ohm dəyərində rezistor istifadə edin ki, arxa işıqlandırma LED-ləri yanmasın.

Şəkil 6

QEYD|| 16×2 LCD modulumuzun arxasındakı bu iki qara dairə kontroller ilə ekran arasında körpü rolunu oynayır. Yuxarıda qeyd etdiyimiz kimi ekran 16×2=32 simvoldan ibarətdir və hər simvolu 8×5=40 piksel əmələ gətirir. Nəticədə 40×32=1280 pixel ibarət bir LCD üçün pixsellərin dülüş yerləri haqqında məlumat vermək lazım olur. İstifadə etdiyimiz mikrokontroller vasitəsilə bu cür işləri görməyə çalışsaq, əlimizdə olan kontroller məlumat trafikini çatdırmaya bilər. Bu cür halların baş verməməsi üçün HD44780 kontrollerini istifadə edirik.

Avadanlıq hissəsi ilə tanış olduq. İndi isə kiçik bir kod yazaq və işə salaq.

// Kitabxananın çağırılması:
#include <LiquidCrystal.h>

// LCD obyekti yaradılır və parametrlər verilir: (rs, enable, d4, d5, d6, d7)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() 
{
	// LCD sətir və sütun sayları qeyd edilir:
	lcd.begin(16, 2);

	// Ekran təmizlənir
	lcd.clear();
}

void loop() 
{
	// Ekranda yazı yazılması.
	lcd.print(" Salam TEST!");

	// set the cursor to column 0, line 1
	// (note: line 1 is the second row, since counting begins with 0):
	lcd.setCursor(0, 1);
	// Print a message to the LCD.
	lcd.print(" LCD isledi");
}