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... Görüleceği gibi ilk örneklerimizde çoğunlukla ASM üzerinde iken daha sonraları C üzerinde örnekler yer almaktadır. Hatta ilerleyen zamanlarda Arduino örneklerinin yer alması kaçınılmaz olacaktır.

17 Haziran 2013 Pazartesi

Atmega8 ile Bluetooth ve DS1820 termometre

Ortam ile etkileşim sağlanabilmesi için işlemci devrelerinde sensör kullanımı kaçınılmazdır. Elektronik olarak sıcaklık ölçmek için çeşitli yöntemler vardır. Dolayısı ile de ölçülen verinin iletilmesi için çeşitli iletişim yolları.
Bu projede "Atmega8 ile Bluetooth ve DS1820 termometre" konusu işlenecektir.

HC06 BLUETOOTH Modül

Şekil-1 :Bluetooth iletişiminde bilgisayar ve devre için iki modül gerekir. Her ikisinin de HC06 olması gerekmez. Bilgisayar tarafına kolaylık olması açısından USB Bluetooth modüller kullanıbilir.

Linvor’s (Guangzhou HC Information Technology Co., Ltd. olarak bilinir) üretimi bir sistemdir. Projede kullanılan ürün 5V'lu besleme gerilimini ile çalışabilmektedir.
Şekil-2 :HC06 modül.

Bluetooth iletişimi ile ilgili parametreler ve ayarlamalar modül üzerinde tamamlandığı için sadece RS232 (UART) kullanarak iletişimi tamamlamaktayız. Bu nedenle bu modüle Bluetooth-RS232 dönüştürücü diyebiliriz. Dolayısı ile bluetooth iletişimdeki diğer cihaz (burada bilgisayar oluyor) ile bağlantı işlemcinin UART portu üzerinden sağlanmaktadır.

HC06 ile ilgili olarak ihtiyacımız olan
Modül Adı linvor
Modül şifresi 1234
bilgileridir. Bunlar bilgisayar tarafından HC06 ile (işlemci devremizle) iletişim kurmak için gereklidir. Aslında işlemci devresi olmasa bile sadece HC06 modülüne 5V vererek de modülü test etme imkanımız vardır.

İki bluetoot arasında iletişim başlangıcıda (bağlanırken), akım 30-40mA aralığında inip çıkar. Kabaca 25mA civarındarır. Bağlantı esnasında ise, iletişim yapılsın veya yapılmasın, akım 8mA'dir. Bu uyku modu değildir. Bu parametre tüm Bluetooth modüller için aynıdır.

DS1820 ve 1-hatlı bağlantı

Şekil-3 :1-hatlı (1-wire) dalga şekli örneği.

Bacak bağlantılarıda azaltma sağlamak üzere kullanılan iletişim yöntemlerinden biri olarak 1- hatlı (1-wire) bağlantısıdır. Bu iletişim yönteminde tüm iletişim 1 tane hat üzerinden yürütülür. Hatta bazı durumlarda besleme bile (GND hattını saymazsak)
Şekil-4 :1-hatlı (1-wire) bağlantı örneği.

Dallas Semiconductor firması tarafından üretilmeşi olan DS1820 sıcaklık sensörü sıcaklık verisinin doğrudan dijital olarak elde edilmesinin yanında 1 hatlı bağlantı yapısı sayesinde minimum bacak bağlantısı ile işlemciye kolaylıkla uyarlanabilmektedir.

İşlemci veri gönderecekse;

Lojik-1 için uzun bir darbe oluşturacak; Lojik-0 için ise kısa bir darbe oluşturacak. DS1820 bu sinyalleri okuyup gerekli biti alacaktır.(bir bit için)

Şekil-5 :DS1820

DS1820 veri gönderecekse;

İşlemci zaten veri alma işlemine hazırdır çünkü kendisi bir veri istemiştir. İşlemci kısa bir darbe oluşturacak ve DS1820 buna ; Lojik-1 için uzun bir darbe ve Lojik-0 için kısa bir darbe ile karşılık verecektir.
Şekil-6 :DS1820 bacak bağlantıları.

Bit işlemi ile ard arda tekrarlanarak bayt elde edilir.

İş aşamaları 1-hatlı port üzerinden DS1820 erişimi için protokol:
  • Başlama
  • ROM fonksiyon komutu
  • Bellek fonksiyon komutu
  • İş/Veri
