Serial I2C 16×2 Karakter LCD Modül kullanımı

400px-1602I2C_2

Merhabalar;

 

Bu yazımda Serial I2C LCD modülünü tanıtıp,anlatacağım.Öncelikle ben lcd kullanmanız gereken projelerinizde Serial lcd kullanmanızı tavsiye ederim. Bunun sebebi gereksiz pin kalabalığından kurtulmanızdır.Ayrıca PCM1602B LCD’ de pinleri lehimlemekle uğraşacaksınız. Serial lcd bunların hepsini ortadan kaldırdığı için projelerinizde Serial lcd kullanmanızı tavsiye ediyorum.

Pinler:
1602I2C_table

Yukarıdaki tabloda Serial LCD nin pinleri ve arduinoda hangi pinlere bağlanacağı verilmiştir.Bu tabloya ilaveten Serial LCD nin arkasında parlaklık ayarı yapabileceğiniz bir trimpot bulunmaktadır.

Not: Arduino pinleri üzerinde SDA ve SCL ifadesi göremezsiniz Arduinonun arkasında yazılmıştır bu pinler bunlar Arduino Unoda A4 VE A5 pinleridir. Her arduino çeşidi için farklılık gösterebilir.

Bağlantı şeması:

i2c_03

Yazılım:

İlk olarak I2C LCD kütüphanesini include etmeniz gerekir.I2C LCD kütüphanesini buradan indirebilirsiniz.

Ekrana Hello World yazdırma:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>  // I2C kütüphanesini verdiğim linkten indirip   include edebilirsiniz
LiquidCrystal_I2C lcd(0x27,16,2); 
void setup()
{
 lcd.init();                      // LCD yi başlatma

 lcd.backlight();                 // lcd nin arka ışıgını açar
 lcd.print("Hello, world!");      // LCD ye Hello,world! yazdırıyoruz.
}
void loop()
{
}

Şimdi de kütüphanenin desteklediği kullanabileceğiniz fonksiyonları yazalım ve ne işe yaradığından bahsedelim;

  • init() //LCD yi başlatır.
  • clear() //LCD ekranını temizler
  • home() //imleci 0 Konumuna getirir.
  • setCursor() //imlecin konumunu ayarlamaya yarar
  • cursor() //Alt çizgili imleç açar
  • noCursor() //Alt çizgi imlecini kapar
  • blink() //Yanıp sönen imleç açar
  • noBlink() //Yanıp sönen imleci kapar
  • display() //Ekranı açar
  • noDisplay() //Ekranı kapar
  • backlight() //Arka planın ışığını açar
  • noBacklight() //Arka planın ışığını kapar
  • scrollDisplayLeft() //Sol ekranda kaydırma yapar
  • scrollDisplayRight() //Sağ ekranda kaydırma yapar

Şimdi Serial LCD yi bir projede kullanalım.Elimizde bir joystick var ve bu joystick ile servo motorumuzun hareketini kontrol ediyoruz. Servo motorumuzun ucunda ise ultrasonik sensör var.Ultrasonik sensör servo motorun hareketi ile etrafı tarıyor ve etrafındaki cisimlerin uzaklığını Serial LCD ye yazdırıyor. Hadi şimdi koda bakalım;

#include<Servo.h>
#include<LiquidCrystal_I2C.h> // İnclude etmemiz gerek lcd kütüphanesi
#include<Wire.h>

int servo=3;
int servoDeger;
int xPin=A0;
int trigPin=4;
int echoPin=5;
int cm;
int uDeger;
int sclPin=A5; // Arduino Serial lcd pinleri
int sdaPin=A4;

LiquidCrystal_I2C lcd(0x27,16,2); // lcd nin adresini ve kaca kac lcd olduguu tanımladık.
Servo myservo;


void setup(){
	myservo.attach(servo);
	lcd.init(); // lcd yi başlatır.
	lcd.backlight(); // Arkaplan ışıgını aktif eder

	pinMode(trigPin,OUTPUT);
	pinMode(echoPin,INPUT);

	Serial.begin(9600);




}
void loop(){

	digitalWrite(trigPin,LOW);
	digitalWrite(trigPin,HIGH);
	digitalWrite(trigPin,LOW);
	uDeger=analogRead(echoPin);
	cm=uDeger/29/2; // cm cinsine çevirmek için gerekli matematiksel işlem
	


	Serial.print(analogRead(xPin));
    Serial.print ("---"); 


	servoDeger=analogRead(xPin); /*   Joystick'den aldıgımız veri ile servo kontolü */
	servoDeger=map(servoDeger,0,1023,0,180);

	myservo.write(servoDeger);
	delay(15);
	lcd.print(cm); // lcd ye uzaklığı cm cinsinden yazdırıyoruz
        lcd.clear(); // her deger okuduktan sonra lcd yi temizliyoruz.




}

Kullanılan servo motor : Servo SG90

Kullanılan LCD : Serial I2C 1602 16×2 Karakter  LCD modül

Kullanılan joystick : Keyes “SJoys” Joystick

Kullanılan ultrasonik sensör : Hc-Sr04 Ultrasonik sensör

 

 

 

22 Comments

Add a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir