Gelişen mikrokontrol teknolojileri ve artan bilgi birikimi sayesinde geliştirici düzeyinde daha yaygın kullanımına olanak tanımıştır. Burada elimden geldiği kadar bazı örnekler sunmaya çalışacağım...

25 Mayıs 2011 Çarşamba

Atmega8 ve HP03S ile USB bağlantılı barometre


İtalyan fizikçi ve matematikçe Toricelli ilk barometreyi icat ettiğinde su kullanmıştı ve 10 metrelik su sütununun 1 atmosferik basınca denk düştüğünü bulmuştu. (Daha sonra aynı deneyi civa ile tekrarladı.76 mm civa) Günümüzde gelişen elektronik algılayıcılar ve dolayısı ile elektronik elemanlar sayesinde hava basıncını daha yüksek hassasiyet ve kesinlik ile ölçülmesine olanak vermektedir.

Bu projede Atmega8 ve HP03S (basınç algılama modülü) kullanarak bilgisayara USB bağlantısı üzerinden ölçüm sonuçları gönderilmeye çalışılacak.
Basınç Ölçümü

En azından şu bilinmektedir ki açık hava basıncı vardır. Sonuçta dünyanın katmanlarından biri olan atmosfer (gaz katmanı olarak)dünyanın çekim gücü nedeniyle dünya yüzeyinde bir basınç oluşturur. Kullanılan ölçüm sistemlerine göre çeşitli birimlerde tanımlanmıştır. ( bar, paskal gibi.)

Şekil-1 :Atmosfer yeryüzünde bir basınç oluşturur

İlk ölçüm şekli 12 metrelik su sütunundan oluşturulan sistem ile(ölçüm 10 metrelik olarak) ilk barometreyi oluşturuldu. Daha sonra su yerine civa kullanılmış ve cam borudan oluşturulan sistemde 1 atmosferlik basınç 76mm civa basıncına denk düşer hale gelmiştir.

Şekil-2 :Civalı barometrenin temel ilkesi.(Günümüzde civanın insan sağlığı üzerindeki olumsuz etkileri bilindiğinde civa içeren bu tür araçlar kullanımdan kaldırılmıştır).

Daha sonraları ise hava basıncını ölçmek için mekanik ölçüm sistemleri kullanılmıştır. Kullanım kolaylığı açısından ölçeklenerek barometre daha taşınabilir hal gelmiştir.

Meterolojik bilimlerde vazgeçilmez bir öğe olarak günlük hayatımızda bulunan barometre hava hareketlerinin izlenmesi ve hava tahmihlerinde vazgeçilmez ölçü aleti olarak kullanılır. (basınç merkezlerinin izlenmesi ile yağışlı veya güneşli hava tahminlerinde sıkça karşımıza çıkar).

Not: Barometrenin kapalı kaplar için ölçümde kullanılan şekli manometre olarak adlandırılır.
Basınç sensörü-HP03S

Basınç sensörü genelde sabit, bilinen basınç altında kapatılan bir kutucuğun iç basıncı ile dış basıncının karşılaştırılması esasına dayanır.

Bu projede HP03S basınç sensörü kullanılmaktadır.Hope Microelectronics (HOPE RF) firmasına ait bir üründür.

Veri kağıtlarında piezo-rezistif bir algılayıcı içeriyor. Bu algılayıcı değeri (gerilim olarak) 16-bitlik ADC üzerinden 2 baytlık veriye dönüştürülüyor. Burada belirtilmesi gereken bir nokta var. Bu modül üzerindeki basınç tek başına ölçülebilir bir büyüklük değil. En azından sıcaklık ile bir bağlantısı var. Bu nedenle hesaplama için gereken sıcaklık değeri HP03S üzerinde bulunuyor. Sıcaklık değeride (doğrudan sıcaklık değeri olarak değil) 2 baytlık veri şeklinde okunabiliyor.

Şekil-3 :HP03S basınç algılayıcısını resmi.Metal yüksüğün dibindeki elektronik elemanlar görülmektedir

Algılayıcı 2.2V ile 3.6V aralığında çalışabiliyor. Devrenin beslemesi için gereken gerilim kolaylıkla sağlanabiliyor. HP03S modülü düşük güç harcamak üzere tasarlanmış.

HP03S modülünden elde edilen basınç ve sıcaklık değerlerinin hesaplanması için gereken bazı ek parametrelere ihtiyaç var. Bu parmetreler modül üzerindeki bir EEPROM üzerinde saklanıyor. ADC ile EEPROM aynı veri yolunu paylaşmakla birlikte (I2C) sonuçta erişim adresleri farklı.


ParametreAçıklamasıEEPROM AdresiBilgisiDeğer Aralığı
C1Hassasiyet katsayısı16:17MSB:LSB0x100 - 0xFFFF
C2Denkleştirme Katsayısı18:19MSB:LSB0x00 - 0x1FFF
C3Hassasiyetin sıcaklık katsayısı20:21MSB:LSB0x00 - 0x400
C4Denkleştirmenin sıcaklık katsayısı22:23MSB:LSB0x00 - 0x1000
C5Referans sıcaklık22:25MSB:LSB0x1000 - 0xFFFF
C6Sıcaklığın sıcaklık katsayısı26:27MSB:LSB0x00 - 0x4000
C7Denkleştirmeyi İyileştirme ayarı28:29MSB:LSB0x960 - 0xA28
ASensöre özel parametre 30LSB0x01 - 0x3F
BSensöre özel parametre 31LSB0x01 - 0x3F
CSensöre özel parametre 32LSB0x01 - 0x0F
DSensöre özel parametre 33LSB0x01 - 0x0F
Tablo-1:EEPROM'da saklanan parametreler.(EEPROM Adresleri onluk sistemdedir)

EEPROM içerisinde saklanan parametreler hakkında genel bilgileri Tablo-1'den alabilirsiniz. Bu parametreler aletten okunduktan sonra hesaplama işlemi için (en azından bizim anlayabileceğimiz geçer basınç ve sıcaklık değerini) hesaplamak kullanılır.

Tabiki buradaki sabit sayıların yanında alınması gereken iki önemli değer daha var. Bunlar sıcaklık ve basınç değerleridir. Bu değerler hakkında genel bilgi tablo 2'den ulaşılabilir.
ParametreAçıklamasıDeğer Aralığı
D1ölçülen basınç0x00 - 0xFFFF
D2ölçülen sıcaklık0x00 - 0xFFFF
Tablo-2:Sensörden ölçülen değerler.

Tüm parametreler okunduktan sonra yapılması gereken sadece sıcaklık ve basınç için değerleri okumak ve biraz da matematik işlem yapılması gerekiyor.
HP03s'de i2c iletişimi

Parametrelerin saklandığı bölümün iletişimi 24C02 eeprom ile uyumludur. Yani adresi 0xA0 şeklinde tanımlanmıştır. (0. bit 0=yazma 1= okuma) (Zaten yazma işleminin olmaması gerekir.)

Şekil-4 :HP03S üzerindeki EEPROM'u okumak için HP03S ile işlemci arasındaki iletişim.

HP03S üzerindeki i2c EEPROM'u okumak için adımlar olarak (temel i2c işlemleri bilindiği kabul edilmektedir) Burada okunan C1,C2,C3...C,D gibi tanımlanmış olan HP03S parametreleridir.
  • İşlemci i2c başlama durumunu gönderir
  • İşlemci EEPROM çip kodunu EEPROM yaz bilgisi ile birlikte gönderir (0xA0)
  • Adresleme tamamsa HP03 bir kabul sinyalini gönderir
  • İşlemci EEPROM adres kodunu gönderir.(0x10)
  • Adresleme tamamsa HP03 bir kabul sinyalini gönderir
  • İşlemci i2c tekrardan başlama durumunu gönderir
  • İşlemci EEPROM çip kodunu EEPROM oku bilgisi ile birlikte gönderir (0xA1)
  • Adresleme tamamsa HP03 bir kabul sinyalini gönderir
  • HP03 ilk veri adresindeki veriyi işlemciye gönderir (0x10 adresindeki)
  • İşlemci bir kabul sinyalini gönderir
  • HP03 sonraki veri adresindeki veriyi işlemciye gönderir (0x11 adresindeki)
  • İşlemci bir kabul sinyalini gönderir
  • --sırayla veriler okunur ve son veriye gelindiğinde
  • HP03 son veri adresindeki veriyi işlemciye gönderir (bu son adres aslında paremetre adresidir)
  • İşlemci bir kabul yok sinyalini gönderir
  • İşlemci i2c sonlandırma durumu gönderir

Şekil-4 üzerinde görülen iletişim şekli aşağı yukarı i2c iletişimi hakkında bir fikir verecektir.
HP03S (veya HP03M-sadece bacak bağlantı farkı var) sıcaklık va bısınç değerlerini okumak için.

