loadcell Ġle hareketlĠ bant ÜzerĠnde aĞirlik … · v lİsans bİtİrme projesİ onay formu...
TRANSCRIPT
T.C.
KARADENĠZTEKNĠKÜNĠVERSĠTESĠ
Mühendislik Fakültesi
Elektrik-ElektronikMühendisliğiBölümü
LOADCELL ĠLE HAREKETLĠ BANT
ÜZERĠNDE AĞIRLIK ÖLÇÜMÜ
Müjdat ALTUNKAYA
149867
Bahadır MERAKLI
137174
Prof. Dr. A. Sefa Akpınar
Mayıs 2013
TRABZON
iii
T.C.
KARADENĠZTEKNĠKÜNĠVERSĠTESĠ
Mühendislik Fakültesi
Elektrik-ElektronikMühendisliğiBölümü
LOADCELL ĠLE HAREKETLĠ BANT
ÜZERĠNDE AĞIRLIK ÖLÇÜMÜ
Müjdat ALTUNKAYA
149867
Bahadır Meraklı
137174
Prof. Dr. A.Sefa AKPINAR
Mayıs2013
TRABZON
v
LİSANS BİTİRME PROJESİ ONAY FORMU
149867 Müjdat ALTUNKAYA ve 137174 Bahadır MERAKLI tarafından
Prof. Dr. Sefa AKPINAR yönetiminde hazırlanan “Loadcell İle Hareketli Bant
Üzerinde Ağırlık Ölçümü” 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 : Prof. Dr. Sefa AKPINAR ………………………………
Jüri Üyesi 1 : Prof. Dr. Cemil GÜRÜNLÜ ………………………………
Jüri Üyesi 2 : Doç. Dr. H. Ġbrahim
OKUMUġ
………………………………
Bölüm BaĢkanı : Öğr. Gör. Dr. Emre ÖZKOP ………………………………
vii
ÖNSÖZ
Bu projenin her aĢamasını zevkle gerçekleĢtirirken, bir çok problemle karĢılaĢtık.
Bu zorlukları aĢmamızda fikirleriyle, emekleriyle ya da dostlukları ile bizlere her anlamda
destek olan arkadaĢlarımız Hakan ÇABAKÇOR, Alparslan YILDIRIM, Hüsnü CAN HEPER,
Burak GÜNEYLĠ, Tolga DÜZGÜN, Gönül ATĠK; değerli tez hocamız Prof. Dr. Sefa
AKPINAR ve bizleri bugüne getiren ve her daim yanımızda bizlerle yürüyen ailelerimize
teĢekkür ederiz.
Müjdat ALTUNKAYA
Bahadır MERAKLI
Bahar 2012/2013
TRABZON
ix
İÇİNDEKİLER
Lisans Bitirme Projesi Onay Formu ...…………………………………………………………………..v
Önsöz ………………..…………………………………………………………………………………vii
Ġçindekiler ………………...……………………………………………………………………………ix
Özet ……………………………….……………………………………………………………...…...xiii
Kısaltmalar ………………………….…………………………………………………………….……xv
1. GĠRĠġ ……………….………………………………………………………………………………...1
1.1. StranGage (Gerinim Ölçer) Nedir? ……………………………..……….............................2
2. LOAD CELL ………………………………………………………………………………………....2
2.1. Load Cell Nasıl ÇalıĢır ……………………….………………………...………………….2
2.2. Load Cell Uygulamaları …………………………………………….……………………..2
2.2.1. Load Cell ile Tartım Bunkeri Uygulaması…………………….………………...2
2.2.2. Load Cell ile Tansiyon Kontrol…………………………………………………2
2.2.3. Silo Tartım Uygulaması…………………………………………………………3
2.2.4. Diğer Load Cell Uygulamaları…………………………………………………..3
2.3. LOAD CELL ÇEġĠTLERĠ……………………………………...…………………….……4
2.3.1. Yüksek Kapasiteli Yük Hücreleri……………………………...………………..4
2.3.2. S Tipi Yük Hücreleri…………………………………………………………….4
2.3.2.1. 3-10.000 kg kapasiteli S tipi Load Cell………………………………4
2.3.2.2. 10.000-20.000 kg kapasiteli Yük Hücreleri…………………………..4
x
2.3.3. ShearBeam Yük Hücreleri………………………………………………………4
2.3.3.1. L Tipi Yük Hücreleri (Load Cell)…………………………………….4
2.3.4. BendingBeam Yük Hücreleri……………………………………………………5
2.3.4.1. BT Tipi Yük Hücreleri (Load Cell)…………………………………..5
2.3.4.2. RT Tipi Yük Hücreleri (Load Cell)…………………………………..5
2.3.4.3. PL Tipi Yük Hücreleri (Load Cell)…………………………………...5
2.3.4.4. PS Sınıfı Yük Hücreleri (Load Cell)………………………………….5
2.3.5. Kolon Tipi Yük Hücreleri……………………………………………………….5
2.3.5.1. CT Sınıfı Yük Hücreleri (LoadCell)…………………………...……….5
2.3.6. Gergi Kontrol Yük Hücreleri…………………………….…………...…………6
2.3.6.1.RS Sınıfı Yük Hücresi (Load Cell)……………………………………6
3. BASKI DEVRE YAPIMI…………………………………………………………………….………6
4. PIC MĠKRODENETLEYĠCĠLER…….………………………………………..……………………8
4.1. Pic Nedir?.............................................................................................................................8
4.2. PIC Seçme Nedenleri...........................................................................................................9
4.3. PicMikrodenetleyicici Programının Yazılması …………..……………………………....10
4.3.1. Genel BakıĢ……………………………………………………….....................10
4.3.2. Pic Assembly Nedir?...........................................................................................10
4.3.3. Pic Assembly Öğrenmek Zor mudur?.................................................................10
4.3.4. Pic Assembly Ne Zaman Vazgeçilmezdir?.........................................................11
4.3.5. Pic Basic Nedir?..................................................................................................12
4.3.6. Pic Basic Komutları……………………………….………………………...…12
xi
5. Devrede Kullanılan Elemanlar……………………………….……………………………………..13
5.1 BC 337 Transistör…………………….....………………………………………………...14
5.2. 7805 Regülatör………………………………………………………………....................14
5.3. 4 MHz Rezonatör…………………………………………………………………………14
5.4. Röle…………………………………………………………………….……………...….14
5.5. PIC 16F870………………………………………………….……………………....…....15
5.5.1. PIC 16F870 Özellikleri………………………………………………………...15
5.5.2. PIC 16F870 Pin Bağlantıları…………………………………………………...16
5.5.3.PIC 16F870 Portlarının Fonksiyonları………………………………………….16
5.5.3.1. PORT A……………………………………………………………...16
5.5.3.2. PORT B……………………………………………………………...17
5.5.3.3. PORT C……………………………………………………………...18
6. Projenin GerçekleĢtirilmesi…………………...…………………………………………………….19
6.1. Proteus Simülasyonu……………………………………………………………………...20
6.2. Baskı Devre Çizimleri…………………………………………………………………....21
6.3. PIC PROGRAMI…………………………………………………………………………22
7. SONUÇ……………………………………………………………………...………………………37
KAYNAKLAR...……………………………………………………...…………………………….…38
STANDART ve KISITLAR FORMU ……….……………………………………………….39
ÖZGEÇMĠġ………………………………………………...………………………………………….40
xiii
ÖZET
Bu çalıĢmaya ağırlık ölçümünü, ağırlık ölçme tekniklerini, ağırlık ölçmenin geçmiĢini
araĢtırarak baĢladık. UlaĢabildiğimiz veriler ıĢığında, Loadcell ile ağırlık ölçme tekniğini
kullanarak bir proje gerçekleĢtirdik. Loadcell ağırlık ölçme uygulamalarında çokça kullanılan
elektromekanik bir alettir.
Bu çalıĢmamızda Loadcell kullanarak bir bant üzerinde hareket eden cismin ağırlığını
ölçme iĢlemini gerçekleĢtirdik. PIC mikrodenetleyici kullanarak sistemimizi oluĢturduk. Bu
proje PIC mikrodenetleyicileri nasıl kullanacağımızı ve programlama mantığını öğrenmemizi,
Loadcell çalıĢma prensibini anlamamızı sağladı.
Kullandığımız malzemeleri gerek elektrik kısmında gerekse mekanik kısmı
oluĢtururken kaliteli seçim yapmaya çalıĢtık
Bu tarz bir sistemi bu elemanlarla oluĢturmak için bu elemanların birbirleri ile nasıl
iletiĢim kurdukları, giriĢ çıkıĢ karakteristiklerini, ihtiyaç duydukları ve beraber çalıĢabildikleri
elemanları araĢtırıp öğrenmemiz gerekti.
Bu projeyi gerçekleĢtirmek bize en baĢından en sonuna kadar, bir çok Ģey öğrenme
fırsatı sundu. AraĢtırdık, ihtiyaç duyduğumuz ve duyabileceğimiz herĢeyi öğrenmeye çalıĢtık
ve de sonunda bu projeye aktarmaya çalıĢtık.
xv
KISALTMALAR
A/D : Analog toDigital
ASK : AmplitudeShiftKeying
BASIC : Beginners’ AllpurposeSymbolicInstructionCode
CD : Compact Disc
CMOS : Complimentary Metal OxideSemiconductor
COM : Communication
EEPROM : ElectricallyErasableProgrammable Read Only Memory
EPROM : ErasableProgrammable Read Only Memory
IC : IntegratedCircuit
ISP : InSystem Programming
LCD : Liquid CrystalDisplay
LPT : Line Printer Terminal
MB : Mega Byte
PC : PersonalComputer
PDF : PortableDocument File
PIC : PeripheralInterface Controller
RAM : Random Access Memory
ROM : Read Only Memory
RISC : ReducedInstruction Set Computer
SCI : SerialCommunicationInterface
SPI : SerialPeripheralInterface
TTL : Transistor – Transistor Logic
VSWR : VoltageStandingWaveRatio
1
1.GİRİŞ
Bir cismin ağırlığının ölçülmesi iĢlemi, binlerce yıldır genellikle ekonomik sebepler
göz önünde bulundurularak yapılmıĢ ve metroloji biliminin en önemli ilgi alanlarından biri
olmuĢtur.
Günümüzde kullanılan metrik sistemin oluĢma geçmiĢi Fransız ihtilaline kadar
dayanmaktadır. Fransı ihtilalinin ardından 16. Louis bilim adamlarından oluĢan bir kurul
toplayarak genel bir ölçme-tartma sistemi oluĢturulması için yetki verdi.
Projemizde kullandığımız yük hücresi ağırlık ölçme sistemlerinde sıkça kullanılan
elektromekanik bir alettir. Loadcelle yapılan ağırlık ölçümünün bir ekrandan okunabilmesi
için bir dönüĢtürücü gerekmektedir. Bu iĢlem için en uygun dönüĢtürücü transducer yük
hücresidir.
Loadceller straingage yani uzamaölçer tabanlı dönüĢtürücülerdir. Straingage’ler bir
sistemin ya da yapının dinamik, statik dayanıklılıkları değerlendirilmesinde kullanılan çok
farklı yapıda ve büyüklüklerde bulunabilen elektronik malzemelerdir.
Loadcell kullanım alanı oldukça yaygın olduğundan dikkatimiz çekti ve projemizde
kullanmaya karar verdik.
Projemizde bir bant üzerinde hareket eden cismin ağırlığının ölçülmesi iĢlemini
gerçekleĢtirdik. Özellik olarak sistemin hızını göz önünde bulundurarak, birden fazla ürün
sırayla sisteme girdiği takdirde, sistem her birini sırayla tartıp ekrana yazdırır.
2
1.1.Strain Gage ( Gerinim Ölçer)
Strain gage türkçede gerinim ölçer anlamına gelmektedir. Bir diğer isimlendirmesi de
gerinim puludur. Üzerinde bulunduğu yüzeyde meydana gelen baskı veya gerinim miktarını
ölçmek için birçok alanda kullanılırlar. Bizim konumuza dahil olan kısmı sadece ağırlık ve
kuvvet ölçme yetenekleridir.
2.LOADCELL (Yük Hücresi)[3],[5]
2.1. Load Cell Nedir?
Loadcell, yük hücresi, üzerine uygulanan fiziksel kuvvete göre çıkıĢında bir elektrik
sinyali oluĢturan elektromekanik bir sistemdir. Yapısı, bir yay elemanı, özel ĢekillendirilmiĢ
ve özel seçilmiĢ metal Ģase ile straingagelerle kurulmuĢ bir wheatstone köprüsünden oluĢur.
2.2. Loadcell Nası Çalışır?
Yay üzerine uygulanan fiziksel bir kuvvet bir deformasyona sebep olur, yay
elemanında oluĢan bu esneme, wheatstone köprüsü üzerinden bir elektrik sinyali olarak çıkıĢ
verir. Elde edilen bu sinyal bir mikroiĢlemci tabanlı bir göstergede iĢlenerek, kuvvet ya da
ağırlık bilgisi olarak gösterilir.
2.3. Loadcell Uygulamaları
2.3.1. Tartım Bunkeri Uygulaması
Tartım bunkeri uygulamasında dikkat edilmesi gereken husus, loadcellerin birbirleri ile
120 derecelik açılarla konumlandırılması ve sistemde herhangi bir kasıntı oluĢmamasıdır.
2.3.2. Loadcell ile Tansiyon Kontrol
Loadcell kullanılarak sarma ve boĢaltma iĢlemlerinde meydana gelen gevĢeme veya
gerilme, control altına alınarak bu sebep ile meydana gelebilecek olumsuzluklar giderilir.
BoĢaltma rulosu önüne veya sarma rulosu gerisine ya da her ikisine birden uygulanabilir.
Rulonun boĢaltmaya baĢlaması ile oluĢan gerginlik kuvveti loadcell üzerine aktarılır.
3
Gerginlikte meydana gelen azalma ya da artma loadcelller tarafından algılanarak
tansiyon kontrol indikatörüne iletilir. Tansiyon kontrol indikatörü sistemi, daha önce
hafızasına kaydedilmiĢ olan set değerine çeker. Bu Ģekilde tansiyon kontrol altında tutulmuĢ
olur.
2.3.3. Silo Tartım Uygulaması
Silo tartım uygulamalarında dikkat edilmesi gereken husus, sistemde herhangi bi
kasıntı oluĢmamasıdır. Loadceller uygun montaj kitleri ile kullanıldıkları takdirde maksimum
performans sağlar. Yukarıda bahsi geçen kasıntı ve yükün loadceller üzerinde hizalanamaması
gibi sistemin doğruluğunu etkileyecek faktörlerden arınmıĢ olur.
2.3.4. Diğer Loadcell Uygulamaları
Tank tartım uygulaması
Kamyon kantarı uygulaması
Muhtelif terazi uygulamaları
Test makinaları uygulamaları
Vinç kantarı (Phantom) uygulaması
Asansör uygulamaları
4
2.4. LOADCELL ÇEŞİTLERİ [3],[5]
2.4.1. Yüksek Kapasiteli Yük Hücreleri
Yüksek kapasiteli yük hücresi, aynı kapasitedeki kolon tipi ve S tipi yük hücrelerine
kıyasla daha kısa yapısı ve eksen dıĢı yüklere karĢı mukavemeti nedeniyle silo, tank tartımı ve
kamyon kantarı gibi endüstriyel tartım uygulamalarında pek çok avantaj sağlar. 2000- 50000
kilo kapasiteli aralığında üretimleri yapılmaktadır.
2.4.2. S Tipi Yük Hücreleri
S tipi yük hücreleri genel olarak iki tipte üretilirler.
2.4.2.1. 3000-10000 Kg Kapasiteli S Tipi Loadcell
Bu yük hücreleri (loadcell) düĢük maliyeti ve yüksek güvenirlikleri ile tank, silo,
bunker tartımı, paketleme ve dozajlama sistemleri, çekme ve kopma test uygulamalarında
sıkça kullanılır. Basma ve çekme yönünde çalıĢmaktadırlar. 3-10000 kilogram aralığında
imalatı yapılmaktadır.
2.4.2.2. 10000-20000 kg Kapasiteli Yük Hücreleri
Bu Loadcell basma yönünde çalıĢan, kamyon kantarında ve tartım platformlarında
kullanım için tasarlanmıĢ S tipi yük hücresidir. 10000-20000 kilogram aralığında imalatı
yapılmaktadır.
2.4.3. ShearBeam Yük Hücreleri (Loadcell)
2.4.3.1. L Tipi Yük Hücreleri
L tipi yük hücreleri yüksek kapasiteli otomatik dolum makinalarında kullanılmak üzere
tasarlanmıĢtır. Montaj yönü ters çevrilerek tartım platformlarında da kullanılabilir. 300-5000
kg kapasite aralığında imalatı yapılmaktadır.
5
2.4.4. BendingBeam Yük Hücreleri
Genel olarak iki tipte üretimi yapılmaktadır.
2.4.4.1. BT Tipi Yük Hücreleri
BT tipi yük hücreleri çekme tipi yük uygulamaları için geliĢtirilmiĢtir. Bant kantarı ve
dikey dolum makinaları uygulama alanları arasında sayılabilir. 20-200 kg kapasite aralığında
imalatı yapılmaktadır.
2.4.4.2. RT Tipi Yük Hücreleri
RT modeli özellikle büyük platform terazilerinde kullanılmak üzere tasarlanmıĢtır.
Yüksek kapasiteli yer baskülleri, parça sayıcı teraziler, tezgah üstü teraziler ve ağırlık
kontrolü kullanım alanları arasında sayılabilir.
2.4.4.3. PL Tipi Yük Hücreleri
PL tipi yük hücreleri özellikle orta boy platform terazilerinde kullanılmak üzere
tasarlanmıĢtır. Parça sayıcı teraziler, tezgah üstü teraziler ve ağırlık kontrolü kullanım alanları
arasında sayılabilir.
2.4.4.4. PS Tipi Yük Hücreleri
PS sınıfı yük hücreleri düĢük maliyeti ile tezgah üstü terazi uygulamalrı için
geliĢtirilmiĢ olsa da dikey dolum makinalarında da kullanılmaktadır. Küçük boyutu ile
platform tipi ve parça sayıcı teraziler için ideal yük hücresidir.
2.4.5. Kolon Tipi Yük Hücresi
2.4.5.1. CT Sınıfı Yük Hücreleri
CT sınıfı loadcell özellikle kamyon kantarı ve silo tartım uygulamaları için geliĢtirilmiĢ
kolon tipi bir yük hücresidir. 10 ton ve 30 ton kapasitelerinde imal edilmektedir.
6
2.4.6. Gergi Kontrol Yük Hücreleri
2.4.6.1. RS Sınıfı Yük Hücresi
RS sınıfı loadcell sarma-boĢaltma makaralarındaki gerginliğin kontrol edilebilmesi
amacıyla imal edilmiĢtir. Rulo ucuna, loadcell üzerindeki yatağa yerleĢtirilen rullman
üzerinden montajlanarak, sarma veya boĢaltma iĢlemi sırasında ruloya uygulanan kuvveti
algılar. Tekstil ve matbaa sektöründe geniĢ uygulama alanına sahiptir. 25, 50, 100 kg
kapasitelerde imal edilmektedir.
3.BASKI DEVRE YAPILIŞI
Baskı devre yapımında en çok kullanılan yöntem ütü ile baskı yöntemidir. Bu yöntem
bir kuĢe kağıdın üzerine lazer yazıcıdan baskı devremizin Ģekli alınarak yapılır. Bu iĢleme
öncelikle bi bakır plaket alarak baĢlıyoruz.
Plaketimizin üzeri ilk baĢta kirlidir ve üzerine baskı almamızı zorlaĢtırır. Bu yüzden
ince bir zımpara ile plaketin bakır yüzü parlayana kadar zımparalanır. Zımparalama iĢlemi
yapılırken zımaparalamanın aynı yönde olmasına dikkat edilmelidir.
Bakır plaketi zımparaladıktan sonra, plaketin üzerinde kalan bakır parçaları aseton ile
mümkün olduğunca temizlenir. Temizlenen kısma mümkün olduğunca dokunulmaması
öncemlidir.
KuĢe kağıda lazer yazıcı üzerinden baskı devre Ģekli basılır. Bu kuĢe kağıt bir
dergiden, bir ilandan ya da bir reklam kağıdından olabilir. Üstünde yazı olması baskı
yapılmasını engellemez.
Daha sonra bakır plaketin boyutlarından biraz daha büyük Ģekilde kağıt kesilerek
baskılı kısmı bakır yüzeye gelecek Ģekilde yapıĢtırılır.
Güzelce sarıp bantalayarak bir paket haline getirerek kağıdın bakır plaket üzerinden
kayması engellenir.
7
Sardıktan sonra kağıt üzerinden ütülenir, ütü en sıcak kademesinde kullanılır ve bütün
yüzeyler olabildiğince eĢit ısıtılır. Burda yapılmak istenen bir plastik çeĢidi olan tonerin
eritilerek bakır plaka üzerine geçmesini sağlamaktır.
Bu yapıĢma iĢleminin tamamlandığını anlamak için ütülenen plakete bakılır. Plakette
devre Ģemasının görüntüsünün algılanması gerekir. Belli olmayan yollar eriyip yapıĢmamıĢ
demektir.
YapıĢtığından emin olunduktan sonra, bu haliyle suya atılarak üzerindeki kuĢe kağıt
iyice yumuĢayıp hamur kıvamına gelinceye kadar bekletilir. Sıcak su kullanılması kağıdı iyice
hamurlaĢtırıp soymaya baĢlayacaktır.
Kağıt hamurlaĢtıktan sonra kağıt ovalanarak kaldırılır. Kağıt kaldırıldıktan sonra devre
yolları elde edilir. Bu aĢamadan sonra devre tuz ruhu aseton karıĢımına atılarak yolların
dıĢında kalan bakır alanları kaldırılır. Dikkat edilmesi gereken asit karıĢımının çok keskin
olmaması ve asit karıĢımında çok fazla bekletilmemesidir. Devre yolları elde edildikten sonra
devre asitten çıkarılarak su ile yıkanır. Asit karıĢımı çok keskin olur ya da çok fazla
bekletilirse devre yolları zarar görebilir.
Perhidrol tuz ruhu oranı önce belli bir miktar tuz ruhu döküp sonra devre içine atılır ve
içine azar azar perhidrol katılır. Devredeki bakır rahat bir Ģekilde kaldırılınca asit kabı sallanır.
Asit oranını etkileyen bir baĢka etken de sıcaklıktır.
Son olarak yollar üzerindeki tonerler zımparalanarak çıkartılır. Baskı devre kullanıma
hazır hale gelmiĢtir. Bundan sonra pedler delinerek elemanlar yerleĢtirilir.
8
4. PIC MİKRODENETLEYİCİLERİ [2]
4.1. Pic Nedir?
Pic serisi mikroiĢlemciler MICROCHIP firmasının geliĢtirmiĢ olduğu çok fonksiyonlu
mantıksal uygulamaların, bir mikroiĢlemci kullanılarak, yazılımsal olarak
gerçekleĢtirilmesidir. PIC kelime anlamı olarak, Peripheral Interface Controller, giriĢ çıkıĢ
iĢlemcisidir. 1994 yılında 16 bit ve 32 bitlik büyük iĢlemcilerin giriĢ ve çıkıĢlarındaki yükü
azaltmak ve denetlemek amacıyla çok hızlı ve ucuz bir çözüme ihticaç duyulduğu için
geliĢtirilmiĢtir.
PIC16C54 ilk geliĢtirilen model olup, 12 bit komut hafıza geniĢliği olan 8 bitlik CMOS
bir iĢlemcidir. 13 giriĢ çıkıĢ bacağı vardır. 33 adet komuttan oluĢan bir program belleği vardır
ve 20 MHz hıza kadar kullanılabilir.
25 Byte Ram’e sahiptir. Program EPROMu 512 Bytedır. Hafıza kapasitesi çok az
olduğu düĢünülebilir ama bir RISC iĢlemci olmasından dolayı, birçok iĢlevin bu hafıza
miktarıyla uygulanabilmesi mümkündür. Bir bacağından 40 mA akım çekilebilmekte
toplamda ise 150 mA akım çekilebilmektedir.
PIC 16C54’ün fiyatının yaklaĢık 2 USD olduğu düĢünülürse bu iĢlemcinin fiyat olarak
çok avantajlı olduğu kolayca anlaĢılır. PIC 16C54 ‘un ait olduğu iĢlemci ailesi 12 bit 16C5X
olarak adlandırılır. Sonradan üretilen 14 bit’lik 16CXX serisi, interrupt kapasitesi ve 14 bitlik
komut iĢleme hafızası ile daha yetenekli bir iĢlemci grubudur.
16CXX serisinin, devre üstünde bile seri olarak programlanabilmesi, interrupt özelliği,
33 giriĢ/çıkıĢ , A/S çevirici, USART, 12C, SPI gibi endüstri standard giriĢ çıkıĢları kabul
edebilmesi en önemli özellikleridir. PIC 16F84, elektronik bir proje gerçekleĢtirmiĢ herkes
tarafından en çok bilinen ve dünyada üzerinde en çok proje üretilmiĢ mikroiĢlemcidir. PIC
16F84 ün çok tercih edilmesinin nedeni EEPROM program belleğine sahip olmasıdır. Bu
belleğe programlar elektrikle yazılabilmekte ve silinebilmektedir. Bu da bizlere birçok kez
deneme yapabilme imkanı vermektedir.
9
4.2. PIC Seçme Nedenleri [4]
Kod Verimliliği
PIC mikroiĢlemcisi, bellek ve veri için ayrı yerleĢik buslar bulundurduğundan veri
aktarım miktarı veriye ve program belleğine aynı anda eriĢim sayesinde hızlanmıĢ olur.
Standart mikrodenetleyicilerde veriyi ve programı taĢıyan tek bir bus bulunmaktadır. Yani
PIC’e göre en az yarı yarıya daha yavaĢtır.
Güvenilirlik
Program komutları, 12 veya 14 bitlik bir program bellek sözcüğüne sığar. Yazılımın,
programın veri kısmına atlamaya ve veriyi komut gibi çalıĢtırmasına gerek yoktur.
Komut Seti
Çoğu PIC serisi için komut sayısı 35’i geçmez. PIC komutlarının hepsi yazı temellidir
ve 12 veya 14 bit uzunluğundadır.. Düzgün çalıĢan bir sistem veya uygulama için yazılımsal
hata olmamalıdır. PIC’in yazılımı Basic, C ya da Assembly gibi dillerde veya ikili(binary)
olarak yazılabilir.
Hız
PIC birçok mikrodenetleyiciye göre daha hızlı bir mikroiĢlemcidir. Her bir döngüsü
1msdir. Örnek verecek olursak 5 milyon komut içeren bir programın, 20 MHz lik bir kristal
kullanılarak adımlama iĢleme sadece 1 saniye sürer.
Statik İşlem
PIC tamamen statik bir iĢlemcidir. Yani programı durdurduğunuzda tüm yazma
iĢlemleri içeriği korunur. Pratikte tam olarak mümkün değildir. PIC uyuma modunda iken,
saat durur ve PIC’e uyutma iĢleminden önce hangi durumda olduğunu size hatırlatacak çeĢitli
bayraklar kurar.
10
4.3. MIKRODENETLEYİCİ PROGRAMININ YAZILMASI
4.3.1. Genel Bakış
Bu bölüm altında PIC Assembly ve PIC Basic programlama dilleri tanıtılacak, ayrıca
PIC’e yüklenecek olan HEX kodunun oluĢum aĢaması gözden geçirilicektir.
4.3.2. PIC Assembly Nedir?
PIC Assembly, PIC mikrodenetleyicileri için tasarlanmıĢ olan, tamamı ile assembly
tabanlı olan alt düzey bir programlama dilidir. Adının özellikle PIC Assembly olmasının
nedeni, bazı komutlarının 8086 veya 8051 gibi iĢlemcilerin kullandığı Assembly dilindeki
komutlardan farklı yazılıĢta olmasından kaynaklanmaktadır. PIC Assembly dili ile program
yazarken kullanılan donanımın çok önemi vardır. Yazılan kodların çoğu kullanılan donanıma
bağlı olarak yazılır. Bu da programın taĢınabilirliğini azaltan bir faktördür. Örneğin PIC
16F870 için yazılan bir PIC Assembler kodu, PIC 16F84 ile kullanılamayacaktır. Bu durum
Assembly dillerinin en zayıf yönüdür. Alt baĢlıklarda PIC Assembly komutları ve çeĢitli
özelliklerinden bahsedilecektir.
4.3.3. PIC Assembly Öğrenmek Zor mu?
Evet. Özellikle yeni baĢlayanlar için epey zorlu bir uğraĢ olabilmektedir. Bir likid
kristalli ekranı tanmlamak, onu kullanılabilir hale getirmek ve sonra da ekrana biĢeyler
yazdırabilecek kodu oluĢturmak bile günlerinizi alabilir eğer çok tecrübeli değilseniz.
Zamanın çok değerli olduğu günümüzde, bu durumdan kurtulabilmek için, Basic, C, 30
Pascal gibi daha yüksek düzey programlama dillerini kullanarak Assembly kodlarını
oluĢturma imkanımız bulunmaktadır.
Projede kullanılmıĢ olan PIC Basic ileriki bölümlerde anlatılacaktır. ġimdi maddeler
halinde C, Basic gibi programları baz alarak, PIC Assembly dilinin verimsiz yönleri ele
alınacaktır.
11
4.3.4. PIC Assembly Ne Zaman Vazgeçilmezdir?
Assembly için söylenmiĢ eski bir söz vardır. Assembly kullanmak için 3 neden vardır.
Hız, hız ve daha çok hız. Bu söz herĢeyi açıklayabilmektedir. Assembly ve bir alt dil olan PIC
Assembly, diğer üst düzey programlama dillerinden çok daha hızlıdırlar. MHz’ler
mertebesindeki iĢlemcilerin bile hayal olduğu zamanlarda Assembly kesinlikle tek seçenek idi.
Örneğin C programlama dilinde en basit programda bile, stdio.h kütüphane dosyasını
yazdğınız programın içine eklemeniz gerekmektedir. Bu da tabiki programa yük getirmektedir
ve programın boyutu büyümektedir. Assembly dilinde böyle bir kütüphane dosyası
olmadığından, yazılan her satır kodun tamamıyla gerekli olduğu için yazıldığından, Assembler
kod dosyaları daha küĢük boyutlu olmaktadır. Hızlarının sırrı buradan gelmektedir. Küçük
olan program daha kısa sürede yüklenebilir ve iĢleme geçirilebilir.
Günümüzde en basit iĢlemci ve denetleyicilerin bile hızları 20 MHz düzeyine
ulaĢmıĢtır. Ayrıca komut iĢleme süreleri geliĢen elektronik bilimi il nanosaniye gibi çok kısa
zaman birimlerine düĢmüĢtür. Yüksek düzey programlama dillerinde yazılan kodların fazladan
getirdiği baytlar artık iĢlemcilere ve denetleyicilere yük olmamaktadır. Bu nedenle birçok
uygulamada Assemblyden daha yüksek düzey bir programlama dili kullanmak zaman
açısından tasarımcıyı rahatlatmaktadır. Fakat çok kısıtlı hafıza birimleri ile çalıĢırken veya son
derece yüksek hızlarda çalıĢılması gerektiğinde Assembly dili tercih edilebilir.
Ayrıca Assembly dili ile, üst düzey programlama dilleri ile çok zor yazılabilecek
kodları yazma imkanı bulunmaktadır. Kısaca diğer dillere göre çok daha geniĢ bir ufka sahip
bir programlama dilidir. Bu durumu C programlama dili ve diğer üst düzey diller, Assembly
kodlarını kodun içine kabul etme yöntemiyle kendi lehlerine çevirmeye çalıĢmıĢlardır.
Örneğin C programlama dili ile program yazarken, birkaç satır Assembly koduna da
ihtiyaç duyulursa, araya eklenir ve sonra tekrar C koduna devam edilebilir.
Yüksek düzey programlama dillerinden yazılması imkansız olan durumlarda, ve çok
hassas hız gereksinimlerinin olduğu durumlarda günümüzde kullanılmaktadır.
12
4.3.5. PIC Basic Nedir?
PIC Basic, üst düzey bir programlama dili olan Basic’in bir mikrodenetleyici olan PIC
için düzenlenmiĢ sürümüdür. Bu programlama dili kullanılarak, PIC çok daha kolay ve hızlı
biçimde istenilen iĢlevleri yerine getirebilmektedir. Projede tercih edilmesinin sebebi, kolay
kullanılabilir olması ve C programlama diline olan benzerliğidir.
4.3.6. PIC Basic Komutları
PIC Basic programlama dili 65 adet komut içermektedir. Bu 65 komut her türlü
programlama ihtiyacına cevap verebilmektedir. Ayrıca Assembly koumutu kullanılmak
istenildiğinde ASM … ENDASM komutlarının arasına yazarak Assembly kodları da BASIC
kodları ile birlikte kullanılabilmektedir. Tablo 1’de PIC Basic komutları verilmektedir.
Tablo 1. PIC Basic Komutları [4]
@ ASM..ENDASM ADCIN BRANCH BRANCHL
DATA DTMFOUT EEPROM END FREQOUT
FOR-NEXT GOSUB GOTO HIGH HSERIN
HPWM HSEROUT I2CREAD I2CWRITE INPUT
IF-THEN-ELSE LCDOUT LCDIN LET LOOKDOWN
LOOKDOWN2 LOOKUP LOOKUP2 LOW NAP
OUTPUT OWIN OWOUT PAUSE PAUSEUS
POT PULSIN PULSOUT PWM RANDOM
RCTIME READ READCODE RETURN REVERSE
SELECT-CASE SERIN SERIN2 SEROUT SEROUT2
SHIFTIN SHIFTOUT SLEEP SOUND STOP
SWAP TOGGLE WRITE WRITECODE WHILE-WEND
13
5. Devrede Kullanılan Elemanlar
1x PIC 16F870
4x BC 337 Transistör
1x 7805 Regülatör
1x LM016L 16x2 LCD Display
1x 4 MHz Rezonatör
3x Buton
1x Tek kontak Röle
1x Çift Kontak Röle
3x 220 Ohm Direnç
1x 100 Ohm Direnç
1x Fotodiyot
3x Diyot
2x Led
1x PS-4X Loadcell
1x Transducer
2x 12V, 5A DC Motor
14
5.1. BC 337 Transistör
Motorları bağladığımız röleleri sürmek için kullandığımız BC 337, PIC’in 5V çıkıĢıyla
ON konumuna getirilip, röleyi 12 V ‘luk çıkıĢ gerilimi ile tetiklememizi sağlar.
5.2. 7805 Regülatör
12 V giriĢ gerilimi olan devrede, PIC giriĢi olan 5 V DC gerilimi elde edebilmek için
7805 Regülatöründen faydalandık.
5.3. 4 MHz Rezonatör
Hazırlanacak olan PIC programlarında kullanılacak osilatör tipi PIC programının
çalıĢma hızını hassasiyetini etkileyeceğinden dolayı amaca uygun bir osilatör devresi
kullanılmalıdır.
Osilatör tipinin seçilmesinde dikkat edilecek bir baĢka husus da seçilecek olan
osilatörün kullanılan PIC’in özelliğine uygun olmasıdır. Örnek verecek olursak en fazla 10
MHz çalıĢma frekansına sahip bir PIC için 20 MHz çalıĢma frekansına sahip bir osilatör
kullanmak doğru olmaz.
Devremizde bizim çalıĢma koĢullarımıza en uygun olduğunu düĢündüğümüz 4 MHz
Rezonatör kullandık.
5.4. RÖLE
Röle, elektrik devrelerinde voltaj ve akım değerleri yardımı ile akım yolunu açıp
kapatarak sistemin çalıĢma mantığını düzenleyen elektromekanik bir cihazdır. Röle, prensip
olarak bir veya birkaç elektromagnet bobin ve bu bobinin hareket ettirdiği kol ve kola bağlı
kontak düzeni olan kapalı kutu biçimindedir.
15
5.5. PIC 16F870
5.5.1. PIC 16F870’in Özellikleri
Tablo 2. PIC 16F870 Özellikleri [1]
ÖZELLĠK PIC 16F870
ÇalıĢma Hızı DC- 20 MHz
Program Belleği 128 Bytes
FLASH Program Belleği 2Kx14 kelime FLASH ROM
EEPROM Veri Belleği 64 Bytes
GiriĢ/ÇıkıĢ Port Port A,B,C
Timer 3
A/D Çevirici 5 kanal 10 Bit
Capture/Comp./PWM
(Yakalama/Kıyaslama/ PWM)Modül
1
Seri ĠletiĢim USART
Paralel ĠletiĢim -
USART/SCI 9 Bit Adresli
16
5.5.2. PIC 16F870 Pin Bağlantıları
ġekil 1’de PIC 16F870 in pin bağlantılarını görmekteyiz.
ġekil 1. PIC 16F870 Pin Bağlantıları [1]
5.5.3. PIC 16F870 Portlarının Fornksiyonları
5.5.3.1. PORT A
A Portu hem digital giriĢ çıkıĢ hem de analog giriĢ uçları görevleriini yapan bir
portdur.Tablo 3’de Port A’nın Pin açıklamaları verilmiĢtir.
Tablo 3. PIC 16F870 Port A Pin Açıklamaları [1]
Pin Adı Pin No Buffer Tipi Pin Fonksiyonları
RA0/AN0 0 TTL Digital I/O veya Analog GiriĢ
RA1/AN1 1 TTL Digital I/O veya Analog GiriĢ
RA2/AN2/Vref- 2 TTL Digital I/O veya Analog GiriĢ veya Vref-
RA3/AN3/Vref+ 3 TTL Digital I/O veya Analog GiriĢ veya Vref+
RA4TOCKI 4 ST/OD Digital I/O veya Timer0 DıĢ Saat Sinyal
GiriĢi
RA5/SS/AN4 5 TTL Digital I/O veya Analog GiriĢ veya
Senkron ser iletiĢim slave seçme giriĢi
17
5.5.3.2. PORT B
Digital giriĢ çıkıĢ olarak kullanılabilen, 8 bitlik bir portdur. B portu denetleyici içinde
dahili olarak pull-up yapılmıĢ gibidir. Port B’nin bu özelliği ile bu port giriĢ olarak
kullanıldığında giriĢte sinyal yokken giriĢ lojik-1 olarak algılanır. Bu sayede ek dirence gerek
olmadan buton giriĢi uygulamalarında tercih edilir. Dahili pull-up olayı programla aktif veya
pasif hale getirilebilir. Tablo 4’de Port B’nin pin açıklamaları verilmiĢtir.
Tablo 4. PIC 16F870 Port B Pin Açıklamaları [1]
Pin Adı Pin No Buffer Tipi Pin Fonksiyonları
RB0/INT 0 TTL/ST Digital I/O veya Harici Kesme
RB1 1 TTL Digital I/O
RB2 2 TTL Digital I/O
RB3/PGM 3 TTL Dijital I/O veya LVP (düĢük gerilimle
programlama) modunda programlama giriĢi
RB4 4 ST Digital I/O
RB5 5 TTL Digital I/O
RB6/PCG 6 TTL/ST Digital I/O veya Seri Programlama Clock Pini
RB7/PGD 7 TTL/ST Digital I/O veya Seri Programlama Data Pini
18
5.5.3.3. PORT C
Tablo 5’de PIC 16F870 Port C pin özelliklerini incelemekteyiz.
Tablo 5. PIC 16F870 Port C Pin Açıklamaları [1]
Pin Adı Pin
No
Buffer
Tipi
Pin Fonksiyonları
RC0/T1OSO/T1CK1 0 ST Digital I/O veya TMR1 osilatör çıkıĢı veya TMR1
clock giriĢi
RC0/T1OSO/TCCP2 1 ST Digital I/O veya TMR1 osilatör giriĢi veya CCP2
çıkıĢı
RC2/CCP1 2 ST Digital I/O veya CCP1 çıkıĢı
RC3/SCK/SC 3 ST Digital I/O veya SPI Modunda data giriĢi I2C
modunda I/O ucu
RC4/SDI/SDA 4 ST Digital I/O veya SPI Modunda data giriĢi I2C
modunda I/O ucu
RC5/SDO 5 ST Digital I/O veya seri iletiĢimde data çıkıĢı
RC6/TX/CK 6 ST Dijital I/O veya USART asenkron seri iletiĢimde data
gönderme pini veya USART asenkron ser iletiĢimde
clockpini
RC7/RX/DT 7 ST Dijital I/O veya USART asenkron seri iletiĢimde data
giriĢi veya USART senkron seri iletiĢimde data pini
19
6.Projenin Gerçekleştirilmesi
Tablo 6’da bir projenin gerçekleĢtirilme aĢamaları görülmektedir.
Tablo 6. Proje GerçekliĢtirme AkıĢ Diyagramı
Projenin Tanımlanması
Problemin Çözüm Yollarının Belirlenmesi
En Uygun Çözüm Yolunun Seçilmesi
Seçilen Yola Uygun Elektronik Elemanların Temini
İşlemciler için Gerekl Yazılımın Oluşturulması
Deney Ortamının Hazırlanması ve Deneylerin Gerçekleştirilmesi
Deney Sonuçlarının Değerlendirilmesi ve Eniyileştirilme İşlemi
Devrenin Son Şeklinin Hazırlanması ve Baskı Devreye Geçiş
Raporun Hazırlanması
20
6.1. Proteus Simulasyonu
ġekil 2 tasarladığımız projenin proteus simulasyonudur.
ġekil 2.Tasarlanan Devrenin Proteus Simülasyonu
21
6.2. Baskı Devre Çizimleri
Devremizin baskı devre çizimleri Ģekil 3 ve Ģekil 4 de görülmektedir.
ġekil 3. Devremizin Baskı Devre Çizimi
23
6.3. PIC Programı
****************** KONFĠGÜRASYON AYARLARI *************************
'********************** OSĠLATÖR TANIMLAMA**************************
defineosc 4
'**************** ADC ÖLÇÜM AYARLARI ***********************
DEFINE ADC_BITS 8 'Number of bits in ADCIN result
DEFINE ADC_CLOCK 3 'ADC clocksource (rc = 3)
DEFINE ADC_SAMPLEUS 50
'**************** LCD TANIMLAMALARI ***********************
DEFINE LCD_DREG PORTC 'LCD data port
DEFINE LCD_DBIT 4 'LCD datastarting bit 0 or 4
DEFINE LCD_RSREG PORTB 'LCD registerselect port
DEFINE LCD_RSBIT 1 'LCD registerselect bit
DEFINE LCD_EREG PORTB 'LCD enable port
DEFINE LCD_EBIT 0 'LCD enable bit
DEFINE LCD_BITS 4 'LCD bus size 4 or 8
24
DEFINE LCD_LINES 2 'Numberlines on LCD
DEFINE LCD_COMMANDUS 2000 'Commanddelay time in us
DEFINE LCD_DATAUS 50 'Data delay time in us
'**************** DEĞĠġKEN TANIMLAMALARI
LOADOLC varword 'olcme sonucu
dara varword 'dara değiĢkeni
agr1 varword 'önceki agırlık
agr2 varword 'yeni eklenen agırlık
ldeski varword 'eski loadcell sonucu
ldorta varword 'olcme ortalama
ldtopla varword 'değiĢken toplamı
kalibag varword 'ayarlanan kontrol agırlığı
kalibg varword 'hesaplama için kg baĢına adc değeri
say1 varbyte 'olcme sayısı değiĢkeni
say2 varbyte 'Menüler arası geçiĢ için gerekli sayıcı
say3 varword 'Ayar menüsü geçiĢ değiĢkeni
say4 varbyte 'bant motoru için devrede kalma süresi
say5 varbyte 'Yön klepesinin devrede kalacağı süre
say6 varbyte 'Yön klepesinin devrede kalacağı süre
takas varword 'Menülerdeki ayarları yapmak için takas değiĢkeni
dega varword 'Darası çıkmıĢ adc ölçümü
25
degb varword 'Kg sayıcı değiĢkeni
degc varword 'Kg hesaplamasından kalan hesabı
degd varword 'Ağırlık değiĢkeni
edegb varword
esdeger varword
klkont varbyte 'Klepe için yön değiĢkeni
kaykont varbyte 'Kayıt yapılıp yapılmadığına dair değiĢken
agsay varbyte 'Mekanizmadaki paket sayısı
kontrol var bit 'Eklenen ağırlığın kontrol ağırlığı ile karĢılaĢtırılmasında kullanılan değiĢken
irkont varword 'Fotosele ait konum değiĢtirme değiĢkeni
agkont varword 'Yeni ağırlığa ait kontrol değiĢkeni
guncelle var bit
'**************** PORT GĠRĠġ-ÇIKIġ AYARLARI **************************
trisa=%00000001 'porta giriĢ
trisb=%11110000
trisc=%00000100
option_reg=7 'Prescalar TMR0 için geçerli
bant var portc.0
klepe var portc.1
26
irpin var portc.2
kltran var portc.3
lcdayd var portb.2
tsppin var portb.4
ykbut var portb.5
asbut var portb.6
prbut var portb.7
'************** REGISTER ÖN DEĞERLERĠ *******************************
porta=0
portb=0
portc=0
say1=0
say2=0
say3=0
klkont=0
say4=0
ldeski=0
ldorta=0
agsay=0
irkont=0
27
agkont=0
guncelle=1
read 0,kaykont
ifkaykont<>1 thensifir 'Eğer daha önce ayar yapılmamıĢsa sistem değiĢkenlerini sıfırla
callhafoku 'HAFIZAYA ALINMIġ DEĞERLERĠ OKU
if agr2>=kalibagthenagsay=1:call agrdeger 'Mekanizma ilk çalıĢtığında üzerinde ağırlık varsa iĢle.
'***************** ANA PROGRAM **********************************
start:
callhafoku
lcdout $fe,1,"1.",dec4 agr1," 2.",dec4 agr2
lcdout $fe,$8e,"gr"
lcdout $fe,$c0,dec4 degb
lcdout $fe,$c6,#agsay
lcdout $fe,$c8,bin8 klkont
irkont=0
start2:
if say6>5 then say6=0:degb=degd:goto start3
28
ifprbut=0 then
say3=say3+1
else
say3=0
endif
if say3>10 then say3=0:goto ayar
ifirpin=1 thenirkont=1
ifirkont=1 then
ifirpin=0 thencall klyer2:goto start
endif
ifklkont=0 then say4=say4+1:agr2=0
if say4>50 then 'bant için boĢaldıktan sonra çalıĢma uzunluğu (kısa kalırsa 50 değerini arttır)
low bant
say4=55
else
high bant
endif
say5=say5+1
if say5>20 then 'yön motoru devrede kalma süresi (kısa kalırsa 10 değerini arttır)
lowkltran
else
highkltran
29
endif
klepe=klkont.0 'Ġlk sıradaki ağırlık için klepeyi hazırla
callolcme 'loadcell'den değer al
call hesap
ifldeski=ldortathen say6=say6+1:goto start2 'eski ağırlık değeri ile geldiysen geri dön
say6=0
ldeski=ldorta
goto start2
start3:
' ifldeski=ldortathen start2 'eski ağırlık değeri ile geldiysen geri dön
' call hesap 'grama dönüĢtürme alt programına git
ifdegb>agr2 then '***** Eski ağırlığı ***************
agr1=agr2 '***** dara olarak ***************
agr2=degb-agr1 '***** al ***************
say4=0 '***** Yeni ***************
else '***** ağırlığı ***************
agr2=0 '***** hesapla ***************
endif '***** hesaplama sonu ***************
ifedegb=degbthen start2 'eski ağırlık değeri ile geldiysen geri dön
' ifesdeger=agr2 then start2 'eski ağırlık değeri ile geldiysen geri dön
edegb=degb
callagrdeger 'Yeni ağırlık için klepe konumu ayarla
30
gotostart
hesap: 'Grama dönüĢtürme alt programı
ifldorta>=dara thendega=ldorta-dara
ifldorta<dara thendega=dara-ldorta
degd=(dega*kalibag)/kalibg
' ldeski=ldorta
return
agrdeger: 'Yeni ağırlık varsa kontrol ağırlığı ile karĢılaĢtır
ifesdeger=agr2 thenreturn
ifdegb<=100 thendegb=0
if agr2>=kalibagthen
kontrol=1
else
kontrol=0
endif
if agr2>esdegerthenagsay=agsay+1:call klyer
esdeger=agr2
return
klyer: 'Klepe değiĢkenini ayarla ve yön seç
ifagsay>8 thenagsay=8:return
ifagsay=1 then klkont.0=kontrol
ifagsay=2 then klkont.1=kontrol
31
ifagsay=3 then klkont.2=kontrol
ifagsay=4 then klkont.3=kontrol
ifagsay=5 then klkont.4=kontrol
ifagsay=6 then klkont.5=kontrol
ifagsay=7 then klkont.6=kontrol
ifagsay=8 then klkont.7=kontrol
return
klyer2: 'Fotoselden paket geçti yeni pakete hazırlık yap
ifagsay=0 thenreturn
klkont=klkont>>1
irkont=0
agsay=agsay-1
say5=0
return
ayar: 'Ayar menüsü
lcdout $fe,1,"Dara =",#ldorta
lcdout $fe,$c0,"Yuk->Ok Ipt->Pr"
ayar2:
ifprbut=0 then ayar2
ayar3:
ifprbut=0 thenstart
ifykbut=0 thendaraok
32
callolcme
ifldeski=ldortathen ayar3
ldeski=ldorta
goto ayar
daraok: 'Dara ayarlama ve kayıt
takas=0
lcdout $fe,1
lcdout $fe,1,"Dara alindi"
lcdout $fe,$c0,"Dara =",#ldorta
write 1,ldorta.highbyte
write 2,ldorta.lowbyte
pause 1000
callhafoku
kalibre: 'Kontrol ağırlığı ayarlama ve kayıt
lcdout $fe,1,"Kontrol Agirligi"
lcdout $fe,$c0,dec4 kalibag," gr-> ",#kalibg
kalibre2:
ifprbut=0 then kalibre2
kalibre3:
callolcme
ifykbut=0 then takas=kalibag:callarttir
ifasbut=0 then takas=kalibag:call azalt
33
ifprbut=0 thenkalson
ifkalibag=takas then
ifldeski=ldortathen kalibre3
endif
ifykbut=1 then
ifasbut=1 then say2=0
endif
if takas>5000 then takas=0
kalibag=takas
kalibg=ldorta-dara
ldeski=ldorta
goto kalibre
kalson: 'Hafızaya kayıt alt programı
lcdout $fe,1
lcdout $fe,1,"Kontr.Agr->Tamam"
lcdout $fe,$c0,dec4 kalibag," gr-> ",#kalibg
write 3,kalibg.highbyte
write 4,kalibg.lowbyte
write 5,kalibag.highbyte
write 6,kalibag.lowbyte
pause 1000
callhafoku
34
write 0,1
klkont=0
klepe=0
agr1=0
agr2=0
agsay=0
gotostart
hafoku: 'Hafızadaki bilgileri okuma alt programı
read 1,dara.highbyte
read 2,dara.lowbyte
read 3,kalibg.highbyte
read 4,kalibg.lowbyte
read 5,kalibag.highbyte
read 6,kalibag.lowbyte
return
arttir: 'Değeri arttır
takas=takas+100
say2=say2+1
if say2>5 thenharttir
pause 250
return
azalt: 'Değeri azalt
35
takas=takas-100
say2=say2+1
if say2>5 thenharttir
pause 250
return
harttir: 'Değeri hızlı değiĢtir
pause 50
if say2>5 then say2=10
return
olcme: 'Ölçme alt programı
adcin 0,loadolc
ortaal: 'Ölçme sonuçlarının ortalamasını alma alt programı
ldtopla=ldtopla+loadolc
say1=say1+1
ldorta=ldtopla/say1
if say1<250 thenolcme
say1=0:ldtopla=0
return
sifir: 'BaĢlangıçta değerleri sıfırlama alt programı
lcdout $fe,1,"*Ayar yapilmadi*"
lcdout $fe,$c0,"Ayar icin ->Menu"
36
sifir2:
ifprbut=0 then
say3=say3+1
pause 3
else
say3=0
endif
if say3>1000 then say3=0:goto ayar
goto sifir2
37
7. SONUÇ
Bu projede bir bant üzerinde hareket eden ağırlıklarını ölçme, sisteme giren birden
fazla ürünün ağırlıklarını belirleme ve atadığımız referans değere göre ürünleri ayrıĢtırma ve
ölçülen ağırlıları bir LCD ekran üzerinden okuma iĢlemleri için bir sistem tasarladık. Ölçülen
verileri iĢleme görevi bir PIC mikrodenetleyicisi PIC 16F870 ile sağlanmıĢtır. 12 V besleme
gerilimi olan sistemde 5 V DC gerilim elde etmek için 7805 entegre devresinden
faydalanılmıĢtır.
Proje, geliĢtirilmeye açık bir yöntem izlenerek tasarlanmıĢtır. Bir çok özellik daha
eklenip, cihazın kullanım alanları geliĢtirilebilir. Örneğin sistemin sonuna paketleme iĢlemini
yerine getirecek bir sistem eklenebilir.
Bu projede 16 sütun 2 satırlık ekran kullanılmıĢtır. Bu ekran boyutu çok daha büyük
seçilerek ekrandan tek seferde okunabilen veri miktarı arttırılabilir.
Projenin uygulanabilirlik alanları da düĢünülmüĢtür. Sistem geliĢtirilerek bir çok
alanda kullanılabilir. Örneğin döküm fabrikaları, paketleme iĢlemi de katılarak kargoculuk
sistemlerinde kullanılabilir. Tasarlanan devrenin sınırlarını veri iĢleme görevi yapan PIC’in
hafızası ve port sayısı belirlemektedir.
Sonuç olarak bu projeyi hazırlarken, araĢtırma nasıl yapılır, bir projeyi oluĢturma
aĢamaları nelerdir, sistemi oluĢturacak malzeme seçimi nasıl yapılır, PIC nasıl programlanır,
hangi programlama dili daha uygundur, Loadcell hangi sistemlerde kullanılır gibi sorulara
cevap bulduk. Bant sistemlerini araĢtırdık ve projemizi gerçekleĢtirdik.
38
KAYNAKLAR
[1]. (2012) Microchip official website. [Online]. Available: http://ww1.microchip.com/
[2]. (2012) Geocities website. [Online]. Available: http://www.geocities.com/yavuzis1/
[3]. Elektrik ElektronikTeknolojisi: Sensörler ve Transduserler, MEGEP, 2007.
[4]. O. AltınbaĢak, Uygulamalı Öğretim Serisi: PicBasic Pro ile Pic Programlama.
Ġstanbul, Türkiye, 2011.
[5]. (2012) TTM Loadcell website. [Online]. Available: http://www.ttmloadcell.com/
39
KaradenizTeknikÜniversitesi MühendislikFakültesi Elektrik-ElektronikMühendisliğiBölümü
STANDARTLAR VE KISITLAR FORMU
1. Projenizin tasarım boyutu nedir? Açıklayınız.
.Proje , mekanik, elektronik, ve yazılım olmak üzere 3 farklı alandan oluĢmaktadır.
2. Projenizde bir mühendislik problemini kendiniz formüle edip, çözdünüz mü? Projemizde karĢılaĢtığımız sorunlar genelde programlama ve PIC kullanımı ile alakalı olduğundan araĢtırma ve deneme
yanılma yöntemleri ile sorunların üstesinden gelmeye çalıĢtık.
3. Önceki derslerde edindiğiniz hangi bilgi ve becerileri kullandınız? PicBasic programlama dilinin C++ diline benzerliği ile anlamamızı kolaylaĢtırdı. Elektronik devreler derslerinde
öğrendiğimiz yükselteç kullanımını da pratiğe geçirme fırsatı bulduk. Laboratuar derslerinde kullanma imkanı
bulduğumuz Röleleri de projemizde motorları sürmek için kullandık.
4. Kullandığınız veya dikkate aldığınız mühendislik standartları nelerdir? Projemizn özellikle ekonomik olmasına, güvenirlik açısından uygun olmasına ve sistemin en az hata ile olabildiğince hızlı
çalıĢmasına özen gösterdik.Ayrıca projenin sürdürebilir olması da dikkate aldığımız bir diğer hususdur.
5. Kullandığınız veya dikkate aldığınız gerçekçi kısıtlar nelerdir?
a) Ekonomi
Projemizin uygulanabilir ölçüde ekonomik olmasına özen gösterdik.
b) Çevre sorunları:
Projemizde çevre sorunları üzerinde herhangi bir çalıĢma yapmadık.
c) Sürdürülebilirlik:
Projemizin geliĢtirilebilir ve sürdürülebilir olduğunu düĢünüyoruz.
c) Üretilebilirlik:
Sistemimizdeki her parça piyasada kolaylıkla bulunabilen, ekonomik açıdan çok zorlamayan, ağırlık ölçüm hızı
ile sistemi hızlandırabilecek bir sistemdir.
e) Etik:
f) Sağlık:
g) Güvenlik:
h) Sosyal ve politik sorunlar:
Projenin Adı LOADCELL ile Hareketli Bant Üzerinde Ağırlık Ölçümü
Projedeki Öğrencilerin adları Müjdat ALTUNKAYA, Bahadır MERAKLI
Tarih ve İmzalar 24 Mayıs 2013
40
ÖZGEÇMİŞ
Müjdat ALTUNKAYA , 1986 yılında Zonguldak’ta dünyaya geldim. Ġlkokul’ u 2 faklı
okulda okuduktan sonra Zonguldak Atatürk Anadolu Lisesi’ Orta okul kısmını kazandım.
Hazırlık ve 3 yıl burada okuduktan sonra 2001 yılında Zonguldak Fen Lisesini kazandım. Lise
Öğrenimi burada tamamladım ve Lisans eğitimi için 2004 yılında Trabzon Karadeniz Teknik
Üniversitesi’nde öğrenim görmeye baĢladım.
Stajlarını Türk Telekom ve TTK iĢletmelinde tamamladım ve bugün karĢınıza Lisans
öğrenimin son parçası olan bitirme projesi ile çıktım. Bu stajlarda transmisyon sistemleri,
radyolink sistemleri, telefon santralleri, motor bakım onarım, motor sürücüleri, motor yol
vericileri ve teorik olarak öğrendiğimiz birçok cihazı pratikte görme ve inceleme imkanına
eriĢtim.
Yabancı dil olarak mesleki yayınları takip edebilcek düzeyde Ġngilizce ve temel
düzeyde Almanca bilmekteyim.
41
Bahadır MERAKLI, 1984’de Konya’da doğdu. Ġlkokulu SeydiĢehir Alüminyum
Ġlkokulu’nda okudu, orta okul ve lise eğitimini Mahmut Esat Anadolu Lisesi’nde
tamamladıktan sonra Karadeniz Teknik Üniversitesi Elektrik Elektronik Mühendisliği
Bölümünü kazandı.
Ġlk stajını Konya Merkez Telekom Müdürlüğü transmisyon ve bilgi iĢlem merkezinde
yaptı. Ġkinci stajını Ankara’da Türk Telekom network planlama ve optimizasyon bölümünde
tamamladı.
Lise hayatı boyunca okul basketbol takımı kaptanlığı yaptıktan sonra üniversite
döneminde su altı kulübün ve tenis kulübünde aktif eğitmen olarak görev aldı. AB hibe
programları kapsamında gençlik ve KOBĠ programlarına proje yazıp koordinatörlüğünüyaptı.
Ġleri derecede Ġngilizce bilmektedir.