9. Ardunio ve Uygulamaları 2 - Mekatronik Mühendisliği Bölümü

Transkript

9. Ardunio ve Uygulamaları 2 - Mekatronik Mühendisliği Bölümü
T.C.
ERCİYES ÜNİVERSİTESİ
MÜHENDİSLİK FAKÜLTESİ
MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ
ELEKTRONİK SİSTEMLER LABORATUVARI – 1
ARDUINO LCD ve Sensör Uygulamaları
DENEY SORUMLUSU
Arş. Gör. Burak ULU
ŞUBAT 2015
KAYSERİ
ARDUINO LCD ve SENSÖR UYGULAMALARI
1. DENEYİN AMACI
Arduino geliştirme kartı kullanarak sensörlerden veri okunması ve LCD kullanımı üzerine
çalışma yapılması amaçlanmaktadır.
2. ÖN BİLGİ
Algılayıcılar hiç şüphesiz mekatronik bir sistem için olmazsa olmaz elemanlardır. Temel
olarak analog ve dijital olmak üzere 2 gruba ayrılırlar. Mikroişlemci ya
da mikrodenetleyici gibi komut işleme yeteneğine sahip entegrelerin işleyebilecekleri
komutlardan oluşan makine dili dijital ‘1’ ve ’0’ lardan oluşur. Bu sebeple dijital sensörlerden
elde edilen çıkışlar direkt olarak işlenebilmekte fakat analog sensörlerden elde edilen verilerin
bir ADC yapısından geçirilerek dijital sinyale dönüştürülmeleri gerekmektedir.
2.1. HC-SR04 Ultrasonik Sensör
Ses dalgaları sınıflandırılmasında 20Khz-1Ghz aralığındaki ses sinyalleri ultrasonik ses olarak
tanımlanmıştır. Bizim sensörümüz ve bir çok ultrasonik sensör 40Khz frekansında ultrasonik
ses üretmektedir. Burada önemli olan sesin yüksekliğinde belirleyici olan etken frekanstır. Ses
yüksekse frekansta yüksektir. Ultrasonik ses sinyallerini insan kulağı algılayamaz.
Şekil 2.1. Ultrasonik sensörün çalışma mantığı
Ultrasonik darbe t=0 zamanında transdüser tarafından iletiliyor. X pozisyonundaki hedef
tarafından yansıtıldıktan sonra t= tx zamanında darbe alınıyor. tx , X mesafesi ile orantılıdır.
t=0 zamanında darbe iletilir (ultrasonik ses sinyali), cisimden yansır, transdüser tarafından
algılanır ve tekrar gönderilir. Sonraki darbe ilk darbenin ultrasonik enerjisinin hepsi absorbe
edildiğinde iletilmelidir. Bu yüzden sensöre bir pals gönderilir sensör okunur ve sensörün
datasheetinde yazan süre kadar sensöre tekrar pals gönderilmez. Eğer bekleme yapmaksak
sensör saçma değerler döndürür. Çünkü ilk yolladığımız sinyal bir yerden yansıyarak sensöre
geri dönmeye devam eder.
1
Tüm katı ve sıvı cisimler ultrasonik dalgayı cok iyi oranda yansıtırlar. Hem katı hemde sıvı
cisimlerden ultrasonik enerjinin %99u yansıtılır. Çok ufak oranlardaki enerji miktarı cisim
tarafından emilir. Bundan dolayı sensörü çok çeşitli uygulamalarda sorunsuz kullanabilmemiz
mümkündür. Ayrıca endüstriyel tipteki ultrasonik sensörler bir çok otomasyon sistemlerinde
kullanılmaktadır.
Şekil 2.2. Ultrasonik sensörün endüstride kullanımına bazı örnekler
Şekil 2.3. HC-SR04 Ultrasonik sensör.
HC-SR04 Sensörü dijital bir ultrasonik sensördür ve üzerinde 4 adet pin mevcuttur. Bunlar;
VCC, GND, Trig, Echo pinleridir.
Çalışma mantığını da kısaca şöyle özetleyebiliriz;
Ses sinyallerinin boşlukta yayılma hızı 340 m/sn’ dir. Sensörden ilk olarak bir ses dalgası
gönderilir, yansıyan ses dalgası transducer tarafından algılanır ve tekrar gönderilir ancak
gönderilmeden önce biraz beklenir. Çünkü bir önceki ses dalgasının cisim yada ortam
tarafından tam anlamıyla emilmiş olması gerekir. Yansıyan sinyal Echo bacağından okunur ve
bu sayede mesafe ölçümü yapılabilir. Önemli olan nokta Echo pininin ne kadar süre lojik 1 de
kaldığıdır. Ölçülmesi gereken değer budur. Çünkü mesafenin bulunması için öncelikle
2
zamanın hesaplanması gerekir. Ses dalgası 340 m/sn de hareket ediyorsa ve biz ölçüm
aralığını 1 us de yapıyorsak sesin aldığı yol = zaman x (34000 cm /1000000) = 1/29, yani
zaman/29 olması gerekir. Ancak sinyalin gidiş ve gelişi göz ardı edilmemelidir. O halde
bulduğumuz değeri 2’ ye bölüp aradaki mesafeyi bulabiliriz; mesafe = zaman / (29*2)
=zaman/58 olur.
2.2. ADC Çalışma Prensibi
Dünyada, pek çok büyüklük analog olarak ortaya çıkar. Örneğin ısı, basınç, ağırlık gibi
büyüklükler hep analog olarak değişirler. Bunlarda sadece 0 ve 1 gibi iki değer değil,
minimum ile maximum arasında çok geniş bir yelpazede çeşitli değerler söz konusu olabilir.
Dış dünyanın daha çok analog değerlerden oluşmasına karşın, bilgi işleyen cihazlar (dijital
sistemler, mikroişlemciler, bilgisayarlar) dijitaldir. Elde edilen bilginin tekrar dış dünyaya
aktarılması da (örneğin görüntülenmesi) analog veya dijital biçimde olabilir. Bütün bu
nedenlerden dolayı analog değerlerin dijitale, dijital değerlerin de analog değerlere çevrilmesi
gerekir.
Dış dünyadaki fiziksel değişiklikler (ısı, basınç, ağırlık), sensör (algılayıcı) ve transdüserler
(çeviriciler) kullanılarak elektrik gerilimine çevrilir. Bu gerilim analog bir gerilimdir. Daha
sonra bu analog gerilim Analog/Dijital (A/D) çevirici yardımı ile dijitale çevrilir. Dijital
sistem bu bilgiyi istenilen bir biçimde işler ve bir sonuç elde eder.
Bu sonuç dijital veya analog olarak değerlendirilmek istenebilir. Eğer elde edilen sonuç
analog olarak değerlendirilecekse (örneğin bir hoparlörün çalışması) tekrar analoğa çevrilmesi
gerekebilir. Dijital işareti analog işarete çevirme işlemini ise Dijital/Analog (D/A) çeviriciler
yapar.
ANALOG
GİRİŞ 0-3
VOLT
A/D
ÇEVİRİCİ
DİJİTAL
İŞLEM
BİRİMİ
D/A
ÇEVİRİCİ
ANALOG
ÇIKIŞ 0-3
VOLT
Yukarıdaki şekilde analog bir değerin dijitale çevrilip, işlendikten sonra tekrar analog değere
çevrilmesi sürecinin blok diyagramı görülmektedir. Girişteki gerilim bir transdüser yardımı ile
elektriksel büyüklüğe çevrilmiş bir fiziksel büyüklüğü temsil etmektedir. Bu gerilim daha
sonra Analog/Dijital Çevirici vasıtası ile dijitale çevrilir ve dijital olarak işlenir.
Daha sonra elde edilen sonuç Dijital/Analog Çevirici vasıtası ile tekrar analog bilgiye çevrilir
ve çıkışa aktarılır. Çıkışta kullanılan eleman ise elektriksel büyüklüğü (gerilim) fiziksel
büyüklüğe (ses, ısı, ağırlık vs.) çevrilir. Örneğin hoparlör elektriksel büyüklüğü sese çeviren
bir aygıttır.
3
2.3. LM35 Sıcaklık Sensörü
LM35 sıcaklık sensörü, analog tipte olup C° başına 10 milivolt gerilim üretir. Yani, sıcaklığın
her 1°C artışına karşılık, çıkış gerilimi 10mV artar. Örneğin, 20°C için çıkış gerilimi 200mV
iken, 100°C için çıkış gerilimi 1V’dur. LM35 sıcaklık sensörünün pek çok tipi vardır. Her bir
modelin sıcaklık ölçüm aralığı ve doğruluğu farklıdır.