Bir sıcaklık çevirme örneğini ele alırsak
  1. İşlemci tarafından bir sıfırlama darbesi gönderilir.
  2. DS1820 tarafından HAZIR darbesi ile cevaplanır.
  3. DS1820 ROM bölümünü okumak isteyen okusun , ama biz atlıyoruz.
  4. İşlemci sıcaklığı dönüştür komutunu gönderir.
  5. İşlemci 500ms süresince hattı lojik 1 seviyesinde tutarak sıcaklık çevrilmesine izin verir.
  6. Tekrar işlemci tarafından bir sıfırlama darbesi gönderilir.
  7. DS1820 tarafından HAZIR darbesi ile cevaplanır.
  8. Tabii ki ROM okuma bölümünü atlıyoruz.
  9. Bu noktada İşlemci DS1820'nin Geçici Bellek alanını oku komutu gönderir.
  10. DS1820 bu noktada CRC kontrol baytı dahil olmak üzere 9 bayt gönderir.
  11. İşlemci tarafından bir sıfırlama darbesi gönderilir.
  12. DS1820 tarafından HAZIR darbesi ile cevaplanır. bir sıcaklık okuma işlemi tamamlanmış olur.

Elimizde CRC kontrolu yapmadığımızı varsayarsak 8 değerlendirilmesi gereken bayt var,bunlar;

bayt 0 Sıcaklık LSB
bayt 1 Sıcaklık MSB
bayt 2 TH Register
bayt 3 TL Register
bayt 4 Ayrılmış
bayt 5 Ayrılmış
bayt 6 Count Remain
bayt 7 Count Per °C
bayt 8 CRC

Not: biz sadece kırmızı ile işaretli baytları kullanacak ve değerlendirecek şekilde yazılım düzenlendi. Eğer yüksek çözünürlük isteyen varsa yeşil ile işaretli baytlar kullanılarak elde edilir. Bunun için biraz internet ve DS1820 üzerine örnekleri araştırmanızı öneririm.

ilk iki bayt sıcaklık değeridir. LSB sıcaklığın kendisini ve MSB ise sıcaklığın eksi/artı için değer içerir. (asılnda 9.bit oluyor) TH ve TL Registerleri alarm registerleri(kayıt için). 4. ve 5. bayt başka geliştirilen aletlerde kullanılmak üzere ayrılmış. 6. ve 7. bayt yüksek çözünürlük isteyenler için eklenmiş baytlardır. (biraz hesap gerektirir) Son bayt yukarıda belirtilen baytları kullanarak oluşturulan bir hata kontrol baytı.

Dolayısı ile şu an için sistem 0.5 C'lik ölçüm hassasiyetine sahip olur.

Devre

Proje iki ana gruba ayrılmıştır. DS1820 sensör ile iletişim kurma, ölçüm sonuçlarını alma ve alınan verilerin bilgisayara aktarılması.
Şekil-7 :HC06 Bluetooth modülünün bulunduğu kartı.

Bu durumda iletişim işini yürüten HC06 ve işlemci kartı ile bağlantı için küçük bir kartı oluyor. Küçük kart üzerinde sadece gerektiğinde UART portlarını değiştirmek için iki tane köprü var.
Şekil-8 :İşlemci kartı.

İşlemci kartı ise, her ne kadar DS1820 ile iletişim için kablo bağlandı ise de normalde kart üzerine monte edilebilen; sensör, işlemci ve devre için kullanılacak beslemenin içerir.
Şekil-9 :İşlemci ve bluetooth kartlarının arasındaki bağlantıyı sağlayan konnektörleri ile birlikte 10 yollu şerit kablo.

Şekil-10 :Bilgisayar üzerinde Bluetooth yoksa bir tane USB-Bluetooth modül yeterli olacaktır.

Buraya kadarki olanlar sadece sıcaklığı ölçmek ve sonucu iletmek için kullanılmaktadır. Elbette ki iletilen verinin alınması için bir sistem gerekir ki, bu da bluetooth bağlantısı olan bir bilgisayar. Her bilgisayarda Bluetooth modülü bulunmadığı durumlarda basit yolla bir usb bağlantısı olan Bluetooth modülü gerekmektedir.

Projede bilgisayara bağlı olan Bluetooth master konumda çalışırken, işlemciye bağlı olan HC06 bluetooth modül slave konumunda çalışmaktadır.  İletişim iki yönlüde yapılabilmektedir. Bilgisayar Atmega8'e sıcaklı okuması için komut gönderirken işlemci devreside okunan sıcaklık değerini bilgisayara 2 bayt olarak geri göndermektedir.

Şema

Devrenin kalbini IC1 (Atmega8) oluşturmaktadır.İşlemcinin zamanlama ihtiyacını karşılamak için XTL1(3.6864MHz) kristal ile C1 ve C2 (27pF) kondansatörler ile birlikte işlemci için gereken zamanlama frekansını üretirler. R1 ( 1K) ve LED1 (LED) ile devrenin çalışmasını izlemek üzere kullanılmaktadır. R2 (4K7) 1-hatlı bağlantı için hem besleme hem de hat empedansı için kullanılmaktadır.IC2 (DS1820) 1-hatlı dijital termometre çipidir.ISP konektörü işlemci programlamak için kullanılacak konnektör bağlantısıdır. (isteyen işlemciyi başka bir yerde programlayıp sonra devreye takabilir.)

Bluetooth iletişim kartı üzerinde C10 (100nF) kondansatörü besleme gerilimi üzerindeki parazitleri süzmektedir.

