Arduino ile, mesafe sensörü olan HC-SR04 ile mesafe ölçerek, ölçülen değerleri LCD ekranda görüntüleyebiliriz.
Bu proje için gerekli malzemeler:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | //--------------------------------------------// //-----------------KODKAMPUSU-----------------// //-----Arduino | HC-SR04 ile Mesafe Ölçme-----// //--------------------------------------------// //Arduino ile I2C LCD Ekranın haberleşmesi için Wire kütüphanesini tanımlıyoruz #include <Wire.h> //I2C LCD Ekranımızın kütüphane tanımlamasını yapıyoruz #include <LiquidCrystal_I2C.h> //HC-SR04 Sensör verilerini okumak için kütüphane tanımlıyoruz #include "NewPing.h" //Sensör pin bağlantılarını tanımlıyoruz #define TRIGGER_PIN 9 #define ECHO_PIN 10 //Maksimum mesafe olarak bir sınır belirliyoruz #define MAX_DISTANCE 500 const int buzzer=8; //Buzzer pini için tanımlama yapıyoruz. LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 16, 2); //Kullanacağımız ekranın pixel boyutunu tanımlıyoruz NewPing sonarTRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); //Sensör pinlerini kütüphane verisine tanımlıyoruz int mesafe; //Ölçüm için verileri aktaracağımız bir değer tanımlıyoruz void setup() { //LCD Ekranımızın arka ışığını ve çalışması için gereken kodları yazıyoruz lcd.init(); lcd.backlight(); pinMode(buzzer,OUTPUT); //Buzer pini için çıkış birimi tanımlaması yapıyoruz } void loop() { mesafe = sonar.ping_cm(); //Sensör üzerinden ölçülen ölçüyü cm olarak ölçüm yaptırıp mesafe verisine tanımlıyoruz //inch hesabı yapmak için sonar.ping_in(); kullanabilirsiniz lcd.setCursor(0, 0); //İlk satır 0 olarak belirlenmektedir. //Mesafe değerini ilk satırda yazmak için konumlandırmasını yapıyoruz lcd.print("Mesafe = "); if (mesafe >= 500 || mesafe <= 1) //Eğer ki mesafe 1 CM'den küçük olacak şekilde ise; çok yakın yazdırılacak { lcd.setCursor(0, 1); lcd.print("Cok Yakin !"); //Yakın olduğu zaman; aynı anda buzzer'da uyarı sesi çıkartmak için; tone(buzzer, 1255); delay(200); noTone(ses); tone(buzzer, 1220); delay(200); noTone(ses); tone(buzzer, 1290); delay(200); noTone(ses); } else //Eğer ki mesafe 1 CM'den büyük ise normal olarak mesafe ölçümünü yapacak ve LCD ekran üzerinde çıktısını verecek { lcd.print(mesafe); lcd.print(" cm"); } delay(500); } |
Bağlantı ve kodlama sırasında karşılaştığınız hataları; aşağıda ki yorum bölümünden belirtebilirsiniz :)