Gelişen mikrokontrol teknolojileri ve artan bilgi birikimi sayesinde geliştirici düzeyinde daha yaygın kullanımına olanak tanımıştır. Burada elimden geldiği kadar bazı örnekler sunmaya çalışacağım... Görüleceği gibi ilk örneklerimizde çoğunlukla ASM üzerinde iken daha sonraları C üzerinde örnekler yer almaktadır. Hatta ilerleyen zamanlarda Arduino örneklerinin yer alması kaçınılmaz olacaktır.

1 Ekim 2012 Pazartesi

USB arabirim üzerinden Attiny2313 ile PCM1602K-FS(W)-GBW/VD sürülmesi

Giriş
5V ile çalışan cihazların yaygın olduğu bir ortamda elbette ki 3.3V ile çalışmak bazı zorlukları vardır. Bu blog üzerinde yer alan uygulamalarda "Attiny2313 ile PCM1602K-FS(W)-GBW/VD karakter LCD ekranın RS232 arayüzü üzerinden sürülmesi" ve "3.3V FT232BL USB-Seri Dönüştürücü" uygulamalarının nasıl gerçekleştirileceği anlatıldı. Bu projede adı geçen iki porje birleştirilecektir. Bu şekilde 3.3V'da çalışan LCD USB üzerinden sürülmesi sağlanacaktır.

Bu projede "USB arabirim üzerinden Attiny2313 ile PCM1602K-FS(W)-GBW/VD sürülmesi" konusu işlenecektir.

LCD ve USB
Şekil-1:USB modül

USB bölümü ile ilgili olarak "3.3V FT232BL USB-Seri Dönüştürücü" projesinde ayrıntılı olarak anlatıldı. Tabii ki devrenin 3.3V için ayarlanmış olması gerektiği unutulmamalıdır. Bizi ilgilendiren bölüm seri port bacakları olduğundan dolayısı ile FTDI232 BL seri port bacaklarının 3.3V ile çalışacak şekilde ayarlıdır.
Şekil-2:İşlemci modül

Aynı şekilde "Attiny2313 ile PCM1602K-FS(W)-GBW/VD karakter LCD ekranın RS232 arayüzü üzerinden sürülmesi" 3.3V ile çalışabilen bir LCD konusu işlenmiştir. Bu noktada elbette ki devre üzerinden RS232 arabirimi konu dışı kalmaktadır. Devre üzerinde yer alan Attiny2313 3.3V ile çalışabildiğinden sorunsuz bir şekilde projeye dahil edilebilmektedir.

Konuyu toplarsak elimizde 3.3V ile çalışan USB devresi ve LCD sürme devresi olduğuna göre tek yapılması gerekn bunları birleştirmektir. RS232 devresi ile bağlantıyı sağlayan 10 yollu kabloyu GND bağlantısı dikkate alarak USB devresi üzerinde yer alan RS232 bağlantı noktasına takmak yeterlidir.
Şekil-3:PCM1602 modül

USB bağlantı kablosunu bilgisayara tak, ve devreye besleme ver. Geriye sadece bilgisayarın USB bağlantısı üzerinden devreye veri göndermek. Veri gönderme işi de bilgisayar üzerindeki programın.

Devre
USB üzerinde +5V, GND, D+ ve D- var. D+ ve D- uçları direnç üzerinden USB portuna bağlanmakta.

Devre üzerindeki 93C46, entegresi USB devresi üzerinde yapılan ayarlar ve özellikle USB aletin bilgisayar üzerindeki aygıt yönetisicinde görülecek olan adının, USB aletin id numarası gibi bilgilerin kaydedildiği kalıcı bellek alanıdır.

USB aletin çalışmasının izlenebildiği (özellikle seri port aktifliğinin izlenebildiği) iki alet led, alet için gereken saat frekansının üretilmesini sağlayan 6 MHZ kristal ve USB aletin gerilim ayarlarının yapılabildiği 3 adet köprüleme ile devrenin kalbini oluşturan FTDI232BL entegresinden oluşur.

İşlemci devresi işlemcisi olan Attiny2313 ile birlikte 3.3V için besleme bölümü ve işlemciye bağlı 3.3V ile çalışabilen PCM1602 LCD modülünden oluşur.

Proje 3 adet modülden oluşmaktadır. LCD modül PCM1602, işlemci modülü Attiny2313 üzerine kurulu, ve USB modülü FTDI232BL üzerine kuruludur.
Şekil-4:Besleme proje malzemeleri bir arada
Şema
Devre PCM1602K-FS(W)-GBW/VD LCD modülü sürmesi olduğu için projedeki devre bilgisayar ile USB üzerinden iletişim kurup, bilgisayardan gelen bilgilere göre PCM1602K-FS(W)-GBW/VD LCD modülü sürülmesidir.