D1 (W10M), IC3 (7805), C5,C6 (100nF), C3 (10µF/25V) besleme devresini oluşturmaktalar. Geriye kalan bütün kondansatörler devre oluşabilecek gürültüleri süzme görevini yerine getirir.

Not:İşlemcinin yakınındaki L1 bobini bu devrenin gerektiğinde LM35 gibi bir sıcaklık sensörü ile kullanılacağı varsayılarak AVCC üzerindeki gerilim dalgalanmalarını filtre etmek amacı ile eklenmiştir. İsteyen bu elemanı bir tel köprü ile değiştirebilir.Çünkü şu anki sıcaklıklı sensörümüz dijitaldir ve işlemcinin üzerindeki adc kullanılmamaktadır.
Şekil-11:Blok şeması

Şekil-12:Devre şeması (P2 ve P3 konnektörü gösterilmemiştir)

Devre Yapımı

Devre montajı açısından kritik bir durum yoktur. Görüldüğü gibi devre son derece sadedir. Sadece kabloları karta lehimlerken kısa devre olmamaları için dikkatli olmak yerinde olacaktır.
Şekil-13:İşlemci ve bluetooth kartı yollar

Şekil-14:işlemci kartı eleman yerleşimi

Şekil-15:işlemci kartı yolları birlikte eleman yerleşimi

Şekil-16:Kartların bağlantıları. DS1820 sensörü doğrudan karta lehimlemek isteyenler için kart üzerindeki bağlantılar LM35 için olup birebir uyumlu değildir.

Not:DS1820 doğrudan karta lehimlemek istenirse, bacak bağlantılarına dikkate etmeniz gerekmektedir. Yoksa beslemeler ters bağlanmış olur. Kablo ile bağlayacaksanız, Şekil-16 yardımcı olacaktır.
Şekil-17:Bluetooth kartındaki köprülerin konumları

Şekil-18:Tüm sistemin bağlantı yapılmış hali.

Devre Elemanları

1K R1,
4K7 R2
10µH L1
27pF C1,C2
100nF C4,C5,C6,C7,C8,C9,C10
10µF/25V C4
LED LED1
Atmega8 (DIL) IC1
DS1820 IC2
7805 IC3
W10M veya benzeri D1
3,6864 Mhz kristal XTL1
2x3 Header (ISP6) isp
2'li klemens P1
28 bacaklı entegre soketi (DIL) -
10 yollu şerit kablo (10cm) -
IDC10 kablo dişi konnektör 2 adet -
IDC10 kart tipi erkek konnektör P2,P3
1x3 sıra pin erkek J1,J2
1x4 sıra pin dişi M1 için
HC06 Bluetooth modül M1
J1 ve J2 için köprü dişi -

Besleme için 9V'luk adaptör unutulmamalıdır.

Bilgisayar Programı

Şekil-19:Devre çalışırken. İlk açıldığında ve sonraki durumda bilgisayardan sıcaklık okuma komutu geldiğinde okunan veri gönderilene kadar ki durumu.

Devre üzerinde herşey tamamsa Enerji verildiğine Şekil 19'dakine benzer bir görünümü olacaktır. Artık devre bilgisayar ile iletişime hazırdır. Bu durumda bilgisayar üzerine programımızın yüklendiğine ve bluetooth takıldığı ve ayarlarının yaplmış olduğunu varsayıyoruz.
Şekil-20:Bu proje için C# üzerinde yazılmış bilgisayar programı simgesi.

"M8_bluetooth_DS1820_termometre.exe" C# ile yazılmıştır. Bu nedenle çalıştırabilmek için Frameworks.net runtime sürüm 4'ün bilgisayarınızda yüklü olması gerekiyor. Program Win xp üzerinde geliştirilmiş ve denenmiştir.

"M8_bluetooth_DS1820_termometre.exe" simgesi üzerine iki kez tıklayıp çalıştırıyoruz.


Ana pencere
Şekil-21:Ana pencere

Program ilk açıldığında gösterildiği penceredir. Bu pencere üzerindeki öğelerin açıklaması aşağıda verilmiştir.
  1. Ana pencere-Ayarlar penceresi arasında geçişi sağlayan etiketler;
  2. Ölçülen değerlerin görüntülendiği alan.
  3. Ölçülen son değerin görüntülendiği alan.
  4. Sürekli okuma veya sürekli okumayı sonladırmak için buton.

Ayarlar penceresi
Şekil-22:Ayarlar penceresi.
  1. Ana pencere-Ayarlar penceresi arasında geçişi sağlayan etiketler.
  2. Seri port seçimi için seçenekler.
  3. Baud seçimi için seçenekler.
  4. Rapor dosyasının kaydedildiği yer(ölçüm sonuçlarının kaydedildiği).
  5. Ölçüm sonuçlarını kaydetme seçeneği.
  6. Ölçüm aralıkları ayarı için seçenekler.