Dereceye kalibre edilmiştir.
1 derecelik sıcaklık artışında çıkışı 10mV artar. Doğrusaldır.
-55 derece ile + 150 derece arasında ölçüm yapabilir.
Giriş gerilimi olarak 4V-30V arasında çalışabilir.
LM35' in çıkış ucu mikrodenetleyicinin analog girişine bağlanır
Deneyde kullanılacak olan Arduino Uno üzerindeki mikrodenetleyicinin 10 bitlik bir ADC
birimine sahip olduğunu düşünürsek LM35 sıcaklık sensöründen okuduğumuz analog değeri
programda sıcaklık değeri olarak kullanabilmek için aşağıdaki işlemlere ihtiyaç vardır.
ADC birimi 10 bit olduğu için 2^10 = 1024 çözünürlüğe sahiptir.
1023
1022
1021
……
5
4
3
2
1
0
0-5v => 0-1023
1023
5000mV
okunan_analog_deger
olculen_deger (D.O)
Sıcaklık= olculen_deger/10=((okunan_analog_deger*5000)/1023)/10
4
//her 10mV= 1 C
2.4. LCD
Arduino ile LCD üzerine karakter ve rakamlar yazdırıp kullanıcıyla etkileşime giren
programlar yazılabilmektedir. Bu tür LCD ekranları birçok elektronik cihaz üzerinde
görebilmekteyiz.
Şekil 2.5. 2x16 karakter LCD.
LCD olarak deneyimizde HD44780 çipi uyumlu 2x16 karakter standart modeli kullanacağız.
Bu modeli kullanabilmek için gerekli fonksiyonlar ilgili Arduino kütüphanesinde
bulunmaktadır.
Kullanacağımız LCD’ nin 8 adet veri hattı, 3 adet kontrol hattı, besleme ve ekran kontrast
kontrol girişinden oluşmaktadır. LCD ile haberleşme paralel olarak yürütüldüğünden 8
haberleşme hattına ihtiyaç duyulmaktadır. Ancak 4 pinli haberleşme desteği ile sadece 4
haberleşme pini ve 3 kontrol pini kullanarak LCD’ yi sürmek mümkündür. R/W pini LCD’
den bir veri okunmasına gerek olmadığı durumlarda bu pin direk olarak toprağa
bağlanabilmektedir.
LCD ekranın kontrast değerini ayarlamak için kullanılan potansiyometre ile ekran
görüntüsünü istenen düzeye getirilebilmektedir.
(0 ,0)
(16 ,0)
(0 ,1)
(16 ,1)
Şekil 2.6. 16x2 karakterli LCD kürsör satır ve sütunlarının tanımlanması.
5
3. DENEYİN YAPILIŞI
3.1. Arduino İle LCD Kullanımı
VSS
VDD
VE (Contrast)
LCD RS pin to digital
LCD Enable pin to digital
LCD R/W pin
LCD D4 pin
LCD D5 pin
LCD D6 pin
LCD D7 pin
ground
5V
potansiyometre ya da ground
pin 11
pin 12
ground
dijital pin 2
dijital pin 3
dijital pin 4
dijital pin 5
Backlight anot
Backlight katot
5V
ground
Tablo 3.1. LCD-Arduino pin bağlantıları.
Şekil 3.1. Arduino LCD uygulama devresi.
Deneyin Yapılısı:
1- Şekil 3.1’ de görülen bağlantıları Arduino ve board üzerinde gerçekleştiriniz.
2- Arduino Vin pininden 12v besleme ile Arduino’ ya güç veriyoruz.
3- Giriş/çıkış pinlerinin de bağlantılarını yapıp program aşamasına geçiniz.
6
Program:
//LCD için gerekli alt programların bulunduğu
Arduino LCD kütüphanesi çağrıldı.
//LCD’ nin Arduino bağlantıları tanımlandı.
//Başlangıç değeri 0 olan sayac isimli bir değişken
atandı.
//Kullandığımız 16x2 karakterli LCD için başlangıç
komutları.
//Programın başında ve sadece bir kere işlenecek
olan, void setup() program bloğunun altına girilen
komutla ekrana Mekatronik yazdırıldı. Böylece LCD
ekranda
sürekli
olarak
Mekatronik
yazısı
görüntülenmiş olacak.
//1. Sütun 0. Sütuna karşılık gelen kürsörden itibaren
set et.
//1s bekle
// sayac değişkeninin tuttuğu değeri yazdır..
//sayac değişkenini 1 artır..
Şekil 3.2. Arduino LCD uygulama çıktısı.
7
3.2. Arduino ile HC-SR04 Ultrasonik Sensör Uygulaması
Şekil 3.3. HC-SR04 Ultrasonik sensör uygulama devresi.
Deneyin Yapılısı:
1- Şekil 3.3’ te görülen bağlantıları Arduino ve board üzerinde gerçekleştiriniz.
2- Arduino Vin pininden 12v besleme ile Arduino’ ya güç veriyoruz.
3- Giriş/çıkış pinlerinin de bağlantılarını yapıp program aşamasına geçiniz.
Program:
//Sensörün Echo ve Trig pinleri Arduino üzerinde 7 ve
8 nolu pinlere bağlandığından echoPin ve trigPin
değişkenleri 7 ve 8 nolu pinlere tanımlanıyor.
//Program
tanımlandı.
içerisinde
kullanılan
değişkenler
//trigPin çıkış, echoPin giriş olarak tanımlandı.
//LCD ekranın ilk satırına başlık olarak Mesafe
yazdırıldı .
8
//trigPin çıkışı 2us LOW olarak ayarlandı .
//trigPin çıkışı 10us HIGH olarak ayarlandı .
//trigPin çıkışı tekrar LOW olarak ayarlanır. Bu
işlemler sonucunda Echo pin girişinde pals
sinyalleri oluşur ve sensör nesneden gelen
darbeler sonucu sesin yansıma zamanını çıktı
olarak verir. Programda sesin hızından
faydalanarak mesafeyi bulmak için gerekli
denklem yazıldı.
//Yapılan işlemler neticesinde ölçülen mesafe
sonuc değişkenine atanarak görüntülenir.
Burada dikkat çekici olan nokta sonuc
değişkeninin koşula bağlanmasıdır. Sensörün
düzgün ölçüm yaptığı değerlerin dışında
ekranda
bir
‘555’
kodu
gözükmesi
amaçlanmıştır.
Şekil 3.4. HC-SR04 Ultrasonik sensör uygulama çıktısı.
9
3.3. Arduino ile LM35 Sıcaklık Sensörü Uygulaması
Şekil 3.5. LM35 uygulama devresi.
Deneyin Yapılısı:
1- Şekil 3.5’ te görülen bağlantıları Arduino ve board üzerinde gerçekleştiriniz.
2- Arduino Vin pininden 12v besleme ile Arduino’ ya güç veriyoruz.
3- Giriş/çıkış pinlerinin de bağlantılarını yapıp program aşamasına geçiniz.
Program:
//Analog değeri dönüştüreceğimiz sıcaklık.
//Ölçeceğimiz analog değer.
//Analog değer girişi.
//Seri haberleşme,sıcaklığın ekrandan takip edilebilmesi için.
10
//A1'den değeri alındı.
// değeri mV'a dönüştürüldü .
// mV'u sicakliğa dönüştürüldü.
// Ölçüm 1’ er sn aralıklarla yapılacak.
Şekil 3.6. Seri haberleşme monitörü ikonu.
Şekil 3.5. Seri haberleşme monitöründe LM35 sensörü uygulama çıktısı.
11

Benzer belgeler