Modülün kalbi zaten görüldüğü üzere FT232BL IC1. Tüm iletişim sistemini bu eleman kontrol ediyor. Bu tüm devreye bağlı olan R9 ve R10 seri USB akım sınırlama dirençleri. Burada R9 ucuna bağlı olan R8 direnci USB’nin tipini (USB2.0) belirleyen dirençtir. Buradaki R6 ve R7 devre harici besleme durumunda bilgisayarın kapatılması durumunda USB cihazın sıfırlanması ile ilgili bir görevi var. R1 ve R2 dirençleri D1 ve D2 LED’lerinin akım sınırlama dirençleridir. D1 ve D2 LED’leri seri port iletişim monitörü olarak çalışır. R3 ve R4 IC2 EEPROM’un veri aktarma uçlarının FT232BL entegresine bağlantısında kullanılır. Bu bağlantı şekli konusunda ayrıntılı bilgi için FT232BL veri kağıtlarını incelenmesi yerinde olabilir. C1,C2 ve XTL1 ise IC1 için saat frekans üretim sistemini oluşturuyor. USB-A USB bağlantı konektörü. (isteyen doğrudan USB kablosunu doğrudan lehimleyebilir.) P1 seri bağlantı için bağlantı portudur. P2 ve P3 ise besleme bağlantısı için seçim konektörleridir. P4 ise 5V ve 3.3V arasında seçme içindir Her üçüde takılacak köprü yardımıyla kullanılabilir. Geri kalan kondansatörler ise filtre için kullanılıyor

Modülün kalbini IC4 Attiny2313 işlemcisi oluşturuyor. Bu işlemci için gereken saat sinyallerini XT2,C11,C12 oluşturuyor. D1,C7,C8 ve IC3 sistem için gereken besleme gerilimini (3.3V) üretir. R11,LED3(LED) işlemcinin durumunu gösteren monitör LED'i olarak çalışır. R12 direnci PCM1602K-FS(W)-GBW/VD modülün kontrast ayarı için kullanılan ayar direncidir.

Geri kalan kondansatörler zaten filtre için kullanılıyor. P6 LCD için bağlantı konnektörü, ISP işlemci için programlama konnektörü,P5 USB bağlantı konnektörüdür (P1-P5)

Şekil-5:Blok şeması
Şekil-6:Devrenin şeması

Devre Yapımı
Dikkatlice FT232BL yerine doğru olarak bacakları PCB üzerindeki yollara hizalanmış olarak sabitlenir ve sonra iki bacağı sabitlenerek diğer bacakları dikkatlice lehimlenir.Geri kalan elemanların takılmasında bir şey yok. Burada söyle IC2 için bir entegre soketi kullanılması olası durumlarda bu tüm devre üzerindeki hataları ortadan kaldırmak için gerekebilir. Sadece lehimlerken soğuk lehim yapılmaması veya kısa devreye yol açabilecek durumlardan kaçınılması için dikkatli olmak yerinde olacaktır.
Tüm dirençler çeyrek wattır.


 Şekil-7:Devrenin baskı planı(eleman yüzü tarafından görünüm)

Şekil-8:Devrenin yerleşim şekli(IC1 kartın yollar tarafında lehimlenir-ters çevrilir,nokta sola bakar)

 Şekil-9:Devrenin yollarla birlikte yerleşim planı

Şekil-10:USB modül ile İşlemci modül arasındaki bağlantılar.

Devre Elemanları

27RR9,R10
220RR1,R2
470RR5
1kR11
1k5R8
2k2R4
4k7R6
10KR3,R7
10K yatık trimpotR12
27pFC1,C2,C11,C12
100nFC3,C4,C5,C6,C8,C12
10µF/16VC7,C9,C13
3mm Kırmızı LEDLED2,LED3
3mm Yeşil LEDLED1
FT232BLIC1
93C46IC2
LM1117-3.3IC3
Attiny2313IC4
B125C1500 veya benzeriD1
6Mhz kristalXTL1,XTL2
10 Header(2x5)P1,P5
14 Header (2x7) P6
2x3 HeaderISP
KlemensP7
USB-A konnektörUSB-A
3 bacak sıra pinP2,P3,P4
köprü3 köprü(jumper)

Malzeme listesi. Burada işlemci için entegre soketi verilmemiştir. Kaliteli 8 bacaklı entegre soketi oluşabilecek problemlerin önüne geçecektir.

Bilgisayar Programı
"Attiny2313 ile PCM1602K-FS(W)-GBW/VD karakter LCD ekranın RS232 arayüzü üzerinden sürülmesi" projesinde verilen bilgisayar programı aynen kullanılabilir. Çünkü USB modül sürücüleri yüklendiğinde sanal bir seri port oluşturmaktadır. Seri port olarak bu oluşturulan sanal seri port kullanılarak LCD ekrana veri gönderilmesi mümkündür.

Gerektiğinde blog üzerindeki USB-LCD ile ilgili diğer programlarda kullanılabilir. Doğrudan USB portu kullanan programlarda dahil.)

Ek olarak bu program ile C# programlama dilinde yazılmış olan (sanal seri portu kullanan ) LCD ekrana veri gönderen programda açık kodlari ile birlikte verilmiştir. Program arayüzü diğer verilmiş program arayüzleri ile aynıdır.

Şekil-11:C# ile yazılmış olan programın kullanıcı arayüzü.
Bu C# ile yazılmış olan ilk programım olduğunu belirterek olası hatalar için özür dilerim.



Ekler:
FT232BL için bilgi

Attiny2313 için bilgi

"USB arabirim üzerinden Attiny2313 ile PCM1602K-FS(W)-GBW/VD sürülmesi" için gereken dosyalar.

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



18 Eylül 2012 Salı

3.3V FT232BL USB-Seri Dönüştürücü


Giriş
Bu blogda yapılan USB ile ilgili projeler beslemesi 5V olan çalışmaktadır. Bu nedenle FTDI232BL projesi de 5V ile çalışacak şekilde düzenlendi. Ama oluşturulan her proje "Attiny2313 ile PCM1602K-FS(W)-GBW/VD karakter LCD ekranın RS232 arayüzü üzerinden sürülmesi" olduğu gibi 5V ile çalışmaz. Bu durumda FTDI232 ile çalışmak için farklı bir yaklaşım ele almak gerekecektir.

Bu projede 5V'da çalışan FTDI232 devresinden 3.3V ile çalışan bir devre arasında bağlantı için yol ve yöntemler incelenecektirir.
FTDI232BL
Geniş bir uygulama alanında kullanılabilecek şekilde tasarlanan ürün, özellikle bilgisayarın USB portu ile işlemciler UART arasında (bu blog sayfalarında kullanılan ATMEL serisi gibi) bir köprü hizmeti vermektedir. 5V ile çalışan bir çok sistemde rahatlıkla ihtiyacı karşılayabilir.

Günümüzde artık pek çok 8 bitlik işlemciler üzerinde USB modülü bulunmaktadır. Ama Üzerinde USB portu bulunmayan işlemciler için FTDI232BL ve benzerleri elemanlar proje için işlemcinin USB bağlantı ihtiyacını karşılamak için gerekli bir öğe olacaktır.

USB portu şu anki durumda 1.1 ve 2.0 sürümlerinde sadece 4 kablo üzerinden çevre birimlerin bağlanmasına olana tanıyan bir iletişim sistemidir.(3.0 sürümünün farklı bir bağlantı şekline ve kablo sayısına sahiptir.) Değişik şekillerde bulunan bağlantı kabloları basitçe +5V,D+,D- ve GND uçlarından oluşan bir bağlantı içerir. USB portuna bağlanan çevre birim çektiği akım 500mA geçmediği sürece bilgisayar üzerindeki USB portundan beslenebilir. Eğer 500mA geçerse bu durumda bilgisayara zarar vermemesi için harici besleme sistemleri gerekir.
Şekil-1:USB 5V çıkış ayarlanmış köprü bağlantısı
Şekil-2:TXD bacağının osilaskoptaki görünümü (2V/div ayarlı)

Her ne kadar FT232 5V ile beslense de, üzerinde 3.3V için bir çıkış ucu mevcuttur. Gerektiğinde düzenlemeler yapılarak sistem 3.3V ile çalıştırılabilir. Bunun için FT232 üzerindeki VCCIO bacağına uygulanan 3.0 ile 5.25V arasındaki besleme gerilimine göre çıkışlar üzerindeki gerilim değerleri kontrol edilebilmektedir. VCCIO bacağına uygulanan gerilim seviyesinden;
BacakSimgesiDurumu
10SLEED#çıkış
11RXLED#LED sürücü
12TXLED#LED sürücü
14PWRCTLgiriş
15PWREN#çıkış
16TXDENgiriş
18RI# giriş
19DCD#giriş
20DSR#giriş
21DTR#çıkış
22CTS#giriş
23RTS#çıkış
24RXDgiriş
25TXDçıkış
 
bacakları etkilenmektedir. Özellikle projelerimizde yoğun olarak kullandığımız çıkışlar olan RXD ve TXD bacakları RS232 için gerilim seviyesi değişir.
Şekil-3:USB 3.3Vçıkış ayarlanmış köprü bağlantısı
Şekil-4:TXD bacağının osilaskoptaki görünümü (2V/div ayarlı)

D+ ve D- uçları ise iletişim uçlarıdır. Her iki yöndeki iletişim bu hatlar kullanılarak yerine getirilir. Şimdi bu alet USB1.1 veya USB2.0 olduğunu nasıl anlar. Aslında bunu çip üzerindeki bir parça değil de, D+ veya D- uçlarına bağlanmış bir direnç belirler.

D- ile +5V arasına eklenen 1K5 direnç USB1.1 belirler

D+ ile +5V arasına eklenen 1K5 direnç USB 2.0 olmasını sağlar.

Bunun anlamı eğer herhangi bir alet yokken bu bağlantıları yaparsanız bilgisayarınız doğrudan USB cihaz bulduğunu ama tanımlayamadığını belirtir. Çünkü bu USB tipini belirledikten sonra bilgisayar USB çevre birimle iletişime geçer ve ne olduğunu öğrenmeye çalışır.

Bu noktada dikkate alınması gereken D- ve D+ uçlarının lojik seviyesinin 3.6V civarında olduğunu unutmamak olur.

Devre
Devre zaten başlıktan anlaşılacağı üzere iki adet USB bağlantı ucu (D+ ve D-) var. Bu uçlar direnç üzerinden USB portuna bağlanabilir.

Devre üzerinde bazı ayarlamalar yapılacak ve saklanacaksa devreye bir EEPROM eklenme gerekir. Tüm devre üzerinde donanım olarak yer alan EEPROM sürücüsü sayesinde bu ihtiyacı çözecektir. Önerilen EEPROM çeşitli üreticiler tarafından üretilen 93C46,93C56 ve 93C66 ailesidir.

Seri port için ek kontrol bacakları (özellikle modem gibi araçlar ile iletişimde) ek kontrol olanakları sunacak şekilde eklenmiştir.

Seri port üzerinden iletişim yaparken bir şekilde bu iletişimin izlenmesi gerekir. Bunu olanak tanıyan iki adet LED bacağı var.

Tüm devre üzerinde kristal veya rezonatör bağlantısı mevcut. Üretici firma tarafından verilen örneklerde bu 6MHz olduğu görülür. Ama bu sizi yanıltmasın tüm devre içinde frekans çarpıcı devre var ve devre 12MHZ ve 48MHz iç sistemlerinde kullanılmak üzere üretiliyor.

FT232BL görüldüğü üzere 32 bacaklı bir yüzey montaj yapısında. Aslında internet üzerindeki birçok örnekte tüm elemanların (USB port hariç) yüzey montaj olacak şekilde örnekler mevcut. Ama devrenin bu şekliyle de çalıştığını söyleyebilirim. Bu tüm devrenin başka bacak bağlantı yapısına sahip sürümü yok

Bu devredeki kırmızı köprü ile belirtilen seçme bölümüdür. Bu köprü çıkışların 3.3V ve 5V arasında bir seçme imkanı tanıyacaktır. Yeşil ve mavi renkli köprülerin olduğu gibi kullanılmaları önerilir. Aksi durumu devre için harici besleme gerekecektir. Bu durum bu sistem için öngörülmemiştir.
Şekil-5:Kart üzerine köprülerin bağlantıları
Şema
Devrenin kalbi zaten görüldüğü üzere FT232BL IC1. Tüm iletişim sistemini bu eleman kontrol ediyor. Bu tüm devreye bağlı olan R9 ve R10 seri USB akım sınırlama dirençleri. Burada R9 ucuna bağlı olan R8 direnci USB’nin tipini (USB2.0) belirleyen dirençtir. Buradaki R6 ve R7 devre harici besleme durumunda bilgisayarın kapatılması durumunda USB cihazın sıfırlanması ile ilgili bir görevi var. R1 ve R2 dirençleri D1 ve D2 LED’lerinin akım sınırlama dirençleridir. D1 ve D2 LED’leri seri port iletişim monitörü olarak çalışır. R3 ve R4 IC2 EEPROM’un veri aktarma uçlarının FT232BL entegresine bağlantısında kullanılır. Bu bağlantı şekli konusunda ayrıntılı bilgi için FT232BL veri kağıtlarını incelenmesi yerinde olabilir. C1,C2 ve XTL1 ise IC1 için saat frekans üretim sistemini oluşturuyor. USB-A USB bağlantı konektörü. (isteyen doğrudan USB kablosunu doğrudan lehimleyebilir.) P1 seri bağlantı için bağlantı portudur. P2 ve P3 ise besleme bağlantısı için seçim konnektörleridir. Her ikisine takılacak köprü yardımıyla kullanılabilir. Geri kalan kondansatörler ise filtre için kullanılıyor.
Şekil-6:Blok şeması
Şekil-7:Devrenin şeması
Devrenin Çalışması
Devre üzerinde çalışma durumanda fazla bir ayar yok. Sadece P2, P3 ve P4 üzerindeki köprülerin konumu ayarlanması gerekiyor. Bu köprüler devrenin USB hattından mı, yoksa ayrı bir besleme üzerinden mi besleneceğini belirler. Şekil-8 köprülerin nasıl ayarlanacağını göstermektedir.
Buradaki asıl marifet POWERCTL ucunda(P3):POWERCTL=1 ise harici beslemeli olur, POWERCTL=0 ise USB üzerinden beslenir.
Şekil-8:Kırmızı köprülü bacak çıkış gerilimini ayarlamaktadır. Soldaki 3.3V için, sağdaki 5V içindir.
Devre Yapımı
Devrenin yapımına aslında her zaman direnç ve köprülerle başlanır. Ama bir değişiklik olarak yüzey montaj elemanları önce yapmak yerinde olabilir. Dikkatlice FT232BL yerine doğru olarak bacakları PCB üzerindeki yollara hizalanmış olarak sabitlenir ve sonra iki bacağı sabitlenerek diğer bacakları dikkatlice lehimlenir.Geri kalan elemanların takılmasında bir şey yok. Burada söyle IC2 için bir entegre soketi kullanılması olası durumlarda bu tüm devre üzerindeki hataları ortadan kaldırmak için gerekebilir. Sadece lehimlerken soğuk lehim yapılmaması veya kısa devreye yol açabilecek durumlardan kaçınılması için dikkatli olmak yerinde olacaktır.
Tüm dirençler çeyrek wattır.
Besleme konusunda bir sorun oluşturmayacağınızı düşünüyorsanız girişteki köprüyü devre dışı bırakabilir veya tek bir diyotla değiştiribilirsiniz. (Kendi besleme kaynağınız varsa ve devreyi kendiniz kullanacaksanız). Bacak bağlantıları uyan başka bir LED kullanılabilir. Entegreler için soket kullanılması sonradan oluşabilecek sorunların çözümünde size yardımcı olabilecektir. Belki daha sonra tümdevreleri başka bir devre üzerinde kullanmak isteyebilirsiniz. Sizin imkan ve tercihlerinize kalmış bir durum...
 Şekil-9:Devrenin baskı planı(eleman yüzü tarafından görünüm)
Şekil-10:Devrenin yerleşim şekli (IC1 kartın yollar tarafında lehimlenir-ters çevrilir, nokta sola bakar)
Şekil-11:Devrenin yollarla birlikte yerleşim planı
Şekil-11:Kartın alttan görünümü.Protatip yaparken yapılan küçük bir hata. Bir parça kablo ile sorun çözüldü. Biraz da tembellik mi desek, C1 ve C2 SMD kondansatör kullanıldı.
Devre Elemanları
27RR9,R10
220RR1,R2
470RR5
1k5R8
2k2R4
4k7R6
10KR3,R7
27pFC1,C2
100nFC3,C4,C5
3mm Kırmızı LEDD2
3mm Yeşil LEDD1
FT232BLIC1
93C46IC2
6Mhz kristalXTL1
10 HeaderP1
USB-A konnektörUSB-A
3 bacak sıra pinP2,P3,P4
köprü3 köprü(jumper)
Malzeme listesi. Burada işlemci için soket verilmemiştir. Kaliteli 8 bacaklı soketler oluşabilecek problemlerin önüne geçecektir.

Program
Bu noktada bilinmesi gereken şey, gerekli sürücü EEPROM programlayıcı ve devre ile ilgili örnekler için FTDI Chip firmasının internet sitesi size yardımcı olacaktır.
Bir USB alet tek başına doğrudan bilgisayara bağlanmaz, yani bilgisayar için sürücü gerekir. Devreyi bilgisayara bağladığınızda zaten bilgisayar durumu algılar ve sürücü yüklenmesi konusunda size uyaracaktır ve sizden sürücüleri isteyecektir. Siz bu sürücülerin yerini belirledikten sonra bilgisayar sürücüleri yükleyecek, USB alet olarak tanıyacak ve seri port bölümüne alet için bir port ekleyecek.
İsteyen FTDI sitesinden elde edebileceği programlayıcı program ile aletin ismi ve seri numarası ve birkaç seçeneği ayarlayıp devreye yükleyebilir.
Şekil-13: USB-seri dönüştürücü üzerindeki parametrelerin ayarlandığı program
Şekil-13 EEPROM programlamak için yapılan düzenlemeler için bir örnek göstermektedir. Burada USB alet için özel bir isim ve seri numarası atandığı görülmektedir. Bu kısım özellikle birden fazla aynı özellikli USB aletin takıldığı bilgisayarlarda neyin ne olduğunu belirlemek açısından önemlidir.
Yani iki tane alet bilgisayara takıldığında seçilen USB cihazın hangisi olduğunu belirlemek için gereklidir. Özellikle USB üzerinden doğrudan kontrol ediliyorsa..
Şekil-14: Bilgisayara takılan USB-seri dönüştürücünün "Aygıt Yöneticisi" üzerinde belirlenmesi
Bu proje üzerinde doğrudan bir program verilmeyecektir. Programlar kendi uygulama özelliği olan devreler ile verilecektir. FTDI Chip internet sitesinden bu devre için gerekli sürücü ve programlara erişilebilir.
Şekil-15: Kartın UART bağlantıları(P1)
Ekler:
FT232BL için bilgi

Devre için gereken dosyalar.

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

8 Haziran 2012 Cuma

Atmega32 ve Grafik LCD üzerinde Mekanik Saat


Giriş
Zamanı ölçme çabalarının sonucunda ortaya çıkan mekanik saatler, birçoğumuz için nostalji gibi gelse de mekanik saatlerin kendine göre bir havası olduğu inkar edilemez. Mekanik saatlerin bakım ve kullanım açısından bazı zorluklar taşısa da elektronik devreler ile taklit edilemez de değildir. Bu projede Atmega32 ve Grafik LCD üzerinde mekanik saat (Tik tak saat 2012) oluşturmaya çalışacağız.


Mekanik Saat


Şekil-1 :Mekanik saatin temel prensibi (dişli yönleri dikkate alınmamıştır) ve bir saatin dişli grubu (sağ).
Mekanik saatlerin gelişim sürecinde zaman ölçüm kesinliği zorunlu hale geldikçe saat hassasiyeti de artmıştır. Sonuçta mekanik saatlerde dişli sistemler ve mekanizmaları oluşturan öğelerin daha hassas üretilebilmeleri günümüze kadar uzanan bir süreci getirmiştir. Yüksek hassasiyet için saati oluşturan öğelerin daha kontrollu şartlar altında kullanımını zorunlu hale getirse de evimiz veya iş yerimiz gibi ortamlarda zaman şaşmaları kabul edilebilir boyutlarda olduğu durumlarda da kullanılabilir. Saat mekanizmasını basitçe özetleyecek olursa, elimizde saniyede 1 diş dönen bir çarkımız var. Bu saniye çarkını döndürmek için kullanılır. Saniye çarkını dakika çarkını döndürme şartı ise 1:60 oranında bir dişli sistemi gereksinimidir. Yani 1 dakika=60 saniye.Yani saniyenin 1 tam turu dakika (yelkovan) için bir çarklı dişine denk gelir. Dakikanın (yelkovan) saate (akrep) göre dişli oranı ise 1:60 'dir ki 1 saat=60 dakika. Yani yelkovan dişlisinin 1 tam turu akrep dişlisi çarkının 1 dişine dek gelir. Mekanik saatler günü 12 saat modunda kullanır. Yani 1 tam gün için saat kadranında akrep 2 tur atar. Mekanik saatler karşıt ağırlık, yaylı gibi kurma yöntemlerle çalışırken elektriğin icadından sonra saatlerin çalışmasında elektrik kullanılır olmuştur. Özellikle elektroniğin gelişmesinden sonra mekanik saatlerin kullanımı giderek azalmıştır..
Atmega32 Ve Grafik LCD gerçekleştirilmesi

Grafik LCD üzerinde böyle bir uygulamanın gerçekleştirilmesinde sabit bir r uzunluğundaki bir doğrunun değişik açılardaki koordinat sistemine göre hesaplaması gerekiyor. Bu işlem işlemci üzerinde yapılabilir. Sınırlı kaynaklarla biraz uğraştırabilir.


Şekil-2 :Rir açının r uzunluğundaki doğru parçasının koordinat üzerindeki hesabı.



Şekil-3 :Rir açının r uzunluğundaki doğru parçasının Grafik LCD üzerindeki durumu.

Öncelikle saniye ve (yelkovan) dakika için 360/60=6 derecelik açı aralıkları ile bölünmüş dilimlere karşılık gelir. Ayrıca (akrep) saat için ise 360/12=30 derecelik açılarla bölünmeyi gerektirir. Ama burada göz ardı edilmemesi gereken konu bu işlemin 64x64 matris alanında gerçekleştirilmesi gereğidir ki, rakamlar için 8 noktalık bir kısım ayrıldığında bize kalan alan 48x48'lik matris alanı kalır. İşte saniye, yelkovan, akrep kollarının hareket alanı bu kadardır. Not:GLCD sürülmesi ile ilgili olarak ekran iki bölüme ayrıldığından saat kadranı ortalanmamıştır.


Şekil-4 :Saatin genel çalışma şeması.
Dolayısı ile saatin akrep, yelkovan, saniye kollarının ve kadranın bir bölümünün görüntüsünün oluşturulduğu ram alanı olarak(0x100 başlangıç adresi olmak üzere) 6x48 =288 baytlık bir alan ayrılmıştır. Böylece sistemde timer1 1 saniyelik referans sinyalini oluşturur. Her saniyede gerekli saat değeri hesaplanmakta, hesaplanan değere göre 0x100 başlangıç ram adresinde ekrandaki görüntü oluşturulur ve ramdeki değer Grafik LCD ekrana gönderilir. Dolayısı ile ekrandaki 48x48 matris alanı bilgisi 1 saniyede bir yenilenir.


Şekil-5 :LCD ekran üzerindeki öğelerin piksel cinsinden boyutları.
Saat kadranı devre ilk çalıştığın zaman ekrana yüklenir ve saatin elektriği kesilene kadar kalır. (Saatin yanındaki yazılar da bu alana dahildir) Sadece saat kadranının belirli bir bölümü yani saniye kolu, akrep ve yelkovan kollarının saat kadranı üzerinde 48x48 matris içinde kalan saat kadranı yenilenir.
    Saat'in değerinin ekrana yazdırılması:
  1. kadran üzerindeki 48x48 peksellik matris alan bilgisi belirlenen RAM üzerine kopyalanır. Bu zemindir.
  2. Saniye değerine göre kolun verisi kadran üzerindeki konumuna karşılık gelen ram üzerine yerleştirilir.
  3. Dakika değerine göre yelkovan şekli kadrandaki şekline uygun RAM üzerine yerleştirilir.
  4. Saat değerine göre akrep şekli kadrandaki konumuna uygun RAM üzerine yerleştirilir.
  5. Şimdi yapılması gereken tek şey bu RAM'e kopyalanmış olan kadran, saniye, yelkovan ve akrep şeklinin grafik LCD üzerine aktarılmasıdır.
Bu noktadan 1. maddeye geri döner. Buradaki 2., 3., 4. maddadeki bilgiler saat, dakika, saniye sayaçlarının aldığı değerlere göre şekillenir. br>


Şekil-6 :Saatin ekran görüntüsünün oluşturulması.
Devre
Proje donanım olarak butonlar hariç "Atmega32 ile Grafik LCD'nin Sürülmesi" projesinin aynısıdır. Yazılım olarak bu proje için assembler dilinde geliştirilen yazılım derlenerek yüklenmiştir.



Şekil-7 :Saatin çalışırken görünmü Butonlardan mavi renkli olanları ayar için kullanılmaktadır.

Devre butonlar, işlemci kartı ve grafik LCD olarak bölümlere ayrılabilir. Butonlar işlemci üzerindeki herhangi bir porta bağlanabilir, yeterki butonların bağlandığı bacağın port tanımaları uygun şekilde değiştirilsin. Butanlardan biri saat ayarı için, diğeri dakika ayarı için kullanılmaktadır.


Şekil-8 :Butonlar.üstten, yandan, ve alttan görünümü

