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