Program üzerinde sınırlıda olsa bir hata kontrolu vardır. Yani çalışırken blueetooth bağlantısı koparsa ekranda bir uyarı verecek ve cihazlarınızı kontrol etmenizi isteyecektir.
Şekil-23:Program çalışırken alınmış bir hata mesajı.

Program için olsun devre için olsun yapılabilecek çok şey var. Örneğin ölçüm sonuçları grafik olarak ekranda görüntülenebilir.
Şekil-24:Bluetooth bu noktada işe yarıyor. Yani sistemin portatif olması.

Bilgisayar ile ilgili Bluetooth ayarları için "Atmega8 ve Bluetooth ile LED Saat" projesine bakılabilir. O projede ayrıntılı olarak anlatılmıştır.

Son olarak bilgisayar tarafının programını yazmak isteyenler için veri şu şekilde iletilmektedir


1-Bilgisayar devreye "0x17" değerini gönderiyor.
Şekil-25:Verilerin iletişim şekli.

2-Devrede bilgisayar 2 baytlık sıcaklık bilgisini gönderiyor. LSB olarak tanımlayabileceğimiz bayt; ölçülen sıcaklığın alt 4 biti ("0000"+"4 alt biti") şeklinde gönderir ve MSB olarak tanımlayabileceğimiz bayt; ölçülen sıcaklığın üst 4 biti , işaret biti ve MSB biti şeklinde ("MSB biti"+"işaret biti"+"00"+"4 üst bit") şeklinde gönderiliyor. (ilki LSB ve ikincisi MSB olarak gelir)

Bilgisayar tarafında da önce gelen değer 127'den büyük mü bakılıyor. Küçükse bu değer LSB olarak işaretleniyor... Eğer değer 127'den büyükse  gelen değer MSB olarak işaretleniyor.. Önce MSB değer 128'den çıkarılıyor. Elde edilen sayı 63'den büyük mu bakıılıyor... Eğer 63'den küçükse gelen değer pozitif sayıdır.

Sıcaklık değeri=( (MSB*16)+LSB)/2 

Eğer 63'den büyükse negatif sıcaklık değeri olduğu kabul edilir ve önce MSB değeri 64'den çıkarılır ve;

Sıcaklık değeri=(( (MSB*16)+LSB)-256)/2 

şeklinde sıcaklık şekilleri hesaplanır.

Bu işlemler işlemci devresi ile bilgisayar arasında senkron ile yapıldığından bilgisayarda gösterilen değer işlemcide ölçülen değer olmuş oluyor.



Ekler:
Atmega8 hakkında bilgi için

"Atmega8 ile Bluetooth ve DS1820 termometre" projesi için gereken dosyalar

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

2 Haziran 2013 Pazar

Atmega8 ve Bluetooth ile LED Saat

Bu projedeki saat devresi sadece Atmega8 ile de yapılması mümkündür. Yapılması gereken boş bacaklara iki tane buton eklenmesi yeterlidir. Ama özellikle birden fazla böyle bir saatin bulunduğu durumda senkron sağlamak ciddi bir sorun olabilir. Gerek çevresel şartlar gerekse cihazlardan kaynaklanan durumlardan dolayı sıklıkla ayar gerekebilir.

Kablolu bağlantının mümkün olmadığı ortamlarda ise bu saat senkronizasyonun kablosuz bağlantı yöntemleri ile yapılması gerekmektedir. İşte bu noktada bluetooth cihazları değereye girmektedir.

Bu projede "Atmega8 ve Bluetooth ile LED Saat" üzerinde çalışılacaktır.
Not: Projede LED saat yerine bluetooth üzerinde durulacaktır.

Bluetooth

Şekil-1 :Bluetooth için kullanılan simge.

1994 yılında Ericsson tarafından cep telefonları ve mobil cihazlar arasında haberleşmek üzere geliştirilmiş bir iletişim teknolojisidir.

10 metre gibi kısa mesafelerde ve özel seçenek ile 100 metrede 2.4GHz (hatta 5.8GHz) üzerinden haberleşme sağlanır. En yaygın kullanım alanı tabii ki mobil cihazlar olmak üzere kablosuz kulaklıklar dahil, cep telefonu ve mobil cihazların otomobile entegre edilebilmesi, hoparlör gibi yapılardır.

Bluetooth standartları Bluetooth SIG (Special Interest Group) adı verilen Bluetooth Özel İlgi Grubu tarafından belirlenmektedir. Bu grup ilk olarak Ericsson, Nokia, IBM, Intel ve Toshiba tarafından kurulmuş, daha sonra bu gruba aralarında Motorola, 3Com, Microsoft, Lucent, Qualcomm gibi dev firmaların da bulunduğu yaklaşık 1500 firma katılmıştır. Bu firmalar sürekli bir işbirliği içerisinde çalışmalarını sürdürmektedirler.
Şekil-2 :Bilgisayarlar için üretilmiş USB Bluetooth modüller.

