Arduino Eğitim Kiti – Tüm Yıl İçin Arduino Müfredatı: Ders 15 Arduino Uno ve Ana Bileşenler için isterseniz sunu şeklinde alt taraftaki kutucuğu büyüterek takip edebilir, isterseniz de tüm sunu sayfalarının makale haline dönüştürülmüş versiyonu takip edebilirsiniz. İçerikler büyük oranda aynıdır. Sınıf ortamında kolaylık olması açısından sunu şeklinde de sunulmuştur.

Ders İçeriği:

Arduino Uno ve Ana Bileşenler.

Ders Kazanımları:

  • LCD ekranın özelliklerini açıklar.
  • I2C modülün kulanılma sebebi ve bağlantı şeklini açıklar.
  • LCD ekran uygulamasını yardım almadan doğru şekilde çalıştırır.

Arduino Uno:

  • Arduino’yu önceki derslerde yakından tanımıştık.Şimdi Ana bileşenler ‘i tanıyacağız.
  • Burada set içerisindeki Arduino Uno’dan basitçe bir kez daha bahsedeceğiz.
  • Arduino Uno ile öğrenciler de profesyoneller de çok detaylı programlama ve elektronik bilgiye sahip olmadan, temel bilgiler ile hobi amaçlı, eğitim amaçlı veya profesyonel anlamda projeler yapabilirler.
  • Arduino Uno ile LED yakıp söndürmek gibi en temel uygulamalardan drone, robot, akıllı ev otomasyonu, hırsız alarm sistemi, park sensörü gibi daha gelişmiş projeler de yapabilirsiniz.
resim 95

Resim 96


Arduino Uno USB Bağlantı:

  • Arduino’ya kodları yüklemek için USB girişinden bilgisayarın USB girişine kablosu yardımıyla kolayca bağlayabilirsiniz.
  • Arduino’nun üzerinde bulunan ve diğer bir giriş olan güç girişi ile de Arduino’yu ek bir kaynaktan beslemeye ihtiyaç duyduğunuzda pil yuvasına bağlayarak kullanabilirsiniz.

2X16 LCD Ekran:

  • LCD 1602 ekranı projelerinizde sensör verilerini görmek veya yazılar/sayılar yazdırmak için kullanabilirsiniz.
  • Uygulamalarınızda verilerinizi anlık olarak görmeniz, ölçümlerinizin doğruluğunu kontrol etmeniz açısından oldukça kullanışlıdır.
  • Ekran 16 sütun 2 satır oluşur
  • Arka ışığı mavidir. Yeşil olan modellerde mevcuttur.
  • 5V ile beslenir.
  • 4 bit veya 8 bit mikroişlemci arayüzü bulunur.
  • Aşağıda LCD Ekranın projelerde kullanıldığı şekilde temsili bağlantı şeması gösterilmiştir.
Resim97


1602 I2C Arayüz Modülü:

  • Bu arayüz modülü 2×16 LCD Ekranı Arduino’ya bağlarken oluşan kablo karmaşasını en aza indirmek için üretilmiştir.
  • Set içerisinde LCD ekrana lehimli şekilde bulunur fakat normal şartlarda ayrı şekilde satın alıp kendiniz lehimleyerek kullanabilirsiniz.
  • Bu bileşen sayesinde bağlantı 4 kabloya düşer ve işimiz oldukça kolaylaşır.
  • IIC/I2C/TWI/SPI seri arabirimi kullanır.
  • Besleme voltajı 2.5 – 6V dur.
  • Aşağıda I2C modülün Arduino bağlantısı gösterilmiştir.
Resim98

  • I2C protokolünü (senkron haberleşme türü) destekler.
  • Kontrast ayarı kart üzerinde vidalı potansiyometre ile minik bir tornavida yardımıyla ayarlanabilir.
  • Bu sayede LCD ekranınızın ayarlarını kontrol etmek için potansiyometre ile fazladan bir devre yapmanıza gerek kalmaz.
  • Bir proje tasarladığınızda verileriniz LCD ekranda görünmüyorsa buradaki potansiyometre yardımıyla ekranın kontrast ayarını yapınız.

1602 I2C Arayüz Modülü Adres Bulma:

  • Her arayüz modülünün kendine ait bir adresi vardır.
  • Bu adresi kod blokları içerisinde doğru bir şekilde belirtmeden LCD ekranda bilgi okunması mümkün değildir.
  • Şimdi arayüz adresinin nasıl bulunduğuna bakalım;
Resim98

  • Bir sonraki sayfadaki kodları sırasıyla Arduino programına yazın ve kodları Arduino Karta yükleyin.
  • Yükleme tamamlandıktan sonra serial ekranı çalıştırın.
  • Serial ekranda

“I2C device found at address 0x3F  !”

şeklinde bir uyarı alacaksınız.

  • Buradaki “0x3F” burada kullanılan I2C modülünün adresidir.

I2C modüllerin adresleri farklılık gösterebilir. Serial ekranda hangi adres belirdi ise onu kodların ilgili kısmına o adresi yazınız. Doğru bir şekilde yazmadığınız takdirde ekrandan bilgi okumanız mümkün değildir.

