Dijital Barometre

Projede SENSLED firmasının ürettiği RPPS01A sensörü kullanılmıştır. Sensör 3.3V ile çalışmaktadır. Bu yüzden Grafik LCD 5V ile Atmega8 işlemci ve sensör 3.3V beslenmiştir. 3.3V elde etmek için LD1117V33 regülatör kullanılmıştır.

Uyarı: Bu projede kullanılan sensör 3.3V ile çalışmaktadır.


Sensör basınç bilgisinin yanında ortam sıcaklığını da vermektedir. Sensörden gelen bu veriler kullanılarak, bulunan yükseklikteki deniz seviyesine göre açık hava basıncı (milibar), sıcaklık (Celcius), kaydedilen en yüksek ve en düşük sıcaklık, son bir saat içinde kaydedilen basınçtaki değişiklik değerleri ekranda gösterilmektedir.

Rakım Ayarı

Bulunduğunuz yükseklikteki (deniz seviyesine göre düzeltilmiş) basıncın doğru gösterilmesi için C Porttuna bağlı 3 buton ile (up, down, enter) bulunduğunuz yüksekliği girmeniz gerekir. Program 8136 byte yer kapladığından rakım giriş ekranı çok basit tasarlanmıştır. ENTER tuşuna bir kez basıldığında rakım giriş ekranı gelmektedir, bu ekranda sağ tarfta yükseklik metre cinsinden, soltarafta ise basınç milibar cinsinden görüntülenir. UP ve DOWN tuşlarına bastığınızda yükseklik ve buna bağlı olarak deniz seviyesindeki basınç birlikte değişir. Dolayısıyla bulunduğunuz irtifayı biliyorsanız, yükseklik değerine bakarak, bulunduğunuz bölgedeki açık hava basıncını biliyorsanız soldaki basınç değerine bakarak ayarlamayı yapabilirsiniz. Yakınınızda bir hava alanı varsa bu havaalanının yayınladığı sıcaklık ve basınç değerlerini internette gerçek zamanlı olarak izleyebilirsiniz.

Ölçüm

Timer1 her 20 saniyede bir kesme oluşturacak şekilde ayarlanmıştır, count değişkeni ise kesmeleri saymaktadır. Count değişkeni 54'e ulaştığında 18 dakika geçmiştir, işlemci sıcaklık ve basınç değerlerini sensörden okuyup ekrana yansıtır ve aynı zamanda basınç değerini eeprom'a ekler. Toplam 80 okuma sonucu ekranda grafik olarak gösterilir, bu da son 24 saatin basınç ölçümlerinin görsel olarak izlenebilmesi demektir.

Grafik LCD'nin aydınlatması 4.2V ile çalışmaktadır. LCD'nin aydınlatma LED bağlantısını bir diyot üzerinden 5V'a bağlayın.

Sensör

Projede kullanılan sensör RPPS01A tipi sensördür, sensör basınç ve sıcaklığı ölçmektedir, sensörün datasheeti proje dosyalarına eklenmiştir. Sensörle I2C protokolü üzerinden iletişim kurulmaktadır, sensörün SDA, SCK bacakları işlemcinin SDA ve SCK bacaklarına bağlanmalıdır. Sensörün MCLK bacağına 32KHz bir clock verilmesi gerekmektedir. Bu projede 3.2768 MHZ lik kristal kullanıldığından MCLK bacağı tam 32.768KHz'lik clock verilmektedir. Kabaca 32KHz'lik clock yeterlidir, bu yüzden projede 4 ya da 8 Mhz'lik kristaller de kullanılabilir.

Sensör ve buton bağlantıları globals.h dosyasında tanımlanmıştır.

Ekran

Projede kullanılan ekran Powertip PG12864D tipi bir ekrandır. Bu ekranın yerine herhangi bir KS0108 tabanlı Grafik LCD kullanılabilir.

Program

Programramda kod optimizasyonu yapılmamıştır, WinAvr 20100110 versiyonu ile derlendiğinde 8136 byte yer kaplamaktadır, dolayısıyla çiğ noktası hesaplaması, fırtına alarmı gibi ek özellikler için yer kalmamıştır. 16K'lık bir işlemci için yeniden yazılarak bu ek özllikler eklenebilir.

Proje Dosyaları

Proje Dosyaları