Bluetooth standartları tümüyle ücretsiz olarak herkese açık standartlardır.

Haberleşme radyo-link bir yapıyla sağlanmakta ve kanal başına asimetrik 723.2 kbit/sn, simetrik olarak ise 433.9 kbit/sn’lik veri haberleşmesini, aynı anda 64 kbit’lik 3 adet senkron ses kanalını ve aynı anda bir adet senkron ses, bir adet asenkron veri kanalını da destekleyebilmektedir.

Radyo frekans olarak 1mW ve seçeneğe bağlı olarak 200mW gibi bir çıkış gücüne sahiptir.

Aslında bizim açımızdan önemli olan ise özellikle bluetooth uart dönüştürücü cihazların piyasaya çıkması oldu. Bu sayede elektronik sistemlerimizin haberleşmesini Bluetooth üzerine taşımamız mümkün oldu. Her ne kadar Bluetooth modüllerin ayarları ile ilgili bölümlerinin modem komutları kullarılarak yapılsada..

Bluetooth cihazlarda master ve slave kavramı vardır. Buna göre bilgisayar ve telefon gibi cihazlar (slave de olabilirler) olurken, klavye, fare. kulaklık gibi cihazlarlar da slave konumunda olacaklardır. Projedeki bluetootn modülü slave konumunda olacaktır. Tabii ki bilgisayar da master konumunda.

HC06 BLUETOOTH SENSÖR

Şekil-3 :HC06 Bluetooth modülün önden ve arkadan görünümü.

Linvor’s (Guangzhou HC Information Technology Co., Ltd. olarak bilinir) üretimi bir sistemdir. Ürün normalde 3.3V ile çalışacak şekilde üretilmiş kendi üzerinden doğrudan Bluetooth bağlantı protokollerini karşılayacak devre tasarımındadır. Neyseki devreye eklenen birkaç eleman yardımıyla besleme ve iletişim gerilimi yükseltilebilmektedir. Bu sayede 5V'lu besleme gerilimini kabul edebilmektedir.
Şekil-4 :HC06 Bluetooth modülün üstteki kartın bacak bağlantıları.

Projede kullanılmakta olan Bluetooth modül iki parçadan oluşuyor. Birinci bölümü, üstten bakıldığında entegrelerin bulunduğu bölüm asıl modüldür. ikinci bölüm küçük kartın monte edildiği besleme, uart gerilim uygulanştırmanın yapıldığı ve LED'in bulunduğu bölümdür (UART bağlantısı için bacak bağlantıları da bu bölümde yer alır)..

Öncelikle modülün bluetooth üzerinden bağlantı için bir ad ve şifresi vardır. Bu koduya daha sonra değinilecek olsada;

Modül Adı: linvor
Modül şifresi:1234

şeklindedir.

HC06 modülünün normal konumda slave olarak tanımlanmıştır. Master rolünü atamak için cihaz üzerindeki "KEY" bacağına lojik-1 seviyesine çekmek gerekir. Şekil-3'de görülen karttaki "Key" yazan bacak bağlantısıdır.

Çift olarak kullanma durumunda master arama yapar ve slave otomatik olarak çifti oluşturur. Bazı özel durumlarda, master ve slave cihazlar otomatik olarak çifti oluşturur.

Modüller için iletişim sadece noktadan noktayadır, ama çoklu modüller ile iletişim yapılabilir.

Çift oluşturmadan önce, AT modundadır. Çift oluşturduktan sonra , şeffaf iletişim vardır. İletişim modunda iken, modüle AT moduna girilmeyebilir.

HC06 için var olan iletişim hızı 9600 baud olarak atanmıştır. Ama 1200 ile 1.3M arasında değer atanabilir.
Şekil-5 :HC06 Bluetooth modülün LED'i yanarken;  sürekli bağlantılı.

Slave aletin yanıp sönme frekansı 102ms'dir. Master alet halen slave aletin belleğinde ise çift esnasında yanıp sönme frekansı 110ms'dir. Yoksa veya master belleği boşaltılmışsa, o zaman yanıp sönme frekansı 750ms'dır. Çift oluşturduktan sonra, master veya slave alet fark etmeksizin LED sürekli yanar.

Çift oluşturma esnasında, akım 30-40mA aralığında inip çıkar. Kabaca 25mA civarındarır. Çift oluşturduktan sonra,iletişim yapılsın vaya yapılmasın, akım 8mA'dir. Bu uyku modu değildir. Bu parametre tüm Bluetooth modüller için aynıdır.
Şekil-6 :HC06 Bluetooth modülün ile bağlantı için kullanılan bilgisayardaki USB Bluetooth modül.

Devrenin çalışması

Devre iki ana bölümden oluşmaktadır. Birincisi işlemci (Atmega8), LED ekran ve beslemenin yer aldığı işlemci bölümü. İkicisi Bluetooth modülün bulunduğu ve iletişimin sağlandığı Bluetooth bölümü.
Şekil-7 :İşlemci kartı.

Not: Bluetooth bölümü Bluetooth modülü ile işlemci kartı arasındaki port uygunlaştırma amacını taşımaktadır. Eğer kullanıcı işlemci modülünü farklı bir amaç için kullanmayı düşünmüyorsa, Bluetooth modülünü doğrudan işlemci modülüne entegre edebilir.
Şekil-8 :Bluetooth kartı (HC06 Bluetooth modülü ile birlikte). Kart üzerindeki köprüler bu modülün farklı bir alanda kullanım için eklenmiştir. Başka bir kullanım planlanmıyorsa bu köprüler kaldırılabiler veya doğrudan tel köprü takılabilir

Tabii ki burada işlemci bölümü sadece veri gösterim içindir. Yani kendisi saat verisini üretmez ve üzerinde ayar yoktur. Bluetooth bölümü üzerinden bilgisayar (veya başka bir saat kaynağı üzerinden) Bluetooth iletişimi için kullanılmaktadır ve slave olarak çalışır.
Şekil-9 :Proje için malzemeler (bilgisayar için olanlar ve besleme hariç).

 Şekil-10 :Bluetooth iletişimi için kartı ve HC06 modülü.

Devreye ilk besleme verildiğinde ekranda 1234 şeklinde bir rakam dizisi görülür ve Bluetooth üzerinden veri gelene kadar da bu şekilde kalır.
Şekil-11 :Sistemin bağlantısı yapılmış ve ilk açılıştaki hali.

Şema