Şekil-5 :HP03S üzerindeki ADC bilgisini okumak için HP03S bacakları üzerindeki sinyallerin şekli

ADC okumak için öncelikle MCLK bacağı üzerinde 32768Hz'lik bir darbe verilmesi gerekiyor. Bu ADC'nin ölçüm yapması için gereken bir sinyal olduğu belirtilmiş. Hatta bu sinyal belirtilen frekansa ne kadar yakın verilebilirse HP03 modülünün o kadar düşük güç tükettiği belirtilmiş. 4MHz işlemci frekansı ile işlemciden ancak 32786,885 Hz frekansında sinyal verilebiliyor.

ADC bölümünün işlem yapabilmesi için ayrıca XCLR olarak belirtilen HP03S modülü bacağının lojik-1 seviyesine çekilmesi ve veriler okunduktan sonra lojik-0 seviyesine çekilmesi gerekiyor

Şekil-6 :HP03S üzerindeki sıcaklık bilgisini okumak için HP03S ile işlemci arasındaki iletişim.

HP03S modülü üzerinden sıcaklık bilgisini (ADC ile) okumak için;
  • Öncelikle işlemci XCLR bacağını lojik-1 seviyesine çeker
  • İşlemci i2c başlama durumunu gönderir
  • İşlemci ADC çip kodunu ADC yaz bilgisi ile birlikte gönderir (0xEE)
  • Adresleme tamamsa HP03 bir kabul sinyalini gönderir
  • İşlemci ADC işlem kodunu gönderir (0xFF)
  • HP03 bir kabul sinyalini gönderir
  • İşlemci ADC işlem kodunu gönderir (0xE8)
  • HP03 bir kabul sinyalini gönderir
  • İşlemci bir sonlandırma durumu gönderir
  • İşlemci ADC'nin gerekli işlemleri yapabilmesi için yaklaşık 50ms bekler.
  • İşlemci i2c başlama durumunu gönderir
  • İşlemci ADC çip kodunu ADC yaz bilgisi ile birlikte gönderir (0xEE)
  • Adresleme tamamsa HP03 bir kabul sinyalini gönderir
  • İşlemci ADC işlem kodunu gönderir (0xFD)
  • HP03 bir kabul sinyalini gönderir
  • İşlemci i2c başlama durumunu gönderir
  • İşlemci ADC işlem kodunu gönderir (0xEF)
  • HP03 bir kabul sinyalini gönderir
  • HP03 ADC değeri yüksek anlamlı baytı gönderir
  • İşlemci kabul biti gönderir
  • HP03 ADC değeri düşük anlamlı baytı gönderir
  • İşlemci kabul yok biti gönderir
  • İşlemci sonlandırma durumu gönderir
  • İşlemci XCLR bacağını lojik-0 seviyesine çeker

Veri okunması şekli ile basınç bilgisi aşağı yukarı sıcaklık bilgisi ile aynı şekilde okunur. Sadece bir parametrede farklılık vardır.

Şekil-7 :HP03S üzerindeki basınç bilgisini okumak için HP03S ile işlemci arasındaki iletişim.

HP03S modülü üzerinden basınç bilgisini (ADC ile) okumak için;
  • Öncelikle işlemci XCLR bacağını lojik-1 seviyesine çeker
  • İşlemci i2c başlama durumunu gönderir
  • İşlemci ADC çip kodunu ADC yaz bilgisi ile birlikte gönderir (0xEE)
  • Adresleme tamamsa HP03 bir kabul sinyalini gönderir
  • İşlemci ADC işlem kodunu gönderir (0xFF)
  • HP03 bir kabul sinyalini gönderir
  • İşlemci ADC işlem kodunu gönderir (0xF0)
  • HP03 bir kabul sinyalini gönderir
  • İşlemci bir sonlandırma durumu gönderir
  • İşlemci ADC'nin gerekli işlemleri yapabilmesi için yaklaşık 50ms bekler.
  • İşlemci i2c başlama durumunu gönderir
  • İşlemci ADC çip kodunu ADC yaz bilgisi ile birlikte gönderir (0xEE)
  • Adresleme tamamsa HP03 bir kabul sinyalini gönderir
  • İşlemci ADC işlem kodunu gönderir (0xFD)
  • HP03 bir kabul sinyalini gönderir
  • İşlemci i2c başlama durumunu gönderir
  • İşlemci ADC işlem kodunu gönderir (0xEF)
  • HP03 bir kabul sinyalini gönderir
  • HP03 ADC değeri yüksek anlamlı baytı gönderir
  • İşlemci kabul biti gönderir
  • HP03 ADC değeri düşük anlamlı baytı gönderir
  • İşlemci kabul yok biti gönderir
  • İşlemci sonlandırma durumu gönderir
  • İşlemci XCLR bacağını lojik-0 seviyesine çeker

Bu bilgiler HP03S modülünden okunur ve USB-seri dönüştürücü modül üzerinden bilgisayara gönderilir. Bilgisayar üzerindeki program bu bilgileri değerlendirir
Elektriksel Sinyal Seviyesini Çevirme

Devre olarak göz önüne alındığında Atmega8 5V ile çalışırken, HP03S 3.3V ile çalışmaktadır. Eğer doğrudan birbirlerine bağlanırsa bazı sorunlar olacağı kesin. Bunun için gerilim farkları için seviye çeviricilerin kullanılması gerekir.

Şekil-8 :SDA hattı üzerindeki kullanılan iki yönlü iletişim için gerilimi seviyesi çevirici.


Şekil-9 :SCLK ve XCLR gibi hatlar üzerinde kullanılan işlemci tarafından kontrol edilen tek yönlüiletişim için gerilimi seviyesi çevirici.


Şekil-10 :MCLK gibi hatlar üzerinde kullanılan işlemci tarafından kontrol edilen tek yönlü iletişim için gerilimi seviyesi çevirici. (Çıkışı evrilmektedir)

Aslında tüm bağlantılar için şekil-9'daki seviye çevirici kullanılabilir. Elimde fazla mosfet olmadığından devre üzerinde böyle bir çözümü gidildi.
USB

Bu projede "FT232BL USB-Seri Dönüştürücü" projesinde kullanılan devre kullanılmaktadır. "FT232BL USB-Seri Dönüştürücü" projesi adından da anlaşılacağı gibi bir USB-seri (UART) dönüştürücüdür. Bu projenin alında işte bu bölümü dikkate değer. Basınç ve sıcaklım ölçüm sonucu bilgisayara bu şekilde iletilir.

Bilindiği gibi Atmega8 işlemcisinin USB portu yok, ama bir UART portu var. Atmega8'in UART portu USB-seri dönüştürücünün Seri portuna bağlanır ve USB-seri dönüştürücünün USB bölümüde bilgisayara bağlanır.

Sonuçta bu USB-seri dönüştürücü bilgisayar ile Atmega8 devresi arasında bir köprü olarak kullanılıyor. USB-seri dönüştürücünün bilgisayardaki sürücüleri Sanal seri port oluşturan bölümü kullanılacağından, bir yerde bilgisayar üzerindeki ölçüm programı sanki Atmega8 devresi bilgisayarın seri portuna bağlanmış gibi işlem yapacaktır.
Devre

Proje bileşenleri göz önüne alındığında HP03S modülü, Atmega8 işlemci devresi (işlemci devresi) , USB-seri dönüştürücü ve projeye dahil edilmesi gereken bir bilgisayar. Bilgisayar ölçüm aralığını belirler, ölçüm sonucuna göre gelen bilgileri hesaplar ve sonucu gösterir, hatta gerekirse hesaplanan bilgiler bilgisayara kaydedilir.

HP03S modülü sıcaklık ve basınç ölçümü için üzerindeki 16 bitlik ADC işlemci bilgisayardan gelen emirler doğrultusunda okunur ve ölçüm sonucunu USB-seri dönüştürücüye iletir. USB -seri dönüştürücü bilgisayarın USB portuna yöneltir. Bilgisayar üzerindeki program gelen bu bilgiyi hesaplar ve sonucunu kullanıcıya iletilir

