Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
T.C
KARADENİZ TEKNİK ÜNİVERSİTESİ
MÜHENDİSLİK FAKÜLTESİ
ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ
AKILLI KAHVALTI TABAĞI
BİTİRME ÇALIŞMASI
179989 SAMET YILANCI
TRABZON 2011
T.C
KARADENİZ TEKNİK ÜNİVERSİTESİ
MÜHENDİSLİK FAKÜLTESİ
ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ
AKILLI KAHVALTI TABAĞI
BİTİRME ÇALIŞMASI
1799989 SAMET YILANCI
PROF. DR. İ. HAKKI ALTAŞ
TRABZON 2011
II
ÖNSÖZ
Bu projenin ilk taslaklarının hazırlanmasında emeği geçenlere, projenin son halinin
almasında yol gösterici olan Sayın hocam Prof. Dr. Ġsmail Hakkı ALTAġ’ a, bu çalıĢmada
bana yardımcı olan Elektrik-Elektronik Mühendisliği Bölümü öğrencilerinden değerli
arkadaĢlarım Zafer SATILMIġ ve Cevat AĞIRMAN’ a en içten teĢekkürlerimi sunarım.
Ayrıca eğitimim süresince bana her konuda tam destek veren aileme ve bana hayatlarıyla
örnek olan tüm hocalarıma saygı ve sevgilerimi sunarım.
Samet YILANCI
TRABZON, 2011
III
İÇİNDEKİLER
Sayfa No
ÖNSÖZ .................................................................................................................................. II
ĠÇĠNDEKĠLER .................................................................................................................... III
ÖZET ..................................................................................................................................... V
1. GĠRĠġ……………………………………………………………………………………………..1
1.1. Projede Kullanılan Malzemeler ...................................................................................... 3
1.1.1. Step Motor ................................................................................................................... 3
1.1.1.1. GiriĢ .......................................................................................................................... 3
1.1.1.2. Step motorların Kullanım Alanları ........................................................................... 5
1.1.1.3. Step Motorların Avantajları ..................................................................................... 5
1.1.1.4. Step Motorların Dezavantajları ................................................................................ 6
1.1.1.5. Step Motor Yapısı .................................................................................................... 6
1.1.1.6. Step Motor ÇalıĢma Prensibi .................................................................................... 7
1.1.1.7. Step Motorların Uçlarının Bulunması ...................................................................... 8
1.1.1.8. Step Motor Kontrolü ................................................................................................ 9
1.1.2. ULN2003A Entegresi .................................................................................................. 9
1.1.3. CNY 70 Sensör .......................................................................................................... 10
1.1.4. PIC16F628A Mikrodenetleyicisi .............................................................................. 11
1.1.4.1. Bellek Organizasyonu ............................................................................................ 12
1.1.4.2. Besleme Uçları Ve Bağlantıları .............................................................................. 13
1.1.4.3. Osilatör Konfigürasyonları ..................................................................................... 13
1.1.4.4. Sıfırlama ................................................................................................................. 14
1.1.4.5. GiriĢ / ÇıkıĢ ( I / O) Portları ................................................................................... 14
1.1.4.5.1. Port A .................................................................................................................. 15
IV
1.1.4.5.2. Port B ................................................................................................................... 16
1.1.4.6. Kesmeler ................................................................................................................. 17
1.1.5. Dirençler .................................................................................................................... 17
1.1.6. Mercimek Kapasite ................................................................................................... 18
1.1.7. Kristal Osilatör .......................................................................................................... 19
1.1.8. DC Güç Kaynağı ....................................................................................................... 20
1.1.9. Breadboard ................................................................................................................ 20
2. SĠSTEM TASARIMI ...................................................................................................... 22
2.1. GiriĢ .............................................................................................................................. 22
2.1. Sistemin Modellenmesi ................................................................................................ 22
2.2. Sistemin ÇalıĢma Prensibi ............................................................................................ 28
3. GELĠġTĠRĠLEBĠLĠRLER ............................................................................................... 31
4. SONUÇLAR ................................................................................................................... 32
5. KAYNAKLAR ................................................................................................................ 33
V
ÖZET
Projedeki yapılıĢ amacı akıllı bir kahvaltı tabağı yapmaktı. Büyük otellerde ve büyük
iĢletmelerde kullanılmak üzere yapılabilecek bir uygulama özelliklerde açık büfe menülerde
büyük kullanım kolaylığı sağlayacaktır. AnlaĢılması açısından örnek vermek gerekirse bir
iĢletmede sabah kahvaltısında büyük bir masanın etrafında yemek alacak kiĢilerin masanın
etrafını dolaĢmadan istediği yönde istediği yemeği alabilmesidir.
Uygulamada yapılabilirliği için daha küçük bir proje hazırlanmıĢtır. Yapılan uygulamada
tek katlı bir kontrol mekanizması yapılmıĢtır. Daha da kullanılabilir olması açısından iki,üç
veya dört katlı bir mekanizma düĢünülebilir.
1
1. GİRİŞ
Projede günlük hayatta rahatlıkla kullanılabilecek olan bir kahvaltı tabağı yapılmıştır.
Burada bir masanın etrafındaki kişiler masanın etrafını dolaşmadan istediği yönde istediği
yiyeceği alabimesi amaçlanmıştır. Bunun için kahvaltı tabağı 4’ e bölünüp bu 4 dilimi
temsilen masanın her bi tarafına 4 buton konulmuştur. Masanın herhangi bi köşesinde olan
kişi istediği yiyeceği o yiyeceğin isminin yazılı olduğu butona basıp önüne çağırarak o
yiyeceği alabilecektir.
Kahvaltı tabağı olarak kullanılacak olan diskin dönüşünü sağlamak için step motor
kullanılmıştır. Step motor kullanılmasının amacı hassas bir şekilde konum ve hız kontrolü
yapmak içindir. Step motora ilk enerji verildiğinde tabağın referans noktasını bulması
içinde CNY 70 sensör kullanılmıştır. Ayrıca projede kullanılan diğer devre elemanlarıda
aşağıda tanıtılmıştır.
Projenin tasarımı, modellenmesi ve diğer izlenen yollar aşağıda Tablo 1. ’deki çalışma
takviminde belirtilmiştir.
2
Tablo 1. Çalışma Takvimi
3
1.1. Projede Kullanılan Malzemeler
Projenin yapım aşamasında kullanılan malzemeler aşağıdaki Tablo 1.1. ‘ de
gösterilmiştir. Bu malzemelerin neden ve nerde kullanıldığı aşağıda açıklanmıştır.
Tablo 1.1. Projede Kullanılan malzemeler
1 adet Step motor
1 adet ULN2003A entegresi
1 adet 22 pF’ lık mercimek kapasite
7 adet 10 kΩ’luk direnç
1 adet 220 Ω’ luk direnç
1 adet CNY70 sensör
16 adet Push buton
1 adet 4 Mhz kristal osilatör
3 adet LED
1 adet DC güç kaynağı
1 tane PIC 16F628A mikrodenetleyicisi
1 tane Breadboard
1.1.1. Step Motor
1.1.1.1. Giriş
Step motorlar konum ve hareketin hassas olarak kontrol edilmesi gereken yerlerde
kullanılan özel motorlar olduğundan dolayı projede kullanılan motorun türü Şekil 1.1.1’ de
gösterilen step motordur.
Step motorların diğer elektrik motorlarından en büyük farkı bir elektrik motoruna enerji
verildiği zaman rotoru sürekli olarak döner. Eğer motora uygulanan enerji kesilirse dönme
olayı son bulur. Hâlbuki step motorlarda, rotorun dönmesi girişe uygulanan uyartı sayısına
4
göre değişir. Girişe bir tek uyartı verildiğinde, rotor tek bir adım hareket eder ve durur.
Daha fazla uyartı uygulanırsa, uyartı sayısı kadar adım hareket eder. [1]
İsminden de anlaşılacağı gibi step motorları, motorun sargılarından uygun olan birisine
gerilim uygulanarak kontrol edilirler. Motorun yapısına bağlı olarak, step motor 90, 45, 18,
7,5, 1,8… derece veya daha değişik açı aralıklarıyla dönebilir. Projede kullanılan step
motor 7,5 derece açı aralıklarıyla dönmektedir.
Darbe oranı değiştirilerek step motorun bir adımlık hareketi çok yavaşlatılacağı gibi
daha da hızlandırılabilir. Örnek vermek gerekirse projede kullanılacak olan step motorun
adım açısı 7,5 derece idi bu motoru 90 derece döndürebilmemiz için motora 12 adım
attırmamız gereklidir.
Step motorları saat yönünde veya tersi yönde dönebilirler. Bunun için faz sargılarına
uygulanan gerilimlerin sırası değiştirilir. Yapılan uygulamada kahvaltı tabağının dönüş
yönü hem saat yönü hemde tersi yönde döneceği için step motor projede çok büyük
kolaylık sağlamıştır.
Step motorlarının hangi yöne doğru döneceği, devir sayısı, dönüş hızı gibi değerler
mikroişlemci veya bilgisayar yardımı ile kontrol edilebilir. Projede PIC 16F628A
mikroişlemcisi kullanılarak step motor kontrol edilecektir.Sonuç olarak adım motorlarının
hızı, dönüş yönü ve konumu her zaman bilinmektedir. Bu özelliklerinden dolayı projede
Şekil 1.1.1. ‘ de görülen step motor kullanılacaktır.
Şekil 1.1.1. Projede kullanılan step motor
5
1.1.1.2. Step motorların Kullanım Alanları
Step motorlar çok uzun yıllardır var olmalarına rağmen seri üretim olarak kullanılmaları
ancak 1960’ dan sonraki yıllarda doğru akımla birlikte anahtarlama yapabilen
transistörlerin üretilmesiyle yaygınlaşmıştır. Daha sonra 1970’ li yıllardan beri özellikle
elektronikte ve mikroişlemci teknolojisindeki gelişmelerle birlikte step motorlarının
kullanımı dahada artmıştır. Günümüzde step motorları endüstride birçok kontrol
sistemlerinde, özellikle konum kontrolünde kullanılmaktadır. En çok yazıcılar, çiziciler,
disket sürücüler, harddisk sürücüler , kart okuyucular v.b. gibi bilgisayar donanımlarında
step motorlardan yararlanılmaktadır. Ayrıca kontrol sistemlerinde, CNC tezgahlar gibi bir
çok sistemde step motorlar kullanılmaktadır.
1.1.1.3. Step Motorların Avantajları
Step motorların yukarıda anlatılan avantajlarını sıralanırsa;
• Step motorlar dijital giriş işaretlerine hızlı bir şekilde cevap vermeleri nedeniyle
mikroişlemci veya bilgisayarlarla kontrol için en ideal motor türlerinden biridir.
• Step motorların hangi yöne döneceği, devir sayısı, dönüş hızı gibi değerlerin
mikroişlemci veya bilgisayar yardımı ile kontrol edilebilmesi, her an bu motorların dönüş
yönü, hızı ve konumunun bilinebilmesini sağlamaktadır. Bu da step motorları hassas
konum kontrolü gerektiren yerlerde kullanılmasını sağlar.
• Step motorların dijital girişlere cevap vermesi, geri beslemeye ihtiyaç duyulmaksızın
açık çevrim çalıştırılabilmesini sağlamaktadır. Yani açık çevrim çalıştırılan bir step motoru
ile hız, ivme ve konum kontrolü daha basit ve daha az maliyetle gerçekleştirilebilir.
Böylece alışılmış kararsızlık problemlerinin de önüne geçilmiş olur.
• Step motorlar, giriş işaretlerinin frekansına bağlı olarak çok geniş bir hız aralığında
rahatlıkla sürülebilirler.
• Step motorlar, herhangi bir konum ve hız kaybına yol açmadan defalarca durdurulup
çalıştırılabilirler. (Sürerken aniden durdurma ya da aniden ters yönde sürme isteğine karşı
mükemmel cevap verebilirler.)
6
• Aşırı yüklenmeden hasar görmezler, oldukça dayanıklıdırlar.
• Her yeni adımla artan konum hataları yoktur.
• Mekanik yapısı basit olduğundan bakım gerektirmezler.
• Yağlanma ve kirlenme problemleri yoktur.
1.1.1.4. Step Motorların Dezavantajları
Step motorların bir çok avantajı olmasına rağmen bazı dezavantajları vardır.Bunları
sıralarsak;
• Adım açıları sabit yani 7,5, 9, 15 derece gibi olduğundan rotordan alınan hareket sürekli
değil gelen darbe süresi kadardır.
• Verimleri düşüktür.
• Adım cevapları diğer motorlara göre büyük aşım ve salınımlıdır.
• Büyük yük sürülmesi gereken yerlerde kullanım alanları sınırlıdır.
• Sürtünme kaynaklı yüklerde konum hatası meydana getirebilirler.
• Elde edilebilecek çıkış gücü ve momenti belli aralıklardadır.
• Kontrol iyi edilmezse salınım meydana gelebilir.
• Yüksek hızlarda çalıştırmak kolay değildir.
1.1.1.5. Step Motor Yapısı
Step motorun statorunun aşağıdaki Şekil 1.1.1.5’te görüldüğü gibi birçok kutbu vardır.
Bunların polaritesi elektronik anahtarlar yardımıyla değiştirilebilir. Anahtarlama
sonucunda statorun ortalama güney ve kuzey kutupları döndürülmektedir. Rotorun güney
kutbu, statorun kuzey kutbu sıralıdır.Rotorun mıknatıslığı, bir sürekli mıknatıs veya dış
uyarım metotlarıyla oluşturulabilir. Bu arada sürekli mıknatıs oluşacaktır. Adımları
vasıtasıyla ortalama stator alanı döner ve rotor da bunu benzer adımlar arasında takip eder.
7
Daha iyi bir seçicilik elde etmek için rotor ve stator üzerine küçük dişler yapılmaktadır. Bu
dişler birbirleriyle temas etmemelidir.
Şekil 1.1.1.5. Step motor yapıları ( Stator ve rotorları tek parça ve üzerine yapılmış
dişlilerden oluşan motorlar) [1]
1.1.1.6. Step Motor Çalışma Prensibi
Step motorlar bir dizi kısa elektrik akımıyla hareket ederler. Stator birbirine dik
manyetik alan üreten iki ayrı bobinden oluşur. Bu bobinlere sırayla elektrik akımı verilerek
statorun içerisinde döndürme etkisine sahip bir manyetik alan oluşması sağlanır. Statorun
içindeki rotor bobinler tarafından sırayla oluşturulan manyetik alanla polarize olarak döner.
Her bir elektrik akım vurgusu yani darbe rotorun belli bir açı kadar veya adım dönmesine
neden olur. Eğer güç sadece bir bobine verilirse manyetik alanın etkisiyle rotor
sabitlenecektir, bu da motorun durdurulmasında kullanılır.
Şekil 1.1.6’da bir step motorun temel prensip şeması verilmiştir. Step motor bir daire
içinde elektromagnetik alanların dönüşü ile ifade edilebilir. Şekil 1.1.6’ da görülen 1 nolu
anahtar kapandığında (SW–1) rotor kendiliğinden 1. elektromanyetik alan ile aynı hizaya
gelecektir. Bundan sonra 1 nolu anahtar açılıp 2 nolu anahtar kapatılırsa sabit mıknatıs 2.
elektromagnetik alanın karşısına gelecektir. Bu olaylar sırayla tekrarlanırsa rotor bir daire
içinde düzgün şekilde döner. Bu şekilde verilen elektrik akım vurgularının frekansı
8
motorun dönme hızını belirler. Hızlı ivmelenme sonucunda step motorda kayma meydana
gelebilir bunun önlenmesi için ivmelenme sırasında vurgu sıklığı ayarlanmalıdır.
Şekil 1.1.1.6 Step motor çalışma prensip şeması [1]
1.1.1.7. Step Motorların Uçlarının Bulunması
Step motorlarda uçları ya kataloğuna bakılarak ya da basit metotlarla bulunulabilir.
Örneğin Şekil 1.1.1.7’ de gösterildiği gibi 4 uçlu bir step motorda uçların bulunması şu
şekilde olur. Bir ölçü aleti ile uçlar arasında direnç ölçümü yapılırsa ohmmetreden sadece
A - B arasında ya da C - D arasında bir direnç değeri okunabilir. A - C, A – D ya da B – C,
B – D uçarının birbirleri ile bağlantıları olmadığı için ohmmetrede hiç bir değer okunamaz
ya da sonsuz direnç değeri gösterir. Bu yol vasıtasıyla hangi uçların birbiri ile bağlantılı
olduğunu yani motor bobinlerinin karşılıklı uçları belirlenebilir.
Eğer motorun 6 ucu varsa, bu kez yine bir ölçü aleti yardımıyla uçlar arasında direnç
ölçümü yapılarak hangi üç ucun birbiri ile bağlantılı olduğu bulunulabilir. Şekil 1.1.7’de
O1 ve O2 ortak uçlardır. Dolayısıyla A – B arasında ölçülen direnç A - O1 ya da B – O1
arasında ölçülen direncin 2 katıdır. Aynı şekilde C – D arasında ölçülen direnç C – O2 ya
da D – O2 arasında ölçülen direncin 2 katıdır.Bu şekilde step motorun uçları belirlenebilir.
9
Şekil 1.1.1.7. 4 ve 6 uçlu step motor yapısı
1.1.1.8. Step Motor Kontrolü
Step motorların uçları belirlendikten sonra kontrol edilmesi için step motorun
kablolarindan ortak olan bir veya iki tane kablosuna sürekli +12 Volt göndermek ve diger
uçlari ise belli bir sirada topraga göndererek bir adim hareketi elde etmektir. Bunu iki
farkli sekilde yapabiliriz. Bunlardan bir tanesi 4 transistörlü bir devre ile bu sinyalleri
göndermek. Bir diger yolu ise içerisinde bu transistörleri hali hazirda bulunduran bir
entegre kullanmaktır.Bu entegrenin adı ULN2003A entegresidir.
1.1.2. ULN2003A Entegresi
ULN2003 entegreleri ise PIC’ ten gelen sürüş bilgisini, yani bit kaydırmasını 12 DC
volta yükselterek step motorlarına vermektedir. Eğer ULN2003 kullanılmaz ise PIC’ten
gelen 3-5 DC voltluk gerilim ve düşük akım step motorları süremeyecektir, sürse bile
sistem için gereken torku sağlayamayacaktır. Bu sebeple ULN2003 entegre devresi
kullanma ihtiyacı doğmaktadır.
Şekil 1.1.2’ de gösterilen ULN2003A entegresi içerisinde 7 adet NPN transistor ve
dâhili diyot bulunmaktadır. Bu entegre ile 500mA kadar akım çeken motorlar
çalıştırılabilir. +12V’a kadar entegreye besleme gerilimi verilebilir.
10
Şekil 1.1.2 ULN2003A entegresi
1.1.3. CNY 70 Sensör
Projede Şekil 1.1.3’ de görülen CNY 70 sensörü step motorun süreceği diskin referans
noktasını bulmak için kullanılmıştır. CNY 70 sensörü kızılötesi (IR) ışık yayan ve bu ışığı
geri alıp alamamasına göre analog çıkış veren ve önünde yansıtıcı (beyaz) bir yüzey olup
olmadığına karar vermemize yarayan bir algılayıcıdır.
Çalışma mantığı ışığın yansıması esasına dayanır. Eğer CNY 70’ den gönderilen ışık
beyaz bir yüzeye çarpıp geri dönerse sensörün çıkış bacağından 0V (lojik 0) gönderilir.
Eğer önünde siyah bir yüzey varsa ışık soğurulur ve geri yansımaz, bu durumda sensörün
çıkış bacağına 5V (lojik 1) gönderilir. Bunu sensörün içerisindeki transistör sağlar, ışık
yansırsa yani sensör beyaz görürse transistorün beyz kısmına yüksek akım gelir ve emetörü
toprağa bağlı olduğu için kolektördeki akım toprağa akar ve çıkış ayağındaki potansiyel
sıfırlanır. Siyah gördüğünde ise transistör devreye girmez ve çıkış gerilimi yaklaşık olarak
5 volt olarak kalır. Teorik olarak böyle olsa da hayata geçirildiğinde alınan voltaj değerleri
0V-45V arasında olsada bazen kullandıgımız mikrodenetleyici (PIC) bunu bunu
algılamayabilir.Bunu engellemek için ise LM324 adı verilen ve CNY 70 den gelen sinyali
düzelten bir entegre kullanılır.
11
Şekil 1.1.3 CNY 70 sensör
1.1.4. PIC16F628A Mikrodenetleyicisi
PIC ismi Mikrochip firmasının ürettiği mikrodenetleyicilere verdiği isimdir. Mikrochip
firması çeşitli özellikte ve tasarımda onlarca değişik tip denetleyici üretmektedir. Üretilen
bu mikrodenetleyiciler, denetleyicinin kelime boyuna (Word Length) göre değişik aile
isimlerine ayrılmıştır. Mikrochip firmasının 8 bitlik, 16 bitlik ve 32 bitlik denetleyicileri ile
16 bitlik DSC (Digital Signal Controller) ürünleri mevcuttur.8 bitlik mikrodenetleyiciler
ucuz fakat işlem yetenekleri düşük, 32 bitlik olanlar ise pahalı ancak işlem yetenekleri
yüksektir. Biz sistemimizde piyasada çok rahat olarak bulunan ve içinde ihtiyaç duyulan
çoğu özelliği barındıran Şekil 1.4’te görülen 8 bitlik PIC16F628A ürünü üzerinde
programlama yapılacaktır. [2]
Şekil 1.1.4 PIC16F628A mikrodenetleyicisi
12
1.1.4.1. Bellek Organizasyonu
PICI6F628’ in 2k boyutunda program belleği vardır. Bu bellekteki her bir göz 14-bit
uzunluğundadır. Bu gözlerin uzunluğu ve içindeki veriler programcıyı doğrudan
ilgilendirmemektedir. Şekil 1.4.1’ de PIC 16F628’in program belleği haritası
gösterilmiştir.
PIC16F628’in RAM bölgesinin 4 parçaya ayrıldığından ve bu 4 RAM bölgesinde genel
amaçlı saklayıcılar ve özel amaçlı saklayıcılar bulunmaktadır. Her bir RAM bölgesinin ilk
32 byte’lık kısmı özel amaçlı saklayıcılar tarafından kullanılmaktadır. Genel amaçlı
saklayıcılar için ise 224 byte’lık bir alan ayrılmıştır. Bu saklayıcılarda program yazarken
kullanılan değişkenler tutulur.
Şekil 1.4.1 RAM veri belleği haritası [2]
13
1.1.4.2. Besleme Uçları Ve Bağlantıları
PIC16F628’ nın besleme uçları ve bağlantıları Şekil 1.1.4.2’ de görülmektedir.
PIC16F628’ in besleme gerilimi 3–5.5 V arasında seçilebilir. PIC16F628’ in beslemesi
Şekil 1.1.4.2’ de görüldüğü gibi VDD ve VSS uçlarından verilmektedir. Besleme gerilimi
14 numaralı uç olan VDD’nin + beslemeye, 4 numaralı uç olan VSS ise toprağa
bağlanması gerekir.
Şekil 1.1.4.2 PIC 16F628A çıkış bacakları [2]
PIC’ e besleme gerilimini sağlayan gerilim kaynağı ilk açıldığında besleme
gerilimindeki dalgalanmaları ve yüksek akım çeken devre elemanlarının devreye girip
çıkması ile besleme gerilimindeki ani ve istenmeyen değişimleri engellemek için VSS ile
VDD uçları arasına bir kondansatör bağlanmalıdır. Böylece PIC’in istenmeyen şekilde
resetlenmesi engellenmiş olur.
1.1.4.3. Osilatör Konfigürasyonları
PIC hafızasındaki komutları işlemek için bir sinyale ihtiyaç duyar. Bu sinyale clock
sinyali yani saat sinyali denir. PIC16F628A işlemleri gerçekleştirmesi için gerekli olan saat
işaretleri birçok farklı devre ile elde edilebilir. Projede kararlılığı en yüksek olan kristal
osilatör kullanılmıştır. Mikroişlemcilerin program kodlarını çalıştırma süresi saat işaretine
bağlıdır. Yüksek saat işareti hızında çalışan bir mikroişlemci aynı sürede saat işareti hızı
düşük olan bir mikroişlemciye göre daha fazla komutu işler. Örneğin 3 GHz’de çalışan bir
işlemci 1 GHz’de çalışan aynı işlemciye göre 3 kat daha hızlı komut işler.
14
PIC16F628 en fazla 20 MHz saat işaretinde düzgün çalışabilir. Saat işareti farklı
yollarla elde edilebilir;
• LP (Low Power Crystal) : Düşük güçlü kristal
• XT (Crystal/Resonator) : Kristal/rezonatör
• RS (High Speed Crystal/Resonator) : Yüksek hızlı kristal/rezonatör
• ER (External Resistor) Harici direnç (2 çalışma biçimi)
• INTRC (Internal Resistor/Capacitor) : Dahili RC (2 çalışma biçimi)
• EC (External Clock In) : Harici Saat Girişi
• LP, XT veya RS tipi osilatörler OSCI ve OSC2 uçlarına bağlanırlar.
1.1.4.4. Sıfırlama (Reset)
PIC16F628’ i donanımsal olarak resetlemenin iki yolu vardır. Bunlardan ilki, besleme
verildiğinde PIC’in kendini resetlemesi ve reset komutuna giderek program kodlarını
çalıştırması şeklinde olur. İkincisi ise donanım resetidir. PIC 16F628A’ nın 4 nolu pini
olan MCLR ucunun ‘0’a çekilmesi ile gerçekleşir.
1.1.4.5. Giriş / Çıkış ( I / O) Portları
PIC16F628, A portu ve B portu olmak üzere 8 uçlu iki porta sahiptir. B portunun her bir
ucu ayrı ayrı giriş/çıkış olarak ayarlanabilirken, A portunun RA5/ ucu hariç diğer uçları
ayrı ayrı giriş/çıkış olarak ayarlanabilmektedir. Bu uç sadece giriş olarak düzenlenebilir.
Diğer PIC’lerde olduğu gibi, az sayıdaki uçların etkin kullanımı için bazı uçların birden
fazla kullanım özelliği vardır. Böylece fazladan uç kullanımına gerek kalmadan birçok
özellik kullanılabilmektedir.
15
1.1.4.5.1. Port A
Port A 8-bit uzunluğundadır. Tablo 1.4.5.1’ de Port A’ nın uçları ile ilgili açıklamalar
görülmektedir.
Tablo 1.4.5.1 Port A uçları hakkında açıklamalar [2]
Uç adı Uç no IO tipi Açıklama
RA0/AN0 17 IO İki yönlü I/O ucu ve analog karşılaştırıcı
girişi
RA1/AN1 18 IO İki yönlü I/O ucu ve analog karşılaştırıcı
girişi
RA2/AN2/VREF 1 IO İki yönlü I/O ucu ve analog karşılaştırıcı
girişi ve VREF çıkışı
RA3/AN3/CMP1 2 IO İki yönlü I/O ucu ve analog karşılaştırıcı
girişi ve analog karşılaştırıcı çıkışı
RA4/TOCKI/CMP2 3 IO İki yönlü I/O ucu, TMR0 saat işareti girişi ve
analog karşılaştırıcı çıkışı
RA5/ THV 4 I Giriş ucu ve reset girişi
RA6/OSC2/CLKOUT 17 IO İki yönlü I/O ucu ve kristal osilatör çıkışı
RA7/OSC1/CLKIN 18 IO İki yönlü I/O ucu, kristal osilatör girişi ve
harici saat kaynağı girişi
16
1.1.4.5.2. Port B
Port B 8-bit uzunluğundadır. Tablo 1.4.5.2’ de Port B ‘nin uçları ile ilgili açıklamalar
görülmektedir.
Tablo 1.4.5.2. Port B uçları hakkında açıklamalar [2]
Uç adı Uç no IO tipi Açıklama
RB0/INT 6 IO İki yönlü I/O ucu ve harici kesme girişi
RB1/RX/DT 7 IO İki yönlü I/O ucu, USART alıcı ucu ve
senkron veri giriş/çıkış ucu
RB2/TX/CK 8 IO İki yönlü I/O ucu, USART verici ucu ve
senkron saat darbesi giriş/çıkış ucu
RB3/CCP1 9 IO İki yönlü I/O ucu, yakala karşılaştır PWM
modülü giriş/çıkış ucu
RB4/PGM 10 IO İki yönlü I/O ucu, düşük gerilimle
programlama giriş ucu
RB5 11 IO İki yönlü I/O ucu
RB6/T1OSO/T1CK1 12 IO İki yönlü I/O ucu, TIMER1 osilatör çıkış
ve TIMER1 saat darbesi girişi
RB7/T1OSI 13 IO İki yönlü I/O ucu ve TIMER1 osilatör
girişi
17
1.1.4.6. Kesmeler
Mikrodenetleyicinin rutin olarak yaptığı işler dışında bazı özel durumlar oluştuğunda,
rutin işlerini bırakıp bu özel durumla ilgili görevleri yerine getirmesi gerekir. Burada
bahsedilen, özel durumun oluşup oluşmadığının sürekli kontrol edilmesi yerine, kesme
kullanılarak özel durumun oluştuğu mikrodenetleyiciye otomatik olarak bildirilir ve
böylece gereksiz kontrollerden kurtulunur. Burada bahsedilen özel durum öncelikli bir
görev olabileceği gibi, nadiren yapılması gereken bir görev de olabilir.
Örneğin PIC16F628 ile bir sıcaklık kontrolü yapıldığını düşünelim. Ortam sıcaklığı
belirli bir değerin (ayar noktasının) üstüne çıktığında klima devreye sokulsun. Ayar noktası
iki butonla kontrol edilsin. Sistem sıcaklığı ölçüp ayar noktasına göre klimayı kapatıp
açmaktadır. Ayar noktasının değiştirilmesi işlemi nadiren yapılacağından bu işlem kesme
ile yapılabilir.
Böylece bu butonların sürekli olarak kontrolüne gerek kalmaz. Sadece butonlara
basıldığında ayar noktasının değeri kesme hizmet programı ile değiştirilir ve sistem ana
programa dönerek rutin sıcaklık kontrolü işlemine devam eder.
1.1.5. Dirençler
Projede kullanılan dirençler PIC 16F628A mikrodenetleyici, CNY 70 sensor,
ULN2003A entegresi, ledler ve butonların devreye yerleştirilirken kullanılmıştır. Dirençler
devrede mikrodenetleyici, sensör ve entegrenin bacaklarının çekeceği akımları sınırlamak
için kullanılmıştır. Kullanılan dirençlerin değerleri 10 kΩ, 1 kΩ, 220 – 330 Ω değerleri
arasında değişmektedir.
Çoğu dirençler bir tarafında üç renkli bir band ve diğer tarafında ise tek renkli bir banda
sahiptir. Bu üç bitişik renk direncin değeri hakkında bilgi verir. Bu üçlü gruptan direnç
bacağına enyakın renk 1. Sayıyı oluşturur. Örneğin bu rengin kahverengi olduğunu
varsayarsak, kahverenginin sayı karşılığı 1’dir. Bir sonraki bandın rengi ise bize 2. Sayı
değerini verir. Örneğin bu renkde kırmızı olsun yani karşılığı olan sayı 2. Daha sonra
3. Band rengi ise sıfır sayısını verir. Örneğin rengimiz portakal rengi olsun
bunun sayısal değeri de 3 dür ve buda ilk iki sayı yanına 3 tane 0 koymaktır.
18
Sonuçta dirençe değerini bulacak olursak kahverengi, kırmızı ve portakal
rengi yanyana geldiği zaman direnç değerinin 12000 Ω olduğunu belirleyebiliriz.
Aşağıdaki Tablo 1.1.5’ de direnç değerlerini okurken yararlanabilenecek renk kodlarını
vermektedir.
Tablo 1.1.5. Direnç renk kodları
1.1.6. Mercimek Kapasite
Projede PIC 16F628A’ nın osilatör devresi için kullanılmıştır. Elektronik devrelerde
katlar arasında kuplaj, by pass, dekuplaj, bloklama, ayar ve filtre elemanı olarak kullanılan
pasif bir devre elemanıdır. Elektrikte kompanzasyon yani güç katsayısının 1’ e
yaklaştırılmasında, bir fazlı motorlarda ilk hareketi sağlamada ve kalkınma momentini
artırmada kullanılır. Şekil 1.1.6’ da görüldüğü gibi mercimek kondansatör olarak
adlandırılan kutupsuz kondansatörler bulunduğu gibi yine elektronikte sıkça kullanılan
yönlü kondansatörler mevcuttur.
19
Şekil 1.1.6 Mercimek Kapasite
1.1.7. Kristal Osilatör
Osilatörlerde frekansın sabit olması çok önemlidir. Frekansın sabit kalabilme durumuna
frekans kararlılığı denir. Pek çok elektronik uygulama da frekansın kararlı olması önem arz
etmektedir. Bu noktada kristal osilatörler devreye girmektedir. Bu osilatörlerin yapısında
quartz kristalleri kullanılmaktadır. Bu kristaller çok kararlı frekanslar üreterek hassas
frekans gerektiren devrelerde kullanılırlar. Quartz kristali üzerine bir basınç
uygulandığında iki ucu arasında gerilim meydana getiren bir maddedir. Şekil 1.1.7’ de
gösterilen kristal osilatör projede mikrodenetleyecinin ihtiyaç duyduğu clock sinyalini
üretmede kullanılmaktadır. Kullanılan kristal osilatörün frekansı 4 MHz dir.
Şekil 1.1.7 4 Mhz kristal osilatör
20
1.1.8. DC Güç Kaynağı
DC güç kaynağı şebekeden aldığı alternatif akımı elektronik devrelerin çalışabilmesi
için ihtiyaç doğru akıma çeviren elemandır. İçerisinde yarım dalga veya tam dalga
doğrultucusu bulunur. Güç kaynakları farklı seviyelerde DC gerilimler sağlayabilmektedir.
Örneğin; 5V, 12V, 24V DC gerilim veren güç kaynakları günümüzde sıkça
kullanılmaktadır. Projede kullanılan DC güç kaynağının çalışması içinde çıkış uçlarından
mavi portu toprağa kısa devre edilmiştir.
Şekil 1.1.8.’de görülen DC kaynak projede 12 V ve 5 V’luk besleme almak için
kullanılmıştır.
Şekil 1.1.8. Güç Kaynağı
1.1.9. Breadboard
Elektronik devreleri daha kolay ve daha kısa zamanda kurabilmek için breadboardlar
kullanılır. Breadbordlar, üzerlerine kabloların bağlanması için delikli şekilde yapılmış
tablalardır. Şekil 1.1.9’ da görüldüğü gibi boardın en üstünde üzerleri kırmızıyla çizilmiş
çizgiler içten kısadevredir, yani soldan sağa bir sütun kısa devre şeklindedir. Aynı şekilde
resmin sağında görülen yukardan aşağıya üzeri kırmızı çekilen deliklerde içten kısa
devredir. En üstteki satır halinde kısa devre olan delikler genelde enerji uçlarının
bağlandıkları bölümlerdir. Elektronik devre elemanları ise yukardan aşağı kısa devre olan
ortadaki deliklere bağlanmaktadır. Delikler arası genellikle 0.1 inch yani 2.54 mm’dir.
Breadboarda bağlantı için 0.6 mm’ lik yalıtımlı tellerin kullanılması tavsiyeedilir.
21
Şekil 1.1.9. Breadboard
22
2. SİSTEM TASARIMI
2.1. Giriş
Projedeki amaç kahvaltı tabağı olarak düşünülen diskin istenilen yönde dönmesini ve
durmasını sağlamaktır. Bunun içinde kullanılacak step motorun miline takılan diskin
kontrolü sağlanacaktır. Kullanıcıya bağlı olarak yön ve konum seçimi yapılabilecek olan
projede öncelikle olarak kullanılacak olan step motorun kontrolü yapılacaktır. Step motor
kontrolü PIC 16F628A ile yapılacaktır. Ayrıca PIC direkt olarak step motoru sürmeye
yetmeyeceğinden ULN2003 entegresi kullanılacaktır. Projenin modellenmesi için
PROTEUS programı kullanılmıştır.
2.2. Sistemin Modellenmesi
PROTEUS programını kullanarak projede kullanılacak elemanları bilgisayar ortamında
gerekli bağlantıları yaparak simüle etmek projenin gerçekte uygulanmadan önce hertürlü
hatayı görmemizi sağlayacaktır.
PROTEUS yardımıyla step motorun dönüş yönü ve konumunu kontrol etmek için
çizilen uygulama şekil 2.2’ de görülmektedir. Şekil 2.2’ de görüldüğü gibi PROTEUS’ da
modelleme yapılırken önce PROTEUS programı açılarak devrede kullanılacak elemanlar
belirlenir. Daha sonra PIC16F628A’ nın 6, 7, 8, 9 nolu çıkış uçları ULN2003 entegresinin
1, 2, 3, 4 nolu ucuna bağlanır. ULN2003 15 ,16 , 17 , 18 nolu pinleri de sırasıyla step
motora adım darbesi vermek için dört ucuna bağlanır ve ULN2003 entegresinin 10
numaralı pini besleme için 12 V’ a bağlanır. Ayrıca step motorun ortak ucu da 12 V’ a
bağlanır. PIC 16F628A’in çalışması için gerekli olan kristal osilatör kapasiteler yardımıyla
mikroişlemcinin 15 ve 16 nolu çıkış uçlarına bağlanır.10 numaralı uca bağlanacak olan
Led ile step motorun dönmeye hazır olup olmadığı kontrol edilir.CNY 70 sensöründen
gelen 1 veya 0 yani +5 v gerilimde PIC’ in 11 nolu bacağına bağlanır.Daha sonra PIC
16F628A’in 1, 2, 17, 18 nolu pinleride push butonlara bağlanarak step motorun konum
kontrolü için yapılan devre hazır hale gelir. Geriye sadece PIC 16F628A’nın çalışması için
gerekli olan program kalır. [3]
23
Şekil 2.2 Uygulama proteus devresi
24
Şimdide CCS C PIC programlayıcıyı kullanarak Step motorun konum kontrolü için
yazılan program aşağıda görülmektedir. Bu programı da PROTEUS programındaki PIC
16F628A’nın içine atarak sistem test edilebilir. [4]
Aşağıda step motorun sürülmesi için yazılan PIC programı görülmektedir.
#include <16f628A.h> // Kullanılan mikroişlemci tanıtımı
#fuses INTRC_IO,XT,NOCPD,CPD,nomclr // Sigorta ayarları
#use delay (clock=4000000) // Çalışma frekansı
#use fast_io(a) // A port aktif
#use fast_io(b) // B port aktif
int z=0,hiz=40,i,tus=0;
const int tam_sag[]=0x03,0x06,0x0c,0x09; // Sağa dönüş adımları
const int tam_sol[]=0x09,0x0c,0x06,0x03; // Sola dönüş adımları
void saga_donus (void) // Sağa dönüş fonksiyonu
for(i=0;i<12;++i)
if (z==4) z=0;
output_B(tam_sag[z]);
delay_ms(hiz); z++;
void sola_donus (void) // Sola dönüş fonksiyonu
25
if(z==4) z=0;
for(i=0;i<12;++i)
++z; if (z==4) z=0;
output_b(tam_sol[z]);
delay_ms(hiz);
void eee (void) // durak
if(tus==1)
for(i=0;i<4;i++)
write_eeprom(i,i+1);
if(tus==2)
for(i=0;i<4;i++)
write_eeprom(i,((i+1)%4)+1);
if(tus==4)
for(i=0;i<4;i++)
write_eeprom(i,((i+2)%4)+1);
if(tus==8)
for(i=0;i<4;i++)
write_eeprom(i,((i+3)%4)+1);
26
void main () // Ana fonksiyon
int zz=0,adres,s;
set_tris_b(0x20);
set_tris_a(0x0F);
output_b(0x00);
output_a(0x00);
while(input(pin_b5)!=1)
sola_donus();
for(i=0;i<4;i++)
write_eeprom(i,i+1);
while("KTU")
dur_step:
output_high(pin_b4);
tus=input_a();
if(tus==0)
goto dur ;
switch(tus)
case 1: zz=1;break;
case 2: zz=2;break;
case 4: zz=3;break;
27
case 8: zz=4;break;
for(i=0;i<4;i++)
if(zz==read_eeprom(i)) //durak2
adres=i; durak (); break;
if(adres>2)
saga_donus();
else
if(adres==0)
goto dur;
else
for(s=0;s<adres;s++)
sola_donus();
28
2.3. Sistemin Çalışma Prensibi
Sistemde öncelikle olarak kahvaltı tabağı olarak kullanılacak olan dört parçaya
bölünmüş olan disk motor miline yerleştirilmiştir. Diskin dört yönünden (kuzey, güney,
doğu, batı) olmak üzere hangi yönde hangi dilim isteniyorsa o yöndeki butona basılarak
istenilen dilim kullanıcın önüne getirilecektir. Bunun içinde her yönde 4 dilimi temsilen 4
buton kullanılacaktır. Toplam da 16 buton 4 yönde yerleştirilerek kullanıcının rahatça diski
yani tabağı kontrol etmesi sağlanacaktır. Sistemin şematik olarak görünümü aşağıda Şekil
2.3’ de görülmektedir.
Şekil 2.3. Sistemin şematik gösterimi
Sistemin çalışma prensibi olarak da örnek verilirse örneğin diskin doğu tarafında
olduğumuzu varsayalım. Doğu tarafında A dilimini istenirse doğudaki A butonuna basarak
A diliminin önümüze gelmesini sağlanacaktır. Referans olarak kullanılan konumdan
istenilen konuma gelmek için step motor 180 derece açıyla dönecektir. Sistemde referans
29
olarak kullanılan noktayı belirlemek için CNY 70 sensörü kullanılmıştır. Sistem ilk
çalışmaya başladığında 1 nolu durumda durması için CNY 70 sensör referans noktasında
PIC 16F628A’ nın 11 nolu bacağına 5 V DC gerilim gelmesini sağlayarak diskin referans
noktasında durmasını sağlayacaktır. Bundan sonra kullanıcıya bağlı olarak istenilen yönde
ve konumda diskin kontrolü sağlanabilir.
Sistem çalışma olarak çok karışık gözüksede aslında 4 temel pozisyonda çalışmaktadır.
Bunlardan 1 nolu durumu referans alınarak diski 2 durumu için 90° ,3 durumu için 180° ,4
durumu içinde 270° döndürülerek istenilen konum elde edilecektir.
Sistemde 16 buton kullanılacaktır. Ancak temelde 4 buton olacaktır. Bu da sistemde
kolaylık sağlayacaktır. Örnek vermek gerekirse diskimiz 1 durumundan 2 durumuna
geçmesi için kuzey yönünden A butonuna, güney yönünden C butonuna, doğu yönünden B
butonuna, batı yönünden D butonuna basmak gerekir. Şekil 2.3’de görüldüğü gibi bu 4
durum aslında aynı durumdur. Bu nedenle 2. Durum için geçerli olan A, B, C, D butonları
aynı girişten kontrol edilebilir.Geri kalan diğer 3 durumda 3 girişle kontrol edilmiştir.
Projenin son hali aşağıdaki Şekil 2.2.2 ve Şekil 2.2.3’de gösterilmiştir.
Şekil 2.2.2 Sistemin üstten görünümü
30
Şekil 2.2.3 Sistemin Yandan Görünümü
31
3. GELİŞTİRİLEBİLİRLER
Yapılan uygulamada düşünülen kahvaltı tabağı tek katlıdır. Büyük işletmelerde
kullanılabilirliği açısından iki veya üç katlı yapılabilir. Bunun için bir step motor yerine iki
veya daha fazla kullanılabilir. Kullanılan step motorların milleri birbiri içinden geçmek
üzere birden fazla katlı bir kahvaltı tabağı yapılabilir..
Projede kullanılan step motorun gücü, hızı ve adım açısı değiştirilerek daha hızlı ve
daha büyük bir kahvaltı tabağı düşünülebilir. Ayrıca bu kahvaltı tabağından sadece
istenilen dilimi önümüze getirecek şekilde bir sistem tasarımıda yapılabilir. Böylece bir
kullanıcın önündeki dilim alınmadan diğer kullanıcının önüne istenilen dilim getirilebilir.
32
4. SONUÇLAR
Yapılan uygulamada günlük hayatta rahatlıkla kullanılabilecek bir kahvaltı tabağı
yapılmıştır. Akıllı kahvaltı tabağı projesi dahada geliştirilebilir olup proje tamamen
başlangıç aşaması olarak yapılmıştır. Yapılan testlerde kahvaltı tabağının bir peryodunun
yaklaşık olarak 3 saniyede tamamladığı görülmüştür. İki dilim arasında ise 0.5 saniye ile 2
saniye arasında değişimi aşağıda Şekil 4’ te görülmektedir. Ayrıca çok büyük ağırlıklarda
çalışması zor olacağından kullanılan step motor yerine daha kararlı ve güçlü bir step motor
kullanılarak daha büyük bir proje gerçeklenebilir. Projede kullanılan CNY 70 sensörü
yerine daha sağlam konum ve kararlı çıkış veren bir sensör kullanılırsa tabağın konumu
çok daha hassas olarak kontrol edilebilir.
Bu projede bir mikrodenetleyici yardımıyla sistemin nasıl kontrol edilebileceğini, daha
sonra ise sistem elemanlarının kontrolünün, hangi devre elemanlarıyla ve nasıl
yapılacağını, kontrol için seçilen elemanların hangi kriterler göz önünde bulundurarak
seçileceği öğrenilmiştir.
Şekil 4 : Dilimlerin dönme açılarına göre değişimi
33
5. KAYNAKLAR
[1] BAL, Güngör, ‘Özel Elektrik Makinaları’ ,2004,Ocak
[2] GÜMÜŞKAYA, Haluk, ‘Mikroişlemciler ve 8051 Ailesi’ ,2007,Temmuz
[3] BENSON, David, ‘An Introduction to Stepper Motors for The Experimenter’
,2007,Şubat
[4] ÇİÇEK, Serdar, ‘CCS C ile PIC Programlama’ ,2009,Temmuz