Sistem Atmega8 işlemcisine dayalı. Bu işlemcinin saat frekansı XTL1 (3,6864MHz, C5 ve C6 (27pF) tarafından sağlanır. R2…R8 (220 Ohm) dirençleri LED akım sınırlama dirençleridir.R9…R14 (1K) dirençleri transistör akım sınırlama dirençleridir. D3…D6 7 parçalı LED ekranların ortak bacakları Q1,Q2,Q4 ve Q5 transistörler ile sürülür. LED ekranların her (a,b,c,…)aynı parçası birlikte bağlanarak işlemciye ilişkilendirilir. Böylece bir çoğullama devresi oluşturulur. D7 ve D8 ayıraç ledleri R11 direnci üzerinden Q3 transistörü ile sürülür. Böylece işlemci ile yakılıp söndürülmesi sağlanır. R1, D2 birlikte enerji var ve işlemci çalışıyor göstergesi olarak çalışıyor. ISP konektörü işlemci programlamak için kullanılacak konektör bağlantısıdır. (isteyen işlemciyi başka bir yerde programlayıp sonra devreye takabilir.)

Bluetooth iletişim kartı üzerinde C1 (100nF) kondansatörü besleme gerilimi üzerindeki parazitleri süzmektedir.

D1 (W10M), IC2 (7805), C2 (100nF), C3 (10µF/25V)ve C7 (100nF) besleme devresini oluşturmaktalar. Geriye kalan bütün kondansatörler devre oluşabilecek gürültüleri süzme görevini yerine getirir.
Şekil-12 :Devresinin blok şeması.

Şekil-13 :Devre Şeması.

Devre Yapımı

Devre montaj açısından fazla bir kritik eleman içermiyor. Dikkatli bir şekilde monte edildiği zaman bir sorun çıkarmıyor. Kartı kendiniz yapacaksanız, elemanları monte etmeden önce bir son kontrol yerinde olabilir. Tümdevreleri takmadan önce devreye besleme gerilim uygulayıp, besleme bacaklarında besleme gerilimi olduğunu onayladıktan sonra entegre devrelerin takınması yerinde olacaktır.

Besleme konusunda bir sorun oluşturmayacağınızı düşünüyorsanız girişteki köprüyü devre dışı bırakabilir veya tek bir diyotla değiştiribilirsiniz. (Kendi besleme kaynağınız varsa ve devreyi kendiniz kullanacaksanız).

Kristal kılıfının GND ile bağlantısı oluşturulması olası kaçak kondansatörleri dolayısı ile sizden kaynaklanabilecek sorunları ortadan kaldıracaktır
Şekil-14:Devrenin yerleşim planı

Şekil-15:Devrenin baskı devresi şekli

Şekil-16:Kartın eleman ve yollarla birlikte yerleşim planı

Şekil-17 :Kartların kablo bağlantıları.

 Şekil-18 :Bluetooth kartı üzerindeki köprülerin konumları. Bu kartı başka bir amaç için kullanmayı planlamıyorsanız köprüler yerine doğrudan tel atlama yapılabilir. Tabii isteyen bu devreyi işlemci kartına uyarlayabilir.

Şekil-19 :Bluetooth kartının monteli hali.

 Şekil-20 :İşlemci kartına bağlı besleme. Kutup önemli değil. Çünkü girişte köprü diyot var


Şekil-21 :Projenin toplu hali.

 Şekil-22 :Saati çalışırken görmek güzel.

Devre Elemanları

220R R2, R3, R4, R5, R6, R7, R8
470R R11
1K R1,R9,R10,R11,R13,R14
10µF/25V C3
27pF C5, C6
100nF C1, C2, C4, C7, C8
ATMEGA8 IC1
7805 IC2
3,6864MHz kristal XTL1
3mm Sarı LED D2
3mm Kırmızı LED D7, D8
7 parçalı LED Ekran (kırmızı için 1056 AUR) (Yeşil için S-5612AG) D3, D4, D5 ,D6
BC327 Q1, Q2, Q3, Q4, Q5
B125C1500 veya benzeri D1
2'li klemens P1
10'lu IDC konnektör erkek P2, P3
10'lu IDC konnektör dişi kablo -
10'lu yassı kablo (10cm) -
2x3 sıra pin erkek ISP
1x3 sıra pin erkek J1, J2
1x4 sıra pin dişi M1 için
HC06 Bluetooth modül M1

Malzeme listesi. Burada işlemci için soket, 9V adaptör verilmemiştir. Entegreler için soket isteğe bağlıdır. Köprü olarak bacak bağlantıları uyan herhangi bir eleman kullanılabilir.

Bilgisayar Programı

Şekil-23:Devre çalıştığında..

Devre besleme verildiğinde ve çalıştığında Şekil-23'deki gibi görüntü ile karşılaşacağız. Şu anda devre çalışır durumda ve devre üzerindeki HC06 üzerindeki LED yanıp sönüyor. Daha bilgisayara tarafı var. Bunun için bilgisayar üzerine bir Bluetooth modül takacağız veya üzerinde varsa onu kullanacağız. Ve gerekli ayarlamaları yapacağız.
Şekil-24:"M8_Saat_bluetooth.exe" program simgesi

"M8_Saat_bluetooth.exe" C# ile yazılmıştır. Bu nedenle çalıştırabilmek için Frameworks.net runtime sürüm 4'ün bilgisayarınızda yüklü olması gerekiyor. Program Win xp üzerinde geliştirilmiş ve denenmiştir.
Program "notifyIcon" şeklinde çalışacak şekilde düzenlenmiştir. Program ilk çalıştırıldığında normal penceresi ile açılır ama pencere üzerindeki minimum butonuna tıklandığında pencereyi kapatır ve notifyIcon şeklinde bilgisayarın sağ alt köşesindeki ikonların arasına yerleşir. Bu simgeye çift tıklandığında tekrar ana pencere açılır.


Bilgisayar üzerindeki "M8_Saat_bluetooth.exe" üzerine iki kez tıklayıp çalıştırıyoruz. Eğer daha önce seri port seçilmemişse tabii Seçenekler penceresinden gerekli seri portu seçmek gerekecektir.


Not:Program burada Bluetooth için olduğu belirtilmiş olsa da, seri port veya sanal seri port kullanan herhangi bir yapı ile iletişm için kullanılabilir.
Şekil-25:LED ekran devresine veri göndermek üzere kullanılan bilgisayar programın ana penceresi.

Şekil 25'deki resimde görülen alanların basitce tanımlarını açıklayacak olursak;
  1. Saat 10 hanesi değer seçme.
  2. Saat 1 hanesi değer seçme.
  3. Ayıraç LEDlerinin yanıp sönmesi buton ile kontrol edilir.
  4. Dakika 10 hanesi değer seçme.
  5. Dakika 1 hanesi değer seçme.
  6. LED ekrana yandaki ayarlara uygun değerleri ekrana gönderir. (Saat bilgisi sürekli gönderilirken pasiftir)
  7. LED Ekrana saat bilgisi gönderildiği zaman saat bu bölgede saklanır.
  8. Devre gönderilen saat bilgisi burada görüntülenir.
  9. Saat bilgisinin LED ekrana gönderilir veya gönderilmesini keser. (Saat Başlat ve Saat Durdur arasında değişir)
  10. Seçenekler penceresini açar (Saat bilgisi sürekli gönderilirken pasiftir) 
Şekil-26:LED ekran devresine veri göndermek üzere kullanılan bilgisayar programının seçenekler penceresi.

Şekil 26'daki resimde görülen alanların basitce tanımlarını açıklayacak olursak;
  1. Bilgisayarda seri port seçimini sağlar.
  2. Seri port iletişim hızını seçer.(Var olan olarak 9600 baud seçilmiştir)
  3. Seçenekleri onaylar ve pencereyi kapatır (Ana pencereyi açar) 

Şekil-27:Seri port hatası durumunda Seçenekler penceresi.
Seri port açılışta bir hata aldığı durumda Şekil-27'deki gibi bir Seçenekler penceresinin görüntülenmesine neden olacaktır. Bu durunda Bluetooth cihazınızın bulunduğu seri portu seçmekeniz gerekecektir. Program devrinin açık olup olmadığını kontrol etmez sadece kullanılabilir bir seri port olduğuna bakar ve seçilen porta veri gönderir.

İşlem adımlarını basitçe özetleyecek olursak;
  1. "Atmega8 ve Bluetooth ile LED Saat" devresini çalıştırıyoruz.
  2. Bilgisayar üzerine bir USB Bluetoth modülünü takıyoruz veya var olan bir modülü kuruyoruz ve bilgisayara "Atmega8 ve Bluetooth ile LED Saat" üzerindeki HC06 Bluetooth modülünü tanıtıyoruz. (Bu bir sonraki konu başlığı altında anlatılmıştır)
  3. Bilgisayar üzerinden "M8_Saat_bluetooth.exe" programını çalıştırıyoruz. Bu noktada eğer daha önce girilmemişse "Seçenekler" penceresi üzerinden bilgisayada takılı olar USB-Bluetooth modülün atadığı seri portu seçiyoruz. "Tamam" butonunu tıklayıp seçenekler penceresini kapatıyoruz.
  4. Şimdi iki tane seçeneğimiz var;"LED Ekrana Gönder"- "Elle giriş" bölümünde girilmiş olan değeri devreye gönderir, "Saat Başlat" butonu ise sistem saatini okur ve bu değirin saat ve dakika bölümünü hemen üzerinde görüntüler ve devreye gönderir. Aynı zamanda saat ve dakika arasındaki ayraç noktalarını saniye başında yakar 500ms sonra söndür. Bu şeklide sistem saati ile devre arasında bir senkronizasyon sağlanmış olur.

Bilgisayara HC06 Bluetooth modülü tanıtma

"Atmega8 ve Bluetooth ile LED Saat" devresini çalıştırıyoruz. Bilgisara Bluetooth modülü takıp gerekli sürücülerini yüklüyoruz. Şanslı isek bilgisayar otomatik tanıyacaktır.
Şekil-28:Aygıtlar penceresi.

"Denetim Masası"ndan "Bluetooth Aygıtlar"ı açıyoruz. Açılan pencerede "Ekle..." butonuna tıklıyoruz.
Şekil-29:"Bluetooth Aygıt Ekleme Sihirbası" penceresi.

"Ekle..." butonu tıklama ile "Bluetooth Aygıt Ekleme Sihirbası" penceresi açılacaktır. Buradan "Aygıtım kuruldu ve bulunmaya hazır" düğmesini işaretleyip "İleri"butonuna tıklıyoruz.
Şekil-30:"Bluetooth Aygıt Ekleme Sihirbası" penceresinde HC06.

Açılan pencerede bilgisayarın bluetooth erişimindeki diğer Bluetooth aletler görüntülenecektir. Tabiiki biz "Linvor" aletimizi seçiyor ve "ileri" butonunu tıklıyoruz.
Şekil-31:"Bluetooth Aygıt Ekleme Sihirbası" penceresinde HC06 geçiş anahtarı.

Açılan pencerede HC06 iletişimi için erişim şifresi niteliğindeki geçiş anahtarı seçimi için "Geçiş Anahtarımı Ben Seçeyim" seçeneğini seçip karşısındaki yazı kutusuna HC06 için var olan anahtar olan "1234" giriyor ve "İleri" butonuna tıklıyoruz.


Not:Buradaki ayarlar kişisel tercihinize göre değişebilir ve dolayısı ile sonraki aşamalarda değişiklik gösterecektir.
Şekil-32:"Bluetooth Aygıt Ekleme Sihirbası" penceresinde yükleme işlemi.

Yapmış olduğumuz ayarlara göre HC06 ile ilgili ayarlar bilgisayarımıza kurulacak ve sonraki açılan pencerede "Son" butonuna tıklayıp işlemi sonlandırıyonuz.
Şekil-33:"Bluetooth Aygıt Ekleme Sihirbası" penceresinde son pencere.

"Son" butonunun bulunduğu pencere üzerinde HC06 için oluşturulmuş iletişim COM portları ile ilgili bilgi yer almaktadır
Şekil-34:Linvor yüklendikten sonra "Bluetooth Aygıtlar" penceresinin görünümü.


Şekil-35:Linvor yüklendikten sonra "Bluetooth Aygıtlar" penceresinde "COM bağlantı noktaları" sekmesi altındaki görünümü.

Şu anda HC06 modülümüz bilgisayara tanıtıldı ve "M8_Saat_bluetooth.exe" programı ile iletişim için hazır. Buradan şu anda yapılan ayardan "M8_Saat_bluetooth.exe" için "COM10" seçilmesi gerekiyor.

Not: Buradaki ayarlar win XP ve masaüstü bilgisayar için anlatıldı,  dolayısı ile kullandığınız bilgisayara veya kullandığınız sisteme göre farklılık gösterebilir.



Ekler:
Atmega8 ve Bluetooth ile LED Saat için gereken dosyalar.

ATmega8 hakkında ayrıntılı bilgi için

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


Translate

Sayfalar

Etiketler

İzleyiciler