Arduino Eğitim Kiti – Tüm Yıl İçin Arduino Müfredatı: Ders 25 Gece Lambası – Güncel Saat Bilgisini LCD Ekranda Paylaşma 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:

Gece Lambası – Güncel Saat Bilgisini LCD Ekranda Paylaşma

 

Ders Kazanımları:

  • Gece Lambası programını yardım almadan başarılı bir şekilde tasarlar.
  • Güncel Saat Bilgisini LCD Ekranda Paylaşma programını yardım almadan başarılı bir şekilde tasarlar.

Oluşabilecek Hatalar:

Aşağıdaki 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.


Uygulama 1: Gece Lambası

 

Kullanılacak Malzemeler:

Bağlantı Şeması:

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

 

  1. Arduino üzerindeki 5V pini breadboard üzerinde “+” hatta, GND pini ise yine breadboard üzerinde “-” hatta bağlanır.
  2. LEDlerin kısa bacakları “-” hatta bağlanır.
  3. LEDlerin uzun bacaklarına dirençler bağlanır.
  4. Dirençlerin bacakları ise sırasıyla Arduino Uno üzerinde 9, 10, 11, 12 nolu pinlere bağlanır.
  5. LDR sensör ise şekildeki gibi bağlandıktan sonra bir bacağı “+” hatta bağlanır.
  6. Diğer bacağına ise şekildeki gibi direnç “-” hatta bağlanacak şekilde bağlanır.
  7. Direncin olduğu hizada jumper kablo yardımıyla Arduino Uno’nun A0 pini ile bağlantı kurulur.

Kodlar:

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

// bağlanan pinlerin tanımlanması
const int ldrPin = A0; // LDR pini Analog0 pinine bağlanır.
const int ledPin1 = 12;
const int ledPin2 = 11;
const int ledPin3 = 10;
const int ledPin4 = 9;
// Algılanan ışığın eşik değerleri tanımlandı
int ldrValue = 0; // LDR sensörünün başlangıç değeri 0
int ldrlevel1=600; //Algılanan ışık seviyelerinin kademelendirilmesi
int ldrlevel2=700;
int ldrlevel3=750;
int ldrlevel4=800;
void setup() {
// ledlere çıkış sinyali tanımlanması
Serial.begin(9600);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
}
void loop() {
ldrValue = analogRead(ldrPin); // ldr den okunan değerin ldrValue
//değişkenine atanması
Serial.println(ldrValue);
// eğer ldrValue değeri ldrlevel1 den küçük ise 4 numaralı pini yak
if (ldrValue < ldrlevel1) {
digitalWrite(ledPin4, HIGH);
}
// eğer ldrValue değeri ldrlevel2 den küçük ise 4 söndür ve 3 numaralı pini yak
else if (ldrValue < ldrlevel2) {
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin3, HIGH);
}
// eğer ldrValue değeri ldrlevel3 den küçük ise 3 söndür 2 nolu pini yak
else if (ldrValue < ldrlevel3) {
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin2, HIGH);
}
// eğer ldrValue değeri ldrlevel4 den küçük ise 2 nolu pini söndür 1 numaralı pini yak
else if (ldrValue < ldrlevel4) {
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin1, HIGH);
}
else {
digitalWrite(ledPin1, LOW);
}
}

  • Yukarıdaki bağlantı yapıldığında ve kodlar Arduino Uno’ya yüklendiğinde çalışma tamamlanmış olacaktır.
  • Bu uygulama da LDR sensör ortamdaki ışık seviyesini algılayacaktır.
  • Işık seviyesi azaldıkça yanan LED sayısı artacaktır.

 

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 düşük 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 15. derste tarif edildiği şekilde bulabilirsiniz.)


Uygulama 2: Güncel Saat Bilgisini LCD Ekrandan Paylaşma

 

Kullanılacak Malzemeler:

Bağlantı Şeması:

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

  1. Arduino üzerindeki 5V pini breadboard üzerinde “+” hatta, GND pini ise yine breadboard üzerinde “-” hatta bağlanır.
  2. Arduino Uno üzerindeki A4 pininden erkek-erkek kablo yardımıyla breadboard üzerinde bir dikey hatla bağlantı kurulur.
  3. Arduino Uno üzerindeki A5 pininden erkek-erkek kablo yardımıyla breadboard üzerinde başka bir dikey hatla bağlantı kurulur.
  4. LCD ekranın bacakları aşağıdan yukarıya doğru sırasıyla “-” hatta, “+” hatta, A4’ün bağlı olduğu sıraya, A5’in bağlı olduğu sıraya bağlantı kurulur.
  5. RTC modülün VCC hattı “+” hatta, GND hattı “-” hatta, SDA pini A4’ün bağlı olduğu sıraya, SCL pini ise A5’in bağlı olduğu sıraya bağlanır.

Kodlar:

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

#include <LiquidCrystal_I2C.h> //I2C modülün kütüphanesi
#include <Wire.h>
#include "RTClib.h"//RTC modül kütüphanesinin tanımlanması
LiquidCrystal_I2C lcd(0x27,16,2); //lcd ekran özellikleri
RTC_DS1307 RTC;
void setup() {
Wire.begin();
RTC.begin();
lcd.begin();
if (! RTC.isrunning()) //RTC çalışmıyorsa
lcd.print("RTC Çalışmıyor");
lcd.setCursor(0,0);
lcd.print("Saat ve Tarih");
lcd.setCursor(0,1);
lcd.print("Bilgisi");
delay(3000);
lcd.clear();
RTC.adjust(DateTime(2018,11,12,12,8,30));//güncel saat bilgisi ayarı
}
void loop() {
DateTime now=RTC.now();
lcd.setCursor(0,0);
lcd.print("Tarih:"); //tarih bilgilerinin yazılması
lcd.print(now.day(), DEC);//gün bilgisinin yazılması
lcd.print("/");
lcd.print(now.month(),DEC);//ay bilgisinin yazılması
lcd.print("/");
lcd.print(now.year(), DEC);//yıl bilgisinin yazılması
lcd.print(" ");
lcd.setCursor(0,1);
lcd.print("saat: "); //saat bilgilerinin yazılması
if (now.hour()<10) //eğer saat 10dan küçükse
lcd.print("0"); //0 yaz
lcd.print(now.hour(),DEC); //şuanki saati yaz
lcd.print(":");
if(now.minute()<10) //eğer dakika 10dan küçükse
lcd.print("0"); //0 yaz
lcd.print(now.minute(), DEC);//şuanki dakikayı yaz
lcd.print(":");
if(now.second()<10) //eğer saniye 10dan küçükse
lcd.print("0"); //0 yaz
lcd.print(now.second(), DEC); //şuanki saniyeyi yaz
}

  • Yukarıdaki bağlantı yapıldığında ve kodlar Arduino Uno’ya yüklendiğinde çalışma tamamlanmış olacaktır.
  • Bu uygulamada güncel saat ve tarih bilgisi LCD ekranda görülecektir.

CEVAP VER

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