29 Ocak 2016 Cuma

16x2 LCD ekran ile imtihan... vee Park Sensörü



Bir gece boyunca internetten araştırarak önce 1 ve 2. satırlara merhaba yazmak ile geçti. 
Her yerde ekrana potansiyometre bağlamışlar bir anlam verememiştim ben de bağlamamıştım :)
Meğerse potans ile ekran parlaklığını ayarlıyormuşuz :)

Hızımızı alamayıp ertesi gün PARK SENSÖRÜ yapmışız...

Aynı zamanda fritzing i keşfettik :)

Buyurun size Şema, Resimler ve kod :)
Şemayı elimdeki 16x2 lcd yi breadborda taktığım pinlere göre yaptım. İnternetteki resimler direk componentin bacaklarını işret etmiş. Sağ sola çevirmekten beynim bitti.
Ben de aşağıdaki gibi pinleri breadboarda referans edecek şekilde çizdim.


Kodlar : 

#include <LiquidCrystal.h> //Load Liquid Crystal Library

#define trigPin 3 //Sensörün Echo pini Arduinonun 13. pinine bağlanır
#define echoPin 2 //Sensorün Trig pini Arduinonun 12. pinine bağlanır
#define buzzer 4 //hoparlör 4. pinde
#define LCD_LIGHT_PIN 6 // LCD arka ışığı pini

LiquidCrystal lcd(7, 8, 9, 10, 11 , 12);

void setup() {
  pinMode(trigPin, OUTPUT); //3. yani trigpini çıkış olarak ayarlıyoruz
  pinMode(echoPin, INPUT); //2. pin echo input ayarlanır
  pinMode(LCD_LIGHT_PIN, OUTPUT);     // LCD Arka Işığı
  digitalWrite(LCD_LIGHT_PIN, HIGH); //LCD ışığını yak

  // LCD Başlangıç ayarları
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);        // 1.satır
  lcd.print("MESAFE"); // 1.satır metin
  lcd.setCursor(0, 1);        // 2.satır
  lcd.print("0");       // 2.satır metin
  lcd.display();    // LCD Ekranı Göster
}

void loop() {
  long duration, distance;
  //mesafe ölçmek için sensöre başlangıç komutları göndeilir.
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration / 58.3;

  lcd.setCursor(0, 1); //Kursoru ikinci satır birinci sütuna getiriyoruz
  lcd.print("                "); //Ekranı temizlemek için 16 boşluk yazdırıyoruz.
  lcd.setCursor(0, 1); //Kursoru tekrardan ikinci satır birinci sütuna getiriyoruz
  lcd.print("Mesafe ");
  lcd.setCursor(7, 1); //satırın başında mesafe yazdığı için kursoru 7. sütuna götörüyoruz
  lcd.print(String(distance) + " cm"); //Ölçülen mesafeyi yazdırıyoruz

  if (distance >= 15 && distance < 25) {
    tone(buzzer, 200000, 200);
    delay(300);
  }
  if (distance >= 10 && distance < 15) {
    tone(buzzer, 200000, 200);
    delay(100);
  }

  if (distance >= 5  && distance < 10  ) {
    tone(buzzer, 200000, 50);
    delay(50);
  }

  if (distance < 5  ) {
    tone(buzzer, 200000);
  }
  if (distance > 25  ) {
    noTone(buzzer);
  }
  delay(250); //250 milisaniye bekletiyoruz.

}


Son Resim: