Roboturka’dan merhabalar.
Arduino öğrenmeye başlayanların ilk yaptığı projelerden biri,Hc-Sr04 ultasonik mesafe sensörü ve 2×16 Lcd ekran kullanarak, robotun karşısındaki engellerin mesafesini ölçmek ve bunu ekranda görüntülemektir. Buyrun,bu projeyi birlikte yapalım. Öncelikle ihtiyacımız olan malzemelerden bahsedelim.
Kullanılan Malzemeler ve Tavsiye Ürün Linkleri
- 1 Adet Arduino Uno
- 1 Adet Hc-Sr04 Ultrasonik mesafe sensörü
- 1 Adet 2×16 Lcd Ekran
- 1 Adet Breadboard
- Jumper Kablolar
Yeteri kadar jumper kablosu ve isteğe bağlı potansiyometre. Potansiyometreyi lcd ekranın parlaklığını ayarlamak için kullanacağız.
İsterseniz fritzing şemasına,isterseniz fotoğraflara bakarak devre şemasını oluşturalım.
Devremizi bu şekilde kurduktan sonra yeni bir arduino projesi açıp gerekli kodları yapıştırıyoruz ve kodları arduinomuza yüklüyoruz.
/* HC-SR04 Ultrasonic Sensor with LCD dispaly Bağlantılar:
HC-SR04 Ultrasonic Sensor VCC to Arduino 5V
GND to Arduino GND
Echo to Arduino pin 12
Trig to Arduino pin 13
LCD Display (I used JHD162A)
VSS to Arduino GND
VCC to Arduino 5V
VEE to Arduino GND
RS to Arduino pin 11
R/W to Arduino pin 10
E to Arduino pin 9
DB4 to Arduino pin 2
DB5 to Arduino pin 3
DB6 to Arduino pin 4
DB7 to Arduino pin 5
LED+ to Arduino 5V
LED- to Arduino GND
Modified by Hidayet Çalışkan (Haziran, 2015).
*/
#include <LiquidCrystal.h> //Load Liquid Crystal Library
LiquidCrystal LCD(11,10,9,2,3,4,5); //Create Liquid Crystal Object called LCD
#define trigPin 13 //Sensörün Echo pini Arduinonun 13. pinine bağlanır
#define echoPin 12 //Sensorün Trig pini Arduinonun 12. pinine bağlanır
void setup() {
pinMode(trigPin, OUTPUT); //13. yani trigpini çıkış olarak ayarlıyoruz
pinMode(echoPin, INPUT); //12. yani echoPini giriş olarak ayarlıyoruz
LCD.begin(16,2); //Arduinoya lcdyi çalıştırmasını söylüyoruz
LCD.setCursor(0,0); //kursoru ilk satırın ilk sütununa getirmesini söylüyoruz
LCD.print(“www.roboturka.com”); //İlk satırda görünecek mesajı yazıyoruz
}
void loop() {
long duration, distance; digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1; //sesin gidiş gelişinde ölçülen süreyi önce ikiye bölerek sadece gidiş hızını ölçüyor sonra da ses hızına bölerek mesafeyi buluyoruz.
LCD.setCursor(0,1); //Kursoru ikinci satır birinci sütuna getiriyoruz
LCD.print(“”); //Ekranı temizlemek için 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(distance); //Ölçülen mesafeyi yazdırıyoruz
LCD.print(“cm”); //Ölçü birimini yazdırıyoruz
delay(250); //250 milisaniye bekletiyoruz.
}
Her şeyi doğru yaptıysanız aşağıdaki gibi bir sonuç almanız gerekiyor. Alamadıysanız kablo bağlantılarınızı tekrar kontrol etmelisiniz
Hc-Sr04 ultasonik mesafe sensörü ve 16×2 Lcd ekran kullanarak mesafe ölçme projemizin sonuna geldik.
Uygulamanın videosu da aşağıdadır. Kolay gelsin. İyi çalışmalar
Eğer bu proje ile alakalı bir PCB yaparsanız, fiyat performansın adresi olan PCBWAY‘i tercih etmelisiniz.10 PCB için sadece 5$ gibi cüzi bir miktar ödüyorsunuz. Kolay gelsin ! 🙂
tarık
22 Ağustos 2015 at 16:04
guzel paylasım tşk ederım ancak su yenı gordugum 4 tane baglantı ucu olan 2×16 ya gore bır baglantı seklı varmı acaba IC2 2×16 LCD kullnımı hakkında bi baglantı seması paylasımı varmı yenı baslıan birisi olarak
Bilal Kaya
22 Ağustos 2015 at 21:02
Merhabalar Tarık,
Arduino kod satırında yorum olarak LCD bağlantılarından bahsedilmiştir.Açıklayıcı olduğunu düşünüyorum 🙂
volkan
8 Aralık 2015 at 23:44
avrdude: ser_open(): can’t set com-state for “\\.\COM5”
şeklnde ir yorum alıyorum ve yüklenme gerçekleşmiyor yardımcı olailirmsnizz
cihan
16 Mayıs 2016 at 22:34
kardeş sorunun çözümünü bulabildin mi ? aynı sorunu bende yaşıyorumda.
yeter
30 Mart 2016 at 16:22
#include
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
int trigPin=2; //define trigPin 2
int echoPin=3; //define echoPin 3
int led=3;
int siddet=0;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(led,OUTPUT);
lcd.begin(16,2);
}
void loop() {
int sure, uzaklik;
lcd.clear();
lcd.setCursor(0,0);
digitalWrite(trigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);
sure = pulseIn(echoPin, HIGH);
uzaklik = (sure/58);
siddet=255-(uzaklik/1,57); //1,57 olmazsa 1.57 yazın virgül yerine nokta koyun
analogWrite(led,siddet);
lcd.print(“Uzaklik = “);
lcd.print(uzaklik);
lcd.print(” cm”);
delay(400);
}
ilgili kodlar yukarıda yazılmış ancak hocamız bzden her cm buzzer ötecek ama 10 cm algıkadıgında yüksek sesle buzzer ötmesini istedi
kodlarda nasıl değişiklik yapılır
yardımcı olabilir misiniz
Batuhan Sözer
17 Haziran 2016 at 12:46
Hocam sen mantığını anla o kodu kendin yaz hocanız interneten bakın dememiştir kardeşim sen yanlış anlamışsındır
emirhan cansel
30 Ocak 2017 at 15:54
Benim yaptıgım projede surekli 0 cm gostermektedir. yani mesafe olcmuyor yardımcı olursanız sevinirim
Yakup
3 Haziran 2017 at 20:23
Yaptım gercekten mükemmel 5 dakka sürüyor sadece oraya kendi adımı yazdım ölçüm belki yüzde yüz değil ama 12 cm ise 12 cm gösteriyo milim farkı olsada önemi yok emeği geçenlerin eline sağlık. Kodlarda hiç bi sıkıntı yok
Sefa
1 Aralık 2017 at 15:53
exit status 1
#include expects “FILENAME” or
diye bir hata alıyorum ilk satırda.Bağlantıları vs kontrol ettim bir bakar mısınız hocam.
Sefa
1 Aralık 2017 at 15:54
Arduino:1.8.5 (Windows Store 1.8.10.0) (Windows 10), Kart:”Arduino/Genuino Uno”
mesafe_sensoru_ve_olcum:1: error: #include expects “FILENAME” or
#include <LiquidCrystal.h> //Load Liquid Crystal Library
^
exit status 1
#include expects “FILENAME” or
This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.
Hazal
8 Aralık 2017 at 21:38
Merhaba. Infrared kullanarak yapabilirmiyiz.
beyza
12 Aralık 2017 at 19:56
Hocam ben kodlamayı kopyala yapıştır dedim fakat sürekli kodlamada hata buluyor anlamadım 🙁
Mine
21 Şubat 2018 at 15:20
hocam ben devreyi kurdum fakat kod kısmında sürekli hata veriyor. Hata kütüphanede. import yaptığımda bu genio uno için değildir yazıyor. yardımcı olursanız sevinirim.