Şekil-11 :İşlemci kartı (Atmega8 işlemcisi ve HP03S algılama sensörü modülü ile.


Şekil-12 :USB-seri dönüştürücü kartı


Şekil-13 :İşlemci kartı ile USB-seri dönüştürücü kartını bağlayan iki ucunda 2x5'li dişi konnektör bulunan 10 yollu şerit kablo


Şekil-14 :USB-seri dönüştürücü kart ile bilgisayar arasındaki bağlantıyı sağlayan USB kablo


Şekil-15 :İşlemci kartı ile USB-seri dönüştürücü kartı birbirine bağlı halde

Şema

USB seri dönüştürcü Devresinin kalbi zaten görüldüğü üzere FT232BL IC1. Tüm iletişim sistemini bu eleman kontrol ediyor. Bu tüm devreye bağlı olan R9 ve R10 (27R) seri USB akım sınırlama dirençleri. Burada R9 (27R) ucuna bağlı olan R8 (1K5) direnci USB’nin tipini (USB2.0) belirleyen dirençtir. Buradaki R6 (4k7) ve R7 (10K)devre harici besleme durumunda bilgisayarın kapatılması durumunda USB cihazın sıfırlanması ile ilgili bir görevi var. R1 ve R2 (1K)dirençleri LED1 ve LED2 LED’lerinin akım sınırlama dirençleridir. LED1 ve LED2 LED’leri seri port iletişim monitörü olarak çalışır. R3(10K) ve R4 (2K2) IC2 (93C46) EEPROM’un veri aktarma uçlarının FT232BL entegresine bağlantısında kullanılır. Bu bağlantı şekli konusunda ayrıntılı bilgi için FT232BL veri kağıtlarını incelenmesi yerinde olabilir. C1, C2 (27pF) ve XT1 (6MHz)ise IC1 için saat frekans üretim sistemini oluşturuyor. USB-A USB bağlantı konnektörü. (isteyen doğrudan USB kablosunu doğrudan lehimleyebilir.) P1 seri bağlantı için bağlantı portudur. P2 ve P3 ise besleme bağlantısı için seçim konektörleridir. Her ikisine takılacak köprü yardımıyla kullanılabilir.

M1 (HP03S) basınç va sıcaklık sensörlerini barındıran modüldür. İşlemci kartı IC3 (ATmega8) işlemcisi tarafından yönlediriliyor. Bu işlemcinin saat frekansı ihtiyacı C8 ve C9 (27pF) kondansatörler ile birlikte XT2 (4MHZ) kristal tarafından karşılanıyor. M1 ile gösterilen HP03S modülü basınç ve sıcaklık ölçümü sonucunu işlemciye gönderirken aynı zamanda basınç ve sıcaklık için gereken parametreleri saklar. SDA iletişimi için R11 (10K) ,Q1 (BS170) ve R14 (10K) elemanları gerilim seviye dönüşümünü sağlarlar. SCL için ise R12 (10K), D2 (1N4148) R15 (10K) elemanları gerilim seviye dönüşümünü sağlarlar. MCLK (ADC için) R19 (10K) pull up direnci olmak üzere, R20 (1k) ,Q2 (BC547) ve R16 (10K) gerilim seviye dönüşümünü sağlar. Ayrıca HP03S 'in XCLR bacağı için R13 (10K), D3 (1N4148) ve R17 gerekli gerilim seviyesi dönüşümünü sağlar. R18 (1K) direnç ile seri bağlı LED3 devrenin çalışmasında monitör olarak kullanılmaktdır.

M1 modülü için gereken 3.3V'luk besleme gerilimini IC4 (LP2950-3.3) gerekli regülasyonu sağlayacaktır.

Devrenin beslemesi P4 konnnektörü üzerinden D1 (2W10M) köprü diyodu üzerinden IC5 (7805) regüle edilerek devrenin ihtiyacı olan beslemeyi oluşturur.

P1 ve P5 işlemci ve USB kartlarının UART bağlantısı için (seri) kullanılır.

Belirtilmeyen geri kalan kondansatörler filtre amaçlıdır.

Şekil-16:Blok şeması


Şekil-17:Devre şeması (P1 ve P5 konnektörleri gösterilmemiştir)

Devre Yapımı

Devre montajı açısından kritik bir durum yoktur. Görüldüğü gibi devre son derece sadedir. Yüzey montaj elemanların montajında biraz daha dikkatli olmak yerinde olacaktır.

Yüzey montaj elemanları herne kadar eleman yüzü üzerinde gösterilsede bu elemanlan kartın bakır yolları üzerine monte edildiğinde eleman yüzü üzerinden görülüdüğü gibi gösterilmiştir. Herhangi bir şüpheye düştüğünüzde ilgili elemanların veri kağıtlarını kontrol etmeniz de yarar var.

Şekil-18:USB-seri dönüştürücü ve işlemci kartının yolları


Şekil-19:USB-seri dönüştürücü ve işlemci kartının eleman yerleşimi


Şekil-20:USB-seri dönüştürücü ve işlemci kartının yolları birlikte eleman yerleşimi


Şekil-21:USB-seri dönüştürücü ve işlemci kartlarının kablo bağlantısı


Şekil-22:İşlemci kartı üzerindeki IC4 ve IC5 arasındaki besleme girişlerini bağlayan bağlantı köprüsü. (Bu bağlantı yapılmazsa, 3.3V bölümü çalışmaz.) Kablo bağlantısı mavi renkte gösterilmiştir.

Devre Elemanları

27RR9,R10
470RR5
1KR1,R2,R18,R20
1k5R8
2k2R4
4k7R6
10KR3,R7,R11,R12,R13,R14,R15,R16,R17,R19
27pFC1,C2,C8,C9
100nFC3,C4,C5,C7,C11,C12,C13,C14
10µF/25VC6,C10,C15
3mm Kırmızı LEDLED2
3mm Yeşil LEDLED1,LED3
FT232BLIC1
Atmega8 (DIL)IC3
93C46 (DIL)IC2
7805IC5
LP2950-3.3IC4
BS170Q1
BC547 Q2
1N4148D2,D3
2W10M veya benzeriD1
6Mhz kristalXT1
4Mhz kristalXT2
HP03S veya HP03MM1
10 Header(2x5)P1,P5
6 Header(2x3)isp
USB-A konnektörUSB-A
3 bacak sıra pinP2,P3
köprüköprü(jumper) 2 Adet
2 bacaklı klemansP4


Besleme için 9V'luk adaptör, USB-seri dönüştürücü kartı ile işlemci kartı arasına (P1 ve P5) 2x5 bağlantı uçu ile birlikte 10 yollu yassı kablo kablo ve konnektörü ve bilgisayar için USB bağlantı kablosu unutulmamalıdır.
Ayar ve kullanım

Ayar için öncelikle USB -seri dönüştürücü kartındaki P2 ve P3 konnektörleri üzerindeki köprüler ayarlanması gerekir. Bu köprüler FTDI232 işlemcisinin besleme ve çalışma şeklini belirler.

İşlemci kartı üzerindeki köprüleme için kullanılan kabloyu unutmayın. (IC4 ile IC5 arasındaki besleme için.).

Şekil-23:USB-seri dönüştürücü kartı üzerindeki köprülerin konumları.(Köprü konumları kırmızı alanlar ile işaretlenmiştir)

Devrelerden önce USB -seri dönüştürücü devresinin çalıştığından ve bilgisayar ile ilgili sürücülerin yüklendiğinden emin olur. Burada sanal seri port sürücüleri kullanılacaktır. (Bunun anlamı USB seri dönüştürücü yerine max232 entegresi ile yapılmış seri gerilim dönüştürücü kullanımı ile birlikte işlemci kartının kullanılabileceğidir).

İşlemci (Atmega8) işlemci kartı üzerine takmadan önce devreye beleme uygulanır ve uygun noktalardan gerilimler ölçülür. Bu şekilde kısadevre veya açık devre olup olmadığı kontrol edilir.

Her şey tamamsa işlemci takılıp (hatta sensör) işlemci gerekli programlamalar ve ayarlamalar yapılır. Bu noktada sistemi tam çalışır hale getirmek için çalışmaya başlamak gerekir.

Sistemi oluşturan kartları bağla, USB kablosunu bilgisayara bağla ve işlemci kartına besleme gerilimi uygula. Bilgisayar üzerindeki "BaroMetre.exe" programını çalıştır. Gelen ana pencere üzerinde herhangi bir butona tıklamadan "Ayarlar" butonuna tıkla.

Burada bilmeniz gereken konu USB kartının atandığı seri portun numarasıdır. Bu aslında basit. USB kart takılmadan programı çalıştırılır, ayarlara girilir ve bakılır. Seri portlar not alınır. Sonra USB kart takılı iken ayarlardaki Seri portlara bakılır. Fazla olan port USB kart için atanmış seri porttur. Zaten bilgisayar üzerinde seri port yoksa, tek bir tane seri port görülecektir.

Ayarlar penceresinde iken önce USB kart için atanmış seri portu ayarla. Herşey tamam ve çalışır halde ise, sıra ile "C1 Oku", "C2 Oku".. "C Oku" "D Oku" butonları ile belirtilmiş olan HP03S parametrelerini işlemci üzerinden almak ve kullanmak gerekiyor. Sadece butonlara basmak yeterlidir. Basılan buton ile ilgili yanındaki yazı alanına parametreyi yazılmasını sağlayacaktır. Örneğin "C1 Oku" butonuna basılırsa bilgisayar işlemciden C1 parametresini okur ve "C1 Oku" butonu yanındaki yazı alanına C1 parametresini (onluk sistemde) yazar. İlk basılan buton ile birlikte yazı alanı üzerinde gösterilen değer en azından sistemin çalıştığını gösterir. Butona basıldığında yazı alanına değer gelmezse aynı işlemi başka bir buton ile dene.(Parametre 0 değerini taşıyor olabilir) Hepsi sıfır ise sisteminizi ve ayarlarınızı kontrol edin. (Bir yerde hata var).USB-seri dönüştürücü kartı üzerindeki LED'ler seri port işlem yoğunluğunu izlemek için kullanılabilir.

Bu işlem sıra ile bütün butonlara basarak tüm parametre alanları doldurmak gereklidir. (C1, C2, C3 ...B, C, D). Bu parametreler okunan sıcaklık ve basınç kullanılarak kullanıcının anlayabileceği hale getirilir. Buradaki önemli nokta tüm bu parametre alanları parametreler yerleştirildikten sonra "Tamam" butonuna tıklanmasıdır. "Tamam" butonuna tıklandıktan sonra, yapılan tüm ayarlamalar program ile aynı klasördeki aynı isimli ".ini" uzantılı dosyaya kaydedilir ve program her başlatıldığında aynı dosyadan okunarak kullanılır. (Ayarlar penceresindeki her bir değer aynı şekilde bu ".ini" uzantılı dosya içinde saklanır. Bu projede "BaroMetre.ini" isimli bir dosyadır.

"Tamam" butonuna basılması ile ana pencereye gelinir. Burada tekil ölçüm için iki buton var: Sıcaklık ve basınç. Her iki buton üzerinde yer alan yazı alanlarına ölçülen değerlerden hesaplanan sonuçlar yazılacaktır. "Sıcak" butona basıldığında ölçülen sıcaklık değeri parametreler kullanımıyla gerekli işlemlerden geçirilecek ve sonucu sıcaklık butonu üzerine yazılacaktır. Aynı zamanda sol taraftaki liste alanında da görüntülenecektir. Ve de ayarlarda bir dosya kaldı seçeneği aktifse sonuç zaman ile birlikte dosyaya kaydedilecektir.

"Basınç" için butona basmadan önce bir kez "sıcak" butonuna basılması gerekiyor. Çünkü basınç hesabı için sıcaklık değeri hesabı gerekiyor. "Basınç" butonuna basıldığında, hemen butonun üzerindeki yazı alanına hesaplanan basınç değeri koyar, sol taraftaki liste alanına değeri yazar ve dosya kaydı seçeneği seçilmişse, dosyaya zaman ile birlikte sonucu kaydeder.

"Ölç" butonu ölçümün belirli aralıklarda tekrarlanmasını sağlar. Ölçüm için sürekli bilgisayar başında beklenmesi gerekmez."Ölç butonuna tıklandığında, bilgisayar bir zamanlayıcıyı aktifleştirir.Önce sıcaklık değerini ölçer, yaklaşık "300ms" sonra basınç değerini ölçer ve "Ayarlar" penceresindeki "Okuma zamanı" belirtilen değer kadar bekler ve tekrar sıcaklık değerini ölçer...

Ölçülen değerler yukarıda "Sıcak" ve "Basınç" butonlarında anlatılan işlemleri aynı şekilde yerine getirir. Tek farkı sürekli tekrar edilmesidir.

İşlemci kartı üzerindeki LED3 sıcaklık ölçümünde yanacak ve basınç ölçümünde sönecektir. Böylece sürekli ölçüm işleminde sistemin faliyetleri gözlenebilecektir.
Bilgisayar programı

"BaroMetre.exe" programı Delphi 7 ile yazıldı ve derlendi. Program sadece XP üzerinde denendi. Programı çalıştırmak için "BaroMetre.exe" dosyasının yanında "BaroMetre.ini" dosyasıda aynı klasör içinde bulunması gerekmektedir. İni dosyası yok ise program ile ilgili ayarlar yapıldıkça Ayarlar penceresinde "Tamam" butonuna tıklandığında yapılan ayarlar ile ilgili değişiklikler ini dosyası yoksa önce ini dosyası oluşturulur ve tüm değişkenler bu ini dosyasına kaydedilir.
ANA PENCERE
"BaroMetre.exe" programı çalıştırıldığında ile ekrana gelecek olan penceredir.

Şekil-24:Ana pencere.

Ana pencere üzerinde rakamlarla ilişkilendirilen alanları incelersek;
  1. Program açık olduğu süre içinde hesaplanan sıcaklık ve basınç değerleri listesi (Son ölçüm en üstte yer alır)
  2. Program açık olduğu sürede hesaplanan son sıcaklık değeri gösterilir
  3. Program açık olduğu sürede hesaplanan son basınç değeri gösterilir
  4. Butona tıklandığında bir sıcaklık ölçümü yapar.
  5. Butona tıklandığında bir basınç ölçümü yapar.
  6. Butona tıklandığında ölçüm işlemlerini başlatır. Ayarlar penceresindeki "Okuma Zamanı" alanındaki seçilen zaman birimi sıklığında ölçüm gerçekleştirilir.
  7. Ayarlar penceresine girmek için tıkla.

AYARLAR PENCERESİ

Şekil-25:Ayarlar penceresi. Projede kullanılmış olan HP03s algılayıcının parametre değerleri görülmektedir.

Ayarlar penceresi üzerindeki rakamlarla ilişkilendirilen alanları incelersek;
  1. USB-seri dönüştürücü tarafından oluşturulan sanal seri porta seçmek için açılır menü. Program açıldığında bilgisayar üzerindeki seri portlar taranır ve bu menüye eklenir. (Donanıma bağlı olarak değişken olabilir)
  2. İşlemci kartından "C1" değerini almak için butona tıkla
  3. İşlemci kartından gelen "C1" parametresinin görüntülendiği yazı alanı
  4. İşlemci kartından "C2" değerini almak için butona tıkla
  5. İşlemci kartından gelen "C2" parametresinin görüntülendiği yazı alanı
  6. İşlemci kartından "C3" değerini almak için butona tıkla
  7. İşlemci kartından gelen "C3" parametresinin görüntülendiği yazı alanı
  8. İşlemci kartından "C4" değerini almak için butona tıkla
  9. İşlemci kartından gelen "C4" parametresinin görüntülendiği yazı alanı
  10. İşlemci kartından "C5" değerini almak için butona tıkla
  11. İşlemci kartından gelen "C5" parametresinin görüntülendiği yazı alanı
  12. İşlemci kartından "C6" değerini almak için butona tıkla
  13. İşlemci kartından gelen "C6" parametresinin görüntülendiği yazı alanı
  14. İşlemci kartından "C7" değerini almak için butona tıkla
  15. İşlemci kartından gelen "C7" parametresinin görüntülendiği yazı alanı
  16. İşlemci kartından "A" değerini almak için butona tıkla
  17. İşlemci kartından gelen "A" parametresinin görüntülendiği yazı alanı
  18. İşlemci kartından "B" değerini almak için butona tıkla
  19. İşlemci kartından gelen "B" parametresinin görüntülendiği yazı alanı
  20. İşlemci kartından "C" değerini almak için butona tıkla
  21. İşlemci kartından gelen "C" parametresinin görüntülendiği yazı alanı
  22. İşlemci kartından "D" değerini almak için butona tıkla
  23. İşlemci kartından gelen "D" parametresinin görüntülendiği yazı alanı
  24. Yapılan ölçüm sonuçlarının bilgisayara kaydedilmesi için bir metin dosyası açmak gerekir. Bu buton işte o metin dosyasını açmak (daha doğrusu boş metin dosyası) için kullanılır.
  25. Ölçüm sonuçlarının kaydedileceği metin dosyası adı ve bilgisayar üzerindeki yeri
  26. "Ölç" butonu ile kullanılan otomatik ölçme zaman aralığını belirler.
  27. Ölçüm sonuçlarının metin dosyasına (7 nolu alandaki dosya adına) kaydetme izni için işaretle. İşaretli değilse kayıt yapılmaz.
  28. Hesaplanan basınç değeri sonuna "mbar" birimini ekler (29 ile işaretli radio buton ile ilişkilidir.)
  29. Hesaplanan basınç değeri sonuna "hpa" birimini ekler(28 ile işaretli radio buton ile ilişkilidir.)
  30. Ayarlar işlemlerini tamamlanması, ayarların kaydedilmesi ve "Ayarlar" penceresinin kapatılması ve ana pencere geri dönülmesi için "Tamam" butonuna tıkla.

Not:Bu projede ölçülen değer ve hesaplamaların kesinliği konusunda doğrulama şansım olmadığı için "BaroMetre.exe" dosyasının açık kodları verilmektedir.(işlemci programı için zaten verilmektedir).

video

Ekler:

ATMEGA8 hakkında bilgi için

"Atmega8 ve HP03S ile USB bağlantılı barometre" için dosyalar-birleşik

Bu devrenin yapım sorumluluğu size aittir. Devre yapıldı ve çalışıyor. K.A....

Hiç yorum yok:

Etiketler

İzleyiciler