TV kumanda protokolleri
Transkript
TV kumanda protokolleri
Elektronikçinin El Kitabı Bu dokümanı elektronikle yeni ilgilenmeye başlayan arkadaşlarında konuları kavrayabileceği sadelikte olmasına özen göstermeye çalışarak ve içerdiği konularda elimden geldiğince detaya inerek, Türkçe yardımcı kaynak olabilmesi amacıyla hazırladım. Bu doküman, Kendime ait proje ve tasarımların dışında alıntılarda içermektedir. SIRC, RC5, SHARP, NEC, NOKIA, ITT protokolleriyle beraber, projesi tarafıma ait bir protokol olmak üzere toplam 7 protokol hakkında detaylı bilgiler bulacaksınız. Ayrıca inferruj data iletişiminde kullanılmak üzere, tümü tarafımca kullanılmış, denenmiş, skop ve fonksiyon jenaratörü ile sonuçları kontrol edilmiş devre şemaları, konu ile ilgili hesaplama formüllerini ve yardımcı açıklama tablolarını da bu doküman içerisinde bulabileceksiniz. Seri ve Paralel portlar ile ilgili açıklamaları ve seri port üzerinden mikrokontrol bağlantısı için basit bir arayüz şemasınıda bu dökümanda bulabilirsiniz. Assembly kullanıcılarının gözdesi MPLAB programının en ince detaylarına kadar öğrenebileceksiniz. kullanımını da yine bu döküman sayesinde Bu dökümanda Regülatör şemalarıda mevcut. Telefon Hatları benim net üzerinden en çok soru aldığım konulardan biriydi. İlerleyen sayfalarda bu konuda tüm detaylar ile birlikte bir örnek proje bulabileceksiniz. Son olarak ise özellikle bebeği olanların çok işine yarayacak bir proje var. Saat, Alarm, özellikle ilaç saati takibini yapmak üzere tasarladığım 99 saat 59 dakikaya kadar programlanabilen Geri Sayım alarmı, 0-29 derece arasında bir sıcaklığa programlanabilen ve odayı istenen sıcaklıkta tutma özelliği olan, elektrik kesintilerinde eğer karanlık ise aydınlatma sağlayan ve bebeğinizin nefes alışını bile diğer odalardan duymanızı sağlayan bas, tiz kontrollü çok hassas bir mikrofonu olan hazır ve denenmiş devre şemalarıyla ve hazır programı ile güzel bir proje var. Yazım ve anlatım hatalarımız var ise af edile... Saygı ve Sevgiler... Rmz. Yıldırım Ak 2004 e-posta : tirbulans@msn.com url : http://tirbulans.tripod.com 2/2 İnferruj Data Transferleri İnferruj Data Transferleri El Kitabı 3/3 SIRC Protokolü 40 kHz taşıyıcı üzerinde, 1 / 4 veya 1 / 3 Duty Cycle Oranı Bu protokol 5 bitlik cihaz kodu + 7 bitlik tuş kodundan oluşan 12 bitlik paket data bilgisi kullanır. Bu 12 bit yollanmadan önce, alıcı 2.4 ms High pozisyonda kalınıp kalınmadığını kontrol eder. Bu nedenle ilk biti göndermeden bu süreyi High pozisyonunda beklemeliyiz. (Header Time) Daha sonra ilk bitten önce 0.6 ms süreyle göndereceğimiz data Low olmalıdır. Bu iki işlemden sonra alıcı ilk bitin yollanacağını anlar. (Header Time End) Bu iki işlem start bitini oluşturur. Göndereceğimiz bit eğer 0 sa çıkışı high durumunda 0.6 ms tutarız. Daha sonra 0.6 ms süreyle low pozisyonunda tutarız. Göndereceğimiz bit eğer 1 se çıkışı high durumunda 1.2 ms tutarız. Daha sonra 0.6 ms süreyle low pozisyonunda tutarız. 4/4 Buradan anlaşılacağı üzere 0 olan bitlerde high kalma süresi 0.6 ms, 1 olan bitlerde high kalma süresi 1.2 ms ‘dir. Her iki durumda da 0.6 ms LOW kalma süresi vardır. Yani bir bit süresi bitin 0 veya 1 olmasına göre değişkendir ( 1.2 ms (0 olan bit) veya 1.8 ms (1 olan bit) ) İlk gidecek bit en sağdaki bittir (LSB). Örneğin Televizyon alıcısının cihaz kodu 1 dir. Yani 5 bitlik cihaz kodu olarak “00001”. Burada ilk giden bit en sağdaki 1 ve daha sonra sola doğru sırasıyla 4 tane sıfır biti. Tuş kodunda da data gönderim mantığı aynıdır. 0 olan bitlerde high kalma süresi 0.6 ms, 1 olan bitlerde high kalma süresi 1.2 ms ve her bit arasında bekleme süresi 0.6 ms ‘dir. Kanal artırma tuşunun kodu 16 dır. Yani 7 bitlik tuş kodu olarak “0010000”. Yine sağdaki bitten başlayarak, en sağdaki 4 tane sıfır, daha sonra bir tane 1 ve sonrasında 2 tane sıfır biti gönderilir. Dikkat edilecek diğer bir nokta her paket data gönderimi arasında 45 ms beklemek olmalıdır. (Start tan bir Sonraki starta) Not : Bu protokolde yeni çıkan cihazlarda 15 bitlik ve 20 bitlik paketlerde kullanılmaktadır. Cihaz Kodları 1 Televizyon 2 VCR 1 4 VCR 2 6 Lazer disk çalıcı 12 Ses Cihazları 16 Mini Kaset/Radyo 5/5 17 CD Çalıcı 18 Ekolayzer Tuş Kodları 0-9 Numerik Tuşlar 16 Kanal + 17 Kanal - 18 Ses + 19 Ses - 20 Ses Kesme 21 Açma 22 Resetleme 23 Ses Modu 24 Kontrast + 25 Kontrast - 26 Renk + 27 Renk - 30 Aydınlık + 31 Aydınlık - 38 Sol Balans 39 Sağ Balans 47 Kapama 6/6 RC5 Protokolü 36 kHz taşıyıcı üzerinde, 1 / 4 veya 1 / 3 Duty Cycle Oranı Bu protokol 5 bitlik cihaz kodu + 6 bitlik tuş kodundan oluşan 11 bitlik paket data bilgisi kullanır. Bu protokol SIRC protokolunden tamamen farklıdır. Bu Protokolde bir bit uzunluğu sabittir ve süresi 1.8 ms dir. (aslında bir bit süresi 1.778 ms dir.) Start ;1 (Start) + 1 (Field) + 0 (Control) olmak üzere 3 bitten oluşur. Alıcı Field bitini kontrol ederek, 6 bitlik tuş kodu ile gönderilebilecek toplamda 64 komutun 0-63 veya 64-127 aralığının hangisi için olduğunu anlar. Bu bit sayesinde 6 bitlik tuş kodu 7 bit olarak kullanılabilir. Bitin 0 olması, bu 1800 us luk zamanın ilk 900 us luk kısmında datanın high, kalan 900 us luk zaman diliminde ise low olmasından anlaşılır. Bitin 1 olması ise, bu 1800 us luk zamanın ilk 900 us luk kısmında datanın low, kalan 900 us luk zaman diliminde ise high olmasından anlaşılır. İlk gidecek bit en sağdaki bittir (LSB). Her paket data gönderimi arasında 114 ms bekleme süresi vardır. 7/7 RC5 Protokolü ile ilgili önemli not ; 29 Temmuz 2004 tarihinde tesadüfen görülen durum ; Philips RC5 protokolünde, Philips in yayınladığıda dahil olmak üzere tüm teknik bilgiler Start bitinin “1”, Field bitinin tuş takımı sayısına göre “1” veya “0” ve kontrol bitinin “0” olduğunu bildirmesine karşın, Philips 14PT serisi 37 ekran televizyonun orijinal kumandasında kontrol biti bazen “1” bazen “0” olarak gönderiliyor. Kumandaya bozuk demeye ramak kalmışken, test devremdeki TK19 çıkış sinyalini skopla kontrol ettiğimde durumu farkettim. Acaba benim devredemi bir şey var diye skopla televizyonun orijinal kumandasının inferruj sürücü çıkışını kontrol ettiğimde durum yine aynıydı. Acaba televizyon yeni model olduğundan eski modellerle uyum sağlamaması için kontrol biti kullanılarak yeni bir özellik mi kullanılmış diye merak ettim ama televizyonda 97 model, yani yeni değil. Kumandanın bozuk olduğunu düşünenler olabilir. Ancak benim test devrem, kontrol bitinin sürekli “0” geleceğini düşündüğünden ve kontrol bitinin “1” gelmesinden dolayı diğer bitleri kontrol bile etmiyor. Buda kontrol biti “1” olduğunda kodu çözmeyeceği sonucunu çıkartıyor. Test devresi bu durumda bazen çalışıyor, bazen çalışmıyor. Ancak televizyon üzerindeki alıcı devre her tuşa basışta kodu çözüyor. Buda kontrol bitinin sürekli “1” olmadığı sonucunu ve kumandanın sağlamlığını doğruluyor. Ben bu duruma göre test devremdeki kodu güncelledim. Artık kontrol biti ne olursa olsun her tuş basışını çözüyor. Anlayacağınız üreticisi bile yayınlasa yazan her şeye güvenmemek gerekiyor. Merak edenler için kumanda üzerindeki etiket : RC8205/01 3104 207 02781 OP009717 8/8 SHARP Protokolü 38 kHz taşıyıcı üzerinde, 1 / 4 veya 1 / 3 Duty Cycle Oranı Bu protokol 5 bitlik cihaz kodu + 8 bitlik tuş kodundan oluşan 13 bitlik paket data bilgisi kullanır. Diğer protokollerden farkı start bitinin olmayışıdır. Ancak paket sonunda iki kontrol biti vardır ve eğer yanılmıyorsam ilki “1” ikincisi “0” bitidir. Bir bit süresi bitin durumuna göre değişkendir. 0 olan bitlerde 1 ms ve 1 olan bitlerde 2 ms dir. Her iki durumda da sürenin ilk 320 us u high kalan süre low dur. Data gönderimi ; 0 olan bitlerde 320 us high, 680 us low ve 1 olan bitlerde 320 us high, 1680 us low şeklinde yapılmalıdır. Data gönderme mantığı diğerleri ile aynıdır ve bir sonraki bit ara vermeden yollanmalıdır. İlk gidecek bit en sağdaki bittir (LSB). Her paket data gönderimi arasında 40 ms bekleme süresi vardır. 9/9 NEC Protokolü 38 kHz taşıyıcı üzerinde, 1 / 4 veya 1 / 3 Duty Cycle Oranı Bu protokol 8 bitlik cihaz kodu(x2) + 8 bitlik tuş kodundan(x2) oluşan 32 bitlik paket data bilgisi kullanır. Start biti SIRC de olduğu gibidir ancak header time 9 ms ve header time end 4.5 ms dir. Start bitinden sonra, (8 bit cihaz kodu + 8 bit cihaz kodu) + (8 bit tuş kodu + 8 bit tuş kodu) şeklinde aynı datalar 2. defa tekrarlanır. Bu protokolde bit kullanımı SHARP ı andırır ancak bir bit süresi 0 olan bitlerde 1.12 ms ve 1 olan bitlerde 2.25 ms dir. Her iki durumda da sürenin ilk 560 us u high kalan süre low dur. Data gönderimi ; 0 olan bitlerde 560 us high, 560 us low ve 1 olan bitlerde 560 us high, 1690 us low şeklinde yapılmalıdır. Diğer protokollerden farkı ise “Repeat Start” özelliğidir. İlk starttan sonraki 110 ms bitiminde 9 ms high ve 2.25 ms low yollamamız durumunda Repeat Start durumu oluşur. Bu durumda alıcı data kontrolü yapmadan (zaten vericide Repeat Start tan sonra data gönderiminde bulunmaz), vericinin bir önceki komutu tekrarladığını anlar ve bir önce aldığı komutu tekrar işler. İlk gidecek bit en sağdaki bittir (LSB). Her paket data gönderimi arasında 110 ms bekleme süresi vardır. 10 / 10 NOKIA Protokolü 38 kHz taşıyıcı üzerinde, 1 / 4 Duty Cycle Oranı Bu protokol 4 bitlik cihaz kodu + 8 bitlik tuş + 4 bitlik alt cihaz kodundan oluşan 16 bitlik paket data bilgisi kullanır. Start için ilk olarak 0 biti yollanır. Daha sonra 2500 us boyunca low da beklenir ve 1 biti yollanır. Toplam start süresi 4 ms dir. Start bitinden sonra sırasıyla 8 bit tuş kodu, 4 bit cihaz kodu ve 4 bitlik alt cihaz kodu yollanır. Bu protokol RC5 i andırır bir bit süresi 1 ms dir. Bitin 1 olması, bu 1000 us luk zamanın ilk 500 us luk kısmında datanın high, kalan 500 us luk zaman diliminde ise low olmasından anlaşılır. Bitin 0 olması ise, bu 1000 us luk zamanın ilk 500 us luk kısmında datanın low, kalan 500 us luk zaman diliminde ise high olmasından anlaşılır. İlk gidecek bit en sağdaki bittir (LSB). Her paket data gönderimi arasında 100 ms bekleme süresi vardır. 11 / 11 ITT Protokolü Diğer protokollerden oldukça farklıdır ve en hızlı protokoldür. Toplam data transfer süresi maximum 2700 us dur. Her transfer standart 14 inferruj darbesi ile yapılır. Bu protokol 4 bitlik cihaz kodu + 6 bitlik tuş kodundan oluşan 10 bitlik paket data bilgisi kullanır. Tablolardaki zamanlar verici tarafındaki RC osilatör ile +/- %20 oranına kadar değiştirilebilir. Alıcı kalibrasyonunu start biti süresine göre yapar. “0” biti = Start Biti Lead-in = 3 x Start Biti “1” biti = 2 x Start Biti Lead-out = 3 x Start Biti Her paket gönderiminden önce Lead-in, paket sonunda Lead-out gönderilir. Bu gönderimler 14 inferruj darbesine dahildir. Lead-in gönderiminden sonra gönderilen “0” biti startı oluşturur. 12 / 12 Start tan sonra 4 bitlik cihaz kodu, ardından 6 bitlik tuş kodu gönderilir. Paket gönderimi Lead-out ile sona erdirilir. İlk gidecek bit en soldaki bittir (MSB). Her paket data gönderimi arasında 130 ms bekleme süresi vardır. ITT Protokolü için TBA2800 Infrared Preamplifier Entegresini yukarıdaki bilgiler yardımıyla kullanabilirsiniz. 13 / 13 YAK Protokolü Yukarıdaki protokollerle işim olduğunda hep düşünmüşümdür “adamlar işi karıştırmak için ne kadar kafa yormuşlar” diye. Kendi geliştirdiğim aşağıdaki bu protokol aslında kablolu hat üzerinden uzaktaki birkaç makineyi kullanmak içindi. Yani işin aslı biraz tembellik. Evde içişleri bakanımız kabloların “ortalıkta dolaştığı” iddiası ile savaş açınca işi kablosuza dökmek zorunda kaldım. Gerçi bu kararda geçen yıl dünyaya gelen tek oğlum Alp Eren’in yürümeye başladığında bu kabloları kemirmek, koparmak, takılıp düşmek gibi fiillerde bulunacağı daha etkili oldu desem yalan olmaz. Şimdi kabloların yerine evin duvarlarını süsleyen inferruj aktarım istasyonları var. 14 / 14 Buyurun Türkiye‘mizin medarı iftiharı bildiğim kadarıyla ilk inferruj kumanda protokolümüze ; Bit Tanıtım Tablosu 4 Bit Data Transfer Tablosu ( Tüm alıcılar ) 8 Bit Data Transfer Tablosu ( Tek alıcı ) 15 / 15 Kısaltmalar • C0 = Bit Süresi 1539 us. • A0 = Bit=”0” HIGH kalma süresi 513 us. • B0 = Bit=”0” LOW kalma süresi 1026 us. • A1 = Bit=”1” HIGH kalma süresi 1026 us. • B1 = Bit=”1” LOW kalma süresi 513 us. • K = Alıcının bit kontrolünü yapabileceği 514-1025 us aralığı. • a = Start, protokol tipi ve alıcı kodunu belirleyen süre • aH = Start 4096 us • aL = Protokol tipi ve alıcı tipini belirleyen değişken süre • b = aL yi doğrulama ve alıcı hazırlık / bekleme süresi • bH = aL ile aynı, aL yi doğrulama süresi • bL = Alıcılar için data alımına hazırlık veya bekleme kontrol zamanı • mT = Modülasyon da uygulanacak bir palsin süre toplamı 27 us • mH = Modülasyonda bir palsin HIGH Süresi 7 us • mL = Modülasyonda bir palsin LOW Süresi 20 us • mTk = Modülasyonda toplam mT sayısı Bu protokol 4 veya 8 bitten oluşan data paketleri kullanır. 37 kHz taşıyıcı üzerinde, 1 / 4 veya 1 / 3 Duty Cycle Oranı. 16 / 16 YAK Protokolü Verici Devre Mantığı 1. Mikro kontrol inferruj kontrol çıkışının LOW olması, 555 i reset durumunda tutar. Bu durumda 555 çıkışındaki transistor tetiklenmediği için inferruj led devre dışıdır. 2. Mikro kontrol inferruj kontrol çıkışının HIGH olması 555 i devreye sokar. Bu durumda 555 çıkışındaki transistor iletime geçer ve modülasyonu göndermeye başlar. 3. Mikro kontrol bağlantısını yapmadan 555 in 4 nolu reset ucunu + volta alarak 555 çıkış modülasyonunu kontrol etmeniz tavsiye edilir. 17 / 17 YAK Protokolü Alıcı Devre Mantığı 1. İnferruj alıcı TK19 data gelmediği için çıkışını HIGH de tutar. Bu durumda inferruj alıcı çıkışındaki transistor iletimdedir ve alıcı mikro kontrolünün data giriş ucu LOW dadır. 2. İnferruj alıcı TK19 data geldiği süre boyunca çıkışını LOW da tutar. Bu durumda inferruj alıcı çıkışındaki transistor iletimde değildir ve alıcı mikro kontrolünün data giriş ucu HIGH dedir. 3. Mikro kontrol bağlantısı yapılmamış 555 in 4 nolu reset ucunu + volta alarak 555 çıkış modülasyonu ile inferruj ledi sürmeniz ve ALICI KONTROL noktasını bağlamadan alıcınızın çalıştığını kontrol etmeniz tavsiye edilir. 4. TK19 un çıkışında transistör kullanmadan, +5 volta asarak datayı terslenmiş olarakta alabilirsiniz. Ancak bu terslenmiş data dizaynını aktarıcı devrede kullanamazsınız. 18 / 18 YAK Protokolü Aktarıcı Devre Mantığı Bu devre uygun noktalara yerleştirildiğinde, inferruj vericinizin yolladığı dataları daha uzak noktalara taşır. 1. İnferruj alıcı TK19, data gelmediği için çıkışını HIGH de tutar. Bu durumda TK19 çıkışındaki transistor iletimdedir ve 555 reset ucu LOW dadır. Bu durumda 555 çıkışındaki transistörler tetiklenmediği için inferruj ledler devre dışıdır yani aktarım yapılmaz. 2. İnferruj alıcı TK19, data geldiği süre boyunca çıkışını LOW da tutar. Bu durumda TK19 çıkışındaki transistor iletimde değildir ve 555 reset ucu HIGH dedir. 555 reset girişi HIGH de kaldığı süre boyunca çıkışındaki transistörler vasıtasıyla inferruj ledleri ayarlandığı modülasyona göre sürer. 3. 4 Adet inferruj led kullanılma sebebi devre plaketi üzerine farklı açılarla yerleştirilerek datanın farklı yönlere dağıtılabilmesi içindir. 4. Aktarıcıdan çıkan inferruj data, kendi alıcısı TK19 u kesinlikle görmemeli ve eşya, duvar gibi nesnelerden geri yansımamalıdır. Verici ledler gerekirse led soketi içerisine alınarak veya başka meteryaller ile döndürüldükleri yöne odaklanmalıdır. Aksi takdirde aktarıcı sonsuz döngüye girer. 19 / 19 YAK Protokolü Verici Data Gönderim Mantığı Verici her şeyden önce kullanıcının tuş takımı, bilgisayar vb. yollarla data gönderim isteğini beklemek zorundadır. (Alıcılar kullanıcının keyfi yetene dek saf saf beklemektedirler ve can sıkıntısından pil, elektrik vs. yemektedirler.) Verici, kullanıcı talepte bulunduğunda, çıkışı HIGH yaparak 4096 us bekler veya 555 kullanılmadıysa modülasyona yönlenir. (Alıcılar bu arada girişin “lojik 1” olmasıyla sayaçlarını ayarlarlar ve HIGH de geçen süreyi saymaya başlarlar) Verici; daha sonra iletişim kuracağı alıcının aL süresini sayacına yükler, çıkışı LOW yaparak bu sürenin geçmesini bekler. 555 kullanılmadan modülasyon yapıldıysa, zaten modülasyon dönüşünde çıkış LOW durumundadır. (Alıcılar LOW ile birlikte sayaçlarını sıfırlar ve aL süresini saymaya başlarlar. Bu aşamada HIGH süresini kontrol ederek 4096 us luk start olup olmadığına karar verirler. Eğer bu zaman dilimi start değil ise aL sayaçlarını durdurarak işlem başlangıcına dönerler.) Verici daha sonra aynı aL değeri ile doğrulama bilgisini (bH) göndermek üzere çıkışı tekrar HIGH yapar ve bH süresinin dolmasını bekler veya modülasyon rutinine yönlenir. Modülasyon rutini için örnek ; (örnek tüm alıcılarla iletişim kurulduğu varsayılarak verilmiştir.) mTk = 513 us / 27 us = 19 palsden sonra geri döner. 20 / 20 (Alıcılar HIGH ile birlikte aL süresini kaydederek sayaçlarını sıfırlarlar ve bH süresini saymaya başlarlar) Verici aynı sayaç ile alıcıların data kontrolünü yapması ve ilgili alıcının data alımına hazırlanması için çıkışı LOW da yaparak bekler. Bu arada kendi bit sayacını sıfırlar. (Alıcılar LOW ile birlikte aL ve bH sürelerinin aynı olup olmadığını kontrol ederler. Aynı değilse 25 ms bekleme rutininden sonra işlem başlangıcına dönerler. Aynı ise kendi dataları ile aL yi kontrol ederler. Buda tutmuyorsa yine 25 ms bekleme ve işlem başlangıcı. Tutuyor ise iletişimin kendileri ile kurulmak istendiğini anlarlar ve sayaçlarını K noktasını tutturacak şekilde ayarlayarak, bit sayacını da sıfırlayarak 4-8 bitlik paket alımına hazırlanırlar) İlk gidecek bit en sağdaki bittir (LSB). Verici gönderilecek bitin “0” veya “1” olmasına göre sayaçlarını ayarlayarak çıkışı HIGH yapar ve A0 veya A1 süresinin dolmasını bekler veya modülasyon rutinine yönlenir. 4 bitlik tablodaki ilk bit “1” bu durumda A1=1026 us mTk = 1026 us / 27 us = 38 palsden sonra geri döner. HIGH süresi sonunda çıkışı LOW yaparak B0 veya B1 süre dolumu bekler. Bu arada kendi bit sayacını 1 artırır. (İlgili alıcı K alanında datayı kontrol ederek bitin “1” olduğunu algılar ve bit sayacı=0 olduğu için gelen biti gelen_data_registerinin 0. bitine kaydeder ve bit sayacını 1 artırır. ) Verici kendi bit sayacını kontrol ederek iletişimin tamamlanıp tamamlanmadığını kontrol eder. Tamamlandıysa alıcıların içinde data alındığında işlenecek en uzun program süresi ne kadar ise en az o kadar bekleme rutininden sonra kullanıcının 21 / 21 yeni gönderim isteğini bekler. Bu işlemler zinciri her bit gönderiminden sonra yapılmalıdır. Bizim data transferimiz daha tamamlanmadığı için, vericinin bit sayacı bir olmuştur. Bu yüzden gönderilecek 4-8 bitlik datanın 1. bitinin “0” veya “1” olmasına göre sayaçlarını ayarlar çıkışı HIGH yapar ve A0 veya A1 süresinin dolmasını bekler veya modülasyon rutinine yönlenir. 4 bitlik tablodaki ikinci bit “0” bu durumda A1=513 us mTk = 513 us / 27 us = 19 palsden sonra geri dönerek çıkışı LOW da bırakır. HIGH süresi sonunda çıkışı LOW yaparak B0 veya B1 süre dolumu bekler. Bu arada kendi bit sayacını 1 daha artırır. (İlgili alıcı K alanında datayı kontrol ederek bitin “0” olduğunu algılar ve bit sayacı=1 olduğu için gelen biti gelen_data_registerinin 1. bitine kaydeder ve bit sayacını 1 daha artırır) Bu şekilde verici ile ilgili alıcı 4-8 bitlik datayı kendi aralarında hallederler. Sadece tek bir alıcıyı yönlendireceğinizde değişiklik aL, bH ve bL zamanlarında olacaktır. Bu süreler “cihaz kodu” özelliği taşıdığından sizin belirlediğiniz ve alıcınızın anlayacağı şekilde 513 us un katları olarak siz ayarlayacaksınız. Dikkat edilecek nokta çıkışın boşta iken sürekli LOW da kalmasıdır. 22 / 22 YAK Protokolü Alıcı Data Alım Mantığı 4 bitlik transferde aL süresi 513 us dur. 4 bitlik iletişimde tüm alıcılar paket alımına hazırlanır. Alıcılar 4 bitte toplam 16 değişik komutu algılayarak tümü aynı komutu işlerler. Tüm alıcıları aç, Tüm alıcılar stand-by vb. 8 bitlik transferde aL süresi 513 us hariç, 513 us un katları şeklinde değişkendir. aL süresi diğer protokollerdeki cihaz kodu yerine kullanılır. 8 bitlik iletişimde tüm alıcılar aL ve bH sürelerini değerlendirerek iletişimin kendileriyle kurulmak istenip istenmediğine karar verirler. İletişim kurulacak alıcı hariç diğer alıcılar 25 ms bekleme konumuna geçerek iletişimin ilgili alıcıyla yapıldığı süre boyunca data kontrolü yapmazlar. 25 ms bekleme süresi dolumunda data kontrolüne yeniden başlarlar. Alıcılar 8 bitte toplam 256 değişik komutu algılayarak iletilen komutu işlerler. 4 veya 8 bitlik transferde alıcılar aL süresi sonunda sayaçlarını sıfırlayarak bH süresini tekrar sayarlar. aL = bH ise ve bu zaman dilimi kendilerini ilgilendiriyor ise bL içerisinde sayaçlarını ayarlayarak 4-8 biti alım hazırlığını yaparlar. K aralığında gelen bitin kontrolü yapılır. Bu kontrolde giriş portu “lojik 1 “ olursa data biti “1” dir, olmazsa “0” dır. Bu kontrol toplamda 4-8 defa yapılarak 4-8 bitlik data alınır ve işlenir. Kontrol K zamanının başlama (514. us) veya bitişine (1025. us) yakın değil de ortalarında yapılır ise, yazılım hatası nedeniyle olabilecek kaymalar sonucu oluşabilecek hatalar engellenebilir. Diğerleri ile aynı işlemleri yapmayacak alıcılar (4 bitlik data transferine katılmayacak olanlar) aL ve bH sürelerinde 513 us kontrolü yapmayabilirler. 23 / 23 YAK Protokolü Modülasyon Rutini (555 kullanılmadığında verici için) • Çıkış “lojik 1” yapılır. • Toplamda 7 us geçene dek beklenir. (mH) • Çıkış “lojik 0” yapılır. • Toplamda 20 us geçene dek beklenir. (mL) • mTk sayacı kontrol edilir. • mTk sayısı tamamlandıysa geri dönülür. • mTk sayısı tamamlanmadıysa aynı işlemler için rutine tekrar girilir. 24 / 24 Hesaplamalar, Formüller ve Diğer Açıklamalar 555 bu devre ile astable modunda kullanılmaktadır. Çıkış frekansı için kullanılacak formül 1440 f = (R1+2R2) x C1 25 / 25 Duty cycle için kullanılacak formül (mT, mH ve mL %) R2 D = R1+2R2 İstediğimiz frekans için R2+RV1 toplamını bulmak için kullanılacak formül 1440 R2+RV1 = ( - R1 ) / 2 C1 x f Şemadaki elemanların değerlerini aşağıdaki gibi kullandığımızda ; R1 = 3K3 Ohm R2 = 1K8 RV1 = 1K C1 = 4.7 nF Örneğin 36 kHz çıkış frekansı istersek 1440 R2+RV1 = ( - 3.3K ) / 2 = 2.6053K 4.7nF x 36f Bu durumda çıkış frekansının 36 kHz olması için R2 direnci ve RV1 potu toplam değerinin 2.6053K olması gerekmektedir. 26 / 26 Duty Cycle ise ; 2.6053K D = = %30.61 olacaktır. 3.3+(2 x 2.6053K) Bu devre ile alınacak Minumum / Maximum değerler Pot Değeri 0 K iken f= 1440 / (3K3 + (2 x 1K8) x 4.7nF = D= 1K8 / (3K3 + (2 x 1K8)) = 44.4033 % 26.08 Pot Değeri 1K iken f= 1440 / (3K3 + (2 x 2K8) x 4.7nF = D= 2K8 / (3K3 + (2 x 2K8)) = 34.4250 % 31.46 Devre, elemanların bu değerleri ile çıkış frekansı R2 ye seri bağlı 1K pot kullanılarak, 34.42 ile 44.40 kHz aralığında ve %31.46 ile %26.08 arasında duty cycle ayarlanabilmektedir. 555 in 4 nolu reset ucu mikrokontrolden gönderilen inferruj datasının giriş ucu, 3 nolu ucu ise inferruj verici ledi tetikleyen ucudur. Mikrokontrol çıkışında direkt olarak inferruj ledini kullanmayarak 555 entegresini kullanmamızın sebebini ise RC5 protokolünü örnek vererek şöyle açıklayabiliriz; 27 / 27 RC5 protokolü 36 kHz de çalışır. Bu frekans için ; 1.000.000 us / 36.000 us = 27.778 us modülasyon gerekmektedir. (noktadan sonrası ns dir, yani değer 27 us ile 28 us arası, 28 us a yakındır) Buna göre ise RC5 için 1 / 4 (%25) duty cycle kullandığımızda ; 27.778 us %25 i = 6.944 us high darbesi ve 27.778 us – 6.944 us = 20.834 us low da bekleme gerekmektedir ve bit süresini tutturmak için, her bitte bu palslerin 32 defa tekrarlanması gerekmektedir. 27.778 x 32 = 888.896 us bir bit içerisindeki HIGH süresini verir. Aynı süre ile de LOW gerekeceğinden, RC5 protokolünde bir bitin gerçek zamanı bu 1,778 ms dir. Bu sonuca göre biz, 555 i kullanarak çıkışı sadece high veya low yaparız. Modülasyon işini 555 yapar. Çıkışta 555 kullanmadan modülasyonu yazılımla da çözebilirsiniz. 28 / 28 İnferruj Ledi Sürmek Transistör kullanmadan ledi sürmeniz ve / veya birden fazla led kullanmanız mümkündür. R4 Direnci bu konularda size ayar imkanı verir. Ancak çıkışta 555 i kullanmadan ledi sürmek isterseniz mutlaka transistör kullanın. 29 / 29 İnferruj Data Gönderim / Alım Mantığı İnferruj data tabloda gösterildiği şekilde teslenmiş (inverter) olarak alınır. 30 / 30 Vericinin Hangi Protokolü Kullandığını Bulmak Vericinin protokolünü bulmanın yolu Start, Lead-in yada Data Biti sürelerini yani ilk data süresini kontrol etmektir. Aşağıdaki HIGH süreleri incelendiğinde birbirini tutacak bir değerin olmayışından LOW süresini kontrol etmenin gereği yoktur. • ITT Protokolü ( ilk data = Lead-in ) 5 us >= Lead-in HIGH Süresi =< 15 us 200 us >= Lead-in LOW Süresi =< 400 us • SHARP Protokolü ( ilk data = Data Biti ) 250 us >= Data HIGH Süresi =< 400 us 600 us >= Data LOW Süresi =< 1750 us • NOKIA Protokolü ( ilk data = Start Biti ) 450 us >= Start HIGH Süresi =< 550 us 2450 us >= Start LOW Süresi =< 2550 us • RC5 Protokolü ( ilk data = Start Biti ) 850 us >= Start HIGH Süresi =< 950 us 850 us >= Start LOW Süresi =< 950 us 31 / 31 • SIRC Protokolü ( ilk data = Start Biti ) 2350 us >= Start HIGH Süresi =< 2450 us 550 us >= Start LOW Süresi =< 650 us • NEC Protokolü ( ilk data = Start Biti ) 8.90 ms >= Start HIGH Süresi =< 9.10 ms 4.40 ms >= Start LOW Süresi =< 4.60 ms 32 / 32 İnferruj Datayı Kopyalamak Alıcı modülünüzün programını ve donanımını Data kopyalama mönüsü veya tuşuna uygun hale getirdiğinizde inferruj datayı kopyalamanız mümkündür. Burada programınız data kopyalama modu seçildiğinde kopyalama rutinine yönlenmeli ve Start, Lead-in veya Data biti kontrolü için beklemeye başlamalıdır. Bu bilgilerden herhangi biri alındığında (yani kopyalanacak vericinin herhangi bir tuşuna basıldığında) bu bilginin hangi protokole uyduğunu Start LOW süresi içerisinde tespit ederek data alımına hazır hale gelebilmelidir. Ancak ilk bilgi geldiğinde bu bu protokolün SHARP ait olduğunu tespit etmesi halinde, bu protokolde start biti olmaması nedeniyle gelen bu ilk bilgiyi cihaz kodunun ilk biti olarak kaydedebilmeli ve son gelen iki bitin kontrol biti olduğunuda bilmesi gerekmektedir. Dikkat edilecek diğer bir noktada tespit edilen protokolün NOKIA veya RC5 olması durumunda Start biti gelmesine karşın ilk bitin ikinci yarısında HIGH durumu oluştuğunu bilerek NOKIA için 500 us ve RC5 için 900 us LOW bilgisinin HIGH den önce olduğunu anlayabilmesi gerekmektedir. Bundan sonraki aşama bu vericinin kullandığı protokol bilgisi dahilinde cihaz kodunun toplam sayısı ve ardı sıra gelen bitlerden hangileri olduğu tespit ederek vericinin yolladığı cihaz kodunu tespit edebilmelidir. Son aşama ise aynı protokol bilgisi dahilinde tuş kodunun toplam sayısını ve yine ardı sıra gelen bitlerden hangileri olduğu tespit ederek vericinin yolladığı tuş kodunu da tespit edebilmelidir. 33 / 33 Program bu şekilde kopyalanacak vericinin her seferinde tek bir tuşunu kopyalayabilme yeteneğine sahipken son aşamanın uygulanması yerine sizin programınız tarafından ilgili protokolün tüm tuş komutları bilinmesi halinde son aşama yapılmadan, kopyalanacak vericinin protokolünün ve cihaz kodunun tespit edilmesi yeterli olacak ve kopyalama devreniz, yazılımınız sayesinde o kumandanın tüm yeteneklerine sahip olabilecektir. Kısaca sonlandırmak gerekirse kopyalanacak vericinin tek bir tuşuna basılması sizin yazılımınız tarafından vericiye ait tüm bilgilere sahip olunması için yeterli olacaktır. Ancak kopyalanan data yollanırken ITT protokolü için Lead-out ve SHARP protokolü için son iki kontrol bitinin yollanılması da ayrıca gerekecektir. 34 / 34 İnferruj Datayı Bilgisayardan Okumak İnferruj datayı aşağıdaki şema yardımı ile bilgisayarınızın RS232 portundan izleyebilirsiniz. Visual Basic gibi ileri seviye programlama dilleri ile yazacağınız program, sizi asm ile uğraşmaktan kurtarır. TK19 beslemesini RS232 portundan almakta olup, ayrıca besleme devresine ihtiyaç duymaz. Dikkat ! RS232 portu devrede yapabileceğiniz hatalı bağlantılar nedeni ile hasar görebilir. 35 / 35 İnferruj Datayı Bilgisayardan Göndermek İnferruj datayı aşağıdaki şema yardımı ile bilgisayarınızın RS232 portundan hem izleyebilir hem de alıcı ünitelere data yollayabilirsiniz. TK19 ve Led beslemesini yine RS232 portundan almakta olup, ayrıca besleme devresine ihtiyaç duyulmaz. Dikkat ! RS232 portu devrede yapabileceğiniz hatalı bağlantılar nedeni ile hasar görebilir. 36 / 36 Bilgisayar Portları Bilgisayarlar ile iletişim pek çok yolla sağlanabilir. En yaygın kullanılanlar Seri ve Paralel portlardır. Her iki iletişim yönteminin birbirine göre avantaj ve dezavantajları vardır. Bunların dışında Oyun Portu, USB portu ve ethernet, I/O kartları, modemler gibi ek donanımlar ile PCI genleşme yuvaları kullanılabilir. Seri Port 37 / 37 Pek çok dış ünitenin kullandığı port tur. Portun ismindende anlaşılacağı gibi iletişim seri yapılmaktadır. Hatasız data transferi için iletişim hızı alıcı ve verici için aynı olmak zorundadır. İletişim hızları arasındaki fark hata oranını verir. Bu tip iletişim hızı farlılıklarında kontrol bitleri kullanılarak hatalı data transferleri engellenebilir. Seri portlar bilgisayar üzerinde 9 pin ve/veya 25 pin erkek soket şeklinde olabilir. Yeni bilgisayarlarda 9 pin erkek soket standart olarak kullanılmaktadır. Seri iletişim maksimum 20kb/s hızında ve yaklaşık 16 metre mesafede yapılabilir. Mesafe çevre baskıları, tasarım, kablo gibi nedenlerle değişiklik gösterebilir. İletişimde data paketleri değişik şekillerde kullanılabilir. Ancak genel kullanım start biti, 8 data biti ve stop biti şeklindedir. İletişim +/- 15 volt seviyesinde gerçekleşir. –3 volt ile –15 volt arası Mark yani lojik “1”, +3 volt ile +15 volt arası space yani lojik “0” olarak kabul edilir. –3 volt ile +3 volt arası kararsız bölgedir. Seri Portların adreslerini öğrenmek Adresleri, bilgisayarınız açılırken Bios Penceresinde Serial Port(s) satırından öğrenebileceğiniz gibi bilgisayar açıldıktan sonra aşağıdaki yolları izleyerekte öğrenebilirsiniz. COMx adresini öğrenmek istediğiniz COM portun numarasıdır. COM1, COM2 gibi. 38 / 38 Windows 98 için denetim masasından sistemi tıklayarak açılan pencerede “aygıt yöneticisi” sekmesi altında, “bağlantı noktaları” seçeneği seçilerek “iletişim bağlantı noktası (COMx)” aktif hale getirilip alttaki “özellikler” butonu ile açılan pencerede “kaynaklar” sekmesi altında “giriş/çıkış aralığı” satırındaki ilk değer bilgisayarınızın Seri portu COMx için kullandığı adrestir. Windows XP için denetim masasından sistemi tıklayarak açılan pencerede “donanım” sekmesi altında, “aygıt yöneticisi” butonu ile açılan pencerede “bağlantı noktaları” seçeneği seçilerek “iletişim bağlantı noktası (COMx)” aktif hale getirilip sağ tıklama ile açılan pencerede “özellikler” menüsü seçilerek açılan pencerede “kaynaklar” sekmesi altında “G/Ç aralığı” satırındaki ilk değer bilgisayarınızın Seri portu COMx için kullandığı adrestir. RS232 Portunu Visual Basic 6 ile kullanım Bunun için mscomm32.ocx dosyasında bulunan seri iletişim kontrolü Mscomm Control nesnesini kullanmamız gerekiyor. Bu nesneyi kullanmak için “Toolbox” u sağ tıklayarak açılan menüden “Components” menüsünü seçerek açılan pencerede “Microsoft Comm control 6.0” ın solundaki onay kutusunu işaretleyerek ve tamam butonuna basarak projemize dahil ediyoruz. Bu nesneyi seçerek forum üzerine koyuyoruz. Ayarları bu nesne üzerine sağ tıklayarak açılan menüde “Properties” menüsü ile yapabileceğimiz gibi aşağıdaki kodlar ile kod satırlarında da yapabiliriz. FormX deki X Mscomm nesnesinin bulunduğu form numarası olacak. (Form1 gibi) Kodlar forma ait kod penceresinde kullanılıyor ise satırda FormX kısmı kullanılmayabilir. 39 / 39 • Kullanılacak Portu seçmek için FormX.MSComm1.Commport = Port Numarası • Seçilen port üzerinde iletişim hızını ve tipini belirlemek için FormX.MSComm1.Settings ="300,n,8,1" 300 Baudrate, parity biti yok, data bit sayısı 8 ve stop bit sayısı 1 • Seçilen Portu açmak için FormX.MSComm1.PortOpen = True • Seçilen Portu kapatmak için FormX.MSComm1.PortOpen = False • Seçilen port için data alımında tampon hafıza sayını belirlemek için FormX.MSComm1.InputLen= Sayı • Seçilen porttan data alımı yapabilmek için Degisken = FormX.MSComm1.Input • Seçilen porta data gönderimi yapabilmek için FormX.MSComm1.Output = Degisken Konu ile ilgili birçok kontrol, özellik ve hata durumlarını içeren fonksiyonlar bulunmaktadır. Tüm bunları MSDN kütüphanesinde bulabilirsiniz. Bu kütüphane VB6 standart setup ile birlikte kurulmaz. Eğer kurulu ise MSDN kütüphanesine Visual Basic yardımı ile ulaşabilirsiniz. 40 / 40 RS232 Portu kullanımı için örnek devre şeması Bizim genellikle mikrokontrol uygulamalarında kullandığımız RS232 portuna ait üç pin bulunmaktadır. Bunlar 5 nolu GND pini, bilgisayarın data gönderiminde bulunduğu 3 nolu pin TX, ve bilgisayarın data aldığı 2 nolu RX pinidir. 3 nolu TX pini bilgisayar donanımı tarafından mark durumunda tutulur. Bizimde 2 nolu RX pinini mark durumunda tutmamız gerekir. İletişim için MAX232 gibi hazır entegre devreler kullanılabileceği gibi maliyeti 500 bin TL yi bulmayan basit tasarımlarda yeterli olur. MAX232 bağlantı şemasını parçanın katalogunda bulabilirsiniz. Devrenizde +5 volt güç kullandığınız ve –Ve kullanmadığınız düşünülerek aşağıdaki gibi bir bağlantı ile RS232 portunu kullanabilirsiniz. Bu devreyi RS232 soketinin plastik kapağı içine rahatlıkla sığdırabilirsiniz. İlk olarak RS232 portunun 2 nolu RX pinini mark durumunda yani –Ve de tutmamız gerekecek. Bunun için bilgisayardan aldığımız –Ve yi kullanacağız. D1 ve C1 in bağlantı noktası bize –Ve yi sağlayacak. C1 in + kutbu GND ye gelecek. R1 ise RX pinini -Ve ye asarak mark durumunu elde etmek için. 41 / 41 Şimdi sıra +/- 15 den izole edilmiş, GND ve +5 olarak datayı alabilmede. Bunun içinde R2 üzerinden Q1 sürülecek. İstenmeyen tetiklenmelerin olmaması için Q1 in beyzi R3 ile pull-down. Q1 in kollektörü R4 ile pull-up ve Q1 ile R4 ün bağlantı noktası bizim RX ucumuz. RS232 TX mark durumunda iken, RX data ucu lojik “1”, space durumunda iken lojik ”0” olur. Data yollayabilmemiz için Q2 transistörü R5 üzerinden sürülecek. İletişim olmadığı zamanlarda RS232 RX pinini markta tutabilmek için Q2 sürülmemelidir. RS232 RX için, TX data ucu lojik “0” iken space, lojik “1” iken mark durumu oluşur. RS232 iletişimde +3 volttan sonrası space olarak kabul edileceği için +5 volt yeterli gelecektir. Ancak mesafe arttığında problem olabilir. 42 / 42 Şimdi sıra iletişimi görüntülemede. Bunun için bir adet kırmızı bir adet yeşil 3 mm led kullanılıyor ve aşağıdaki şekilde bağlanıp devre tamamlanıyor. 43 / 43 Tasarımla ilgili dikkat etmeniz gereken noktalar ; 1. RS232 den gelen kabloda kısa devre olması bilgisayarınızın seri portunu kullanılamaz duruma getirebilir. 2. RS232 kablosunun bilgisayar tarafını bağlayın ve plastik muhafaza soketini kapatın. Kablo olarak ben eski bir mouse kablosu kullandım. Dış izolesi iyi 3 veya daha çok hat içeren kablo kullanabilirsiniz. Bilgisayara bağlantı yapmadan 3 kabloyu ölçerek kısa devre ve/veya açık devre olmadığından emin olun. 44 / 44 3. R1, D1 ve C1 den oluşan ilk şemayı kurun ve bilgisayar bağlantısını yaparak RS232 RX noktasında ölçü aleti ile –Ve yi görün ve bilgisayar bağlantısını çıkartın. Buraya kadar devrenizde besleme kullanmayın. 4. R2, R3, R4 ve Q1 den oluşan şemayı ilave edin. Bilgisayar bağlantısını yapmadan devreye +5 volt verin ve RX data ucunda +5 voltu kontrol edin. 5. R5 ve Q2 yi ilave ederek ve kontrol amacıyla TX data ucunu + 5 volta bağlayarak yine bilgisayar bağlantısını yapmadan devreye +5 volt verin ve RS232 RX noktasını kontrol edin. Küçük miktarda –Ve görmelisiniz. Kontrol amacıyla TX data ucunu GND ye bağlayın ve tekrar RS232 RX noktasını kontrol edin. Bu durumda + 5 volt görmelisiniz. TX data ucunu boşa çıkartın. 6. R6,R7,D1 ledi ve D2 ledini ilave edin. Yine bilgisayar bağlantısını yapmadan kontrol amacıyla TX data ucunu GND ye bağlayarak D1 ledinin yandığını ve RS232 TX noktasını +5 volta bağlayarak D2 ledini yandığını kontrol edin. Bu bağlantıları tekrar iptal edin. 7. Buraya kadar tüm bunlar olduysa devreniz çalışıyor demektir. Ledleri plaketinizin tersinden yani lehim yüzünden bağlarsanız yerleştirmesi daha kolay olur. Ledler benim devrede bu plaket üzerinde değil. 8. RS232 soketini içerisine alan plastik koruyucu kapağın içine oturacak şekilde plaketi kesin. Ledlerin geldiği yerleri 3 mm matkap ucu ile delin ve ledlerin bu deliklerden dışarı çıkmasını sağlayacak şekilde devreyi bu kapak içerisine yerleştirerek kapatın. 9. Her iki tarafta kablonun çekilerek kopmasını engelleyici sıkıştırıcılar bulunur. Bunları kablonun devre üzerinden çekilemeyeceği şekilde ayarlayarak mutlaka bağlayın. 45 / 45 10. RX data ucu devre üzerinde pull-up durumundadır. Bu ucu mikrokontrole bağlarken pull-up veya pull-down yapılmış bir porta bağlamayın. Eğer sip direnç kullanımı gibi nedenler ile bu mümkün değil ise pull-up durumundaki bir porta R4 direncini iptal ederek bağlayın. 11. Devreyi içine koyduğunuz kısıma “Modül” diğer tarafa “PC” gibi bir yazı yazın veya etiket yapıştırın. Çünkü artık hangisinin nereye takılacağı önemli. Artık bu kabloyu kullanacağınız devre üzerindeki erkek sokete takarak 3 pini direk mikrokontrole bağlamanız yeterli. 46 / 46 Paralel Port Genellikle yazıcının bağlı olduğu porttur. Ancak yeni yazıcıların bir çoğu paralel port yerine USB portu kullanmaktadırlar. 8 Data pini, 5 status (durum) pini, 4 kontrol pini ve 8 GND pini olmak üzere toplam 25 pinden oluşur. Bilgisayar üzerinde 25 pin dişi soket şeklindedir. Genel olarak data ve status portu bilgisayardan data çıkışı, kontrol portu data girişi olarak kullanılır. Tüm portlar hem giriş hem çıkış olarak kullanılabilirler. LPT portu 25 pin olmasına karşın yazıcı soketi 36 pindir ve toplam 35 kablo iletişimi sağlar. Genel standart olarak kablo renkleri ve bağlantısı şu şekildedir; 47 / 47 Renk Kablo Sayısı LPT Portuna Bağlantı Pinleri Siyah 7 1,2,3,4,5,6,7 Kırmızı 7 8,9,10,11,12,13,18 Yeşil 7 14,15,16,17,19,22 ve bir tane boş Sarı 3 20,23,23 Beyaz 3 19,22,25 Kahverengi 3 21,24,25 Mavi 3 20,24,25 Turuncu 3 21,24,25 Toplam 36 . . . . LPT Portlarının adreslerini öğrenmek Adresleri, bilgisayarınız açılırken Bios Penceresinde Parallel Port(s) satırından öğrenebileceğiniz gibi bilgisayar açıldıktan sonra aşağıdaki yolları izleyerekte öğrenebilirsiniz. LPTx adresini öğrenmek istediğiniz LPT portunun numarasıdır. LPT1, LPT2 gibi. Data portu temel adresi kullanır. Durum portunun adresi “temel adres+1”, kontrol portunun adresi ise “temel adres+2” dir. Windows 98 için denetim masasından sistemi tıklayarak açılan pencerede “aygıt yöneticisi” sekmesi altında, “bağlantı noktaları” seçeneği seçilerek “ECP yazıcı bağlantı noktası LPTx” aktif hale getirilip alttaki “özellikler” butonu ile açılan pencerede “kaynaklar” sekmesi altında “giriş/çıkış aralığı” satırındaki ilk değer bilgisayarınızın LPT portu için kullandığı temel adrestir. 48 / 48 Windows XP için denetim masasından sistemi tıklayarak açılan pencerede “donanım” sekmesi altında, “aygıt yöneticisi” butonu ile açılan pencerede “bağlantı noktaları” seçeneği seçilerek “ECP yazıcı bağlantı noktası LPTx” aktif hale getirilip sağ tıklama ile açılan pencerede “özellikler” menüsü seçilerek açılan pencerede “kaynaklar” sekmesi altında “G/Ç aralığı” satırındaki ilk değer bilgisayarınızın LPT portu için kullandığı temel adrestir. LPT Portuna data gönderimi Visual Basic te data gönderimi OUT ADRES,DATA C de data gönderimi OUTP (ADRES,DATA); şeklinde yapılabilir. LPT Portundan data alımı Visual Basic te ve C de data alımı DEGISKEN = INP(ADRES) şeklinde yapılabilir. Not : Bu komutların kullanımı ek dosya gerektirebilir. LPT Portunda Data Kullanımları Data portu 8 bitten oluşan ve terslenmiş biti olmayan tam bir Byte tır. Alınan değer hiçbir işleme tabi tutulmadan işlenebilir. 49 / 49 Durum portu 5 bittir ve soket üzerindeki 11 nolu pin terslenmiştir. Kullanılmayan üç bit 0. 1. ve 2. bitlerdir. 3.4.5. ve 6. bitler normal ve 7. bit terslenmiş durumdadır. Gönderilecek değerler ve alınan değerler işlenirken bunlar gözönünde bulundurulmalı, maskeleme ve bit kaydırma yöntemleri ile değerler doğrultulmalıdır. Kontrol portu 4 bittir ve soket üzerindeki 1. 14. ve 17. pinler terslenmiştir. Kullanılmayan dört bit 4. 5. 6. ve 7. bitlerdir. 2. bit hariç diğer üç bit terslenmiş durumdadır. Gönderilecek değerler ve alınan değerler işlenirken bunlar gözönünde bulundurulmalı ve maskeleme yöntemleri ile değerler doğrultulmalıdır. 50 / 50 MPLAB IDE Kullanım Kılavuzu 51 / 51 BAŞLANGIÇ AYARLARI 1. CONFIGURE menüsü SELECT DEVICE seçeneği ile programın hangi PIC için yazılacağı seçilir. Seçimini yaptığınız PIC için hangi özellikleri kullanabileceğiniz, pencerenin altındaki alanda yeşil renkli daire işareti ile gösterilir. Kırmızı renkli daire ise o PIC için kullanılamayacak özelliklerdir. 2. CONFIGURE menüsü CONFIGURATION BITS penceresi açılır ve osc tipi, wdt on/off vs. istenilen seçenekler ayarlanır ve pencere kapatılır. 3. DEBUGGER menüsü SETTINGS seçeneği ile açılan pencerede PIC çalışma hızı, wdt zaman aşımı sonucu, breakdown özellikleri, MCLR Pull Up gibi seçenekler ayarlanıp pencere kapatılır. 4. CONFIGURE menüsü SETTINGS seçeneği ile açılan pencerede FILE menüde listelenecek son açılan dosya/workspace sayısı, otomatik kayıt süresi, derlemeden sonra kayıt ve MPLAB ı çalıştırma ve kapatmada istenilen özellikler gibi istenilen ayarlar yapılıp pencere kapatılır. 5. EDIT menüsü PROPERTIES seçeneği ile açılan pencerede satır numarası görüntüleme, dosya koruma, çift klikle BREAKPOINT oluşturma ve iptali, yazı tipi ve renklendirme, tab ayarları vb. özellikler ayarlanır. 52 / 52 PROJE / DOSYA OLUŞTURMA 1. PROJECT menüsü NEW seçeneği seçilir. Açılan pencerede NAME bölümüne projenin ismi, DIRECTORY bölümüne projenin hangi klasörde tutulacağı yazılır veya BROWSE tuşu ile açılan pencerede klasör bulunup işaretlenir ve OK tuşuna basılır. ( Bu işlemden sonra başlığında ve ilk satırında projenizin ismini ve yolunu listeleyen WORKSPACE penceresi SOURCE FILES, HEADER FILES, OBJECT FILES, LIBRARY FILES VE LINKER SCRIPTS menüleriyle açılır.) 2. Daha önceden yazdığınız asm kodları var ise WORKSPACE penceresindeki SOURCE FILES menüsü üzerinde sağ tıklayarak ADD FILES seçeneği sayesinde ( PROJECT menüsündeki ADD FILES TO PROJECT seçeneğide aynı işi yapar) dosyanızı ekleyip, alt menü olarak listelenen dosya adının üzerinde sağ tıklayıp EDIT seçeneği ile kodların görüntülenmesini sağlayabilirsiniz. 3. Kodları yeni yazmaya başlıyorsanız FILE menüsünden NEW seçeneği ile yeni kod penceresi açılır ve yine FILE menüsündeki SAVE AS seçeneği ile yeni dosyaya isim verilip kaydedilir. ( dosya uzantısı vermezseniz dosyanız asm olarak değil header dosyası tipinde ( h ) uzantılı kaydedilir. ) Bu dosya 2. bölümde anlatıldığı gibi SOURCE FILES a eklenir. (dosya görüntülenmekte olduğu için eklemeden sonrakiler yapılmaz.) Artık kodları yazmaya başlayabilirsiniz. Bu dosyalar FILE menüsündeki SAVE, SAVE AS, ve SAVE ALL seçenekleri ile kaydedilir. 4. PROJECT menüsü SAVE PROJECT seçeneği ile proje, FILE menusü SAVE WORKSPACE ile wokspace kaydedilir. 53 / 53 MPLAB KULLANIMINDA ASSEMBLY YAZIM KOLAYLIKLARI KISALTMA AÇIKLAMALARI o k Etiket ( Adı veya Adresi ) o f Register / Değişken ( Adı veya Adresi ) o d Sonucun atanacağı yer. ( W Register veya f ) REGISTER / DEĞİŞKEN İÇİN BANK BULMA VE DEĞİŞTİRME BCF/BSF STATUS,RP0/RP1 BCF/BSF STATUS,RP0/RP1 yazımı yerine BANKSEL f İşlem yapacağınız registerin / değişkenin adresini otomatik bulur ve STATUS bitlerini ona göre ayarlar. Değişkenin adresi değişse bile her derlemede yeniden kontrol edilerek düzeltilir. ETİKET İÇİN BANK BULMA VE DEĞİŞTİRME BCF/BSF PCLATH,4 BCF/BSF PCLATH,3 yazımı yerine PAGESEL k Çağrı / yönlenme yapacağınız etiketin adresini otomatik bulur ve PCLATH bitlerini ona göre ayarlar. Etiketin adresi değişse bile her derlemede yeniden kontrol edilerek düzeltilir. 54 / 54 ETİKET İÇİN BANK BULMA VE DEĞİŞTİRME + PROGRAM DALLANMASI BCF/BSF PCLATH,4 BCF/BSF PCLATH,3 GOTO k yazımı yerine LGOTO k Yönlenme yapacağınız etiketin adresini otomatik bulur ve PCLATH bitlerini ona göre ayarlayarak program dallanmasını yapar. Etiketin adresi değişse bile her derlemede yeniden kontrol edilerek düzeltilir. ETİKET İÇİN BANK BULMA VE DEĞİŞTİRME + PROGRAM ÇAĞRISI BCF/BSF PCLATH,4 BCF/BSF PCLATH,3 CALL k yazımı yerine LCALL k Çağrı yapacağınız etiketin adresini otomatik bulur ve PCLATH bitlerini ona göre ayarlayarak program çağrısını yapar. Etiketin adresi değişse bile her derlemede yeniden kontrol edilerek düzeltilir. STATUS C BAYRAĞI=1 İSE PROGRAM DALLANMASI BTFSC STATUS,C GOTO k yazımı yerine BC k C Bayrağı 1 ise program dallanması yapılır, 0 ise bir sonraki satır işlenir. 55 / 55 STATUS C BAYRAĞI=0 İSE PROGRAM DALLANMASI BTFSS STATUS,C GOTO k yazımı yerine BNC k C Bayrağı 0 ise program dallanması yapılır, 1 ise bir sonraki satır işlenir. STATUS C BAYRAĞI=1 TESTİ BTFSC STATUS,C yazımı yerine SKPNC C Bayrağı 1 ise komuttan sonraki birinci satır, C Bayrağı 0 ise ikinci satır işlenir. STATUS C BAYRAĞI=0 TESTİ BTFSS STATUS,C yazımı yerine SKPC C Bayrağı 0 ise komuttan sonraki birinci satır, C Bayrağı 1 ise ikinci satır işlenir. STATUS Z BAYRAĞI=1 İSE PROGRAM DALLANMASI BTFSC STATUS,Z GOTO k yazımı yerine BZ k Z Bayrağı 1 ise program dallanması yapılır, 0 ise bir sonraki satır işlenir. 56 / 56 STATUS Z BAYRAĞI=0 İSE PROGRAM DALLANMASI BTFSS STATUS,Z GOTO k yazımı yerine BNZ k Z Bayrağı 0 ise program dallanması yapılır, 1 ise bir sonraki satır işlenir. STATUS Z BAYRAĞI=1 TESTİ BTFSC STATUS,Z yazımı yerine SKPNZ Z Bayrağı 1 ise komuttan sonraki birinci satır, Z Bayrağı 0 ise ikinci satır işlenir. STATUS Z BAYRAĞI=0 TESTİ BTFSS STATUS,Z yazımı yerine SKPZ Z Bayrağı 0 ise komuttan sonraki birinci satır, Z Bayrağı 1 ise ikinci satır işlenir. STATUS C BAYRAĞI=1 İSE DEĞİŞKEN İÇERİGİNİ ARTIRMA BTFSC STATUS,C INCF f,d yazımı yerine ADDCF f,d C Bayrağı 1 ise değişken içeriği bir artırılır, 0 ise bir sonraki satır işlenir. 57 / 57 STATUS C BAYRAĞI=1 İSE DEĞİŞKEN İÇERİGİNİ AZALTMA BTFSC STATUS,C DECF f,d yazımı yerine SUBCF f,d C Bayrağı 1 ise değişken içeriği bir azaltılır, 0 ise bir sonraki satır işlenir. Konu ile ilgili diğer açıklamaları www.microchip.com İnternet adresindeki 30400e.pdf dosyasında bulabilirsiniz. Konu başlığı aşağıdadır. MPASM™ and MPLINK™ PICmicro® QUICK REFERENCE GUIDE 58 / 58 YAZILAN KODLARIN DERLENMESİ 1. PROJECT menüsü BUILD ALL seçeneği ile ( CTRL+F10 ) yazdığınız kodları derleyebilirsiniz. Derleme sırasında MPASM v03.20.07 küçük pencerede açılır. Derleme sonunda kod yazım hatası yok ise, derleme gösterge bandında yeşil renk kırmızıya dönmez ve OUTPUT penceresinin son satırında BUILD SUCCEEDED mesajı görüntülenir. • Bazı işlem komutlarında (artırma, eksiltme, toplama, çıkartma, karşılaştırma vb.) sonucun gideceği yeri belirtmezseniz (“INCF DEGISKEN , W” yerine “INCF DEGISKEN” gibi), işlem sonucu W registere değil değişkene atanır. OUTPUT penceresinde ilgili satırda ; Using default destination of 1 (file) mesajı verir ve bunu hata olarak görmez. Ancak sonucun W registere alınarak programın devam etmesi isteniyor ise değişken içeriğinin değişiminden dolayı program hatalı çalışır. • Hata mesajları MPLAB yardım dosyalarında detaylı olarak mevcuttur. • MPASM sadece kod yazım denetimi yapar. Yazdığınız kodlardaki mantık hatalarını bulmaz ! • HEX dosyası : Derleme başarılı ise proje dosyanız adıyla .HEX uzantılı bir dosya oluşturulur (bu dosya PIC ‘e yüklenecek dosyadır) ve program göstergesi (yeşil renkli sağ ok) çalışacak ilk satırın sol tarafına gelir. • ERR dosyası : Derleme sonucu hatalı ise OUTPUT penceresinde görüntülenen çıktı .ERR uzantılı olarak kaydedilir ve bu pencere en üstte kalır. ( Bu dosyada uyarı mesajlarıda yeralmaktadır. Örneğin başka bir banktaki kodu CALL komutu ile çağırdığınızda, başka bir 59 / 59 banktaki koda GOTO komutu ile atlama yaptığınızda veya başka bir banktaki registerde işlem yaptığınızda aşağıdaki gibi mesajlar ile satır numarası ve dosya adı vererek uyarır. Setting page bits , Crossing page boundary -- ensure page bits are set Register in operand not in bank 0. Ensure that bank bits are correct • LST dosyası : Satır numarası, komutun hex karşılığı, değişkenlerin adı ve adresleri, uyarı mesajları, sabitlerin adı ve değeri, çağrı ve dallanma başlıklarının adı ve adresleri, her bankta kullanılan ve kullanılabilecek hafıza miktarının gösterildiği hafıza haritası ile toplam hafıza kullanımının ve kullanılabilecek hafıza miktarının sayısal değerleri ve toplam hata, mesaj sayıları hakkında bilgiler içerir. • XRF dosyası : Çağrı ve dallanma başlıklarının, bitlerin/değişkenlerin, makroların, sabitlerin hangi dosyada oldukları, tiplerinin ne olduğu ve hangi dosyanın hangi satırında kullanıldıkları veya içeriğinin hangi satırda değiştirildiğini açıklayan bir dosyasıdır. 60 / 60 SİMULASYON TANIMLAMA • DEBUGGER menüsü SELECT TOOL seçeneği altındaki seçeneklerden seçtiğiniz PIC ile kullanabileceğiniz simulasyon seçeneği işaretlenir. (PIC16FXX,16FXXX için MPLAB SIM seçeneğidir.) SİMULASYON İZLEME PENCERELERİ 1. VIEW menüsü PROGRAM MEMORY : Satır numarası, hafıza adresi, komutun hex karşılığı ve asm kodlarını aynı satırda takip edebileceğiniz bir pencere açar. Alt kenardaki menü ile OPCODE HEX, MACHINE ve SYMBOLIC izleme yapılabilir. Başlık satırında sağ tıklayarak görüntüleme değiştirilebilir. 2. VIEW menüsü SPECIAL FUNCTION REGISTER : Seçtiğiniz PIC ‘te yüklü bulunan sabit registerlerin adreslerinin ve adlarının satırında içeriklerini binary, hex, decimal ve char olarak izleyebilmenizi sağlar ve başlık satırında sağ tıklayarak görüntüleme değiştirilebilir. 3. VIEW menüsü FILE REGISTER : Seçtiğiniz PIC ‘te yüklü bulunan sabit registerlerlerle birlikte diğer adresleride, adres sıralaması ile hex ve ascii olarak izleyebilmenizi sağlar. Alt kenardaki menü ile HEX ve SYMBOLIC izleme yapılabilir. Başlık satırında sağ tıklayarak görüntüleme değiştirilebilir. 4. VIEW menüsü EEPROM : Seçtiğiniz PIC ‘teki kapasite kadar eeprom alanını ascii ve/veya hex olarak izleyebilmenizi sağlar. 61 / 61 5. VIEW menüsü HARDWARE STACK : Seçtiğiniz PIC ‘teki yığın kapasitesi kadar satırda geri dönüş adreslerini ve kaçıncı yığında olduğunuzu izleyebilmenizi sağlar. ( Örneğin 16F877 için yığın kapasitesi max 8 seviyedir ve kesme olduğu anda buda bir seviye yıgın işgal eder. Program hatası nedeni ile bu seviye aşıldığında top stack yani ilk geri dönüş adresi silinir ve program asla çağrıldığı ilk adrese dönemez.) Simulasyon sırasında limit seviye aşılırsa STACK UNDERFLOW OCCURED mesajı ile çalışan program durur. (Programın bu durumda durması için DEBUGGER menüsünden SETTINGS Seçeneği altındaki yığın seviye kontrolünün açık olması gerekir.) 6. VIEW menüsü WATCH : Değişken, sabit izleme penceresidir. Registerleri ve HARDWARE bit tanımlamalarınıda (I2C_STOP, P gibi) görüntüleyebilir. Tek pencerede alt kenardaki seçenekler ile 4 değişik izleme oluşturulabilir. ADD SFR ve ADD SYMBOL seçenekleri ile seçilen register, bit veya değişken, seçili izleme penceresine atanır. Görüntüleme Adres, Ad, hex içerik şeklindedir ve başlık satırında sağ tıklayarak değiştirilebilir. Pencere içerisinde sağ tıklayarak atama silinmesi, kaydetme, yükleme, arama vb. işlemler yapılabilir. ( kayıt yapmazsanız pencere kapatıldığında tüm atamalarınız iptal edilir.) 62 / 62 SİMULASYON ZAMANI İZLEME 1. DEBUGGER menüsü STOPWATCH : Gerçek zamanlı süre takibini izleyebilmenizi sağlar. Çalışan her komutun gerçek zaman karşılığını hesaplayıp üst üste toplayarak gösterir. 2. ZERO seçeneği dilediğiniz anda süre takibini sıfırdan başlatır. CLEAR ON RESET seçeneğini işaretlediğinizde simulasyonu her resetlediğinizde sayacı sıfırlar. 63 / 63 SİMULASYONDA GİRİŞ / ÇIKIŞ PORTLARI 1. DEBUGGER menüsü STIMULUS : Açılan pencerede PIN STIMULUS bölümüne geçilir. ADD ROW seçeneği ile yeni satır açılır. Boş satır üzerine tıklanarak satır aktif edilir. PIN sutununda açılan pencerede ilgili pin seçilir, ACTION sutununda seçilen pinin durumu belirlenir. a-) High = Pullup, b-) Low = Pulldown, c-) Toggle = Kullanıcı belirler ( ENABLE sutunundaki FIRE seçeneği ile), d-) Pulse = Darbe) 2. İstenen diğer pinlerde ayarlanarak SAVE seçeneği ile kayıt yapılır. MPLAB ‘ı açtığınızda kaydettiğiniz bu PSTI uzantılı dosyayı, DEBUGGER menüsü STIMULUS penceresindeki PIN STIMULUS bölümündeki LOAD seçeneği ile tekrar yükleyerek tüm tanımlı pinleri bir defada yeniden yükleyebilirsiniz. 3. Tanımlamasını yaptığınız tüm pinler simulasyon sırasında belirlenen durum tipinde tepki verir. Pin durumu TOGGLE seçiliyse simulasyonun herhangi bir anında pinin durumunu değiştirebilirsiniz. FIRE seçeneğine bastığınızda pin durumu 0 sa 1, 1 ise 0 olur. ( Değişikliğin uygulanabilmesi için simulasyonun bir adım ilerlemesi gerekir. ) 64 / 64 SİMULASYONU ÇALIŞTIRMA 1. DEBUGGER menüsü RUN ( F9 ) : Programı PIC üzerine yüklenmiş gibi bilgisayar kapasitesine bağlı olarak gerçek zamanlı çalıştırır. STOPWATCH penceresi, program duruncaya kadar geçen zamanı göstermez. 2. DEBUGGER menüsü STEP INTO ( F7 ) : Programı her seferinde bir komut yani satır satır çalıştırır. 3. DEBUGGER menüsü STEP OVER ( F8 ) : Programı her seferinde bir komut çalıştırır. 2. seçenekteki komuttan farkı CALL komut satırında çağrılan kodu satır satır çalıştırmak yerine çağrılan koddaki RETURN komutuna kadar 1 defada çalıştırır ve geri döner. Dönüş adresi TOS+1 dir yani CALL komut satırından sonraki ilk satırdır. Eğer çağrılan kod bir şekilde beklemeye dönükse ( örneğin bir giriş pininin 1 olmasını bekleme gibi ve o pin 1 olmayacaksa ) sonsuza kadar geri dönüş olmaz. 4. DEBUGGER menüsü HALT ( F5 ) : Çalışan programı olduğu yerde durdurur. 5. DEBUGGER menüsü RESET / PROCESSOR RESET ( F6 ) : Devre üzerindeki MCLR reset gibidir. Program göstergesini ilk çalışacak satıra alır. Ancak register içerikleri değişmez. 6. DEBUGGER menüsü CLEAR ALL MEMORY : Tüm registerleri program başlangıcındaki tanımlanmamış duruma getirir. 7. PROJECT menüsü CLEAN seçeneği derlemede bilgisayar hafızasına yüklenen çalışacak hex dosyanın silinmesi içindir. Tekrar derleme yapılmadan simulasyon çalışmaz. 65 / 65 8. BREAKPOINT : Duruş noktası belirlemek için asm kodlarının olduğu pencerede, özellik açık ise çift tıklama ile, özellik kapalı ise sağ tıklayarak açılan pencerede SET BREAKPOINT seçeneği ile imlecin olduğu satıra duruş noktası konur. Bu noktalar kırmızı daire içinde (B) harfi ile satırın en solunda gösterilir. Fare duruş noktası satırında iken yine çift tıklayarak veya sağ tıklayarak açılan pencerede REMOVE BREAKPOINT seçeneği ile iptal edilir. Fare duruş noktası satırında iken DISABLE BREAKPOINT seçeneği ile duruş noktası pasif ENABLE BREAKPOINT seçeneği ile duruş noktası aktif hale getirilebilir. Pasifize edilen duruş noktaları kırmızı renkli ( ) işareti ile gösterilir. Sağ tıklamada açılan pencerede BREAKPOINT seçeneği ile tüm duruş noktaları iptal, aktif ve pasif edilebilir. Ayrıca sadece bir defaya mahsus programın bir noktada durması istenir ise imleç programın durdurulacağı satıra getirilerek sağ tıklanır açılan pencerede RUN TO CURSOR seçeneği seçildiğinde program o satıra kadar çalışır ve o satıra geldiğinde duruş noktalarında olduğu gibi durur. Duruş noktaları, DEBUGGER menüsü BREAKPOINT ( F2 ) seçeneği ile açılan pencerede dosya adı ile birlikte satır numarası veya adres belirterek oluşturulabilir veya aynı pencerede listelenen, daha önceden belirlediğiniz duruş noktaları üzerinde işlemler, duruş noktasını fare ile seçerek ve menü tuşlarını kullanarak yapılabilir. • Programı her derleyişinizde aktif olan her duruş noktası, pasif duruma döner. 9. SİMULASYONU BELLİ BİR NOKTADAN DEVAM ETTİRMEK : İmleç simulasyonun başlamasını istediğiniz satırda iken sağ tıklayarak açılan pencerede SET PC AT CURSOR seçeneğini seçtiğinizde program göstergesi o noktaya gelir ve simulasyona buradan itibaren devam edilebilir. 66 / 66 YAZILAN PROGRAMIN MPLAB İLE PIC ‘e YÜKLENMESİ 1. PROGRAMMER menüsü SELECT PROGRAMMER : PICSTART PLUS programlayıcıya sahipseniz işaretleyiniz. OUTPUT penceresine, programlama aşamasında her türlü bilginin verileceği PICSTART alanı eklenecek ve diğer menüler ile kısayollar görüntülenecektir. PROGRAMMER menüsü SETTINGS penceresini açınız. COMMUNICATIONS alanına geçerek programlayıcınızın hangi seri porta bağlı olduğunu tanımlayınız. Daha sonra PROGRAMMER menüsü ENABLE PROGRAMMER komutunu veriniz. Programlayıcınız aktif ve problemsiz ise OUTPUT penceresinde programlayıcınızın aktif edildiği mesajı verilecek ve diğer menü seçenekleri ile kısayollar aktif hale gelecektir . 2. PROGRAMMER menüsü DISABLE PROGRAMMER : Programlayıcıyı gizler. 3. PROGRAMMER menüsü PROGRAM : Hex dosyayı PIC ‘e yükler. 4. PROGRAMMER menüsü VERIFY : PIC ‘e yüklenen programın doğru yazımını test eder. 5. PROGRAMMER menüsü READ : PIC ‘te yüklü bulunan programı okur. 6. PROGRAMMER menüsü ERASE FLASH DEVICE : PIC ‘te yüklü bulunan programı siler. 67 / 67 Regulatör Şemaları 68 / 68 69 / 69 70 / 70 71 / 71 Telefon Hatları Ne Nedir, Nasıl Yapılır ? Açıklamalar • LOOP : Santralin aktif hale gelebilmesi için yeterli miktarda DC akım çekme işlemi. • QUIESCENT : DC akımın çekilmediği durum. • OFF-HOOK : Loop konumu. • ON-HOOK : Quiescent konumu. • dBm: 0.774 Volt gerilime göre desibel cinsinden gerilim seviyesi Formülü : (20Log(Vrms/0.774)) • PSTN : (Public Switched Telephone Network.) Tüm telefon sistemi. Türk Standartlarına Göre Teknik Bilgiler • Cihazın polaritesi, Tip Ring uçlarının değişmesinden etkilenmemeli ve her iki polaritede çalışmaya uygun olmalıdır • Cihazın DC direnci, On-Hook durumunda 30 Saniye bekletildikten sonra 5 mOhm dan büyük olmalıdır. Bu duruma göre; 25vDc için çekeceği akım 5uA yı geçmemelidir. • Cihazın zil sesi empedansı, 25 Hz ve 50 Hz 30 Vrms uygulandığında 6 Kohm’dan büyük olmalıdır. 72 / 72 • Cihazın zil algılama fonksiyonu 50 vDc beslemede 40-105 Vrms 25 Hz ve 50 Hz (2 sn var, 4 sn yok) zil sinyalini algılayabilmelidir. • Cihaz Loop durumunda yeteri kadar düşük DC direncine sahip olmalıdır.Cihaz en az 60 sn, On-Hook durumunda bekletildikten sonra ve en az 1.2 sn OffHook durumunda kaldıktan sonra akım ve gerilim değerleri 9 Volt =< 20 mA, 14.5 Volt =< 42 mA olmalıdır. • Cihazın AC empedansı, 50 mA DC akım üzerine bindirilmiş 800 Hz frekansında Irms=1mA AC akım geçerken, gerilim (Vrms) 300-1000 ohm arasında olmalıdır. • Cihaz, Off-Hook tan On-Hook a geçişte, 50 vDc beslemede ve Referans direnç değeri 2050 ohm iken çektiği akım 200 ms içinde 0.5 mA altına düşerek hattı doğru şekilde çözmelidir. • Cihaz On-Hook tan Off-Hook a geçişte Santralın loop durumunu algılayabilmesi için 50 vDc beslemede ; 1. Referans direnç değeri 230 ohm iken, hat alındıktan sonra 20 ms içinde çektiği akım en az 49,6 mA olmalı ve 1200 ms boyunca bu akımı çekmelidir. 2. Referans direnç değeri 3200 ohm iken, hat alındıktan sonra 30 ms içinde çektiği akım en az 12,8 mA olmalı ve 1200 ms boyunca bu akımı çekmelidir. • Çevir sesi algılamadan arama yapan cihaz, 2-8 saniye arasında aramayı yapmalıdır. • Çevir sesi algılayarak arama yapan cihaz, 0-8 saniye arasında aramayı yapmalıdır. 73 / 73 • Cihaz, aradığı numaranın meşgul olması / cevap vermemesi gibi nedenler ile ard arda arama yapıyorsa, aramalar arası en az 5 saniye beklemeli ve en fazla 15 arama yapmalıdır. • DTMF tonlarında (hem alt gurup hem üst gurup tonları için) sapma toleransı maksimum +/- %1.5 olmalıdır. • DTMF Üst frekans gurubu için sinyal seviyesi –10 ile –4 dBm arasında olmalıdır. • DTMF Alt frekans gurubu için sinyal seviyesi –12 ile –6 dBm arasında olmalıdır. • DTMF Üst Alt frekans gurubu arasındaki sinyal seviye farkı –1 ile –4 dBm arasında olmalıdır. • DTMF Sinyal süresi en az 65 ms olmalıdır. • DTMF sinyalleri arasında bekleme en az 65 ms olmalıdır. FCC Part 68 e göre PSTN Bağlantısı 74 / 74 DAA Modül ( Hat bağlantı ara birimi ) Yukarıdaki teknik bilgilerde bahsedilen değerlerin neredeyse yarısından fazlasını sağlayan veya uygun dizayn yapılamadığında sağlayamayan birimdir. Bir çok değişik tasarımla yapılabileceği gibi hazır modül devrelerde kullanılabilir. Trafolu olabileceği gibi trafosuzda yapılabilir. Her iki durumun birbirine göre avantaj ve dezavantajları vardır. Bu birim ; 1. Zil algılamasını, 2. Loop Kontrolünü, 3. On-Hook / Off Hook Kontrolünü, 4. Ses / DTMF / Data transferlerini ve 5. eğer var ise Caller ID alımını yapabilmelidir. Zil Algılama İçin Örnek Devre Şemaları Zil kontrol çıkışı zil çalması esnasında kare dalga çıkış verir. Zil çalmadığında ise yapılan tasarıma göre lojik “1” veya lojik “0” durumundadır. Pull_Up dirençlerinin değerlerini farklı kullanabilirsiniz. Pull-up yerine Pull-down çıkışta kullanabilirsiniz. 75 / 75 76 / 76 Ben dijitalle uğraşmıyorum zili nasıl çaldırırım diyorsanız işte bu şemada onun için ; 77 / 77 Hat Kontrolü İçin Örnek Devre Şemaları Bu devreler hattın doğru olarak alındığı ve/veya hattı açmadan hattın kullanılıp kullanılmadığının tespiti için kullanılabilir. 78 / 78 Hat Açma / Kapama Kontrolü İçin Örnek Devre Şemaları 79 / 79 SSR ler (Solid State Relay) EMR lere (Elektro Mechanical Relay) göre oldukça avantajlıdır. • Boyutları çok küçüktür, • Manyetik alan üretmez, • Sarsıntıdan etkilenmez, • Parazit, gürültü üretmez, • 5 mA gibi küçük bir akımla sürülebilir, • 5 kat ömrü uzundur, • Kararsız nokta oluşmaz, sürüldüğü anda devreye girer. 80 / 80 Hat Bağlantısı İçin Örnek Devre Şemaları 81 / 81 82 / 82 83 / 83 84 / 84 Trafo çıkışlarını aşağıdaki şemalardaki gibi kullanabilirsiniz. 85 / 85 Ses / DTMF Transferleri İçin Örnek Devre Şemaları Vdd/2 veya GND referans voltajları kullandığınız besleme tipine göre belirlenir. Eğer Dual Power kullanıyorsanız yani +/- voltaj beslemeniz var ise referans voltajı GND olacaktır. Eğer +Ve ve GND den oluşan tekli beslemeniz var ise referans voltajı Vdd/2 olacaktır. Eğer 5 volt besleme kullanıyor iseniz referans voltajınız 2.5 volt olmalıdır. Empedans değişikliği sinyalde bozulma, sapma meydana getiriyor ise voltaj takipçisi bu probleminizi giderecektir. R73=R74 / R75 = R76 86 / 86 87 / 87 88 / 88 On-Hook işlemleri İçin Örnek Devre Şemaları CM8888PI aşağıdaki şekillerde bağlandığında On-Hook durumunda da hattın durumunu kontrol edebilir. CM8888 / 8870 bu durumda DTMF tonlarının çözümünü hat kapalı iken yapabilirler. On-Hook Çift hat üzerinden bağlantı şeması 89 / 89 On-Hook veya Off_Hook tek hat üzerinden bağlantı şeması Bu şema ise herhangi bir entegre devre kullanmadan mikrokontrol tarafından hattın durumunu izlemek için veya tek hat üzerinden bağlantı işlemleri için kullanılabilir. 90 / 90 DTMF ( Çift Ton Çoklu Frekans ) DTMF Frekansları Yazılımla üretilip, ADC ve yazılımla çözülebilir. Ancak karmaşık formüllere göre hesaplamalar yapılmalıdır. Özellikle çözümleme yazılımı önemli ölçüde RAM işgal eder. Çözümlemek üretimine göre daha zordur. Bu nedenler ile bir çok ticari cihaz DTMF çözümlemesi için hazır entegre devreler kullanmaktadır. Gelişen teknoloji ile birlikte tek bir entegre devrede DTMF üretme, çözümleme, hat durumunu test gibi özellikler bir arada bulunduğundan yeni ürünler genelde yazılımı bir kenara bırakmışlardır. Ben DTMF çözümünü ADC ve yazılımla yaparım arkadaş diyen var ise kusura bakmayın iyi programcıyımdır ama 3 milyon vermek varken beni aşar. Adamın biri yazmış işte formül (Adama ayıp olmasın linkinide koyalım) ; http://www.geocities.com/constantinescuradu/content/dtmfrem/dtmf.asm DTMF Tablosu Üst Frekans Gurubu Alt Frekans Gurubu 1209 1336 1477 1633 697 1 2 3 A 770 4 5 6 B 852 7 8 9 C 941 * 0 # D 91 / 91 Dial Pulse ( Darbeli Arama ) Böyle bir şey kalmadı arkadaşlar. Hiç uğraşmadım. Belki, elektronikçi dedesi olan arkadaşlar varsa veya yaşı ilerlemiş üyeler bu bölüme katkı sağlayabilirler. Call Progress ( Telefon Hattının Durumu ) Telefon şebekesi ile uğraşmanın temel gereklerinden biridir. Telefon hattının durumunu bilmeden bilinçli olarak hiçbir şey yapamazsınız. Telefon hattının durumu hazır entegre devreler ile tespit edilebileceği gibi yazılımla da tespit edilebilir. DTMF konusunun aksine, bu tespit için ben basit bir karşılaştırıcı devre yardımı ile yazılımı öneririm. Çünkü Call Progress entegrelerinin fiyatları DTMF entegrelerinin fiyatlarına göre çok yüksektir ve yazılım çok fazla yer işgal etmez. Bence bir devre dizayn ederken dikkat edilmesi gereken 1. nokta yazılım mı ? Donanım mı ? sorusunun cevabıdır. Eğer yazılım kullanılmasından dolayı ek ram ünitelerine, ek donanıma ve/veya daha yüksek kapasiteli bir mikrokontrole gerek duyuluyor ve bu ihtiyacın maliyeti o yazılımla yapılacak işlerin donanımla yapılması için harcanacak paraya yaklaşıyor veya geçiyorsa yazılımla hiç uğraşmamak en doğrusudur. Çünkü zaman herşeyden değerlidir. 2. nokta ise tüm elemanların aynı voltaj değerinde çalışabilmesidir. Bu durum mümkün olmadığında özellikle iletişim protokollerinde transistör ve dirençlerden oluşan çevrim birimleri kullanılsa bile hem ebat hem de maliyet artacaktır. Diğer bir noktada mümkün olan en az parçayı ve en az gücü kullanmaktır. Bana göre bir aletin Arıza riski = Eleman Sayısı x çektiği güç x ebat x hatalı dizayn x mantıksız program kadardır. Şöyle bir örnek vermek gerekirse diyelim ki tasarladığınız devre hem artı 5 volt hem eksi 5 volt kullanıyor, +12 volta ihtiyac duyuyor ve elektrik kesilse bile kesintisiz çalışmalı. 92 / 92 Böyle bir devrede AC beslemenin dışında, kesintisiz çalışma ve + 12volt ihtiyacı için, 12 Volt Akü, Akü için şarj katı, elektrik kesildiğinde – voltaj için osilatörlü DC/DC konvertör katı gerektiği düşünülebilir. Ancak – voltaj için osilatörlü DC/DC konvertör katından doğru tasarım ile kurtulunabilir. Bu sayede devre üzerindeki gürültüde azaltılmış olur. Devrenin ebatları, maliyeti ve arıza riski azalır. Şöyle ki şarj katı kullanılacak 2 adet 6 volt aküyü bir bütün olarak +12 volt olarak görür ve 13.8-14.7 volt aralığında şarj eder. Tüm elemanlar GND olarak iki akünün orta bağlantısını, (Bir akünün (+) kutbu, diğer akünün (–) kutbudur) +5 volt ihtiyacı olan elemalar, birinci akünün (boşta kalan) + kutbunu +5 volt kaynağı olarak kullanırken, -5 volt ihtiyacı olan elemanlar ikinci akünün (diğer boşta kalan) (–) kutbunu –5 volt kaynağı olarak kullanırlar. 12 Volt kaynağı olarak iki akünün en baştaki (-) ve (+) kutupları yani şarj bağlantı noktaları kullanılır. Neyse konumuza dönelim işte Call Progress ile ilgili detaylar ; Dial Tone ( Çevir Tonu ) Eğer hattı doğru şekilde alabildiysek yani santralı bizim hattımız için aktif edebildiysek hattı açtığımızda duyduğumuz sesin kaynağıdır. 350+440 Hz den oluşan kesintisiz sürekli sinyaldir. 93 / 93 Busy Tone ( Meşgul Tonu ) Aradığımız numaranın meşgul olması durumunda duyduğumuz 480+620 Hz den oluşan ve 0.50 Sn. duyulan, 0.50 Sn. duyulmayan sesin kaynağıdır. Ringing Tone ( Karşı Telefon Çalıyor Tonu ) Aradığımız numaranın telefonu çalarken duyduğumuz 440+480 Hz den oluşan ve 2 Sn. duyulan, 4 Sn. duyulmayan sesin kaynağıdır. 94 / 94 Congestion Tone ( Hatta Yığılma / Aramayı Tekrarla Tonu ) Telefonu açtığımızda, numara çevirirken veya çevirdikten sonra duyduğumuz 480+620 Hz den oluşan ve 0.25 Sn. duyulan, 0.25 Sn. duyulmayan sesin kaynağıdır. ROH ( Karşı Telefon Açık ) 1400 + 2060 / 2450 + 2600 Hz den oluşan ve duyulamayan yüksek frekanslı karşı telefon açıldı bilgisidir. Diğer Tonlar 2004 Türkiye’sinde, gelişmiş en son teknolojiyi kullanan ve bizlere en iyi hizmetle birlikte diğer ülkelerle kıyasladığınızda en ucuz görüşmeyi sağlayan !!! telekom sistemimizin “Sayın Abonemiz” ile başlayan ve “aradığınız istikamete doğru tüm hatlarımız doludur. Lütfen daha sonra yeniden deneyin” gibi değişik mesajlar ile devam edebilen ses mesajlarıdır. Telefon hattının durumunu tespit ederken bu ses mesajları yukarıdaki anlatılan hiçbir duruma uymadığından dikkat edilmelidir. Ayrıca zaman zaman özellikle bozuk havalarda telefon hatlarındaki parazitlenmelerede dikkat edilmelidir. Not : Yazılımla telefon hattının durumunu tespit ettiğinizde, Karşı Telefon Çalıyor tespitinden önceki her uyumsuz format, işlemin başarısız, sonraki her uyumsuz format Karşı Telefon Açık manasına geldiğini düşünmeli ve buna göre hareket etmelisiniz. ( Tabi sizin arama hatanız nedeni ile çok yerinde kullanılan “yanlış veya eksik bir numara çevirdiniz”, “Olmayan Abone” ve benzeri ses mesajlarını gözardı etmemek gerekir.) 95 / 95 Karşı Telefon Açık noktasından sonra karşı noktadan mesajın dinlendiği onayı olmak üzere “Lütfen mesajı dinlemek için 1 nolu tuşa basın” gibi bir DTMF tonu göndermesini isterseniz ve tonun gelmesi için bir süre takibi yaparsanız, bir telefonla konuşurken diğer telefon çaldığında ahizeyi kaldırıp alo bile demeden 3-5 dakika bekletmeyi iyi bir şey sanan insanlara denk geldiğinizde cihazınız kötülenmez ve işini yapmaya devam eder. Ayrıca güzel Ülkemin güzel insanları arasında özellikle Kamuya ait işyerlerinde halen çevirmeli yani darbeli arama yapan, yukarıda hiçbir bilgi verilmeden geçilen telefonlar sapasağlam kullanılmakta. Bu aletler DTMF tonu üretemez. Aradığınız hattın diğer ucunda böyle bir alet bağlı ise hele birde anlama özürlü bir vatandaşımız ahizeyi eline alırsa kelimenin tam manasıyla yandınız demektir. Artık aramayı yapan cihazınız DTMF tonu yerine “yok hemşerim burda mesaj bey ney yok” cümlesini dinler durur. Cihazınız işlem başarısızlığı nedeniyle birkaç defa üst üste aradığında ise büyük ihtimalle arayan bir adam sanılarak küfürlenmeye başlayacaktır. Bana göre bu duruma dünyanın bütün bilim adamları bir araya gelse çözüm bulamaz. 96 / 96 Call Progress Şemaları CM8888PI Entegresinde Call Progress Özelliğini kullanmak için aşağıdaki ek devreyi kullanabilirsiniz. Bu devre, karşılaştırıcı ve IRQ çıkışı sayesinde otokontrol doğrulama sağlamak içindir. Mikrokontrolünüzün 8888 int kontrol portunu pull-down kullanmalısınız. CM8888 initialize edildikten sonra IRQ çıkışını lojik “1” de tutar. IRQ çıkışının lojik “1” olması D29 üzerinden akım akmasına, dolayısıyla pull-down kontrol portunuzda lojik “1” görmenize neden olur. Fakat CM8888 i CP moduna aldığınızda IRQ çıkışı lojik “0” olur ve D29 üzerinden akım geçmediği için kontrol portunuzda lojik “0” ı görürsünüz. IRQ çıkışı sinyal tespit edemezse lojik “0” da kalır. Sinyal tespit ettiğinde ise yukarıda bahsedilen sürelerde kare dalga çıkış üretir. CM8888PI entegresinin IRQ çıkışının low kalmaması için her işlem komutundan sonra initialize edilmelidir. CM8888PI kullanmadan da Call Progress testi yapabilirsiniz. Aşağıdaki basit karşılaştırıcı devre 8888 in IRQ çıkışı gibi çalışır. 97 / 97 Telefon Casusu Yapalım mı ? Bu kadar bilgiden sonra bir uygulama yapmadan geçmeyelim dedim. Bu tip cihaz üreten ve/veya ithal edip 150 USD gibi fiyatlara satan firmalar kızacaklardır ama olsun. Sonuçta yazılım vermiyoruz. Herkes programını kendi yazsın. Yapacağımız bu cihazla ilgili detayları verelim. Bu tasarım çok düşük miktarda güç tükettiği halde, yukarıda teknik bilgilerde bahsedilen telefon hattı üzerinden maksimum çekilebilecek DC akım (14.5 volt için max 42 mA) bu uygulama için yeterli gelmemektedir. Zaten hattı açmadığımız için bu kadarını da çekemeyecektik. Yaptığı iş : Hattı açmadan “çaktırmadan” telefon görüşme kaydı Kayıt Süresi : Kullanılan ISD Tipine Göre 8 –16 dakika arası Besleme : 3 Volt 2x1.5V AA pil Ses/DTMF/Data : Sadece ses bazında alım Giriş Çıkış : 2 adet RJ45 telefon jack, 2 li kalem pil yatağı Kontrol Birimi : İki adet buton Gösterge Birimi : Bir adet led Devrenin ve Programın Çalışma Senaryosu (Akış Diyagramının Yazılı Görüntüsü) Devreyi yaptık programı yazdık pilleri fişi taktık ve devre program sayesinde çalışmaya başladı. Her şey sıfır kilometre. 1. Kontrolcü amcamız sırt üstü yatar. Siz buna SLEEP de diyebilirsiniz. (Malum pil kullanıyoruz) Ara sıra kalkar Loop Kontrol e bakar. Telefon açıksa 2. maddeye zıplar Telefonun hala kapalı olduğunu görünce iki kontrol butonuna bakar onlarda da hareket yoksa başa döner ve tekrar yatar. Kontrol butonlarında hareket varsa 5. maddeye zıplar. 2. Loop Kontrol telefon açıldı dediğinde ISD arkadaşına kalk (POWERUP) ve şu adresten (SETREC) kayda başla (REC) der. Kayıt adresini kontrolcü amcamız tutmaktadır. 98 / 98 3. Artık iş zamanıdır. Bir Loop Kontrole bakar, bir ISD kesmesine öyle ya Telefonu açan kişi belki telefonu kapattı, belkide çok konuştu ISD nin 16 dakikalık hafızası doldu. 4. Her ikiside sessiz sedasız duruyorsa 3 e geri döner. Eğer hareket varsa iki ihtimale bakar ; • Loop Kontrol telefon kapandı dediyse ISD arkadaşına kaydı durdur (STOP) der ve yeni kayıt adresini öğrendikten sonra yat (POWERDOWN) der. Bu arada eski adresi muhafaza ederek işleme yeni adresle devam etmek için kendini ayarlar ve mesaj sayısını 1 artırır. Artık Yatma zamanıdır yani 1. maddeye geri döner. • ISD arkadaşı tüm gücünü tükettiyse yani 16 dakikalık kayıt süresi dolduysa bunu kontrolcü amcamıza OVF kesmesi ile bildirir. Kontrolcü amcamız bu duruma elbette üzülür ama ISD arkadaşına Artık dur (STOP) ve yat (POWERDOWN) demekten başka yapacağı bir şey yoktur. Bu üzüntüyle Loop Kontrolünü yapmamak üzere 1. maddeye geri döner. 5. Yine iş zamanıdır. Artık patronu yanındadır. Patronunun ne istediğine bakar. • Mesajları dinlemek istiyordur (Dinle Butonu) 1. Mesaj Yoktur. Bu durumu patronuna söylemesi gerekmektedir. Bu nedenle gösterge ledini kullanarak 5 kez göz kırpar ve taa en başa 1. maddeye döner. 2. Mesaj Vardır. ISD arkadaşına Kalk (POWERUP) ve şu adresteki (SETPLAY) mesajı söyle (PLAY) diyerek ilk mesajı patronuna dinletir. Bu arada patronunu bu mesajı başa alıp almak istemediğini öğrenmek için dinle butonunu gözlemektedir. (Tekrar komutu gelirse ISD arkadaşına söylenmeyi bırak (STOP) der ve bu maddeye yeniden başlar) Tabi ayrıca ISD arkadaşı 99 / 99 mesaj sonu (EOM) veya tüm hafızamı dinlettim (OVF) kesmesi gönderiyor mu ona da bakar. • ISD arkadaşı EOM gönderdiyse toplam mesaj sayısı ile patronuna dinlettiği mesaj sayısına bakar. Tüm mesajları dinlettiyse ISD arkadaşına önce artık yeter (STOP) der, arkasından gönlünü almak için hadi yat (POWERDOWN) der. Kendide patronuna durumu anlatmak için 5 saniye boyunca gösterge ledini yakarak haber verir ve taa en başa 1. maddeye döner. Mesajların hepsi daha dinletilmediyse Patronuna bunuda haber vermesi gerekir. Yine gösterge ledini kullanarak 1 kez göz kırpar, adreslerini,sayaçlarını ayarlar ve hemen üstteki 2. maddeye geri dönüp bir sonraki mesajı dinletir. • ISD arkadaşı OVF gönderdiyse zaten artık yapabileceği tek şey durumu patronuna izah etmektir. Öyle ya görüşmelerin tümünü kaydedemeyerek büyük bir suç işlemişlerdir. Önce ISD arkadaşını istirahate yollar. Ardından yine gösterge ledini kullanarak 10 saniye boyunca ağlayarak durumu haber verir ve taa en başa 1. maddeye geri döner. • Mesajları silmek istiyordur. (Sil Butonu ) Bu önemli kararda patronunun kararlılığını öğrenmesi gerekmektedir. Bu nedenle Gösterge ledini kullanarak hızlı hızlı 10 kez uyarır ve her iki butona tekrar bakar. Patron gerçekten karalıysa bu aşamada iki butona birden basıyordur. 1. Patron vazgeçmiştir. Artık hiçbir şey yapmadan taa en başa 1. maddeye dönebilir. 2. Patron kararlıdır ve iki butona birden basıyordur. Kontrolcü amcamız uyarmıştır ama patron patrondur. “Önemli bir şey olsa her halde silmezdi” diye düşünerek ve önemli bir 100 / 100 şey kaydedememiş olmanın üzüntüsü içerisinde gösterge ledini kullanarak 10 saniye boyunca ağlar ve adresleri, mesaj sayısını sıfırlayarak taa en başa 1. maddeye döner. Hikayemiz bitti. Bu senaryoya göre programınızı yazabilirsiniz. İsterseniz senaryonuzu da programınızı da siz yazın. Backlight özelliği olan 2x16 LCD ekleyin hatta bir buzzer. Casusunuzu deşifre edin öldürsünler. Şema ile ilgili birkaç not düşelim ; ISD4000 serisi 3 volt besleme ile çalışır. Eğer mikrokontrolünüzü 5 volt kullanıyor iseniz MISO hariç tüm iletişim portlarını ( SS, SCLK, MOSI, INT ) 5 voltta kullanabilirsiniz. Ancak MISO pini P kanal olduğundan 5 voltta kullanamazsınız. Bu pin ISD 4000 serisinin data çıkış pinidir. (Master In Slave Out) Yani bu pinden sadece data alırsınız. 5 volt kullanıyor olmanız durumunda, bu pinin çıkışında bir transistör ile terslenmiş veya iki transistör kullanarak terslenmemiş data alacak şekilde harici bir devre ilavesi gerekir. Bu data yazılımınızla alınacağı için terslenme veya terslenmeme bir şey değiştirmediğinden tek transistörlü inverter devreyi kullanmanız hem maliyeti hem ebadı küçük tutar. Fakat donanımsal SPI port ihtiva eden mikrokontrol kullanmanız durumunda donanım tarafından alınan data terslenmiş gelecektir. Yinede yazılım sizin elinizde olduğu müddetçe bu da bir şey değiştirmez. 101 / 101 U1, C3, C4, TR1 ve hat giriş çıkışında kullanılan telefon jackları eski modemler üzerinden alabileceğiniz parçalar. Hemen hemen tüm modemler üzerinde bu değerlerde veya küçük farklılıklarla aynı parçalar bulunur. Ancak modemde H11AA814 (üzerinde sadece 814 yazabilir) kullanılmamış olabilir. Bunun yerine H11AA817 (bununda üzerinde sadece 817 yazabilir) kullanılmıştır. H11AA817 de anot katot arasında terslenmiş diyot olmadığından şemaya bu diyotu dışarıdan ilave etmelisiniz. İçerdiği bu diyot nedeniyle H11AA814 de 1. ve 2. pin isimsizdir. Anot ve Katot diye adlandırılmamıştır. H11AA814 ü bağlarken dikkat edeceğiniz yer nokta ile işaretlenmiş 1. pinin telefon hattı tarafına gelmesi ve noktanın çapraz karşısına gelen 3. nolu pinin emitör (şemada R7 ile pull-down) olduğudur. 102 / 102 R5 direnci ile R6 direnci ISD ye yapılacak sesin seviyesini ayarlar. Kayıt şemada görüldüğü üzere tek kanal üzerinden yapıldığı için analog giriş seviyesinin tepeden tepeye 32 mv u aşmaması gerekir. (Trafo çıkışında op-amp kullanılmadığı için tam olarak ayarlanamasa da) Şemadaki değerler ile, ses kayıt ve kaydedilen sesin çıkış seviyelerini osilakop ile kontrol ettiğinizde, kaydettiğiniz seviyeyi çıkışta aynen alırsınız. Bu şu anlama gelebilir; Diyelim ki telefon bir yer aranmak üzere açıldı. Devremiz, çevir sesi dahil olmak üzere DTMF tonları, karşı taraf çalıyor tonu ve konuşmaları kısacası telefon kapanıncaya veya ISD kayıt süresi doluncaya kadar herşeyi kaydedecektir. Siz bu kaydı dinlemenin dışında, kaydedilen DTMF tonlarını ek DTMF kod çözücü devre ile aranan numarayı rakamsal hale çevirebilir ve/veya dinleme esnasında hopörlörü veya kulaklığı normal telefonunuzun mikrofon kısmına tutarak kayıtlı numaranın tekrar aranmasını sağlayabilirsiniz. R5 direncinin değeri düşürülerek veya R6 direncinin değeri artırılarak ses giriş seviyesi, dolayısıyla kayıtlı sesin çıkış seviyesi artırılabilir. Ancak tonlarda olacak sapmalar nedeni ile yukarıda anlatılanlar yapılamayacaktır. 103 / 103 104 / 104 Kaydettiğimiz sesi nasıl dinleyeceğiz derseniz işte oda burada ; 8 ohm hopörler veya kulaklık kullanmıyorsanız, kullandığınız hoporlörün empedansına göre R14 değerini değiştirebilirsiniz. RV1 ile ses seviyesini ayarlayabilirsiniz. Başka bir şekilde sesi dinlemek isterseniz ISD nin 13 numaralı AUDIO OUT pinine + kutbu gelecek şekilde 1 uf değerinde bir kondansötör kullanın ve ses çıkışını bu kondansötörün – kutbundan alın. 105 / 105 Caller ID ( Arayan Numarayı Görme ) Genel Bilgiler Mark (Lojik 1) 1.3 kHz, (+/- %1,5) Space (Lojik 0) 2.1 kHz (+/- %1,5) Data Formatı Seri ve ilk giden bit en sağdaki LSB biti Modülasyon Tipi Eşevreli analog FSK Bu bilgiler bizim Caller ID bilgilerimizin ITU-T V.23 standardına uyduğunu göstermektedir. A - ) Birinci Zil. 350 ms ile 2000 ms arasında olabilir. Genlik 40 Vrms ile 105 Vrms arası, Frekansı 25 ve/veya 50 Hz. B - ) Caller ID bilgisi öncesi suskun süre 500 ms – 2 Sn. C - ) 1200 Baud/Sn .hızında (+/- %1) SDMF (Tek Mesaj) veya MDMF (Çoklu Mesaj) içeren Analog FSK Bilgi Paketi. 106 / 106 Kanal Yakalama Sinyali (CS) 250 ms (+/- %20) b”01010101” x 30 byte. Mark 150 ms (+/- %20) Sürekli lojik “1” Her byte Start biti 0 + 8 data biti + Stop Biti 1 şeklinde alınır. Ancak ilk byte tan sonraki stop biti iki defa yollanır. D - ) FSK bilgisini takip eden 200 ms den büyük suskun süre. E - ) İkinci zil. Aşağıdaki tablolar sanırım anlatımları daha anlaşılır hale getirecektir. 107 / 107 Açıklama Tabloları 108 / 108 109 / 109 110 / 110 Ek Açıklamalar Mesaj Tipi her zaman için Tekli Mesaj Formatı (SDMF) için 4, Çoklu Mesaj Formatı (MDMF) için 128 (dec) dir. (CLI) Mesaj tipi için yukarıdaki iki değer dışında (CLI olmama nedeni) 79 (dec) Caller Id datası olmadığı ve 80 (dec) CLIR gerekli mesajı gelebilir. Data sayısı Mesaj tipini, kendini ve açıklama ve kontrol byte larını içermez. Assembly kullanılarak işlem yapılıyorsa, ascii kod olarak data bölümünde gelen ay, gün, saat, dakika ve telefon numarasının sol dört biti sıfırlanarak register değeri düzeltilmelidir. (Data = 4 ise, ascii kodu = 52 Binary Karşılığı = ’00110100’) Kontrolün yapılabilmesi için gelen her byte üst üste toplanmalıdır. 111 / 111 Örnek vermek gerekirse ; Tarih : 21.07.04 Saat : 17.43 Arayan Numara : 0 (3 1 2) 4 5 6 7 8 9 0 ( Rastgele bir numaradır ) Byte Açıklama Değeri(Dec) Toplam (Dec) Mod 256 Mesaj tipi tekli mesaj 04 04 18 22 Data Sayısı Ay High 0 48 70 Ay Low 7 55 125 Gün High 2 50 175 Gün Low 1 49 224 Saat High 1 49 17 Saat Low 7 55 72 Dakika High 4 52 124 Dakika Low 3 51 175 No 1 3 51 226 No 2 1 49 19 No 3 2 50 69 No 4 4 52 121 No 5 5 53 174 No 6 6 54 228 No 7 7 55 27 No 8 8 55 82 No 9 9 57 139 No 10 0 48 187 Kontrol -256 -256 -256 69 Kontrol Alım Toplamı + Kontrol Byte = 0 olması gerekir. Bizim örneğimize göre ; 187 + 69 – 256 = 0 0 Sonucunu alamadıysak alınan data hatalıdır. 112 / 112 Bilgisayarınızda Caller ID Özelliği Çoğu yeni modem bu özelliği desteklemektedir. Modeminizin bunu desteklediğini anlamanın yolu aşağıdaki komutları test etmektir. Her hangi bir terminal programı veya kendi yazılımınızla, ayarlarınızı yaptıktan sonra modeminize ATZ komutu yollayın eğer “OK” değeri döndüyse ayarlarınız doğrudur. Eğer yanıt alamadıysanız, modeminiz harici ise bağlı ve açık olduğundan, harici veya dahili (PCI) ise port numarasını, hızı, polariteyi iletişim tipini yani ayarlarınızı kontrol edip düzelterek aynı komutu “OK” cevabı gelinceye kadar deneyin. Modeminizle irtibat kurduktan sonra, desteklediği standarda göre aşağıdaki test komutlarından birini “OK” ile yanıtlayacaktır. Hiçbir komuta “OK” yanıtı vermezse, genelde “ERROR” veya “ERR” cevabı gelir, modeminizde Caller ID özelliği yok demektir. Eğer Caller ID özelliğine sahip bir modeminiz var ise internet üzerinde arama yaparak bu özelliği kullanan yazılımlar bulabilir ve arayan numarayı monitörünüzde görebilirsiniz. İsterseniz Caller ID programını kendinizde yazabilirsiniz. Modeminiz aşağıdaki komutlardan birine “OK” yanıtı verdiği andan itibaren Caller ID çözümlemesini yapmaya başlar. Caller ID Test Komutları ; 1. AT#CID=1 2. AT%CCID=1 3. AT+VCID=1 4. AT#CC1 5. AT*ID1 113 / 113 Bebek Odası İçin Güzel Bir Cihaz Cihazın altı özelliği var. Saat, alarm, alarmlı geri sayım, oda ısısını ölçmek ve harici ısıtıcı ile odayı istenen sıcaklıkta tutmak, elektrik kesildiğinde eğer oda karanlık ise devreye giren ışıldak ve bulunduğu odadaki sesi hassas mikrofonu ile dinletmek. Bu devreyi geçen yazdan itibaren kullanmaya başladım. Hiçbir problemi yok. Güç transistörlerini soğutucuya bağlamayı unutmayın. Power Katı Dikkat !!! AC220 Volt Hayati tehlike oluşturacak boyuttadır. Öncelikle 220 volt giriş ve 15 volt çıkış veren (2x7.5 ta olabilir) trafoyu, köprü diyotu ve C1 i bağlayalım ve voltmetremiz ile + voltajı ölçelim. DC 17-18 volt arası bir değer okumalısınız. LM317 yi, (TO220) (LM350 de olabilir) R2,R3,R4 ve RV1 i bağlayalım. RV1 çıkış voltajını ve R4 çıkış akımını ayarlar. Ben R4 ü akü sürekli şarjda kalacağı ve fazla elektrik kesintisi olmadığı için 0.5 ohm 1 Watt kullandım. RV1 i, +Ve noktasında 13.8 - 14.7 volt aralığında bir değer okuyacak şekilde ayarlayın. En uygunu 14.3 volttur. 114 / 114 Şarj hattı üzerindeki sigortayı, LM7805 i (TO220) (LM340-05 de olabilir) ve C2’yide bağlayıp 5 voltunuzu kontrol edin. Şebeke takibi yapacak C3,R1,Q1,D2,R5,R6 ve aküyü bağlayın. Şimdi +Ve noktasında akü voltajını ve +5 noktasında 5 voltu görmeniz gerekir. Şebeke ledi ise yanmamaktadır. AC girişi açın şebeke ledimiz yandıysa buraya kadar her şey doğrudur. Şebeke çıkışımız Mikrokontrolün AC 220 kontrolünü yaptığı nokta olacak. Harici ısıtıcımızı açıp kapatacak olan rölemiz 12 volt bu nedenle beslemesini +Ve noktasından alacak. Eğer elektrik kesintisi uzun süreli ve sık olan bir yerde yaşıyor iseniz, röle beslemesini C3 ile R1 in bağlantı noktasından, 1N4007 ve 220 ohm ½ Watt direnci seri kullanarak alın ve C3 değerini büyütün. C3 değerini büyütmek cihazın elektrik kesintisini geç algılamasına neden olacaktır. Bu dizaynı yaptığınızda röleniz elektrik kesildiğinde bırakacak ve boşu boşuna akü beslemesi kullanmadığı için akü besleme süresi uzayacaktır. Röleyi, bağlayacağınız ısıtıcının çekeceği akımı kaldıracak büyüklükte seçin. Benim bağladığım ısıtıcı 3x600 Watt = 1800 Watt gücünde toplamda 8.18 amper çekiyor. Ben 10 amper kontak akımına sahip çift kontak röle kullandım. Her iki AC hat (faz ve nötr) röleden geçiyor. Siz şemadaki gibi tek kontak kullanırsanız AC hattın Faz olanını röleden geçirin. (kontrol kaleminde ışık yanan hat) Böylece röle devre dışı iken, ısıtıcı çıkış prizinde Faz hattı (yani çarpan hat) bulunmaz. (Fişi prize takış yönünüz Faz ve Nötr uçlarını belirler) Isıtıcı çıkışı için ben sıva üstü (kutu içerisinde olduğu için) topraklı priz, AC besleme için 3 hatlı kablo kullandım. Bu kablonunda Isıtıcınızın çekeceği akımı kaldırması gerekir ve muhakkak topraklı olması gerekir aksi halde ısıtıcınızın dış yüzeyinde elektrik görülebilir. Röle devresini kurduktan sonra SS noktasına +5 vererek rölenin çalışmasını kontrol ediniz. Geriye kalan R9,R10 ve RV2, mikrokontrolün ADC ile akü voltajını kontrol edeceği nokta için. Tüm devre bittikten sonra, voltmetreden okuduğunuz akü voltajı ile cihazın görüntülediği voltajın arasında fark olmaması için kalibrasyonu RV2 ile yapacaksınız. Bu özellik akünün minumum voltaj seviyesine düşmesi durumunda çekilen akımı düşürmek için kullanılmıştır. Bu şemadan kontrol şemasına IS, Şebeke ve ADC1 noktaları bağlanılacak. 115 / 115 Power Katı Şeması 116 / 116 Ek Birimler Kontrol katından gelen AYD çıkışı, 555 entegresi +Ve ile kullanıldığından +5 volttan izole etmek için iki transistör yardımı ile 555’i resette tutar veya devreye sokar. 555 +5 voltta kullanıldığında, +Ve den izalosyon işlemini 555 in 3 numaralı Q pini çıkışındada yapabilirsiniz. 555 katı Floresanı yakmak için kullandığımız devreyi oluşturur. Kullanılan floresan ışıldaklardaki 4 Wattlık olanlardan. Trafoyu ise 0-12 Volt veya 2x6 volt kullanmalısınız. Trafoyu bağlarken dikkat edeceğiniz nokta Q4 çıkış tarafının normalde 12 volt aldığımız taraf olması. Ben Q4 olarak elimde mevcut olan 1.5 amperlik BD139 u kullandım. BD175, BD241, BD243, BD433, TIP31 ve benzerlerini kullanabilirsiniz. Bu izolasyon ve 555 devresini kurduğunuzda, devreye güç vermeden RV5 potunu 1K2 değerine ayarlayın floresanı bağlamayın. AYD girişini +5 volta bağlayın ve ölçü aletiniz en yüksek ölçüm yapabileceği AC bölümünde iken trafonun AC çıkış voltajını okuyun. 220-250 Volt arası bir değer görene dek RV5 i ayarlayın. Bu değeri okuduğunuzda RV5’i sabitleyin. İsterseniz RV5 in bağlantılarını ayırıp o anki değeri + R17 toplamını tutan tek bir direnç kullanabilirsiniz. Önemli Not : Kullandığınız trafonun sarımları nedeniyle çıkış voltajı ummadığınız kadar değişebilir. Bu durumda C5, R16, R17 ve RV5 değerlerini yeniden tasarlamanız gerekecektir. Tablodaki değerler benim kullandığım trafo için geçerlidir. Yine kullandığınız trafo sarımları nedeniyle trafonun çıkışında çok yüksek değerler alabilirsiniz. Bu voltajlar amper içermese bile ölçü aletinizi kullanılamaz duruma getirebilir. Eğer böyle bir özelliğe ihtiyacınız yok ise Kontrol katınında AYD çıkışını boş bırakıp bu devreleri cihaza dahil etmeyebilirsiniz. 117 / 117 Bu şemada ADC3 çıkışı ise, elektrik kesildiğinde yani şebeke kontrol noktası lojik “1” olduğunda floresan yakılmadan önce hava aydınlık durumunu tespiti içindir. Cihaz tamamen bittiğinde, floresan devresini yaptıysanız, oda floresanın yanacağı kadar karanlık olduğunda, cihazın AC bağlantısını kesip RV4 ile ayarı yapabilirsiniz. Şemadaki Buzzer bölümü kurulan alarmların uyarılmasını yapabilmek içindir. Gelelim şemadaki LM35 katına. LM35 her derece için çıkış voltajını 10 mV artıran bir özelliğe sahiptir. Toplamda +150 derece ile eğer eksi voltaj kullanılırsa –55 dereceye kadar sonuç verebilir. Tekli besleme kullanıldığında ise 0 ile +150 derece aralığını ölçümleyebilir. Kullandığımız mikrokontrol PIC16F877 ise 10 Bit ADC ye sahiptir. Yani 5 volt versiyonu, 5000mV/1024=4.88 mV minumum ölçüm yapabilir. Buda LM35 i direk kullandığımızda ½ derece hassasiyetle ölçüm yapabileceğimiz manasına gelir. Biz oda sıcaklığını derecenin 1/10 u hassasiyetle ölçmek istediğimizden LM35 çıkışında girişini 5 kat artırabilecek şekilde kullandığımız yükseltici devresi kullanıyoruz. Böylelikle LM35 derecenin 1/10 u için 1 mV çıkış voltajını artırdığında yükseltici devremiz bunu 5 mV olarak mikrokontrole iletiyor. Bunun tabi bir riskide var. Oda sıcaklığınız 100 dereceyi geçerse yükseltici çıkışındaki voltaj 5 voltu geçer. Buda mikrokontrolünüzün hoşuna gitmez. Gerçi siz 100 derece sıcakta kaldıktan sonra bu durumda umurunuzda olmaz. Bu katın kalibrasyonunu RV3 ile yapıyoruz. Bunu için iki yol mevcut. RV3, ya diğer bir ısı ölçer sonucu ile cihazın görüntülediği sonuç aynı olana dek ayarlanır yada LM35 çıkışındaki voltajın tam 5 katını yükseltici çıkışında görene dek ayarlanır. İkinci yol daha az zaman alır ve daha net sonuç verir. LM35 i baskı devreniz veya plaketiniz üzerinde kullanmamanız gerekir. Çünkü devre üzerinde ısı oda sıcaklığına göre oldukça fazladır. Zaten bu cihazı yapacaksanız bunu bir kutu içerisinde muhafaza etmeniz gerekecektir. LM35 i plastik kısmı kutunun dışına gelecek şekilde yerleştirir ve kutunun içinde kalan bacak kısmını bant ile kapatırsanız en doğru sonucu alırsınız. Bu şemadan kontrol şemasına AYD, Buzzer, ADC2 ve ADC3 Noktaları bağlanılacak. 118 / 118 Ek Birimler Şeması 119 / 119 Butonlar ve Gösterge Ledleri Cihaz üzerinde 5 adet buton ve 7 adet gösterge ledi var. Ledlerin biri power katında şebeke göstergesi, biri yine power katında ısıtıcı devrede göstergesi olarak kullanılıyor. Tabi siz hepsini gösterge panelinde bir araya toplayacaksınız. Kullanımları, ne işe yaradıkları son bölümde anlatılıyor. Nasıl bağlandıkları bu şemada ; Bu şemadan kontrol şemasına 5 buton kontrolü ve 5 led kontrolü noktaları olmak üzere toplam 10 bağlantı yapılacak. Butonlar ve Gösterge Ledleri Şeması 120 / 120 Gösterge Paneli Bu şemadada gösterge displaylerimiz var. Ben gösterge paneli olarak boş portların fazla olmasından, yanlış hatırlamıyorsam 94 yılında yaptığım (tabi mikrokontrolsüz) ev alarmımdan kalan sondan bir önceki birim 4543 lerden ve tekli displaylerden oluşan aşağıdaki devreyi kullandım. Tabi programda ona göre. Şimdi hatırladım da 4 haneli bir şifreyi tutmak ve karşılaştırmak için ne kadar uğraşmıştım. Kocaman bir alet olmuştu. Acaba kaç tane parça vardı. Gösterge panelinden sonra kalan bu son devreyi şimdi elime aldım. Üzerinde 8 tane 74LS194 var. Herhalde bu sekiz 74LS194 ten dördü tutulan şifre için, kalan dördüde kullanıcın girdiği karşılaştırılacak şifre içindi. 4 tanede CD4585 var herhalde bunlarda karşılaştırma işlemini yapıyordu veya ne yapıyorlardı ise. Tabi bir sürüde boş yer var, parçaları kullanmışım. Sahi o zamanlar 7805, LM350 falan varmıydı, aküyü nasıl şarj ediyordum ? İnanın hatırlayamıyorum. Neyse boşverin. Bu şemadan kontrol şemasına 4 adet 4543 ü süren toplam 16 bağlantı yapılacak. 121 / 121 Gösterge Paneli Şeması 122 / 122 Kontrol Katı PIC16F877 için kullandığımız kristal 32.768 kHz. Konsansötörler ise 82 pf. 68100 pf arası kullanabilirsiniz. Yerleştirmeyi yaparken, kristal bacakları ile beraber 877 nin OSC bacaklarını Guard Ring denilen (GND ile etrafını kuşatma) olayını yapar ve pasta kalıntılarını temizler iseniz saat sayma işleminde kaymalar olmaz. Benim cihazın saati bir yıldır çalışıyor sadece 7 dakika geri kaldı. MCLR üzerinde bir reset butonu var. İsterseniz B1, C9, R57 ve D9 u kullanmadan MCLR ucunu +5 volta bağlayabilirsiniz. Sadece reset imkanınız olmaz. PIC16F877 yi programlarken LP kristal, WDT Off ve Power On Reset devrede şeklinde seçim yapmalısınız. PIC16F877 ye yüklenecek program bu adreste ; http://tirbulans.tripod.com/bebek.zip 123 / 123 Kontrol Katı Şeması 124 / 124 Ek Ses Dinleme Birimi Bas,Tiz ve Değişim kontrollü çok hassas bir mikrofon katı. O kadar hassas ki yandaki, alttaki, üstteki komşularınızın konuşmalarını bile dinleyebilirsiniz. Ben oğlumun uyurken döndüğünde yatağının, yorganının çıkarttığı sürtünme sesini bile duyabiliyorum. RV6 Mikrofon hassasiyetini, RV7 Bası, RV9 Tizi, ve RV8 değişimi ayarlamak için kullanılıyor. Bu üç potu linear kullanın diyor katalogda. SS çıkışına iyi bir amfi bağlarsanız sonuç çok daha mükemmel olur. Ben bir arkadaşımın getirdiği USA malı 110 dB lik bir siren amfisi kullanıyorum. Ancak sıradan bir LM386 lı, TBA820 li amfide iş görür. Yada televizyonunuzda, müzik setinizde AUX veya AUDIO girişi var ise onlarıda kullanabilirsiniz. Bildiğim kadarıyla AUX veya AUDIO jacklarında, analog ses orta uç, GND dıştaki uç olur. Mikrofondaki aşırı hassasiyet nedeni ile amfinizin ses çıkışında rahatsız edici ötme sesi duyabilirsiniz. Hopörlör mikrofondan ne kadar uzak olursa mikrofon hassasiyetini o kadar artırabilirsiniz. Devreye güç vermeden önce amfinizi ve hopörlerinizi nereye istiyorsanız yerleştirin. RV6 değerini iyice azaltın ve devreye güç verin. Ötme sesini duyana dek RV6 değerini artırın. Ötmeyi duyduğunuz anda RV6 değerini çok az azaltarak ötmeyi durdurun. En iyi yeri buldunuz. Şimdi cihazın olduğu odaya radyo gibi bir ses kaynağı yerleştirerek diğer ayarları yapabilirsiniz. Hopörlör ve amfi iyice uzaktaysa aşırı hassas bir ayar yapmış olabilir ve komşularınızı falan duyuyor olabilirsiniz. Eğer durum böyle ise çok ayıp. RV6 değerini komşularınızı duyamayacak kadar azaltın. 125 / 125 Bu katın beslemesini +Ve den almalı ve harici bir açma/kapama butonu koymalısınız. Çünkü bu ilave devre kontrol katı tarafından kontrol edilmiyor. Ben açma/kapama butonunu bahsettiğim siren amfisi üzerine koydum. Yani SS ile beraber, +Ve ve GND mutfağa kadar geliyor. Eğer sizde böyle kullanır iseniz +Ve çıkışını küçük değerli bir sigorta veya 20 ohm gibi seri direnç üzerinden alırsanız, direk aküden beslenen +Ve kablodaki kısa devre gibi durumlarda kavrulma olayına sebep olmaz. Bu arada akü olarak ben 12 Volt 7 Amper kullandım. Kablo diyincede aklıma şu geldi; Bu olayı, önemli olanın mikrofon hassasiyeti olması nedeniyle AM ile FM ile kablosuz yapamazsınız. Sizde benim gibi bebeğin yakınında RF olmasını istemiyorsanız, Bebek Telsizi diye satılan ve bebeğin başucuna konulan şeylerden sanırım kullanmazsınız. 126 / 126 Ek Ses Dinleme Birimi Şeması 127 / 127 Ses Çıkışı İçin Örnek Devre Şeması Buda SS çıkışında kullanabileceğiniz örnek bir amfi şeması ; 128 / 128 Bu Cihaz Nasıl Çalışıyor ? Hangi led yanıyorsa o özellik devrede demektir. Hiçbir özellik devrede değilse gösterge panelinde sırasıyla saat, sıcaklık ve akü voltajı görüntülenir. Bütün özellikler devrede ise sırasıyla saat, istenen sıcaklık, saat alarmının kurulduğu saat, odanın o anki sıcaklığı, geri sayımda kalan süre ve akü voltajı görüntülenir. Devrede olmayan özelliğe ait görüntüleme bu sıralamadan çıkartılır. Ana menüde ; Buton 1 e basıldığında saat ayarı, Buton 2 ye basıldığında saat alarmı ayarı, ( gelen ilk zaman dilimine ) Buton 3 e basıldığında geri sayım saat alarm ayarı, (99 saat 59 dakikaya kadar) Buton 4 e basıldığında sıcaklık ayarı, (0-29 derece arası) Buton 5 e basıldığında otomatik aydınlatmanın yapılıp yapılmayacağı ayarlanıyor. Birden fazla butona bastığınızda ise ilk bastığınız buton neyse o işlem yapılır. Ayarlama esnasında hiçbir özelliğin kontrolü yapılmamaktadır. Saat Ayarı Özellik işlem ledi yanar. Displaylerde bir değişiklik olmaz. Şebeke ve Isıtıcı Devrede ledi hariç tüm ledler söner. Saat 17:43 ise Saat H = 1 Saat L = 7 Dakika H = 4 Dakika L = 3 tür. 129 / 129 Buton 1 Saat H Buton 2 Saat L Buton 3 Dakika H Buton 4 Dakika L alanlarını saat formatında yukarı doğru saydırır. Buton 5 ayarlamadan sonra ana menüye geri dönüş içindir. Ekrandaki değer yeni saat olarak kabul edilir saniye sıfırlanır ve ana menüye dönülür. Buton 5 e basılmaz ise, program 10 saniye sonra ekrandaki değeri yeni saat olarak kabul eder ve ana menüye döner. Ana menüye dönüldüğünde ilk olarak saat bilgisi görüntülenir. Görüntüleme zamanlaması ilk dakika atlamasından itibaren düzenlenir. Alarm Ayarı Özellik işlem ledi ile birlikte saat alarmı devrede ledi yanar diğer ledler söner. Göstergede kurulan alarm saati görüntülenir. Aynen saat ayarlanıyormuş gibi alarmın kaçta çalması isteniyorsa o saat girilir. Buton 5 e basıldığında özellik işlem ledi yanıp sönmeye başlar. En soldaki displayde “0” görüntülenir. Diğer displayler kararır. Bu andan itibaren Buton 1, saat alarm takibini devreye alıp çıkartacak şekilde çalışır. Saat alarmı bu aşamada zaten devredeyse saat alarmı devrede ledi yanık durumdadır, değilse sönüktür. Saat alarm takibi devreye alındığında, saat alarmı devrede ledi yanar, devreden çıkartıldığında ise söner. Buton 5 e basılarak ana menüye dönülür. Buton 5 e basılmaz ise, mantık devamlı aynıdır. 10 saniye ilgili butona / butonlara basılması beklenir, eğer 10 saniye içinde basılmaz ise gösterge neyi gösteriyorsa o değerler artık yeni değerlerdir. Saat alarmı kontrolü her dakika yapılır. 130 / 130 Geri Sayım Saat Ayarı Özellik işlem ledi ile birlikte geri sayım devrede ledi yanar diğer ledler söner. Göstergede kurulan geri sayım saati görüntülenir. Aynen saat ayarlanıyormuş gibi geri sayım süresi girilir. Ancak saat 99 a kadar artırılabilir. Buton 5 e basıldığında özellik işlem ledi yanıp sönmeye başlar. Soldan ikinci displayde “0” görüntülenir. Diğer displayler kararır. Bu andan itibaren Buton 1, geri sayım takibini devreye alıp çıkartacak şekilde çalışır. Geri sayım takibi bu aşamada zaten devredeyse geri sayım devrede ledi yanık durumdadır, değilse sönüktür. Geri sayım takibi devreye alındığında, geri sayım devrede ledi yanar, devreden çıkartıldığında ise söner. Buton 5 e basılarak ana menüye dönülür. Geri sayım süre dolum kontrolü her dakika yapılır. Isı Takibi Ayarı Özellik işlem ledi ile birlikte ısı takibi devrede ledi yanar diğer ledler söner. Göstergede sol iki hane kararır ve kurulan derece sağ iki hanede görüntülenir. Buton 3 ve Buton 4 ile istenen derece ayarlanır. Buton 5 e basıldığında özellik işlem ledi yanıp sönmeye başlar. Sağdan ikinci displayde “0” görüntülenir. Diğer displayler kararır. Bu andan itibaren Buton 1, ısı takibini devreye alıp çıkartacak şekilde çalışır. Isı takibi bu aşamada zaten devredeyse, ısı takibi devrede ledi yanık durumdadır, değilse sönüktür. Isı takibi devreye alındığında, ısı takibi devrede ledi yanar, devreden çıkartıldığında ise söner. 131 / 131 Buton 5 e basılarak ana menüye dönülür. Kontrol her dakika yapılır. Cihaz 23 dereceye ayarlanmış ise 22.9 derecelik ölçüm ısıtıcıyı açar. Derece 23.2 olduğunda ısıtıcı kapatılır. Yani oda sıcaklığı istenen sıcaklığın 1/ 10 u kadar altına düştüğünde ısıtıcı çalışmaya başlar, istenen sıcaklığın 1/5 i kadar üzerine çıktığında ısıtıcı kapatılır. Otomatik Aydınlatma Ayarı Özellik işlem ledi ile birlikte aydınlatma devrede ledi yanar diğer ledler söner. En sağdaki displayde “0” görüntülenir. Diğer displayler kararır. Buton 1, Aydınlatma takibini devreye alıp çıkartacak şekilde çalışır. Aydınlatma takibi bu aşamada zaten devredeyse aydınlatma devrede ledi yanık durumdadır, değilse sönüktür. Aydınlatma takibi devreye alındığında, aydınlatma devrede ledi yanar, devreden çıkartıldığında ise söner. Buton 5 e basılarak ana menüye dönülür. AC besleme kesilmesi her an, AC Beslemenin tekrar gelişi ve eğer floresan yanıyorsa aydınlık kontrolü her dakika yapılır. AC besleme kesildiğinde floresan yakılmadan aydınlık kontrolü yapılır. Alarmlar Nasıl Verilir, Nasıl Durdurulur. Hangi alarm devreye girmişse o özelliğin ledi yanıp sönmeye başlar ve buzzer kesintili olarak öter. Hangi özelliğe ait alarm veriliyor ise o özelliğin ayar butonuna basılarak alarm kapatılır. 132 / 132 Cihazın Resimleri 133 / 133 134 / 134 135 / 135 136 / 136 137 / 137