bĠtĠrme projesĠ su Ġle yazi yazma projesĠ · Örneğin iki led‟in flip -flop gibi...
Post on 05-Sep-2019
6 Views
Preview:
TRANSCRIPT
T.C.
KARADENĠZ TEKNĠK ÜNĠVERSĠTESĠ
Mühendislik Fakültesi
Elektrik-Elektronik Mühendisliği Bölümü
BĠTĠRME PROJESĠ
SU ĠLE YAZI YAZMA PROJESĠ
210302 Melike Gülşen ERDOĞAN
228522 Fehmi EROL
228540 Yıldız BOĞAZKÖY
240447 Safa BAZOĞLU
Yrd.Doç.Dr. Yusuf SEVĠM
Haziran, 2013
TRABZON
T.C.
KARADENĠZ TEKNĠK ÜNĠVERSĠTESĠ
Mühendislik Fakültesi
Elektrik-Elektronik Mühendisliği Bölümü
BĠTĠRME PROJESĠ
SU ĠLE YAZI YAZMA PROJESĠ
210302 Melike Gülşen ERDOĞAN
228522 Fehmi EROL
228540 Yıldız BOĞAZKÖY
240447 Safa BAZOĞLU
Yrd.Doç.Dr. Yusuf SEVĠM
Haziran, 2013
TRABZON
i
LİSANS BİTİRME PROJESİ ONAY FORMU
…………. ………………… tarafından …………………………… yönetiminde
hazırlanan “………………………………………………………………………….”
başlıklı lisans bitirme projesi tarafımızdan incelenmiş, kapsamı ve niteliği
açısından bir Lisans Bitirme Projesi olarak kabul edilmiştir.
DanıĢman : Yrd. Doç. Dr. Yusuf SEVĠM ………………………………
Jüri Üyesi 1 : Yrd. Doç. Dr. Gökçe HACIOĞLU …………………………
Jüri Üyesi 2 : Öğr. Gör. Cahit ALTAN ………………………………
Bölüm BaĢkanı : Prof. Dr. Ġ.Hakkı ALTAġ ………………………………
ii
ÖNSÖZ
Bu kılavuzun ilk taslaklarının hazırlanmasında emeği geçenlere ve kılavuzun son
halini almasında yol gösterici olan kıymetli hocamız Yrd.Doç.Dr. Yusuf SEVĠM ‘e
Ģükranlarımızı sunmak istiyoruz. Ayrıca bu çalıĢmayı destekleyen Karadeniz Teknik
Üniversitesi Rektörlüğü’ne Mühendislik Fakültesi Dekanlığına ve Elektrik-Elektronik
Mühendisliği Bölüm BaĢkanlığına en içten teĢekkürlerimizi sunarız.
Her Ģeyden öte, eğitim hayatımız boyunca bizlere maddi manevi olarak tam destek
veren ailelerimize ve bize hayatlarıyla örnek olan tüm hocalarımıza saygı ve
sevgilerimizi sunarız.
Ayrıca projemiz süresince bizden yardımlarını esirgemeyen arkadaĢımız Hakan
ERDÖL’e teĢekkürü bir borç biliriz.
HAZĠRAN, 2013
210302 Melike GülĢen ERDOĞAN
228522 Fehmi EROL
228540 Yıldız BOĞAZKÖY
240447 Safa BAZOĞLU
iii
İÇİNDEKİLER
ÖNSÖZ…………………………………………………………………..………………ii
ĠÇĠNDEKĠLER………………………….……………………………...……………….iii
ÖZET………………………………………………………………...………………..…v
ġEKĠLLER DĠZĠNĠ……………………………………………………...………..….....vi
TABLOLAR DĠZĠNĠ…………………………………………………………………..vii
SEMBOLLER VE KISALTMALAR……………………………………….………...viii
1. GĠRĠġ…………………………………………………………...……………………..1
2. TEORĠK ALTYAPI.……………………………………………………………….…2
2.1. C Programlama Dili……………………………….………………………………...2
2.1.1 Neden C?.……………………………………………....…………………..…..2
2.1.2. C Kodlarının Temel Özellikleri…………………………...…………………...3
2.1.3. DeğiĢken Nedir?.................................................................................................3
2.1.4. C ile Assembly Arasındaki Farklar…………………….....……………….…..3
2.1.5. Döngü Kavramı……………………….………………………………….……3
2.1.5.1. For Döngüsü…………………………...…………………..…….……….4
2.1.5.2. While() Döngüsü…………………………...…………………….………5
2.1.6. Else if KoĢulu………………………………...…………….…………….……5
2.1.7. Zaman Geciktirme ……………………………………..……………….……..6
2.1.8. Diziler…………………………………...………………………………….….6
2.1.9. Fonksiyon Tanımlama………………………………………...………….……6
2.1.10. Yazılan Programın ÇalıĢma Prensibi……………………………….….……..7
2.2. MikroiĢlemciler………………………………………………..…………….…...…7
2.2.1. MikroiĢlemci Nedir?...........................................................................................7
2.2.2. Tarihçesi………………………...………...…………………………...………8
2.2.3. MSP430F169…………….…………………………………………………….8
2.2.4. MSP430F169’un Özellikleri……………………………………………......….9
2.2.5. JTAG Arayüzü………………………………………………….……….……10
2.2.5.1. 4 Kablolu JTAG Arayüzü………………………………………….……10
2.2.5.2. 2 Kablolu JTAG Arayüzü…………………………………………….…11
iv
2.2.6. JTAG EriĢim Makroları…………………….…………………….…………..11
2.3. Transistör Nedir?......................................................................................................11
2.3.1. NPN Transistör………………………...………………………….………….12
2.3.2. PNP Tipi Transistör…………..………………...…………………….………13
2.3.3. Transistör ÇeĢitleri……………...………………...…………………….……15
2.3.4. Transistörleri Kullanım Alanları………………………….....………….……15
2.3.5. Transistör ile Anahtarlama……….………………...………….……………..15
2.4. Selenoid Valfler……………..……………………………………………..…...…17
2.4.1. KullanmıĢ olduğumuz solenoid valfin çalıĢma koĢulları……….……..……..18
3. TASARIM……………………………………………………………………….…..20
3.1. Projede Kullanılan Bilgisayar Programları………………………………..……….20
3.1.1. IAR Embedded Workbench………………………………………………….20
3.1.1.1. IAR Embedded Workbench’in Özellikleri…………………..………….20
3.1.2. Eagle………………………………………………...……….……………….21
SONUÇLAR……………………………………………………………………….…..23
YORUMLAR VE DEĞERLENDĠRME………………………………………………24
KAYNAKLAR……………………………………………..……………………..…...25
EKLER……………………………………………………..…………………………..28
Ek-1 Proje Programı…………..………………………………….…………………28
Ek-2 Standartlar ve Kısıtlar Formu………….………………………...……………39
Ek-3 Tablo-1………………………………………………...………………………41
Ek-4 Malzemeler Listesi…………………………………………………………….42
ÖZGEÇMĠġLER…………………………………………………………………….....43
v
ÖZET
Bu projede park, gezi alanları, alıĢveriĢ merkezleri, iĢ yerleri gibi çok uğrak yerlerde
göze hoĢ gelen bir görüntü oluĢması için havada su ile yazı yazma, çeĢitli Ģekiller
çıkarabilme vb. gibi konular üzerinde ve bu projenin günümüze nasıl uyarlanabileceği,
günümüzde hangi alanlarda ve yerlerde kullanılabileceği gibi konularda fikir sunulmaya
çalıĢılmıĢ ve bu konuda çalıĢmalar yapılmıĢtır.
Bu çalıĢmaların daha çok yapılması, daha yaygın olarak kullanılması, görsellik ve
eğlence olarak günümüz yaĢantısına yansıtılması bu projenin amaçlarından biridir.
Küçük iĢyerlerinde, evlerde ve daha birçok yerde bu projedeki çalıĢma geliĢtirilerek
aksesuar olarak da kullanılabilir.
Ġçerik olarak bu projede elektronik valflerle havada su ile yazı yazma, belirli bazı
Ģekiller çıkarabilme hedeflenmiĢtir ve selenoid valfin yanı sıra çeĢitli elektronik
malzemelerde projede kullanılacaktır. Mesela transistörlü anahtarlama devresi, suyun
devir daimini yapacak olan su motoru ve programlanacak MSP430F169 mikroiĢlemcisi
gibi malzemeler de projede yer almıĢtır. Valfler mikroiĢlemci kontrolünde bir yazılım
programı dahilinde anahtarlama devresi sayesinde açılıp kapatılarak istenilen zamanda,
istenilen süre boyunca akıtılarak havada belirli Ģekiller ve harfler yazılmıĢtır.
Bu örnek proje ve bunun gibi örnek projeler sayesinde böyle uygulamalar
günümüzde çoğaltılabilir. O yüzden bu proje üzerinde titizlikle ve dikkatli bir Ģekilde
çalıĢılmıĢtır.
vi
ŞEKİLLER DİZİNİ
Şekil-1. For akıĢ diyagramı……………………………………………………………...4
Şekil-2. Else if akıĢ diyagramı…………………………………………………………..5
Şekil-3. NPN tipi transistör…………………………………………………………….12
Şekil-4. NPN tipi transistörün diyot ile gösterimi……………………………………...13
Şekil-5. PNP tipi transistör……………………………………………………………..14
Şekil-6. PNP tipi transistörün diyot ile gösterimi………………………………………14
Şekil-7. Anahtarlama devresi………………………………………………………......16
Şekil-8. Projede kullanılan solenoid valf…………………………………………..…..19
Şekil-9. MSP430F169 iĢlemcisi programlama kitinin PCB kartı……………………...21
Şekil-10. Transistörlü anahtarlama devresinin PCB kartı……………………..…….....22
viii
SEMBOLLER VE KISALTMALAR
LED Led Emitting Diode
CPU Central Processing Unit
RISC Reduced Instruction Set Computing
DCO Digitally Controlled Oscillator
SPI Serial Peripheral Interface
UART Universal Asynchronous Receiver/Transmitter
JTAG Joint Test Action Group
RAM Random Access Memory
Kb Kilobayt
KHz Kilo Hertz
AC Alternating Current
DC Direct Current
DMA Direct Memory Access
PCB Printed Circuit Board
FRAM Ferroelectric Random Access Memory
GPIO Generel Purpose Input Output
SBWTCK Spy-Bi-Wire Test Clock
V Volt
A Amper
1
1. GĠRĠġ
Günümüzde insanlar çalışma hayatlarının dışında kalan zamanı genellikle park, bahçe,
alış-veriş merkezi gibi mekanlarda geçirmektedir. Dolayısı ile hayatımızda önemli yeri
olan bu mekanların estetiği insanlar için önemlidir.Biz de bu görselliğin mühendislik
imkanları ile geliştirilebileceğini düşündüğümüz için yazılım ve donanım sistemlerini
kullanarak su gösterisi projesi yapmayı uygun gördük.
Her gün değişen ve gelişen teknoloji ile birlikte artan imkanların katkısını kullanarak
alışılmışın dışında bir proje yapmayı hedefledik. Bu hedef doğrultuda elektronik valflerin
anahtarlama özelliğinden yararlanarak suyun akışını kontrol edebilme ve bu control
doğrultusunda suyu istediğimiz aralıklarla akıtarak harf veya çeşitli şekiller oluşturmayı
hedefledik. Bu hedefe ulaşmaya çalışırken mikroişlemcilerin programlanabilme ve kontrol
edilebilme özelliklerinden yararlandık. Programlamayı da günümüzde kullanım rahatlığı
sağlayan ve yaygın olan yazılım dili C programlama dili ile yapmaya karar verdik.
2
2. TEORĠK ALTYAPI
2.1. C Programlama Dili
Programlama Dili bilgisayarda çözülecek bir sorun için çözümün bilgisayara
yazılmasını sağlayan kuralları olan ve bu kurallara bağımlılığı gerektiren tanım kümesidir.
C Programlama Dili genel amaçlı orta seviyeli ve yapısal bir programlama dilidir.
Esnek yapısı ile donanım denetiminden iletişim sistemi yazmaya kadar çeşitli uygulama
alanlarında kullanılır. C dili, düşük seviyeli dillerin özellikleri ile yüksek seviyeli dillerin
özelliklerini taşır [1].
2.1.1. Neden C ?
C Programlama Dili'ni popüler kılan önemli nedenler aşağıda sıralanmıştır.
• C, güçlü ve esnek bir dildir. C ile iletişim sistemi veya derleyici yazabilir, kelime
işlemciler oluşturabilir veya grafik çizebiliriz.
• C, iyi bir yazılım geliştirme ortamına sahiptir.
• C, özel komut ve veri tipi tanımlamaya izin verir
• C, taşınabilir bir dildir.
• C dilinin gelişimi tamamlanmış ve standardı oluşmuştur.
• C, yapısal bir dildir. C kodları fonksiyon olarak adlandıralan alt programlardan
oluşur.
• C++, Java, JavaScript, JavaApplet, PHP, C#, ... gibi diller C dilinden esinlenmiştir[1].
• Tasarım özellikleri çok iyidir. C „ye ilişkin yapıların ve operatörlerin bir kısmı daha
sonra diğer diller tarafından da benimsenmiştir[2].
• Algoritmik bir dildir. Dilin sintaks ve sematik yapısını bilmek yetmez. Problemleri
çözebilecek bir algoritma bilgisine de ihtiyaç vardır[2].
• Atomik bir dildir.C de alt programlama tekniği ileri düzeyde kullanılmaktadır[2].
• Sistem programlama dışında da birçok uygulama da c dili kullanılmaktadır.
3
2.1.2. C Kodlarının Temel Özellikleri
Bir C programı aşağıdaki özellikleri mutlaka taşımalıdır.
• Yazılımda kullanılacak olan her fonksiyon programın başına eklenmelidir.
• Her C programında main() fonksiyonunu bulunmalıdır.
• Program içinde kullandığımız değişkenler ve sabitler mutlaka tanımlanmış olmalıdır.
2.1.3.DeğiĢken Nedir?
Değişkenler, girdiğimiz değerleri alan veya programın çalışmasıyla bazı değerlerin
atandığı, veri tutucularıdır. Değişken tanımlamaysa, gelecek veya girilecek verilerin ne
olduğuna bağlı olarak, değişken tipinin belirlenmesidir. Yani a isimli bir değişkeniniz
varsa ve buna tamsayı bir değer atamak istiyorsanız, a değişkenini tamsayı olarak
tanıtmanız gerekir. Keza, a'ya girilecek değer eğer bir karakter veya virgüllü sayı olsaydı,
değişken tipinizin ona göre olması gerekirdir[3].
C programlama dilinde kullanılan değişkenler Ek-3‟te belirtilmiştir.
2.1.4. C Ve Assembly Arasındaki Farklar
C dili derlendiği zaman çok kompakt bir hale geldiği için yüksek seviyeli bir dil olduğu
unutulur ve bir makro assambler gibi düşünülür. Oysa c dilinde aritmetik işlemler parse
edilir ve birden fazla runtime‟da(çalışma zamanında) işlenecek kod üretilir. Makina
dillerinden bağımsız olan komutlar, döngüler kullanılır.Ayrıca aynı işlevi gören bir c
programı assembly programından daha kısadır. Assembly‟de yazdığınız programın hangi
satırlarının ne iş yaptığını bir süre sonra anlamayabilirsiniz. Çünkü anlaşılması zor ve
karmaşık bir dildir.Bu nedenle kodların sonuna açıklama bölümleri eklemek gerekir.Ayrıca
işlemciye birebir bağımlıdır.Ancak assembly dilinin şöyle bir avantajı vardır.İşlemcinin
gücünü en iyi şekilde ortaya çıkarabilecek tek programlama dilidir. Çok hızlı çalışır[4].
2.1.5. Döngü Kavramı
Programlama konusunda en önemli yapılardan biri döngülerdir.Döngüler, bir işi,
belirlediğiniz sayıda yapan kod bloklarıdır.Ekrana istediğimiz kadarişlenilen kodu yazdıran
bir programda aslındakodu tek bir defa yazarız döngü burada devreye girip, bizim için bu
4
kodu istediğimiz sayıda tekrarlar. Döngülerde en önemli unsur iyi yazılıp, optimize
edilmediği takdirde, bilgisayarınızın işlem gücünü gereksiz yere tüketmesi ve harcanan
zamanı arttırmasıdır. Benzer şekilde, iyi yazılmış bir döngü, programınızı hızlı
çalıştıracaktır.Bitirme projemiz de kullandığımız program adımı for ve while()
yapılarıdır[5].
2.1.5.1. For Döngüsü
While döngüsünden farklı olarak for yapısı, yenilemeli-tekrarlamalı yapılarda kullanıma
daha uygundur.For döngüsünün yazım tekniği daha kullanışlıdır. Programlarda, while
döngüsünden çok daha fazla for kullabiliriz. Çünkü for sadece matematiksel hesaplama
işlemlerinde değil, diziler gibi konularda sürekli kullanılan bir yapıya sahiptir[5].
ġekil-1. For akış diyagramı
For akış diyagramı Şekil-1‟de gösterilmiştir.
Komutlar
Artırma
Azaltma
Değer Atama
Koşul
5
2.1.5.2.While() Döngüsü
Ana program içerisinde yazdığımız program parçasını, programın koşması
sonlandırılana kadar sistem içinde sonsuz döngüye sokar. Bu döngüyü kullanmamızdaki
amaç, ana programın içerisine yazdığımız komutları biz işlemimizi sonlandırana kadar
sistemde gözlemlemek olmuştur.
2.1.6. Else if KoĢulu
Else if komutları birden fazla koşul yazmak için beraber kullanılan iki ifadedir[6]. Else
if‟in akış diyagramı Şekil-2‟de gösterilmiştir[7].
ġekil-2. Else if akış diyagramı
Koşul 1
Koşul 2
Koşul N
Komutlar 1
Komutlar 2
Komutlar N
Komutlar
yanlış
yanlış
yanlış
doğru
doğru
doğru
6
2.1.7. Zaman Geciktirme
Zaman geciktirme döngüleri, giriş-giriş, giriş-çıkış , çıkış-çıkış işlemlerinde belirli
zaman aralıklarında birbirlerine bağlı yapılar oluşturur. Örneğin iki LED‟in flip -flop gibi
çalıştırılması için önce bir LED‟in programda belirlenen süre kadar yanması ve daha sonra
bu LED‟in sönerek diğer LED‟in yanması gerekir. İkinci LED‟in yanması için birinci
LED‟in sönme ön şartında geçen zaman, zaman gecikme döngüleri ile sağlanır.
Buton uygulamalarında ise butonun basılıp bırakılma durumunda kontaklarında oluşan
ark, giriş bilgisinin “1” ve “0” lar arasında sürekli olarak değişmesine neden olur.
İstenilmeyen bu durumu önlemek için buton kontrolünde zaman gecikme döngüleri
kullanılır.Böylece buton kontaklarında “1” ve “0” lardan oluşan istenilmeyen arklar oluşsa
dahi gecikme süresi içerisinde meydana gelen bu olaylar devrenin çalışmasını
etkilemez[8].
Projede yazdığımız programda geciktirme komutu aşağıda gösterilmiştir.
void geciktirme(void)
volatile unsigned int a;
for (a=0;a<=60000;a++);
Yukarıda gösterilen for döngüsüyle birlikte 1‟den 60000‟e kadar boş döngü
oluşturularak gecikmenin yaklaşık olarak 1saniye olması sağlandı. Bu sürenin program
içerisinden milisaniyelere kadar indirilmesi mümkündür.
2.1.8. Diziler
Dizi, aynı işi yapan verilere tek bir isimle erişmek için kullanılan bir yapıdır.Bir dizinin
içerisindeki veriler bellekte ard arda saklanır. Bu yüzden diziler program içerisinde
çağırıldığı zaman dizi içerisindeki veriler de tek tek çağırılmış olur[9].
2.1.9. Fonksiyon Tanımlama
C dilinde yazılan programlar, fonksiyon olarak tanımlanan alt programlardan
oluşmaktadır. Bu fonksiyonlar main() ve void main() gibi komutlarla oluşturulur. Main()
komutu ana fonksiyonun oluşturulmasında kullanılırken void main() komutu ise alt
7
fonksiyonların oluşturulmasında kullanılır. void main() fonksiyonları tek tek main()
fonksiyonun içinde belirtilmektedir. Bu sayede ana program içinde çağırılan fonksiyonlar
ana fonksiyonda koşturularak programın çalıştırılması sağlanır.
2.1.10. Yazılan Programın ÇalıĢma Prensibi
Ek-1‟de verilen yazmış olduğumuz programla birlikte MSP430F169 işlemcisi
programlanmıştır.Bu program yazılırken alfabenin tüm harfleri matris olarak yazılmış ve
tüm matristeki satırlar tek tek hexadecimal kodlara dönüştürülmüştür.Her harf için
fonksiyonlar oluşturularak fonksiyonlar altında bu kodlar diziler içine
kaydedilmiştir.Kaydedilen diziler işlemcinin Port1 ve Port2 çıkışlarına atanmıştır.Ayrıca
her harf için tanımlanan bu fonksiyoların sonunda geciktirme fonksiyonu çağırılarak
gecikme sağlanmıştır.Bu gecikmeler, her harf tek tek görüntüleneceği için harflerin
birbirine karışmasını engellemiştir. Ana programda else if komutu, deklerasyon olarak
tanımlı olan char karakter dizisinin içine yazılan kelimedeki harfleri tek tek tarayıp
karakter eşleşmesi yaptıktan sonra ilgili harfe ait fonksiyon içerisinden matrisi çağırıp
harfe ait hexadecimal kodları işlemcinin çıkış portlarına atar.
2.2. MikroiĢlemciler
2.2.1.MikroiĢlemci Nedir?
Mikroişlemciler, bilgisayar sisteminin beyni diye tabir edilen elemanlarıdır .Yani
bilgisayar olaylarını ı kontrol ederek veri işleme işlevlerini yerine getiren elemana
diyoruz. Kısaca işlemci veya CPU,(ki işlemci ile CPU aynı manaya da gelebilir) kullanıcı
ya da programcı tarafından yazılan programları meydana getiren komutları yorumlayan
ve yerine getiren tüm devreleri kapsıyor[10].
CPU olarak da bilinen ana işlem biriminin ana bileş eni olan mikroişlemciler, sistem
fonksiyonların devre dahilinde programlanabilir bir şekilde çalışmasını sağlıyor.
Elektronik ortamda sayısal bilgilerin işlenmesini ve programlanmasını sağlayan
mikroişlemciler, CPU biriminde kullanılan kelime boyutunun 32 den 4 bit seviyesine
düşürülmesi ile ortaya çıkmıştır. Ana işlemci birimi mantıksal devreler kullanarak sistem
fonksiyonlarının düzenlenmesini sağlamakla beraber devrede kullanılan transistörler ,
mikroişlemci sayesinde tek modüle sığdırılabilir hale getirilmiştir[11].
8
Pratikte, mikroişlemci ve CPU, yani merkezi işlem birimi (central processing unit)
terimleri aynı şeyi belirtmektedir.Bu birçok insanın bilgisayarın beyni olarak tanımladığı
ve sistemin içindeki en önemli parçadır.
Mikroişlemciler CPU performansı çok önemli bir gelişme olduğu gibi, aynı zamanda
fiyat bakımından da çok ucuza maledilebilmektedir. Fiyat açısından büyük bir düşüş
yaşanmasını sağlayan mikroişlemci teknolojisi, devam eden yıllarda hızla dünya
geneline yayılacak olan ev tipi bilgisayarların da önemli bir elemanı haline
gelmiştir[12].
2.2.2.Tarihçesi
Mikroişlemcileri piyasaya ilk süren şirket Amerikan Intel firmasıdır. Intel'in
egemenliği halen devam ediyor. Intel, zaman içinde çok çeşitli mikroişlemciler üretti. Bu
mikroişlemci çeşitliliği tek başına zaten çok karışık iken bir de Intel'in rakipleri daha
değişik mikroişlemciler ile piyasaya girince karışıklık daha da büyümüş. Intel'in
mikroişlemcileri diğer üreticiler için iyi bir model oluşturmakta ve bazen Intel'in
kendisinin ürettiği mikro işlemcilerden daha iyileri yani kopyaları piyasayı
doldurmuştur. Intel'in rakipleri tarafından üretilen mikroişlemcilerin önemli bir bölümünün
uyumluluğu test edilmiş, güvenilir işlemcilerdir. Gönül rahatlığıyla bu işlemcileri
alabilmemiz mümkündür[13] .
2.2.3. MSP430F169
Texas Instruments‟ın üretmiş olduğu düşük güçlü mikrodenetleyicisi MSP430 ailesi,
özellikle düşük güç uygulamaları için tasarlanmıştır. Düşük güç tüketimi 5 farklı güç modu
ile ayarlanır. Güçlü 16 bit RISC CPU mimarisi, 16 bit saklayıcıları ile maksimum
verimlilik amaçlanmıştır. Dijital olarak kontrol edilen osilatörü (DCO) sayesinde düşük
güç modlarından aktif moda 6 µs „den daha az sürede uyandırmaya izin verir.Bu “hızlı
uyanış” düşük güç tüketiminin temel mantığını oluşturur.Seri haberleşme arayüzü
(USART0 ve USART1) istenirse SPI, I2C UART modunda çalıştırılabilir.
Fazla sayıda bacağa sahip olması bizim projemizde bu mikroişlemciyi tercih etmemizde
etkin oldu.16 tane elektronik selenoid valfle yaptığımız bu projeyi kontrol edebilmemiz
için 16 tane bacağa ihtıyacımız olduğu için ve daha bağlamamız gereken JTAG arayüzü ve
diğer yan bağlantılar gerektiği için bu işlemciyi tercih ettik.
9
Proje de öncelikle biz C++ ile yazdığımız programı JTAG arayüzü aracılığıyla
assembler diline çevriliyor; bu programı da MSP430F169‟un içine atarak devreyi bu
şekilde kontrol ettik[14].
2.2.4.MSP430F169 Özellikleri
64 bacak
60Kb+256byte Flash Memory,
2Kb RAM.
JTAG ile programlanabilir
RS232 sürücü + DB9 konnektörü
Kullanıcı düğmesi
Güç kaynağı LED‟i
Kullanıcı durum LED‟i
32.768 kHz osilatör kristali
RESET düğmesi
RST/NMI yukarı çekme pini
AC veya DC güç kaynağı harici güç kaynağı girişi
Voltaj regülatörü ve güç kaynağı filtreleme kapasitörü
Her uç pin için uzatma başlıkları
0,1 adım, Vcc + GND otobüsü ile Prototip alanı[15].
Düşük besleme voltajı aralığı 1,8V-3,6V,
Aşırı düşük güç tüketimi;
Aktif mod=1,1 µA 1 MHZ‟ de 2,2V‟da
Hazır bekleme modu
Kapalı modu (RAM saklama) =0,2 µA
6 µs „den daha az zamanda stand-by modundan uyanma,
16 bit RDSC yapısı, 125 ns komut çevrim zamanı,
3 kanal dahili DMA,
12 bit A/D dönüştürücü dahili referans ile model ve tutma ve autoscan özelliği,
Çift 12 bit DA senkronizasyonlu dönüştürücü,
Giriş gerilimini kontrol eden denetleyici[14].
10
Bir önceki sayfada verilen MSP430F169 işlemcisinin özelliklerinden ilk 16‟sı Kaynak
[15]‟den alınmıştır.
2.2.5. JTAG Arayüzü
JTAG, tüm MSP430 mikroişlemci ailesinin programlasında kullanılan bir arayüzdür.Bir
nevi MSP430'u JTAG arayüzü üzerinden programlamak mümkündür. MSP430 JTAG
portu üzerinden işlemcinin flash ve FRAM bellek bölgesi programlanabilmektedir. FRAM
belleği ferroelektrik RAM bellek olarak tanımlanmaktadır.Bu bellek data okuma ve yazma
işlemlerini normal bir RAM belleğe göre daha hızlı yapabilmektedir.JTAG arayüzü 4
kablolu ve 2 kablolu olmak üzere 2 çeşittir. Ancak MSP430un tüm çeşitleri 4 kablolu
JTAG'ı desteklerken bazıları da 4 kablolunun yanı sıra 2 kablolu JTAG arayüzünü de
desteklemektedir. Bunları kullanarak bilgisayar üzerinden MSP430 işlemciye erişilebilir.
Bu arayüzleri birbirlerine göre kıyaslarsak 2 kablolu JTAG, 4 kablolu JTAG'a göre
daha yavaştır. 2 kablolu JTAG'ın TEST ve RST olmak üzere iki adet pini mevcutken 4
kablolu JTAG'in 4 tane GPIO (Generel Purpose Input Output) pinleri bulunmaktadır.
Ayrıca 4 kablolu JTAG kullanırken diğer pinler kullanılamaz.
2.2.5.1. 4 Kablolu JTAG Arayüzü
Normal bir JTAG arayüzünden data alışverişi yapmak için 4 sinyal gereklidir.Büyük
MSP430 işlemcisinde bu sinyalleri iletmek için gerekli pinler mevcuttur.Ancak küçük
MSP430 işlemcisinde TEST pininden uygulanması gereken ek bir sinyal daha
gereklidir.Ayrıca besleme ve toprak bağlantıları da yapılmalıdır. 4 kablolu JTAG pinleri ve
gereklilikleri;
•TMS pini giriş pinidir. JTAG'a giden sinyalleri kontrol etmemize yarar.
•TCK pini giriş pinidir. JTAG'ın clock girişidir.
•TDI pini giriş pinidir. Data girişi bu pinden sağlanır.
•TDO pini çıkış pinidir. Data çıkışı bu pinden sağlanır.
•TEST pini giriş pinidir. JTAG pinlerinin etkinleştirilmesini sağlar.
MSP430 ile JTAG arayüzü arasındaki haberleşmeyi sağlam için TEST pininin
etkinleştirilmesi gerekmektedir.
11
2.2.5.2. 2 Kablolu JTAG Arayüzü
2 kablolu JTAG'ın 4 kablolu JTAG'a göre bazı dezavantajları vardır.Ancak 2 kablolu
JTAG'a ek bir mantıkla 4 kablolu JTAG'daki gibi haberleşme sağlamak mümkündür.2
kablolu JTAG arayüzünde 2 adet pin mevcuttur. Bunlardan biri SBWTCK (Spy-Bi-Wire
test clock) pinidir ve bu pin clock girişidir. Normal çalışmada bu pin resetlenir. Diğeri ise
SBWTDIO (Spy-Bi-Wire test data input/output) pinidir ve çift yönlü data aktarımını sağlar
ve 2 kablolu JTAG'ın yükünü azaltır.
2.2.6. JTAG EriĢim Makroları
JTAG iletişim makroları ve bunların işlevleri şunlardır;
•IR_SHIFT makrosu 8 bitlik bilgiyi gerekli registerin içine kaydırır. Bu 8 bitlik değeri
TDO yoluyla kaydırır.
•DR_SHIFT16 makrosu 16 bitlik kelimeyi JTAG data registerine kaydırır ve bu 16
bitlik değeri TDO yoluyla kaydırır.
•DR_SHIFT20 makrosu 20 bitlik adres kelimesini JTAG'ın Adress Bus'ına kaydırır ve
bu 20 bitlik değer TDO yoluyla kaydırılır.
•MsDelay makrosu milisaniyeler mertebesinde geciktirme yapar.
•SetTCLK makrosu TCLK pinini setler.
•ClrTCLK makrosu TCLK pinini resetler.
•TDOvalue makrosu son değişkeni içeren değer TDO üzerine kaydırılır[16].
2.3. Transistör Nedir ?
Transistör kelimesi transfer ve rezistans kelimelerinin bir araya gelmesi ile oluşmuştur.
Transistör iki PN diyotunun birleştirilmesiyle oluşur. Yapısı her ne kadar diyotun yapısına
benziyor olsa da çalışması farklıdır. Transistör girişine uygulanan işaretleri yükselterek
gerilim ve akım kazancı sağlar.Bu yüzden yükselteç devrelerinde kullanılır.Transistörler üç
kutuptan oluşmaktadır; Emitör(E) , Kollektör(C) , baz(B) dir.
Emitör (E): Akım taşıyıcıların harekete başladığı bölgedir. Yayıcı olarakta
adlandırabiliriz.
Kollektör (C): Akım taşıyıcıların toplandığı bölgedir. Toplayıcı olarakta
adlandırabiliriz.
12
Baz (B): Transistörün çalışmasını etkileyen bölgedir. Taban olarakta adlandırabiliriz.
Transistörler NPN ve PNP olmak üzere iki ana çeşiti vardır[17].
2.3.1. NPN tipi transistor
NPN tipi taransistörler iki N tipi yarı iletken malzeme arasına P tipi yarı iletken
malzeme yerleşitirilmesi ile meydana gelir.P tipi yarı iletken beyz tabakasını oluşturur ve
bu tabaka elektron geçişini kontrol etmektedir.
ġekil-3. NPN tipi transistör
Şekil-3‟te NPN transistörünün sembolü ve iç yapısı gösterilmiştir. NPN tipi
transistörlerin yukarıdaki şekilden de görüldüğü üzere Vbb kaynağının artı ucu P tipi yarı
iletkeni pozitif yükler.Vcc kaynağının eksi ucu emetöre bağlıdır ve bu kutuptaki elektronlar
yukarı doğru itilir. P tipi yarı iletken tarafından bu elektronlar çekilir[18].
-
+ +
-- --
------- +
- Vcc
+ - Vbb
N
P
N
B
C
E
13
ġekil-4. NPN tipi transistörün diyot ile gösterimi
Şekil-4‟te NPN transistörünün diyot ile gösterimi verilmiştir.
„NP „ Emitör - Baz diyot
„PN‟ Baz – Kollektör diyot
Emitör „den akan akım kolektörden ve beyz ‟ den akımların toplamına eşittir.
𝐼𝑒 = 𝐼𝑏 + 𝐼𝑐 (1)
𝐼𝑒 = 𝛽 + 1 ∗ 𝐼𝑏 (2)
Denklem (1) ve (2)‟de NPN transistörle ait akım denklemleri verilmiştir.
NPN tipi transistör de ;
Emitere negatif (-) gerilim , kolektöre pozitif (+) gerilim , beyze ise pozitif (+) gerilim
uygulanır[17].
2.3.2. PNP tipi transistor
PNP tipi transistör iki P tipi yarı iletken malzemenin arasına N tipi yarı iletken malzeme
yerleştirilmesi ile meydana gelir. Burada N tipi yarı iletken beyz tabakasını oluşturur ve bu
tabaka elektron geçişini kontrol etmektedir.Yapısı NPN transistörlerin yapısı gibidir.
B
N P N
E C
14
ġekil-5. PNP tipi transistör
Şekil-5‟te PNP transistörünün sembolü ve iç yapısı verilmiştir.
PNP tipi transistörlerin yukarıdaki şekilden de görüldüğü üzere Vbb kaynağının eksi
ucu N tipi yarı iletkeni negatif yükler. Vcc kaynağının eksi ucu kollektöre bağlıdır ve bu
kutuptaki elektronlar aşağı doğru itilir. N tipi yarı iletken tarafından bu elektronlar
çekilir[19].
ġekil-6. PNP tipi transistörün diyot ile gösterimi
Şekil-6‟da PNP tipi transistörün diyot ile gösteriliş şekli verilmiştir.
„PN„ Emitör - Baz diyot
„NP‟ Baz – Kollektör diyot
B
P N P
E C
-
- -
++
++
++++ -
- Vcc
- - Vbb +
P
N
P
B
C
E
+
15
Emitör „den akan akım kolektörden ve beyz‟den akımların toplamına eşittir.
𝐼𝑐 = 𝐼𝑒 − 𝐼𝑏 (3)
𝐼𝑐 = 𝛽 ∗ 𝐼𝑏 (4)
(3) ve (4) numaralı denklemlerde PNP transistörün akımlarının bağıntıları verilmiştir.
PNP tipi transistör de ;
Emitere pozitif (+) gerilim, kolektöre negatif (-) gerilim, beyze ise negatif (-) gerilim
uygulanır.
2.3.3. Transistör ÇeĢitleri
Yüzey Birleşmeli ( Jonksiyon ) Transistör
Nokta Temaslı Transistörler
Unijonksiyon Transistörler
Alan Etkili Transistörler
Foto Transistörler
Tetrot ( dört uçlu ) Transistörler
Koaksiyal Transistörler[20]
Bu transistor çeşitleri Kaynak [20]‟den alınmıştır.
2.3.4. Transistörlerin kullanım alanları
Transistörler elektroniğin her alanında kullanılan devre elemanlarıdır.Elektroniğin en
önemli parçasıdır taransistör.Transistörler girişine uygulanan işaretleri yükselterek gerilim
ve akım kazancı sağlarlar, bu özelliği sayesinde yükselteç olarak çalışma özelliğine
sahiptirler.Bir yandan da anahtarlama elamanı olarak kullanılır, bu kullanımı elektronikte
daha yaygındır.Bizim projemizde transistörler bu kullanım yönüyle öne çıkmaktadır.
2.3.5. Transitör Ġle Anahtarlama
Transistörlerin elektronikte anahtarlama elemanı olarak kullanılması çok
yaygındır.Transistörler kesim, aktif, doyum olmak üzere üç bölgede çalışırlar.Kesim ve
doyum noktasında çok hızlı gidip gelen transistör iyi bir anahtarlama
elamanıdır.Transistörün beyz potansiyeli kolektör potansiyelinde olur ise aktif duruma
16
geçer.Daha net açıklıyacak olursak NPN tipi transistörlerde kolektör pozitif (+), emitör ise
negatif (-) porlama olduğunda beyz silisyum da 0.7V, germanyum da 0.3V daha pozitif (+)
olması gerekir emitöre göre böylece transistör iletime geçebilsin. PNP tipi transistörlerde
ise kolektör negatif (-), emitör pozitif (+) porlama olduğunda beyz silisyum da 0.7V,
germanyum da 0.3V daha negatif (-) olması gerekir emitöre göre ve böylece PNP
transistörüde iletime geçer[21].
Transistörler motor, bobin, lamba gibi gücü yüksek olan ve lojik kapı devrelerinde
anahtarlama elemanı olarak kullanılır[22].
Projemizde anahtarlama yapmak için BD135 transistörünü kullandık. 16 adet
selenoidsu valfi kullandığımız için 16adet anahtarlama devresine ihtiyacımız oldu.
Solenoid su valfini mikroişlemci ile kontrol ettiğimiz bu projede MSP430F169
işlemcisinikullandık. Bu işlemcinin her bir bacağını transistörün baz girişine bağladık.
Şekil-7‟de kullandığımız anahtarlama devresi gösterilmiştir.
ġekil-7. Anahtarlama devresi
Şekil-7‟de görüldüğü gibi işlemcimizin her bir bacağında üretilen işaretimizi transistöre
ilettik ve üretilen bu 0 ve 1 „ler ile transistörümüzü kesim ve doyuma soktuk.Bu kesim ile
doyum arasında hızlı bir anahtarlama yaptık.Bu anahtarlamayı Ek-1 de belirtilen
programda gerçekleştirdik.
M
S
P
4
3
0
BD 135
Vcc=12 V
VALF
R= 1kΩ
-
17
İşaretimiz 0 da iken transistörümüz OFF konumunda valfimiz ise ON konumundadır.
IB=0, IC=0.4A, VCE=0V olur. İşaretimiz 1 de iken transistörümüz ON konumunda valfimiz
ise OFF konumundadır. IB=0.3mA, IC=36mA, VCE=2V olur.
Böylece mikroişlemciye yüklenen program ve transistörümüzün anahtarlama özelliği
sayesinde valfimizi istediğimiz sürede açıp kapamayı sağladık.
2.4. Selenoid Valfler
Hidro Yunancadan dilimize girmiş olan "su" anlamındaki sözcükdür.Hidrolik ise suyun
boru içerisindeki hareketlerini açıklayan bir terimdir. Hidrolik sistemler suyun akışını esas
alan bir sistemdir. Hidrolik sistemlerde kullanılan en önemli techizatların başında valfler
gelmektedir.Elektronik gelişmeye başladıktan sonra valfler de endüstriyel uygulamalarda
kontrol amaçlı kullanılmaya başlanmıştır. Valflerin hidrolik sistemlerde kullanılış nedenini
göz önüne alırsak, endüstriyel uygulamalarda suyun hareketinin veya bir başka
durumlarının kontrol edilebilmesini valfle sağlayabiliriz[23]. Endüstriyel uygulamalarda
tercih edilme nedenleri:
1) Güvenilirliklerinin yüksek olması
2) Bir sistem oluşturulduğunda sistemin diğer parçalarına olan bağlantılarının kolay
olması
3) Uygulanan gerilime karşı verdiği tepkinin hızlı olması. Bunun nedeni de iletimin
elektriksel olmasındandır.
4) Dayanıklıdır ve uzun müddet bir sistem içinde kullanılabilir.
5) Düşük güçlerde çalışabildiklerinden sarfettiği enerji düşüktür[24].
Selenoid valfler hidrolik sistemlerinde kullanılan ve elektrikle çalışan bir valf
çeşididir[25].
Selenoid valfler isminden de anlaşılacağı üzere bir diğer adı bobin de olan makaraya
sarılmış selenoidden meydana gelmektedir[26]. Selenoid valfin esas görevi anahtarlama
yaparak suyun akışını kesmek veya iletmektir. Bunu da içerisinde barındırdığı bobine
uygulanan elektriksel gerilimle meydana getirmektedir[27]. Yani giriş ile çıkış arası
anahtarlama özelliğine sahip bir elemandır[26]. Valfler, bobine uygulanan DC veya AC
gerilimler altında çalışırlar[27]. Bobine uygulanan elektriksel gerilim, selenoidde manyetik
alanın oluşmasını sağlar. Oluşan manyetik alan, manyetik kuvvetle birlikte selenoid valfin
sıvı akışını sağlayan veya kesen kısmını yayla bir mekanizmayla birlikte hareket ettirerek
18
sıvının akışını kontrol edebilmemiz mümkündür. Eğer bobin uçlarına uygulanan gerilim
kesilirse oluşan manyetik alan da manyetik kuvvet de kaybolacağından yay tekrar eski
konumuna dönerek sıvının akışını kesmiş olur[26]. Selenoid valfi oluşturan parçalar ve bu
parçaların görevleri şunlardır:
1) Bobin: İletken telin sarılmasıyla oluşturulan ve elektriksel iletimi sağlayan bir
elemandır.
2) Bobin uçları: Bobinin dış ortama çıkarılmış olan uçlarıdır. Bu uçlara uygulanan
elektriksel gerilimle birlikte selenoid valfin çalışması sağlanır.
3) Çekirdek: Bobin sarımlarının sarıldığı ve manyetik alan oluşturularak hareketli
parçanın hareketini sağlayan elemandır.
4) Hareketli çekirdek: Oluşturulan manyetik alan ile birlikte hareket ederek yayı
sıkıştırmaya yarayan kuvveti sağlayan elemandır.
5) Yay: Selenoid valfin hareketli parçacığın uyguladığı kuvvete karşı kuvvet uygulayan
bir parçadır. Hareketli kısmın uyguladığı kuvvet yay kuvvetinde büyükse yay sıkışarak
valfin açılması sağlanır.
6) Disk: Giriş ile çıkış arasındaki iletimi sağlayan ve yayın uyguladığı kuvvetle hareket
eden parçadır.
DC gerilim altında çalışan valfleri üç başlık altında sınıflandırabiliriz.Bunlar ;
a) Basit aç kapa yapan selenoid valfler
b) Oransal selenoid valfler
c) Hızlı anahtarlamalı valfler [27].
2.4.1. KullanmıĢ olduğumuz selenoid valfin çalıĢma koĢulları
Anahtarlama yapabilme özelliğine sahip olan ve devremizde kullandığımız selenoid
valf üzerinde yapılan testler sonucunda saniyede 30 kez açma-kapama
yapabilmektedir.Ayrıca yapılan testler sonucunda kullandığımız valf 12 V DC gerilim ve
400 mA‟lik DC akım altında çalışmaktadır.
19
ġekil-8. Projede kullanılan solenoid valf
Şekil-8‟de projemizde kullanılan valf gösterilmiştir. Gösterilen solenoid valf normalde
suyu püskürterek akıtmaktadır. Fakat bizim projemizde amaçlanan suyun damla damla
akışını kontrol etmektir. Bu yüzden suyu tanelerini bir araya toplama ve püskürtmeyi
engelleme amacı ile valflerin çıkışlarına pipetler silikon yardımı ile monte edilmiştir.
20
3. TASARIM
3.1. Projede Kullanılan Bilgisayar Programları
3.1.1. IAR Embedded Workbench
IAR Embedded Workbench Kickstart MSP430 mikro denetleyiciler için gömülü
uygulamaları oluşturmak ve hata ayıklamak için bir tümleşik geliştirme ortamıdır
(IDE).IDE bir kod boyutu ile sınırlı C-Compiler/Unlimited Assembler / Debugger /
Simülatör FET içerir. C / C + + derleyicisi‟nin kod büyüklüğünün sınırlaması geleneksel
MSP430 cihazlar için 4 Kbyta, MSP430X cihazları için ise 8 Kbyta 60 Kb„dan büyük
bellekler ile ayarlanır.Debugger karmaşık kod ve veri kesme desteği ile kaynak ve
demontaj düzeyinde hata ayıklama için tam bir entegre ayıklama aracıdır[28].
3.1.1.1. IAR Embedded Workbench’in Özellikleri
Proje yönetim araçları ve editörü ile entegre geliştirme ortamı
MSP430 için son derece optimize C ve C + + derleyicisi
MSP430x5xx dahil olmak üzere tüm MSP430 cihazlar için yapılandırma dosyaları,
FET debugger desteği
Çalışma zamanı kütüphaneleri
MSP430 assembler‟a taşımak
Bağlayıcı ve kütüphaneci araçları
MSP430 simülatörü ve donanım RTOS-farkında hata ayıklama desteği ile IAR C-
SPY Debugger
MSP430 ve kod şablonları için örnek projeler
Kullanıcı ve PDF formatında referans kılavuzları
Bağlam duyarlı çevrimiçi yardım
21
3.1.2. Eagle
EAGLE kolay kullanımlı, grafik arayüzlü güçlü bir PCB tasarım aracıdır.Projemizde
eagle ile birlikte devrelerimizin şematiğini oluşturduk ve bu şematikten baskı devreye
geçişini sağlayarak bakır yolları belirledik. Belirlenen bu yolların tasarımı bizim
anahtarlama ve işlemci programlama devresinin oluşturulmasını sağladı[29].
Şekil-9‟da MSP430F169 işlemcisinin programlama kitinin PCB kartı gösterilmiştir.
ġekil-9. MSP430F169 işlemcisi programlama kitinin PCB kartı
22
ġekil-10. Transistörlü anahtarlama devresinin PCB kartı
Şekil-10‟da transistörlü anahtarlama devresinin PCB kartı verilmiştir.
23
SONUÇLAR
Bu çalışmada MSP430F169 işlemcisi ile kontrol edilebilen su ile yazı yazma düzeneği
gerçekleştirilmiştir.Bu proje daha da geliştirilebilir bir proje olup, projede yazılan program
ile transistörlü anahtarlama devresi işlemci tarafından anahtarlanarak selenoid valflerin
kontaklanması sağlanmıştır. Düzenekten akan su valflerden geçerek suyun damla damla
akışı sağlanıp istenilen şekiller ortaya çıkarılmıştır.
Bu projede bir işlemcinin nasıl programlanabileceği, bu program ile birlikte herhangi
bir sistemin nasıl kontrol edilebileceği ve bu kontrol aşamasında hangi elemanların seçilip
buna uygun devreler tasarlanabileceği öğrenilmiştir.
24
YORUMLAR VE DEĞERLENDĠRME
Bitirme Projesi kapsamında yapılan bu çalışmanın üniversite projeleri kapsamında bir
ilk olduğundan gelecek senelerde bu ve bunun gibi göze hitap eden projelerin daha da
artmasına öncü olacağını düşünüyoruz. Farklı bir çalışmanın içinde bulunduğumuz ve bu
anlamda ilk olduğumuz için projemizin daha da geliştirilebilir yanlarının olduğu
kanısındayız. Geliştirilebilirlik açısından önerilerimizi şu şekilde sıralayabiliriz:
Daha fazla selenoid valf kullanılarak çözünürlük artırılabilir.
İşlemci ile kontrol ettiğimiz bu proje bilgisayar kontrolü ile çalıştırılabilir.
Kontaklama süresi daha kısa olan selenoid valfler kullanılarak daha zor şekiller
görsel olarak sunulabilir.
25
KAYNAKLAR
[1]. (2012) C Programlama Diline Giriş. [Online]. Available:
http://www1.gantep.edu.tr/~bingul/c/index.php?ders=1
[2]. (2012) Programlama Dilleri Ve Özellikleri. [Online]. Available:
http://www.korkmazsuleyman.blogcu.com/programlama-dilleri-ve-
ozellikleri/5841388
[3]. (2012) C Programlama Dersi. [Online]. Available:
http://www.cagataycebi.com/programming/c_programming/c_programm
ing_2.html
[4]. (2013) Assembly Nedir. [Online]. Available:
http://www.bilgisayardershanesi.com/Y800-assembly-nedir.html
[5]. (2013) C Programlama Dersi. [Online]. Available:
http://www.cagataycebi.com/programming/c_programming/c_programm
ing_5.html
[6]. (2013) C Programlama Dili/Koşullar Ve Döngüler. [Online]. Available:
http://tr.wikibooks.org/wiki/C_Programlama_Dili/Ko%C5%9Fullar_ve_
D%C3%B6ng%C3%BCle
[7]. (2013) C Programlama Dersi. [Online]. Available:
http://www.cagataycebi.com/programming/c_programming/c_programm
ing_4.html
[8]. (2013) Tek Döngülü Zaman Geciktirme. [Online]. Available:
http://www.mavikitaplar.com/tek_main.php?id2=19&mid0=48&nid=82
&page=tek_see
26
[9]. (2013) C Programlama Diline Giriş. [Online]. Available:
http://www1.gantep.edu.tr/~bingul/c/index.php?ders=1
[10]. M.Mazidi, J.Mazidi, The 80x86 IBM PC
andCompatibleComputers.Assembly Language, Design, and, Interfacing.
Berlin, Germany: January, 2000.
[11]. (2012) Mikroişlemci Nedir. [Online]. Available:
http://www.merakname.com/mikroislemci-nedir
[12]. (2013) Blogcu: Mikroişlemci nedir. [Online]. Available:
http://trable.blogcu.com/islemci-cpu-nedir-genel-yapisi-hakkinda-
bilgiler/13509504
[13]. (2012) Mikroişlemci Nedir. [Online]. Available:
http://www.harbiforum.org/elektronik-dunya/28450-mikroislemci-
nedir.html
[14]. (2013) 320volt web site. [Online]. Available: http:// www.320volt.com
[15]. (2013) SparkfunElektronıcs web site. [Online]. Available: http://www.
sparkfun.com
[16]. “Msp430 Programming Viathe JTAG Interfacedatasheet,”Texas
Instruments, Texas, U.S.A.
[17]. (2012) Transistör Nedir. [Online]. Available:
http://www.robotiksistem.com/transistor_nedir_transistor_cesitleri.html
[18]. (2013) NPN ve PNP Tipi Transistörler. [Online]. Available:
http://www.harbiforum.org/elektronik-dunya/92641-npn-ve-pnp-tipi-
transistorler.html
27
[19]. (2013) Transistör Nedir. [Online]. Available:
http://www.myonapp.org/elektrik-amp-elektronik/transistor-nedir-yarar-
cesitleri-nelerdir
[20]. E.Tekin, M.Bereket, Endüstriyel Elektronik. Ġstanbul, Türkiye: Mart,
2011.
[21]. (2013) Transistörün Anahtar Olarak Kullanıması. [Online]. Available:
http://www.elektroforum.org/elektronik-ders-notlari/12751/transistorun-
anahtar-olarak-kullanilmasi.html
[22]. Megep, Hidrolik Sistemler. Ankara, Türkiye: 2005
[23]. (2013) Selonoid Vana Nedir. [Online]. Available: http://www.sms-
tork.com.tr/66375/903/solenoid_vana_nedir/hnd_V7N.aspx
[24]. Megep, Elektrik Elektronik Teknolojisi, Elektropnomatik Sistemler.
Ankara, Türkiye: 2007
[25]. Y.Erdun, “ Solenoid Valfler ” 1992, sayfa 83.
[26]. Megep, Elektrik Elektronik Teknolojisi, Elektrohidrolik Sistemler.
Ankara, Türkiye: 2007
[27]. E.Topçu, Ġ.Yüksel, “ Elektropnomatik ve Alternatif Valflerin Gelişimi ve
Karakteristiklerinin Ġncelenmesi,” Uludağ Üniversitesi Mühendislik-
Mimarlık Fakültesi Dergisi, Cilt 12, Sayı 2, Sayfa 24-30,2007
[28]. (2012) Texas Instruments. [Online]. Available: http://www.ti.com
[29]. P.Pines, EasılyApplıcableGraphıcalLayoutEdıtorVersion 5. Florida,
U.S.A: 2010
28
EKLER
Ek-1 Proje Programı
Bu kısımda proje kapsamında yazmış olduğumuz program belirtilmiştir.
#include<msp430g2211.h>
voida_yazma(void);
voidb_yazma(void);
voidc_yazma(void);
voidd_yazma(void);
voide_yazma(void);
voidf_yazma(void);
voidg_yazma(void);
voidh_yazma(void);
voidi_yazma(void);
voidj_yazma(void);
voidk_yazma(void);
voidl_yazma(void);
voidm_yazma(void);
voidn_yazma(void);
voido_yazma(void);
voidp_yazma(void);
voidr_yazma(void);
voids_yazma(void);
voidt_yazma(void);
voidu_yazma(void);
voidv_yazma(void);
voidy_yazma(void);
voidz_yazma(void);
void geciktirme(void);
void main(void)
29
WDTCTL = WDTPW + WDTHOLD; // Stop watchdogtimer
P1DIR=0xFF; // Set P1.0 tooutputdirection
P2DIR=0xFF;
char karakter[2]='B','S';
int j;
while (1)
for(j=0;j<=2;j++)
if (karakter[j]=='B')
b_yazma();
else if (karakter[j]=='S')
s_yazma();
voida_yazma(void)
int i;
int A1[10]=0x78,0x78,0x78,0xF8,0xF8,0x78,0xF0,0xE0,0xC0,0x80;
int A2[10]=0x3C,0x3C,0x3C,0x3F,0x3F,0x3C,0x1E,0x0F,0x07,0x03;
for(i=0;i<=9;i++)
P1OUT=A1[i];
P2OUT=A2[i];
geciktirme();
30
voidb_yazma(void)
int i;
int B1[10]=0xF8,0xF8,0x38,0x38,0xF8,0xF8,0x38,0x38,0xF8,0xF8;
int B2[10]=0x01,0x03,0x06,0x0C,0x07,0x07,0x0C,0x06,0x03,0x01;
for(i=0;i<=9;i++)
P1OUT=B1[i];
P2OUT=B2[i];
geciktirme();
voidc_yazma(void)
int i;
int C1[10]=0xE0,0xF0,0x38,0x38,0x38,0x38,0x38,0x38,0xF0,0xE0;
int C2[10]=0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x1F;
for(i=0;i<=9;i++)
P1OUT=C1[i];
P2OUT=C2[i];
geciktirme();
voidd_yazma(void)
int i;
int D1[10]=0xF8,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0xF8,0xF8;
int D2[10]=0x07,0x0F,0x18,0x18,0x18,0x18,0x18,0x18,0x0F,0x07;
for(i=0;i<=9;i++)
31
P1OUT=D1[i];
P2OUT=D2[i];
geciktirme();
voide_yazma(void)
int i;
int E1[10]=0xFC,0xFC,0x1C,0x1C,0xFC,0xFC,0x1C,0x1C,0xFC,0xFC;
int E2[10]=0x3F,0x3F,0x00,0x00,0x3F,0x3F,0x00,0x00,0x3F,0x3F;
for(i=0;i<=9;i++)
P1OUT=E1[i];
P2OUT=E2[i];
geciktirme();
voidf_yazma(void)
int i;
int F1[10]=0x38,0x38,0x38,0xF8,0xF8,0x38,0x38,0xF8,0xF8,0xF8;
int F2[10]=0x00,0x00,0x00,0x1F,0x1F,0x00,0x00,0x1F,0x1F,0x1F;
for(i=0;i<=9;i++)
P1OUT=F1[i];
P2OUT=F2[i];
geciktirme();
32
voidg_yazma(void)
int i;
int G1[10]=0xC0,0xE0,0x30,0x18,0xD8,0xD8,0x18,0x30,0xE0,0xC0;
int G2[10]=0x1F,0x1F,0x18,0x18,0x1F,0x1F,0x00,0x00,0x1F,0x1F;
for(i=0;i<=9;i++)
P1OUT=G1[i];
P2OUT=G2[i];
geciktirme();
voidh_yazma(void)
int i;
int H1[10]=0xC8,0xC8,0xC8,0xC8,0xF8,0xF8,0xC8,0xC8,0xC8,0xC8;
int H2[10]=0x1C,0x1C,0x1C,0x1C,0x1F,0x1F,0x1C,0x1C,0x1C,0x1C;
for(i=0;i<=9;i++)
P1OUT=H1[i];
P2OUT=H2[i];
geciktirme();
voidi_yazma(void)
int i;
int I1[10]=0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0;
int I2[10]=0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03;
for(i=0;i<=9;i++)
33
P1OUT=I1[i];
P2OUT=I2[i];
geciktirme();
voidj_yazma(void)
int i;
int J1[10]=0xF0,0xF8,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00;
int J2[10]=0x03,0x07,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E;
for(i=0;i<=9;i++)
P1OUT=J1[i];
P2OUT=J2[i];
geciktirme();
voidk_yazma(void)
int i;
int K1[10]=0x1C,0x1C,0x1C,0x9C,0xFC,0xFC,0x9C,0x1C,0x1C,0x1C;
int K2[10]=0x3C,0x1E,0x0F,0x07,0x00,0x00,0x07,0x0F,0x1E,0x3C;
for(i=0;i<=9;i++)
P1OUT=K1[i];
P2OUT=K2[i];
geciktirme();
voidl_yazma(void)
34
int i;
int L1[10]=0xF8,0xF8,0xF8,0x38,0x38,0x38,0x38,0x38,0x38,0x38;
int L2[10]=0x1F,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00;
for(i=0;i<=9;i++)
P1OUT=L1[i];
P2OUT=L2[i];
geciktirme();
voidm_yazma(void)
int i;
int M1[10]=0x1C,0x1C,0x1C,0x1C,0x1C,0x9C,0xDC,0xFC,0x7C,0x3C;
int M2[10]=0x38,0x38,0x38,0x38,0x38,0x39,0x3B,0x3F,0x3E,0x3C;
for(i=0;i<=9;i++)
P1OUT=M1[i];
P2OUT=M2[i];
geciktirme();
voidn_yazma(void)
int i;
int N1[10]=0x1C,0x1C,0x1C,0x1C,0x9C,0x9C,0xDC,0x7C,0x7C,0x3C;
int N2[10]=0x3E,0x3E,0x3B,0x3B,0x39,0x39,0x38,0x38,0x38,0x38;
for(i=0;i<=9;i++)
P1OUT=N1[i];
P2OUT=N2[i];
35
geciktirme();
voido_yazma(void)
int i;
int O1[10]=0xE0,0xF0,0x38,0x38,0x38,0x38,0x38,0x38,0xF0,0xE0;
int O2[10]=0x03,0x07,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x07,0x03;
for(i=0;i<=9;i++)
P1OUT=O1[i];
P2OUT=O2[i];
geciktirme();
voidp_yazma(void)
int i;
int P1[10]=0x38,0x38,0x38,0xF8,0xF8,0x38,0x38,0x38,0xF8,0xF8;
int P2[10]=0x00,0x00,0x00,0x03,0x07,0x0C,0x0C,0x0C,0x07,0x03;
for(i=0;i<=9;i++)
P1OUT=P1[i];
P2OUT=P2[i];
geciktirme();
voidr_yazma(void)
int i;
36
int R1[10]=0x38,0x38,0x38,0xB8,0xF8,0xF8,0xF8,0x38,0xF8,0xF8;
int R2[10]=0x0C,0x06,0x03,0x01,0x00,0x07,0x0F,0x0C,0x07,0x03;
for(i=0;i<=9;i++)
P1OUT=R1[i];
P2OUT=R2[i];
geciktirme();
voids_yazma(void)
int i;
int S1[10]=0xE0,0xF0,0x18,0x00,0xC0,0x60,0x30,0x30,0xF0,0xE0;
int S2[10]=0x03,0x07,0x06,0x03,0x00,0x00,0x00,0x0C,0x0F,0x07;
for(i=0;i<=9;i++)
P1OUT=S1[i];
P2OUT=S2[i];
geciktirme();
voidt_yazma(void)
int i;
int T1[10]=0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xFC,0xFC,0xFC;
int T2[10]=0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x3F,0x3F,0x3F;
for(i=0;i<=9;i++)
P1OUT=T1[i];
P2OUT=T2[i];
geciktirme();
37
voidu_yazma(void)
int i;
int U1[10]=0xFE,0xFE,0xFE,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E;
int U2[10]=0x7E,0x7E,0x7E,0x70,0x70,0x70,0x70,0x70,0x70,0x70;
for(i=0;i<=9;i++)
P1OUT=U1[i];
P2OUT=U2[i];
geciktirme();
voidv_yazma(void)
int i;
int V1[10]=0x80,0xC0,0xE0,0x70,0x70,0x38,0x38,0x38,0x1C,0x1C;
int V2[10]=0x03,0x03,0x07,0x0E,0x0E,0x1C,0x1C,0x1C,0x38,0x38;
for(i=0;i<=9;i++)
P1OUT=V1[i];
P2OUT=V2[i];
geciktirme();
voidy_yazma(void)
int i;
int Y1[10]=0xC0,0xC0,0xC0,0xC0,0xC0,0xE0,0x70,0x38,0x1C,0x1C;
38
int Y2[10]=0x01,0x01,0x01,0x01,0x01,0x03,0x07,0x0E,0x1C,0x38;
for(i=0;i<=9;i++)
P1OUT=Y1[i];
P2OUT=Y2[i];
geciktirme();
voidz_yazma(void)
int i;
int Z1[10]=0xF8,0xF0,0xE0,0xC0,0xC0,0x80,0x00,0x00,0xF8,0xF8;
int Z2[10]=0x1F,0x1F,0x01,0x03,0x03,0x07,0x0F,0x1E,0x1F,0x1F;
for(i=0;i<=9;i++)
P1OUT=Z1[i];
P2OUT=Z2[i];
geciktirme();
void geciktirme(void)
volatileunsignedint a;
for (a=0;a<=60000;a++);
39
Ek-2 Standartlar ve Kısıtlar Formu
Tasarım Projesinin hazırlanmasında Standart ve Kısıtlarla ilgili olarak, aşağıdaki
soruları cevaplayınız.
1. Projenizin tasarım boyutu nedir? Açıklayınız.
Tasarım projesi kapsamında, kafamızda oluşturduğumuz projeyi uygulamaya
dökmeden önce gerekli araştırmalar yapılarak Bitirme Projesine kılavuz oluşturulmaya
çalışılmıştır.
2. Projenizde bir mühendislik problemini kendiniz formüle edip, çözdünüz mü?
Proje kapsamında bu aşamada karşımıza çıkan her türlü problemin üstesinden
gelmeye çalıştık. Bu problemlerden sadece bir kısmı mühendislik adına oluşan
problemlerdi. Bunların da üstesinden gelmeye çalıştık.
3. Önceki derslerde edindiğiniz hangi bilgi ve becerileri kullandınız?
Daha önceki yıllarda elektronik adına hem programlama(yazılım) hem de elektronik
devre tasarımıyla ilgili projemiz kapsamında bize gerekli olan bilgileri kullandık.
4. Kullandığınız veya dikkate aldığınız mühendislik standartları nelerdir?
Kullandığımız en önemli mühendislik standardı projemizin ekonomik maliyetlerini
yüksek tutmamak oldu. Malzeme listelerini oluştururken bu konuda her türlü
araştırmalar yapılmıştır.
5. Kullandığınız veya dikkate aldığınız gerçekçi kısıtlar nelerdir?
a) Ekonomi:
Projemizi tasarlarken gereksiz ekonomik harcamalardan mümkün mertebe
kaçınılmıştır.
b) Çevre sorunları:
Projemiz tamamen doğal ürünlerden oluştuğundan çevreye zarar verecek herhangi
bir unsur oluşmamaktadır.
c) Sürdürülebilirlik:
Projemiz tamamlandıktan sonra gerek tarafımızca gerekse başka kişiler tarafından
eksik görülen kısımlar olduğunda sürdürülerek geliştirilebilir.
d) Üretilebilirlik:
Tasarım Projesi dersi kapsamında tasarladıklarımız Bitirme Projesi dersi kapsamında
üretim aşamasına geçeceğinden üretilebilir bir projedir.
e) Etik:
40
Projemizde etik ve ahlak kurallarına aykırı hiçbir durum söz konusu değildir.
f) Sağlık:
Tasarlanan projemiz hem çalışan sağlığını hem de toplumun sağlığı tehdit edecek
hiçbir risk taşımamaktadır.
g) Güvenlik:
Tasarlanan ve bitirmeye dönüştürülecek olan proje tamamen güvenilirdir.
h) Sosyal ve politik sorunlar:
Projemiz herhangi bir sosyal veya politik bir sorun oluşturmamaktadır.
41
Ek-3 Tablo-1
Tablo-1. C programlama dilinde kullanılan değişken tablosu[3]
TİP DEKLARAS
YON
Print(f) Scanf() Minimum Maksimum Byte
Karakter chardegisken; printf(„‟%c‟‟,°iske
n);
scanf(„‟%c‟‟,°iske
n);
-128 127 1
Kısa
Tamsayı
shortdegisken
;
printf(„‟%d‟‟,°iske
n);
scanf(„‟%d‟‟,°iske
n);
-32768 32767 2
Tamsayı intdegisken; printf(„‟%d‟‟,°iske
n);
scanf(„‟%d‟‟,°iske
n);
-32768 32767 2
Uzun
Tamsayı
longint
degisken;
printf(„‟%1d‟‟,°isk
en);
scanf(„‟%1d‟‟,°isk
en);
-2147483648 2147483647 4
Ġşaretsiz
Tamsayı
unsignetint
degisken;
printf(„‟%u‟‟,°iske
n);
scanf(„‟%u‟‟,°iske
n);
0 65535 2
Ġşaretsiz
Uzun
Tamsayı
longunsignet
degisken;
printf(„‟%1u‟‟,°isk
en);
scanf(„‟%1u‟‟,°isk
en);
0 4294967295 4
Virgüllü
Sayı
floatdegisken
;
printf(„‟%f‟‟,°iske
n);
scanf(„‟%f‟‟,°iske
n);
1,17549e-38 3,40282e+
38
4
Uzun
Virgüllü
Sayı
double
degisken;
printf(„‟%1f‟‟,°isk
en);
scanf(„‟%1f‟‟,°isk
en);
2.22504e-308 1,79769e+
308
8
42
Ek-4 Malzemeler Listesi
Projede kullanılan malzeme listesi aşağıda belirtilmiştir.
1 adet MSP-FET430UIF
1 adet SMD direnç paketi
1 adet SMD kondansatör paketi
1 adet 8 MHz kristal
1 adet 32768Hz kristal
1 adet MSP430F169
1 tane A4 boyutunda çift katlı epoksi bakır plaket
Su motoru
16 adet BD135 transistör ve valf
18 adet ikili konnektör
2şer tane dişi ve erkek 24’lı IDC konnektör
2şer tane 16’lü dişi ve erkek IDC konnektör
PNP kağıdı
50 cm 1” çaplı demir boru
16şar tane maşon, rekor, nipel
43
ÖZGEÇMİŞLER
Melike Gülşen ERDOĞAN 1989 yılında ERZURUM’da doğdu. Ġlk ve orta
öğretimini Kültür Kurumu Ġlköğretim okulunda tamamladı. Lise eğitimini Nevzat
Karabağ Anadolu Öğretmen Lisesinde tamamladı.2008 yıllında Karadeniz Teknik
Üniversitesi, Mühendislik Fakültesi, Elektrik-Elektronik Mühendisliği Bölümünde
Lisans eğitimine başladı. Ġyi derecede Ġngilizce bilmektedir.
Fehmi EROL 1989 yılında ANKARA’da doğdu. Ġlk ve orta öğretimini Kutalmış Bey
Ġlköğretim okulunda tamamladı. Lise eğitimini Yeşilöz Anadolu Lisesinde tamamladı.
2009 yıllında Karadeniz Teknik Üniversitesi, Mühendislik Fakültesi, Elektrik-
Elektronik Mühendisliği Bölümünde Lisans eğitimine başladı. Ġyi derecede Ġngilizce
bilmektedir.
Yıldız BOĞAZKÖY 1990 yılında KAYSERĠ’de doğdu. Ġlk ve orta öğretimini Albay
Niyazi Esen Ġlköğretim okulunda tamamladı. Lise eğitimini Nuh Mehmet Küçük Çalık
Anadolu Lisesinde tamamladı. 2009 yıllında Karadeniz Teknik Üniversitesi,
Mühendislik Fakültesi, Elektrik-Elektronik Mühendisliği Bölümünde Lisans eğitimine
başladı. Ġyi derecede Ġngilizce bilmektedir.
Safa BAZOĞLU 1991 yılında TRABZON’da doğdu. Ġlk ve orta öğretimini Cudibey
Ġlköğretim okulunda tamamladı. Lise eğitimini Kanuni Anadolu Lisesinde tamamladı.
2009 yıllında Karadeniz Teknik Üniversitesi, Mühendislik Fakültesi, Elektrik-
Elektronik Mühendisliği Bölümünde Lisans eğitimine başladı. Ġyi derecede Ġngilizce
bilmektedir.
top related