İşlemci kartı üzerinde besleme devresi yer almaktadır, yani girişi 9-12V aralığında herhangi besleme ile devrenin çalışabileceği anlamını taşır. Grafik LCD 'de beslemesini işlemci devresinden almaktadır.


Şekil-9 :Saat çalışırken ekranın resmi.
Şema
Sistemin kalbini IC1 ile ATMEGA32 oluşturuyor. Aslında kristale gerek olmasada kesin zamanlama ihtiyacını karşılamak için XT1(3.6864MHz) kristal ile C6 ve C7 (27pF) kondansatörler ile birlikte işlemci için gereken zamanlama frekansını üretirler. R1 (1K) ve LED1 (LED) ile devrenin çalışmasını izlemek üzere kullanılsada bu bölümde ihtiyaç olmadığından devre dışı bırakılmıştır. Grafik LCD ekran şemada gösterilmese de P3 konnektör bağlatısı üzerinden kablo ile bağlanmaktadır. R3 (10K) trimpot grafik LCD'nin kontrast ayarı için kullanılmaktadır. Devrenin beslemesi P1 konnnektörü üzerinden D1 (2W10M) köprü diyodu üzerinden IC2 (7805)regüle edilerek devrelinin ihtiyacı olan beslemeyi oluşturur. Burada BUT1,BUT2 ve BUT3 olarak belirtilen bas bırak butonlardan aslında sadece BUT1 butonu kullanılmakta ve bir kablo üzerinden ISP konnektörüne bağlanmaktadır. ISP içinse işlemcinin programlama işlemi için kullanılmakla birlikte şu hali ile butonlar için bağlantı noktası işlevini yerine getirmektedir. Belirtilmeyen geri kalan kondansatörler filtre amaçlıdır.


Şekil-10 :Devrenin blok şeması




Şekil-11 :Devrenin şeması
Devre Yapımı
LCDDevre montajı açısından kritik bir durum yoktur. Görüldüğü gibi devre son derece sadedir. Sadece kabloları karta lehimlerken kısa devre olmamaları için dikkatli olmak yerinde olacaktır. Not: C9 ve C10 100nF kondansatörleri buton kartı altına lehimlenmiştir.


Şekil-12:baskı devresi şekli(üstten görünüm)




Şekil-13:Yerleşim planı




Şekil-14: Eleman ve yollarla birlikte yerleşim planı.




Şekil-15:İşlemci kartı ile buton kartının kablo bağlantıları.
Devre Elemanları
1KR1
27RR2
10K yatık trimpotR3
27pFC6,C7
100nFC1,C2,C4,C5,C8,C9,C10
10µF/25VC3
3mm yeşil LEDLED1
ATMEGA32 (DIL)IC1
7805IC2
2W10M veya benzeriD1
3,6864 Mhz kristalXT1
2x3Header (ISP6)isp
2'li klemensP1
Bas bırak butonbut1, but2, but3
40 bacaklı entegre soketi (DIL)-
PGM12864-


Saat Hakkında


Şekil-16:Butonlar ve işlevleri.

Devre tasarım aşamasında saat olarak kullanılacağı öngörülmediğinden butonların harici kesme girişleri (int0 ve int1 LCD üzerinde veri portunda kullanılmaktadır) başka amaç için kullanıldı. Bu nedenle buton girişleri normal bacaklar kullanıldı. Bu yüzden butonların çalışması biraz yavaş ve nazlıdır.Dolayısı ile saat ve dakika ayarları biraz yavaştır. Ama saatin çalışması açısından bir sıkıntı yoktur. Saat ekranında kullanılan öğelerin verileri ve programlama kodlarının üretiminde visual basic'den yararlanıldı. Özellikele saat kadranı oluşturulması ve oluşturulan görüntünün veri kodlarını üretilmesinde oldukça yardımcı oldu. Saniye,akrep ve yelkovan kollarının her bir konumu için visual basic'ten yararlanıldı. Yoksa her bir konum için tek tek veri üretilip bunlardan kodların oluşturulması oldukça zaman alıcı bir olaydı. Visual Basic sayesinde kodların oluşturuması hızlı ve kolay bir şekilde sağlandı. Bu işlem için oluşturulan visual basic programı dosyalar ile verilmemiştir.



Şekil-17:Kodların oluşturulmasında kullanılan program arayüzü.
 

Ekler:
ATmega32 hakkında ayrıntılı bilgi için

"Atmega32 ve Grafik LCD üzerinde Mekanik Saat" projesi için gereken dosyalar

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

Translate

Sayfalar

Etiketler

İzleyiciler