Diğer Projeler > Diğer İşlemler
Assembly Komutları Projesi Arduino Mega 2560
Proje ID: #1937
|
Bütçe: Belirtilmemiş |
Süre: Belirtilmemiş |
Yayın: 2518 gün önce
|
Rapor : Hayır
Bu uygulamada göreviniz Arduino MEGA 2560 kartınıza bağlayacağınız LCD, Ultrasonik sensör, Rotary Encoder ve LED’i aşağıda detayları verilen sistemi gerçekleştiren bir program yazmanızdır. Programınızın belirtilen şekilde çalışması beklenmektedir. Belirtilenlerden farklı pinler kullanarak programınızı yazmanız durumunda ödeviniz değerlendirilemeyecektir. Bu nedenle açıklamaların tamamınıdikkatlice okuyarak, programınızı ona göre yazınız.
Kullanacağınız malzemelerin hangi pinlere bağlanacağına ilişkin detaylar aşağıda açıklanmıştır.
HC-SR04 ultrasonik mesafe sensörünün Şekil-1’de görüldüğü gibi 4 adet pini bulunmaktadır: Vcc, Trig, Echo ve GND.
Echo pini Arduino kartının 21. pinine; Trig pini de 32. pinine bağlanacaktır. Sensörün diğer iki pini, Vcc ve GND’nin, Arduino kartında sırasıyla 5V ve GND’ye bağlanmaları gerekmektedir.
LED, Arduino kartının 33. pinine bağlanacaktır.
16x2 LCD Shield, Arduino kartına Şekil-2’de görüldüğü şekilde bağlanmalıdır. Şekil-2’de üstte yer alan görüntüde, sağ taraftaki mavi parça, LCD’nin kontrast ayarını yapmayı sağlayan potansiyometredir. Eğer LCD’de yazdırdıklarınızı göremiyorsanız ve kodunuzun çalışacağından eminseniz, kontrast ayar potansiyometresi düzgün ayarda olmayabilir. Potansiyometreyi sağa çevirirseniz kontrast artacak ve yazılar daha belirgin görünmeye başlayacaktır; sola çevirirseniz de kontrast azalarak yazılar kaybolmaya başlayacaktır.
Rotary Encoder’in Şekil-3’te görüldüğü gibi 5 adet pini bulunmaktadır. CLK, DT ve SW pinlerinin Arduino kartında sırasıyla 18, 19, 20. pinlere; + ve GND pinlerinin de yine sırasıyla 5V ve GND pinlerine bağlanmaları gerekmektedir.
Yazmanız istenen programın nasıl çalışacağına ilişkin detaylar aşağıda belirtilmiştir.
Program ilk çalıştırıldığı andan itibaren sürekli olarak ultrasonik mesafe sensörünü kullanarak mesafe ölçümü gerçekleştirecektir.
Kullanacağınız sensörün 4 metreye kadar mesafedeki cisimlere olan uzaklığı ölçebilme özelliği olsa da, programınızın testleri sırasında 60 cm’den daha uzakta bir cisme olan uzaklık ölçümü yapılmayacaktır.
Ölçümlerinizi cm cinsinden ve 1 cm’lik çözünürlükte geçekleştirmeniz gerekmektedir. Ölçümlerinizde sesin havadaki hızını 340m/s olarak almanız gerekmektedir.
Ölçülen mesafe bilgisi LCD’nin ilk satırına yazdırılmalıdır. Örneğin sensöre 40 cm uzaklıkta bir cisim bulunması ve bunun sonucunda da 40 cm değerinin ölçülmesi durumunda LCD ekranının 1. satırında,
Mesafe: 40 cm
yazmalıdır. 1 cm’den daha küçük mesafe değişimlerini programınızın algılaması beklenmemektedir. O nedenle, ölçüm sonucu elde edilecek uzaklık bilgisi daima tam sayı olmalıdır.
Rotary Encoder hangi uzaklık aralığında bir cisim algıladığında kullanıcıya uyarı verileceğini ayarlamak için kullanılacaktır. Bu değerler LCD ekranının ikinci satırında sürekli olarak Min ve Max adlarıyla belirtilmelidir.
Min ve Max ‘ın ilk değerleri sırasıyla 20 ve 40 cm’dir.
Min değer 10 cm’nin altına inemeyecek; Max değer de 60 cm’nin üzerine çıkamayacaktır. Aynı zamanda Max değer ile Min değer arasındaki fark 5 cm’den az olamayacaktır (Yani (Max-Min) ≥ 5 şartı bulunmaktadır.).
Herhangi bir anda Min ve Max ‘ın ilk değerleri sırasıyla 15 ve 25 cm ise LCD nin ikinci satırında
Min: 15 Max: 25
yazdırılmalıdır.
Min ve Max değerler Rotary Encoder kullanılarak şu şekilde ayarlanacaktır:
o Başlangıçta Min değer ayar konumunda olacaktır. Yani programınız ilk açıldıktan sonra hemen Rotary Encoder döndürüldüğünde Min değer değiştirilebilmelidir.
o Saat yönüne dönüşler ilgili değeri arttırmalı; tersi yönde dönüşler ilgili değeri 3
azaltmalıdır.
o Rotary Encoder’in döndürülebilen kısmı aynı zamanda bastırılabilir bir butondur. Bu butona her basılıp çekildiğinde ayar konumu Min ve Max arasında yer değiştirecektir.
o Rotary Encoder döndürülürken ilgili değerdeki değişiklik anında LCD’de güncellenmeli ve sistem bu yeni değere göre çalışmasına devam etmelidir. Yani yeni değerin etkin olması için ekstra bir işlem gerekmemektedir.
o Butona her basılıp çekilmesi sistem üzerinde sadece 1 kez etki etmelidir. Basılı tutulması durumunda sistem çalışmasını durdurmamalıdır. Butona basıldığı anda mı yoksa butondan elimizi çektiğimiz anda mı buton fonksiyonunun gerçekleştirileceği önemli değildir.
Sisteme bağlı LED sadece ultrasonik sensör ile ölçülen mesafe ayarlanmış olan Min ve
Max değer aralığında veya bu değerlere eşit ise yakılacaktır.
Ultrasonik sensör ile mesafe ölçümü ve Rotary Encoder’in tüm fonksiyonları kesme mekanizmaları kullanılarak gerçekleştirilmelidir.
Programınızın kullanım kolaylığı açısından durumu da önemlidir. Kullanıcının kolay adapte olabildiği bir sistem tasarlamanız önemlidir.
Ultrasonik mesafe sensörü
Ultrasonik mesafe sensörünün datasheetine http://www.micropik.com/PDF/HCSR04.pdf adresinden erişilebilir.
Şekil-3’te sensörün zamanlama diyagramı görülmektedir. Ölçümü başlatabilmek için
Trig pinine minimum 10us sureli bir sinyal uygulamak gerekmektedir. Bu sinyali alan sensör otomatik olarak ultrasonik bir ses dalgası üretir. Bu ses dalgasının, havada katettiği süreya bağlı olarak, sensör tarafından Echo pininden bir çıkış sinyali üretilir. Bu sinyali süresi, ses dalgasının üretildiği andan, sensörün karşısındaki bir cisme çarparak sensörün alıcısına geri gelene kadar geçen zamana eşittir.
Şekil-3. Ultrasonik mesafe sensörünün zamanlama diyagramı.
Kodlama Kuralları
Kodlarınızı ATMEL AVR 8-Bit komutunu kullanarak Assembly dilinde ATMEGA2560 mikrodenetleyicisi için yazmanız zorunludur. Kodlarınızın ATMEL Studio’da derlenip çalıştırılması gerekmektedir. Bunun haricinde herhangi bir dilde; farklı bir geliştirme ortamında; farklı bir mikrodenetleyici için yazılan kodlar değerlendirilmeyecektir.
Ultrasonik sensör ile mesafe ölçümü ve Rotary Encoder’in tüm fonksiyonları kesme mekanizmaları kullanılarak gerçekleştirilmelidir.
Kodunuzu içeren dosyanın en üstünde, commentli şekilde grubunuzun tüm üyelerine ait öğrenci numarası, ad ve soyad bilgileri yer almalıdır. (Uzaktan Eğitim öğrencilerinin grup olarak çalışmalarına izin verilmemektedir.)
Kodunuzun çalışmasını kısa açıklamalar yazarak anlatmanız gerekmektedir. Yazdığı kodun çalışmasına hakim olduğunu açıklamalarıyla yeterince gösteremeyenler puan kaybedecektir.
Dosyanız gönderdiğiniz haliyle, doğrudan derlenmeye çalışılacak ve derlemede hata alınmazsa elde edilen .hexdosyası karta yüklenerek test edilecektir. Derlemede hata alınması durumunda kod içerisinde herhangi bir düzeltme yapılmayacaktır, o nedenle kodunuzun düzgün derlendiğinden emin olmadan kodunuzu göndermeyiniz! Ayrıca yorum satırlarında belirterek ya da e-mail atarak çeşitli kısımların comment’lerinin açılarak derlenmesi gibi şeyleri istemeyiniz, bu tarz bir değerlendirme süreci işletilmeyecektir!
LCD Assembly kütüphane dosyaları ve Rotary Encoder kullanımına ilişkin döküman yapmak isteyene atılacaktır
Assembly Komutları Projesi Arduino Mega 2560
Proje Sahibi : greypanda
2169 gün önce
Güven Puanı : 85
3 proje girişi
|
2 işlemli
|
0 ödeme yapılmayan
Proje ile ilgili soru sor
Henüz proje ile ilgili soru sorulmamış
Projeye 1 adet teklif verilmiş
1 teklif
(Ort: 1500TL)
ustacirak.. (0)
0 Puan