Kodlar:

#include <Wire.h>
void setup()
{
Wire.begin();
Serial.begin(9600);
while (!Serial);
Serial.println("\nI2C Scanner");
}
void loop()
{
byte error, address;
int nDevices;
Serial.println("Scanning…");
nDevices = 0;
for(address = 1; address < 127; address++ )
{
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0)
{
Serial.print("I2C device found at address 0x");
if (address<16)
Serial.print("0");
Serial.print(address,HEX);
Serial.println(" !");
nDevices++;
}
else if (error==4)
{
Serial.print("Unknown error at address 0x");
if (address<16)
Serial.print("0");
Serial.println(address,HEX);
}
}
if (nDevices == 0)
Serial.println("No I2C devices found\n");
else
Serial.println("done\n");
delay(5000);
}

Oluşabilecek Hatalar:

Aşağıda ki programları çalıştırırken bir takım hatalarla karşılaşabilirsiniz. Bu hataların kodların yazımında meydana gelen hatalar dışında başka sebeplerle ortaya çıkması muhtemeldir. Bu hatalardan sık karşılaşılanlara aşağıda değinilmiştir.

Kart Seçilmesinden Kaynaklı Hata:

Arduino kurulumu gerçekleştirildikten sonra araçlar menüsünden doğru kartın seçilmesi gerekmektedir. Kart seçilmediğinde “Karta yüklenirken bir sorun oluştu” benzeri bir hata alabilirsiniz.

USB Portun Seçilmesiyle İlgili Hatalar:

Arduino kurulumu gerçekleştirildikten sonra araçlar menüsünden doğru portun seçilmesi gerekmektedir. Bu port Arduino Uno’nun bilgisayara bağlandığı usb porttur. Farklı şekilde bilgisayarınızda usb driver yüklenmemiş olabilir.  Bu gibi hatalarda “port bulunamadı” gibi hatalar almanız muhtemeldir.

Uyarı !

Aşağıdaki programı tasarlayıp çalıştırdığınızda LCD ekranda sadece parlaklık varsa ve bilgi alamıyorsanız bunun sebebi LCD ekranın kontrast ayarının ayarlanmamış olması olabilir.

Bu ayar LCD ekranın arka kısmında (LCD ekranı yıldız tornavida ile sökmeniz gerekecek)  I2C modülünün üzerindeki potansiyometre ile yapılabilir. Tornavida yardımı ile potansiyometreyi çevirerek kontrast düzeyini ayarlayabilirsiniz.

Ayrıca kodları yazarken I2C modülün adresini kendi modülünüzün adresine göre düzeltmeyi unutmayın!

(I2C modülünüzün adresini bilmiyorsanız önceki slaytlarda tarif edildiği şekilde bulabilirsiniz.)


UYGULAMA 1: LCD Ekran “MERHABA DÜNYA”

Kullanılacak Malzemeler:

Bağlantı Şeması:

Bağlantılar şekildeki gibi yapılır.

Resim99

  • LCD ekran I2C modülü ile bütünleşik geldiği için bağlantısını yaptığınız modül I2C modülüdür.
  • LCD ekranın altındaki 4 pin aşağıdan yukarı doğru sırasıyla Arduino Uno üzerinde GND, 5V, A4, A5 pinlerine bağlanmaktadır.

**Modülün monte ediliş şeklinden dolayı pinlerin isimleri görünmemektedir. Yukarıda bahsedildiği şekilde bağlayamadığınız takdirde bir yıldız tornavida yardımıyla LCD Ekranı yerinden söküp pinlerin isimlerini göre bağlamayı deneyebilirsiniz.

Kodlar:

Uygulamanın “.ino” dosyasını (kod dosyasını) buradan indirebilirsiniz.

#include <LiquidCrystal_I2C.h> //kütüphane tanımlanması
LiquidCrystal_I2C lcd(0x3F,16,2);//I2C modülün adresi,satır sütun bilgileri
void setup()
{
lcd.begin();//lcd ekranın başlatılması
}
void loop()
{
lcd.setCursor(0,0);//ilk satır ilk sütuna
lcd.print("MERHABA DUNYA");// merhaba dünya yaz
delay(2000);//2000 mili saniye(2 saniye) bekle
lcd.clear();// ekranı temizle
//burası bir döngü olduğu için ekran temizlendikten sonra
//tekrar üstteki kodlar çalıştırılacak, yazı yazma işlemi tekrarlanacak.
}
  • Yukarıdaki bağlantı yapıldığında ve kodlar Arduino Uno’ya yüklendiğinde çalışma tamamlanmış olacaktır.
  • Bu uygulama, çalıştırıldığında LCD ekranda “Merhaba Dünya” yazdığı görülecektir.
  • Eğer hata alıyor veya veri okuyamıyorsanız I2C modülünüzün adresini güncelleyip güncellemediğinizi ve kontrast ayarını (I2C modülün arkasındaki pot yardımıyla) yaptığınızdan emin olun.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz