oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/microsoft word -...

112
ANKARA ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ YÜKSEK LİSANS TEZİ TIBBİ GAZ SİSTEMLERİNDE BASINÇ KONTROLÜ İÇİN BİR UYARI SİSTEMİ TASARIMI Oktay AYDIN ELEKTRONİK MÜHENDİSLİĞİ ANABİLİM DALI ANKARA 2008 Her hakkı saklıdır

Upload: others

Post on 31-Oct-2019

22 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

ANKARA ÜNİVERSİTESİ

FEN BİLİMLERİ ENSTİTÜSÜ

YÜKSEK LİSANS TEZİ

TIBBİ GAZ SİSTEMLERİNDE BASINÇ KONTROLÜ İÇİN BİR UYARI

SİSTEMİ TASARIMI

Oktay AYDIN

ELEKTRONİK MÜHENDİSLİĞİ ANABİLİM DALI

ANKARA

2008

Her hakkı saklıdır

Page 2: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

TEZ ONAYI

Oktay AYDIN tarafından hazırlanan “Tıbbi gaz sistemlerinde basınç kontrolü için

bir uyarı sistemi tasarımı” adlı tez çalışması aşağıdaki juri tarafından oy birliği ile

Ankara Üniversitesi Fen Bilimleri Enstitüsü Elektronik Mühendisliği Anabilim

Dalı’nda YÜKSEK LİSANS TEZİ olarak kabul edilmiştir.

Danışman: Doç. Dr. Ziya TELATAR

Jüri Üyeleri :

Başkan : Doç. Dr. Osman EROĞUL

Gülhane Askeri Tıp Akademisi Biyomedikal Mühendislik Merkezi

Üye : Doç. Dr. Ziya TELATAR

Ankara Üniversitesi Mühendislik Fakültesi Elektronik Mühendisliği A.B.D.

Üye : Yrd. Doç. Dr. Murat EFE

Ankara Üniversitesi Mühendislik Fakültesi Elektronik Mühendisliği A.B.D.

Yukarıdaki sonucu onaylarım

Prof.Dr. Orhan ATAKOL

Enstitü Müdürü

Page 3: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

i

ÖZET

Yüksek Lisans Tezi

TIBBİ GAZ SİSTEMLERİNDE BASINÇ KONTROLÜ İÇİN BİR UYARI

SİSTEMİ TASARIMI

Oktay AYDIN

Ankara Üniversitesi

Fen Bilimleri Enstitüsü

Elektronik Mühendisliği Anabilim Dalı

Danışman: Doç. Dr. Ziya TELATAR

Bu çalışmada; hastanelerde, ameliyathane ve hasta odalarına kadar iletilen tıbbi gazların hastanenin her bir katındaki basınçlarının merkezi bir yerden görüntülenmesini, kaydedilmesini ve basınçlar, limit değerlerinin dışına çıktığında sesli ve görsel alarm üretilmesini sağlayacak bir sistem gerçeklenmiştir. Basınç limit değerleri, kullanıcı tarafından belirlenebilmektedir. 4 katlı bir hastane için tasarlanan sistemde her bir kata medikal oksijen, medikal karbondioksit, medikal azot protoksit, basınçlı hava ve vakum hatlarının geldiği düşünülerek her kattan 5 basınç sensörü ile basınç bilgisi alınmıştır. Basınç sensörlerinden gelen veriler, tasarlanan bir kontrol devresi ile alınarak bilgisayara aktarılmakta, geliştirilen bir program ile yorumlanarak gerektiğinde alarm üretilmektedir. Hastanelerdeki merkezi gaz santralleri, her bir tıbbi gazın toplam basınç değişiminde alarm vermektedir. Ayrıca her bir kat için alarm paneli de bulunmaktadır. Ancak gerçeklenen sistem, hastanedeki bütün katların gaz basınçlarını tek bir yerden izleme, bu basınç değerlerini bilgisayara kaydetme ve geriye dönük olarak gaz basınçlarını sorgulama olanağı sağlamaktadır. Gaz basınçlarındaki değişimlerde algılanan hata payı ortalama % 4.66’dır.

Kasım 2008, 53 sayfa

Anahtar Kelimeler: Tıbbi Gazlar, Basınç, Alarm, Kontrol, Oksijen, Nitrojen Protoksit,

Basınçlı Hava

Page 4: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

ii

ABSTRACT

Masters Thesis

AN ALARM SYSTEM FOR PRESSURE CONTROL IN MEDICAL SYSTEMS

Oktay AYDIN

Ankara University

Graduate School of Natural and Applied Sciences

Department of Electronics Engineering

Supervisor: Assoc. Prof. Ziya TELATAR

In this study, a system is realized that can monitorize and record pressures of medical gases-delivered to patient rooms and operating rooms- in every floor of a hospital. Also this system is able to produce an visual and auditory alarm when pressures of medical gases isn’t within limits. Pressure limits are entered by user. It can be used hospitals which have up to 4 floors. It is assumed that medical oxygen, medical carbon dioxide, medical nitrous oxide, medical air and vacuum lines delivered to every floor so 5 pressure sensor are used for measure pressures in every floor. A designed control circuit transmits data, which comes from pressure sensors, to a computer which can process this data with an improved programme on it. And computer produces alarm when pressures of medical gases isn’t within limits. Central gas plant in hospital can produce alarm when every gas’s total pressure isn’t within limits. Also there’re alarm systems for every single floor. But with designed system, pressures in every floor can be monitorized, stored and inquired retrospectively in any room in hospital continuously. Mean measurement accuracy while measuring pressure changes in this study is 4.66% .

November 2008, 53 pages

Key Words: Medical Gases, Pressure, Alarm, Control, Oxygen, Nitrous Oxide,

Compressed Air

Page 5: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

iii

TEŞEKKÜR

Desteklerini esirgemeyen danışman hocalarım Sayın Doç. Dr. Ziya TELATAR’a,

(Ankara Üniversitesi Mühendislik Fakültesi), Sayın Doç. Dr. Osman EROĞUL’a

(Gülhane Askeri Tıp Akademisi Biyomedikal Mühendislik Merkezi) ve Gülhane Askeri

Tıp Akademisi Tıbbi Gazlar Bölümü personeline, aileme ve Bilim İnsanı Destekleme

Bursu ile katkılarından TÜBİTAK’a teşekkürlerimi sunarım.

Oktay AYDIN Ankara, Kasım 2008

Page 6: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

iv

İÇİNDEKİLER

ÖZET ................................................................................................................................. i

ABSTRACT ..................................................................................................................... ii

TEŞEKKÜR ................................................................................................................... iii

SİMGELER DİZİNİ ...................................................................................................... vi

ŞEKİLLER DİZİNİ ...................................................................................................... vii

ÇİZELGELER DİZİNİ ................................................................................................. ix

1. GİRİŞ ........................................................................................................................... 1

2. KURAMSAL TEMELLER ........................................................................................ 2

2.1 Hastanelerde Kullanılan Başlıca Tıbbi Gazlar ...................................................... 2

2.1.1 Medikal oksijen ...................................................................................................... 2

2.1.2 Medikal karbondioksit ........................................................................................ 10

2.1.3 Medikal azot protoksit ......................................................................................... 10

2.1.4 Medikal hava (basınçlı hava) .............................................................................. 13

2.1.5 Medikal vakum ..................................................................................................... 15

2.2 Mikroişlemciler ve Mikrodenetleyicilere Genel Bakış......................................... 17

2.2.1 Mikroişlemciler .................................................................................................... 17

2.2.2 Mikrodenetleyiciler .............................................................................................. 18

2.2.3 PIC’in özellikleri .................................................................................................. 22

2.2.4 Bir PIC’in işlem yapabilmesi için gerekli bileşenler ......................................... 23

2.2.5 PIC 16F877 ........................................................................................................... 24

2.2.6 Bellek Organizasyonu .......................................................................................... 26

2.2.7 Program Bellek Organizasyonu .......................................................................... 26

2.2.8 Veri Bellek Organizasyonu.................................................................................. 26

2.3 Pic Basic Programlama Dili ................................................................................... 27

3. MATERYAL VE YÖNTEM .................................................................................... 28

3.1 Gaz Basınç Görüntüleme ve Alarm Sistemi ......................................................... 29

3.1.1 Sensörler ............................................................................................................... 29

3.1.2 Kontrol devresi ..................................................................................................... 30

3.1.2.1 Devrenin çalışması ............................................................................................ 34

3.1.3 Geliştirilen program............................................................................................. 36

Page 7: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

v

4. TARTIŞMA VE SONUÇ .......................................................................................... 48

KAYNAKLAR .............................................................................................................. 51

EKLER ........................................................................................................................... 53

EK 1 Kontrol Devresindeki PIC’ler İçine Yüklenen Kodlar .................................... 54

EK 2 Bilgisayarda Çalışan Programın Kaynak Kodları ........................................... 66

EK 3 MPX5999D İçin Üretici Bilgi Sayfası ................................................................ 86

EK 4 MPX5100D İçin Üretici Bilgi Sayfası ................................................................ 89

EK 5 Pic Basic Proglamlama Dilinde Komutlar ........................................................ 94

EK 6 PIC 16F877’de Pin Tanımlamaları .................................................................... 98

EK 7 PIC 16F877’nin Basitleştirilmiş İç Yapısı ....................................................... 100

ÖZGEÇMİŞ ................................................................................................................. 101

Page 8: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

vi

SİMGELER DİZİNİ

CPU Central Processing Unit

EPROM Erasable Programmable Read-Only Memory

FDA U.S. Food And Drug Administration

I/O Input/Output

MCU Microcontroller Unit

OTP One Time Programmable

PIC Peripheral Interface Controller

PROM Programmable Read-Only Memory

PSA Pressure Swing Adsorption

PWM Pulse-With Modulation

RAM Random-Access Memory

ROM Read-Only Memory

RISC Reduced Instruction Set Computing

SFR Special Function Register

USART The Universal Synchronous Asynchronous Receiver Transmitter

Page 9: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

vii

ŞEKİLLER DİZİNİ

Şekil 2.1 Örnek bir oksijen santrali ................................................................................... 4

Şekil 2.2 Örnek bir yüksek basınç düşürücü ..................................................................... 4

Şekil 2.3 Örnek bir ikincil basınç düşürücü ...................................................................... 5

Şekil 2.4 Örnek bir kollektör ............................................................................................. 5

Şekil 2.5 Örnek bir bağlantı borusu .................................................................................. 6

Şekil 2.6 Örnek bir medikal hava santrali ......................................................................... 8

Şekil 2.7 Örnek bir medikal hava santrali alarm paneli .................................................... 8

Şekil 2.8 Örnek bir medikal vakum santrali ..................................................................... 9

Şekil 2.9 Örnek bir medikal hava santrali ....................................................................... 14

Şekil 2.10 Örnek bir medikal hava santrali alarm paneli ................................................ 15

Şekil 2.11 Örnek bir medikal vakum santrali ................................................................. 16

Şekil 2.12 Örnek bir medikal vakum pompası ................................................................ 17

Şekil 2.13 Bir mikroişlemci sisteminin temel bileşenlerinin blok diyagramı ................. 18

Şekil 2.14 Bir mikrodenetleyici sisteminin temel bileşenlerinin blok diyagramı ........... 19

Şekil 2.15 PIC 16F877’nin giriş çıkış portları ................................................................ 24

Şekil 3.1 Kontrol devresi genel şeması ........................................................................... 31

Şekil 3.2 Kontrol devresine ait baskı devre .................................................................... 32

Şekil 3.3 Geliştirilen kontrol devresi .............................................................................. 33

Şekil 3.4 Sensör bağlantıları ........................................................................................... 33

Şekil 3.5 Sensörlerin gaz prizlerine bağlanışı ................................................................. 34

Şekil 3.6 Geliştirilen bilgisayar programına ait akış şeması ........................................... 37

Şekil 3.7 Limit ayarlama penceresine ait ekran görüntüsü ............................................. 38

Şekil 3.8 Normal basınç için örnek ekran görüntüsü ...................................................... 39

Şekil 3.9 Pozitif basınç sensöründe düşük basınç için örnek ekran görüntüsü ............... 40

Şekil 3.10 Negatif basınç sensöründe düşük basınç için örnek ekran görüntüsü............ 41

Şekil 3.11 Pozitif basınç sensöründe yüksek basınç için örnek ekran görüntüsü ........... 42

Şekil 3.12 Negatif basınç sensöründe yüksek basınç için örnek ekran görüntüsü .......... 43

Şekil 3.13 Pozitif basınç sensöründe çok yüksek basınç için örnek ekran görüntüsü .... 44

Şekil 3.14 Negatif basınç sensöründe çok yüksek basınç için örnek ekran görüntüsü ... 45

Page 10: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

viii

Şekil 3.15 Bir basınç sensörünün arızalı olması veya o hattaki basıncın 0 (sıfır) bar

olması durumuna ait örnek ekran görüntüsü ................................................. 46

Şekil 3.16 Kayit.txt dosyasına ait bir ekran görüntüsü ................................................... 47

Page 11: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

ix

ÇİZELGELER DİZİNİ

Çizelge 2.1 PIC 16F877’de RP0 ve RP1 ile bank seçimi ............................................... 27

Çizelge 4.1 Ölçüm sonuçları karşılaştırması ................................................................... 49

Page 12: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

1

1. GİRİŞ

Hastanelerde, ameliyathanelerde ve hasta odalarında çeşitli tıbbi gazlar değişik amaçlar

için kullanılmaktadır (anestezi, ameliyat bölgesinin daha iyi görülebilmesi amacıyla

vücut boşluklarının genişletilmesi v.b.). Tıbbi gazlar bu ilgili birimlere merkezi gaz

santrallerinden yollanır. Merkezi gaz santrallerinde gazların basıncı belli değerler

arasında tutulmakta ve bu değerlerin dışına çıktığında santral üzerindeki alarm paneli

marifetiyle alarm üretilmektedir.

Tıbbi gazlar, hastanenin ilgili birçok katına gönderildiği için bu katlardaki basınç

değerlerinin belirlenmiş limitler arasında olması gerekmektedir. Bunun için de her bir

kattaki her gaz hattındaki basıncın sürekli olarak gözlenmesi ve basınçların belirlenmiş

limitlerin dışına çıkması durumunda ilgili personelin bir alarm ile uyarılması hastalar

için hayati önem taşımaktadır. Bu çalışmada bu işlevi yerine getirecek bir gaz basınç

görüntüleme ve alarm sistemi yapılmıştır. Bu sistem sayesinde istenilen kat veya katlara

giden gazların basınçları sürekli olarak izlenilebilmekte, bilgisayarda saklanabilmekte,

basınç değerleri limitlerin dışında çıktığında sesli ve görsel alarm üretilebilmekte ve

geriye dönük olarak gaz basınçları sorgulanabilmektedir. Ayrıca basınç sensörlerinin

arızalı olması durumundan da kullanıcı haberdar edilmektedir. Gaz basınçlarının hangi

değerlerin dışına çıktığında alarm üretileceği ise kullanıcı tarafından

belirlenebilmektedir.

İkinci bölümde hastanelerde kullanılan başlıca tıbbi gazlar, özellikleri ve kullanım

alanları anlatılmıştır. Mikroişlemci ve mikrodenetleyicilerin özellikleri anlatılmıştır.

Üçüncü bölümde ise yapılan bu sistemin ana bölümleri ve bunların detayları

anlatılmıştır.

Dördüncü bölümde de bu çalışmanın genel değerlendirmesi ve sonuçlar anlatılmıştır.

Page 13: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

2

2. KURAMSAL TEMELLER

2.1 Hastanelerde Kullanılan Başlıca Tıbbi Gazlar

Bu çalışma kapsamında tıbbi gazların basınçlarının görüntülenmesi, kaydedilmesi ve

olağan dışı durumlarda alarm üretilmesini sağlayan bir sistem gerçeklendiği için bu

bölümde hastanelerde ve diğer sağlık kuruluşlarında kullanılan başlıca tıbbi gazların

genel özellikleri üzerinde durulmuştur.

2.1.1 Medikal oksijen

Oksijen ve aerobik metabolizma insan yaşamının temel kaynağıdır. Ana rahmindeki

fetüsün büyümesinden, hayatının sonuna kadar vücuttaki bütün hücreler, uygun oksijen

sağlanmasına ve bunu sağlayacak taşıma aracı kana ihtiyaç duyarlar. Dünyayı

çevreleyen atmosferdeki oksijen hacmi %21’dir. Tıp dünyasında; ciğerlerden kana

oksijenin uygun aktarılabilmesi için sadece uygun oksijen hacim oranı değil, uygun

oksijen kısmi basıncına da ihtiyaç duyulduğu uzun zamandır bilinen bir gerçektir.

Medikal oksijen, bu şekilde uygun kısmi basınç ve uygun hacimsel oranda verilerek

akciğer enfeksiyonları tedavisinde kullanılmaktadır. Ayrıca medikal oksijen, genel

anestezi esnasındaki taze gaz akışının temel parçasıdır, medikal azot protoksit veya hava

ile ½ lt/dak oranında karıştırılır. Tüm dünyada operasyonlarda kullanılır

(http://www.linde-gastherapeutics.com/international/web/lg/lgt/likelglgt.nsf/docbyalias/

nav_healthcare_profes_gases_in_medicine, 2008).

Medikal oksijen ağır karbonmonoksit zehirlenmelerinde standart tedavi malzemesidir.

Günümüzde normal basınç altında olan yüksek akışlı oksijen terapisi veya ciddi

durumlarda yüksek basınçlı oksijen terapisi, karbonmonoksit zehirlenmelerinde altın

standartta tedavi yöntemidir (http://www.linde-gastherapeutics.com/international/web/

lg/lgt/likelglgt.nsf/docbyalias/ nav_healthcare_profes_gases_in_medicine, 2008).

Page 14: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

3

Medikal oksijen, kullanılacağı birimlerdeki prizlere kadar uygun şekilde iletilir. Bu

prizlerdeki basıncın, hastalar için hayati önemi vardır ve normal şartlarda basınç 3 bar

ile 5 bar arasında olmalıdır. Basınç olması gereken değerin altına düştüğünde veya

üzerine çıktığında ilgili personelin bir alarm ile uyarılması gerekmektedir.

Bu tez çalışmasında yapılan sistem sayesinde medikal oksijen hattına takılan sensör ile

oksijenin basıncı izlenmekte, kaydedilebilmekte ve limitlerin dışına çıktığında sistemin

bağlı olduğu bilgisayardan ilgili personel uyarılmaktadır. Basınç limitleri ise kullanıcı

tarafından belirlenebilmektedir.

Medikal oksijen, hastanelerde hasta odaları ve ameliyathanelere merkezi bir santralden

dağıtılır. Örnek bir oksijen santraline ait fotoğraf Şekil 2.1’de görülmektedir. Bu

santraller şu kısımlardan oluşur (http://www.megasan.com.tr/tr/home.htm, 2008);

a) yüksek basınç düşürücü,

b) ikincil basınç düşürücü,

c) kolektörler,

d) bağlantı boruları

Bu kısımlara ait örnek fotoğraflar Şekil 2.2 – 2.5’te görülmektedir

(http://www.megasan.com.tr/tr/home.htm, 2008).

Kolektörler gaz tüplerini gaz santrallerine bağlamak için kullanılır. Her kolektör, bağlı

olduğu gaz santralinin rengine boyalıdır.

Ayrıca burada fotoğraflarda görülen örnek santral, bir firmaya ait olup firmadan firmaya

santral bileşenleri farklılık göstermektedir. Burada temsili olarak piyasada bulunan

santral çeşitlerinden bir tanesine ait fotoğraflar konulmuştur.

Page 15: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

4

Şekil 2.1 Örnek bir oksijen santrali

Şekil 2.2 Örnek bir yüksek basınç düşürücü

Page 16: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

5

Şekil 2.3 Örnek bir ikincil basınç düşürücü

Şekil 2.4 Örnek bir kollektör

Page 17: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

6

Şekil 2.5 Örnek bir bağlantı borusu

Oksijen elde etmek için kullanılan yöntemlerden birisi elektroliz yöntemidir. Suyun

doğru akım kullanılarak hidrojen ve oksijenlerine ayrılması işlemine elektroliz

denmektedir. Oksijen üretimi için en basit yöntem olarak bilinmektedir. İlke olarak, bir

elektroliz hücresi içinde, genelde düzlem bir metal veya karbon plakalar olan, iki

elektrot ve bunların içine daldırıldığı, elektrolit olarak adlandırılan iletken bir sıvı

bulunmaktadır. Doğru akım kaynağı, bu elektrotlara bağlandığında akım iletken sıvı

içinde, pozitif elektrottan negatif elektroda doğru akacaktır. Bunun sonucu olarak da,

elektrolit içindeki su, katottan çıkan hidrojen ve anottan çıkan oksijene ayrışacaktır.

Burada yalnız suyun ayrışmasına karşılık, su iyi bir iletken olmadığı için elektrolitin

içine iletkenliği artırıcı olarak genelde potasyum hidroksit gibi bir madde eklenir

(http://www.webhatti.com/kimya/49629-suyun-elektrolizi-ile-ayrismasi.html, 2008).

Suyun elektrolizi ile gerçekleşecek olan üretim, gerekli talebi ivedi bir şekilde

karşılayamayacağından ve işletme zorlukları bakımından fazla kullanılmayan bir

yöntemdir (http://www.tesamedikal.com/, 2008).

Amerikan İlaç Dairesi Başkanlığı’nın (FDA) yayınına (Fresh Air 2000) göre dolum

tüpleri ve tankları ayrı incelenmiştir, hava ayrıştırma sistemleri ayrı başlıkta

incelenmiştir (http://www.4n2c.com/oksijen-uretim-tesisi-jeneratoru.htm, 2008);

Page 18: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

7

Tüp tipleri sistemleri :

• Yüksek basınçlı tüpler

• Cryogenic tüpler

Tüp dolum yöntemleri :

• Yüksek basınçlı oksijen gazı dolumu

• Likit oksijenden – likit oksijen dolumu

• Likit oksijenden – gaz oksijen dolumu

Bunların dışında “Hava Ayrıştırma Sistemleri” medikal oksijen tedarik yöntemi olarak

özellikle belirtilmiştir (http://www.4n2c.com/oksijen-uretim-tesisi-jeneratoru.htm,

2008).

Oksijen, tedarik yöntemine bağlı olarak değişik saflıkta olabilir. Özellikle tüp ve likit

olarak tedarikte, gaz oksijeni veya likit oksijeni taşıyan tankın bir önceki işlemde ortam

havasına maruz kalma riski yüzünden bu tip tedarik araçlarında yüksek saflıkta oksijene

ihtiyaç vardır. Çünkü bir önceki tedarikte tankın, ortam havasına maruz kalması gazın

saflığını düşürecektir. Bu sebeple taşımalı uygulamalarda yüksek saflık

öngörülmektedir. Oksijen konsantrasyonu; hava sıvılaştırma yönteminde minimum %

99, hava ayrıştırma yönteminde minimum % 90, maksimum % 96’dır

(http://www.4n2c.com/oksijen-uretim-tesisi-jeneratoru.htm, 2008).

Hava bünyesinde % 21 oksijen, %78 azot, % 0.9 argon ve % 0.1 oranında diğer gazlar

bulunmaktadır. Gaz saflaştırma sistemleri, yüksek saflıkta istenilen gazı diğerlerinden

ayrıştırmaktadır. Hava -196 °C’nin altına soğutulacak olursa sıvılaşır. Daha sonra sıvı

hava buharlaşmaya bırakılacak olursa -196 °C’de azot uzaklaşır, geride oksijen kalır.

Oksijen içindeki safsızlıklar aşamalı buharlaştırma ile uzaklaştırılır. Bu şekilde hava

sıvılaştırma ile oksijen elde edilmiş olur

(http://www.4n2c.com/oksijen-uretim-tesisi-jeneratoru.htm,2008,

http://makine.balikesir.edu.tr/ay/dersnotu/ImalatYontemleriI/ImalatYon5.pdf, 2008).

Page 19: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

8

Hava ayrıştırma sistemine göre çalışan oksijen jeneratörü, kompresör tarafından

basınçlandırılan havadan % 93.3 saflıkta oksijen elde eder. Ekonomik, sürekli, sağlıklı

ve zahmetsiz oksijen sağlar. Kullanılan yöntem olan PSA (Basınç Atlamalı Yüzeyde

Filtreleme), molekül çapında fiziksel filtrasyon olup, herhangi bir kimyasal işlem

yoktur. Moleküler filtre havadaki azot gazını tutarak oksijen gazını saflaştırır. Bu

yönteme göre işleyen bir medikal oksijen üretim tesisine ait akış şeması Şekil 2.6’da

görülmektedir (http://www.4n2c.com/oksijen-uretim-tesisi-jeneratoru.htm, 2008).

Şekil 2.6 Medikal oksijen üretim tesisi akış şeması

Oksijen üretim tesislerine ait örnek fotoğraflar ise Şekil 2.7 - 2.8’de görülmektedir

(http://www.tesamedikal.com/2008/, 2008).

Bu tez çalışmasında gerçeklenen sistem ile oksijen basıncının ölçülmesinde oksijenin

elde ediliş yönteminin bir önemi yoktur. Hangi yöntemle elde edilirse edilsin sağlıklı bir

şekilde basıncı ölçülebilmekte ve izlenilebilmektedir. Bu sayede sistemin kurulacağı

ünitede bulunan medikal oksijenin temin edildiği firma değişmesi halinde, yahut söz

konusu tesiste oksijen jeneratörü kurularak oksijenin tesiste üretilmeye başlanması

durumunda halihazırda kurulmuş olan gaz basınç görüntüleme ve kayıt sisteminde bir

değişiklik veya eklenti yapılmasına gerek olmadan yeni sistemin de basıncı

izlenilebilecektir.

Page 20: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

9

Şekil 2.7 Oksijen üretim sistemi

Şekil 2.8 Oksijen üretim tankları

Page 21: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

10

2.1.2 Medikal karbondioksit

Minimal invazif cerrahide (laparoskopi, endoskopi, artroskopi) medikal karbondioksit,

ameliyat bölgesinin daha iyi görülebilmesi amacıyla vücut boşluklarının genişletilmesi

ve düz duruma getirilmesi için gaz üflemede kullanılmaktadır (Moritary 1954).

Ayrıca medikal karbondioksit, -76 ºC’a varan sıcaklık sağladığı sıvı fazda kiryoterapi

veya deri yüzeyine dışarıdan yapılan uygulamalarda lokal analjezi için kullanılır

(Moritary 1954).

Medikal karbondioksitin de hastanelerde hasta odaları ve ameliyathanelere taşınması

için oksijen santrallerine çok benzer dağıtım sistemleri kullanılmaktadır.

Medikal karbondioksit hasta odalarındaki prizlerine 3 bar ile 5 bar arasında olacak

şekilde iletilir. Bu değerlerin dışında bir basınç değeri hastaların sağlığı açısından önem

arz ettiğinden basıncın limitlerin çıkması durumunda görevli personelin uyarılması

gerekmektedir. Bu tez çalışmasında yapılan sistem ile medikal karbondioksit iletim

hattına bağlanan sensör ile basınç sürekli izlenebilmekte, kaydedilebilmekte ve limit

değerlerinin dışına çıktığında görevli personel, üretilen alarm ile uyarılmaktadır. Basınç

limit değerleri ise kullanıcı tarafından belirlenebilmektedir.

2.1.3 Medikal azot protoksit

Diğer ismi ile nitröz oksit (N2O), solunum yoluyla uygulanan bilinçli sedasyon

ajanlarının en çok kullanılanı olup renksiz, hoş kokulu, yanma ve alev alma özelliği

olmayan inorganik bir ilaçtır. Bu ilacın kullanımına ilk olarak İskandinav ülkelerinde

(özellikle Danimarka’da) 1930’lu yıllarda başlanmıştır. Kan akımına etkisi tamamen

fiziksel olduğu için vücuttaki dokularla kimyasal bir bağlantı yapmadığı bilinmektedir.

Oksijenle birlikte kullanıldığında en önemli etkisinin, santral geri dönüşümlü sinir

sistemi baskılaması olduğu ileri sürülmektedir. Uygulandığında gazın büyük bir bölümü

hemen kana karışarak akciğerlere gönderilir. Plazmada çözünmesi düşük seviyede

Page 22: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

11

olduğu için etki dozuna çabuk ulaşmakta ve kesildiği anda kandaki dozu hızla

azalmaktadır. Yan etkileri azdır ve yeterli oksijen ile birlikte kullanıldığında toksik

etkisi olmayan bir gazdır. Yüksek konsantrasyonlarda nitröz oksit kullanımının mide

bulantısına neden olduğu ve doğru ayarlanamayan doz verildiğinde ise hastada endişe

ve heyecanın artmasına neden olabilmektedir (Sullivan and Benger 2003,

http://sozluk.sourtimes.org/show .asp?t=azot+protoksit, 2008).

Medikal azot protoksit, çok yaygın, doza bağımlı, analjezik (ağrı kesici) ve hafif

anestezik etkileri olan bir gazdır. Medikal azot protoksit, tek başına kullanılarak genel

anestezi yapılabilecek kadar kuvvetli bir madde değildir. Solunan anestezikler veya

damardan verilen anestezikler ile karıştırılınca etkileşimi daha fazla veya daha az

doğrudan etkili olabilmektedir. Ayrıca klinik olarak kullanılan bütün hipotonik,

analjezik ve anestezikler ile birlikte kullanılabilir (Ruben 1972, http://www.linde-

gastherapeutics.com/international/web/lg/lgt/likelglgt.nsf/docbyalias/nav_healthcare_pr

ofes_gases_in_medicine, 2008).

Medikal azot protoksit, anestezik/analjezik özelliklerinden ayrı olarak solunum ve

dolaşım gibi otonom fonksiyonlar üzerinde çok düşük etkilere sahiptir. Medikal azot

protoksit ve yaygın solunan herhangi bir anestezikle karıştırılarak yapılan

anestezilerdeki anlık nefes alma-verme, sadece herhangi bir etkili solunan anestezik ile

yapılan anestezilerdeki anlık nefes alma-verme ile kıyaslandığında daha iyi

sürdürülebildiği görülmektedir. Ayrıca kardiyovasküler değişkenler daha az

etkilenmektedir (http://www.linde-gastherapeutics.com/international/web/lg/lgt/likelglgt

.nsf/docbyalias/ nav_healthcare_profes_gases_in_medicine, 2008).

Medikal azot protoksitin hızlı “wash-in” (kavrama) ve “wash-out” (hızlı eleminasyon)

özellikleri de iyi bilinmektedir. Birçok çalışmada, bu hızlı eleminasyon ve iyi

sabitlenmiş anlık nefes alma-verme etkileri nedeniyle modern halojenlenmiş solunan

anestezikler ile medikal azot protoksitin karışımının kullanılmasıyla yapılan

anestezilerdeki anesteziden uyanma süresinin sadece solunan anestezik kullanılarak

yapılan anestezilere göre daha kısa olduğu gözlemlenmiştir (http://www.linde-gas

Page 23: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

12

therapeutics.com/international/web/lg/lgt/likelglgt.nsf/docbyalias/nav_healthcare_profes

_gases_in_medicine, 2008).

Medikal azot protoksit, yaygın anestezik/analjeziklere göre daha ucuz ve daha boldur.

Klinik özellikleri dikkate alındığında; hızlı başlama etkisi, minimum kardiyo-respiratori

etkileri ve hızlı denge etkisi, düşük maliyeti ve uyanmadaki hızlandırıcı etkisiyle

medikal azot protoksit, modern anestezide dikkat çeken etkin maliyetli (cost-effective)

bir seçenektir. Cerrahi larinjeal anestezik maske prosedürleri esnasında gelişen anlık

nefes alma-verme; uyanmayı kısaltmakta ve erken iyileşme sağlayarak operasyonda

hastaların sirkülasyonunu kolaylaştırmaktadır (http://www.linde-gastherapeutics

.com/international/web/lg/lgt/likelglgt.nsf/docbyalias/nav_healthcare_profes_gases_in_

medicine, 2008).

Medikal azot protoksitin klinik kullanımdaki uzun ve hayli yaygın kayıt geçmişi

düşünmeye değerdir. Medikal azot protoksit kullanıldığında yan etki görülebilecek

hastalar için kontraindiksiyonlar iyi bilinmekte ve kolayca belirlenebilmektedir.

Günümüzde bu kadar çok hastada kullanılan böyle yaygın ve güvenli başka bir ilaç

hemen hemen yok gibidir (http://www.linde-gastherapeutics.com/internation

al/web/lg/lgt/likelglgt.nsf/docbyalias/nav_healthcare_profes_gases_in_medicine, 2008).

Medikal azot protoksitin basıncı, kullanılacağı birimdeki prizde normal şartlarda 3 bar

ile 5 bar arasında olmalıdır. Basınç olması gereken değerin altına düştüğünde veya

üzerine çıktığında ilgili personelin bir alarm ile uyarılması gerekmektedir. Bu tez

çalışmasında yapılan sistem sayesinde medikal azot protoksit hattına takılan sensör ile

basıncı izlenebilmekte, kaydedilebilmekte ve basınç limitlerin dışına çıktığında sistemin

bağlı olduğu bilgisayardan ilgili personel uyarılmaktadır. Basınç limit değerleri ise

kullanıcı tarafından belirlenebilmektedir.

Medikal azot protoksitin, hastanelerde hasta odaları ve ameliyathanelere merkezi bir

santralden dağıtılır. Bu santraller şu kısımlardan oluşur

(http://www.megasan.com.tr/tr/home.htm, 2008);

a) yüksek basınç düşürücü,

Page 24: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

13

b) ikincil basınç düşürücü,

c) kolektörler,

d) bağlantı boruları

Bu kısımlar, oksijen santrallerinde kullanılan elemanlara çok benzemektedir. Bir oksijen

santrali ve bileşenlerinin fotoğrafları da Şekil 2.1 – 2.5’te görülmektedir.

2.1.4 Medikal hava (basınçlı hava)

Genellikle ventilasyon ve inhalasyon terapisinde kullanılır. Ventilasyon, akciğerlerden

karbondioksitli havanın çıkarılıp oksijenden zengin hava verilmesi işlemidir. İnhalasyon

ise gaz, buhar, hava ya da sis şekline dönüştürülmüş sıvıların tedavi amacıyla solunması

ya da absorbe edilmesine verilen isimdir. Aynı zamanda inhalasyonal anestezide

narkotik maddelerin taşıyıcı gazı olarak kullanılmaktadır (http://www.linde-

gastherapeutics.com/international/web/lg/lgt/likelglgt.nsf/docbyalias/nav_healthcare_pr

ofes_gases_in_medicine, 2008).

Pulmoner nebülizer makineleri (nebülizer olarak da bilinir, ağız ve burundan püskürtme

şeklinde ilaç uygulanmasında kullanılmaktadır) ölçülmüş dozda inhaler ve spacer

kullanmakta sorunları olan çok küçük çocuklara rutin tıbbi inhaled bronkodilatör

(solunum dalı genişleticisi, bronşları genişletebilen bir madde ya da ilaç) tedavisi

uygulamaktadır. Medikal hava, oda havasını nebülizere doğru sirküle etmekte kullanılır.

Nebülizer, sıvı ilacı, direk akciğerlere solunabilen buğuya (mist) dönüştürmektedir

(http://www.linde-gastherapeutics.com/international/web/lg/lgt/likelglgt.nsf/docbyalias/

nav_healthcare_profes_gases_in_medicine, 2008).

Medikal hava hastanelerde hasta odaları ve ameliyathanelere merkezi bir santralden

dağıtılmaktadır.

Medikal hava basıncı, kullanılacağı birimdeki prizde normal şartlarda 3 bar ile 5 bar

arasında olmalıdır. Basınç olması gereken değerin altına düştüğünde veya üzerine

Page 25: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

14

çıktığında ilgili personelin bir alarm ile uyarılması gerekmektedir. Bu tez çalışmasında

yapılan sistem sayesinde medikal hava hattına takılan sensör ile basıncı izlenebilmekte,

kaydedilebilmekte ve basınç limitlerin dışına çıktığında sistemin bağlı olduğu

bilgisayardan ilgili personel uyarılmaktadır. Basınç limitleri ise kullanıcı tarafından

belirlenebilmektedir.

Örnek bir medikal hava santrali fotoğrafı Şekil 2.9’da görülmektedir. Medikal hava

santrali kendi üzerinde alarm paneline sahip olup anormal durumlarda santral üzerindeki

bu panelde alarm üretilmektedir. Alarm paneline ait örnek bir fotoğraf Şekil 2.10’da

görülmektedir.

Şekil 2.9 Örnek bir medikal hava santrali

Page 26: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

15

Şekil 2.10 Örnek bir medikal hava santrali alarm paneli

2.1.5 Medikal vakum

Medikal vakum, havanın emilerek ortamda hijyen sağlanması amacıyla

ameliyathanelerde, yoğun bakım odalarında, acil servislerde kullanılır. Havanın

ortamdan emilmesi için vakum hattı boyunca negatif bir basınç olması gerekmektedir.

Bu basınç normal şartlarda -500 mmHg ile -620 mmHg arasında olması gerekmektedir.

Bu tez çalışmasında yapılan sistem ile vakum hattına bağlanan sensör aracılığıyla

vakum basınç değeri sürekli izlenebilmekte ve kaydedilebilmektedir. Şayet basınç

değeri normal sınırları dışına çıkar ise ilgili personel sistem tarafından üretilen görsel ve

sesli alarm ile uyarılmaktadır. Basınç limit değerleri ise kullanıcı tarafından

belirlenebilmektedir.

Hastanelerde vakum, merkezi bir santralden sağlanmaktadır. Örnek bir vakum

santraline ait fotoğraf Şekil 2.11’de görülmektedir. Ayrıca vakumlama yapan vakum

pompasına ait örnek bir fotoğraf da şekil 2.12’de görülmektedir (http://www.linde-

Page 27: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

16

gastherapeutics.com/international/web/lg/lgt/likelglgt.nsf/docbyalias/ nav_healthcare_pr

ofes_gases_in_medicine, 2008).

Şekil 2.11 Örnek bir medikal vakum santrali

Page 28: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

17

Şekil 2.12 Örnek bir medikal vakum pompası

2.2 Mikroişlemciler ve Mikrodenetleyicilere Genel Bakış

Bu çalışmada mikrodenetleyici kontrollü bir devre ile basınç görüntüleme ve alarm

üretimi üzerine çalışıldığı için bu bölümde genel olarak mikroişlemciler,

mikrodenetleyiciler ve mikrodenetleyiciler için kod yazılmasında kullanılan ve bu

çalışmada da kullanılan programlama dili, Picbasic, genel hatlarıyla anlatılacaktır.

2.2.1 Mikroişlemciler

İşlemci; bir bilgisayarda ya da başka bir makinede, komutları yorumlayan ve yürüten

birimdir. Mikroişlemci ise; bütün öğeleri, genellikle tek bir entegre devre halinde

birleştirilmiş, minyatür işlemcidir. Oldukça genel bir komut takımıyla donatılmış,

binlerce sözcüklük bir çalışma belleği taşıyan ve 4, 8 ya da 16 hatta 32 bit üzerinden

hesap yapan bileşenlerdir (http://nedir.net/mikroislemci.html, 2008).

Bir mikroişlemci işlevini yerine getirebilmesi için aşağıdaki yardımcı elemanlara ihtiyaç

duyar. Bunlar (http://nedir.net/mikroislemci.html, 2008);

1. Giriş (input) ünitesi,

Page 29: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

18

2. Çıkış (Output) ünitesi,

3. Bellek (Memory) ünitesi.

Bu üniteler işlemcinin dışında, bilgisayarın ana kartı üzerinde bir yerde farklı

entegrelerden veya elektronik elemanlardan oluşur. Aralarındaki iletişimi ise veri yolu

(Data bus), adres yolu (Address bus) denilen iletim hatları yapar

(http://www.donanimtr.com/mikroislemci-nedir-t704.html?s=ba73d007f8746c2c752e2b

4a75199c12&,2008).

Bir mikroişlemci sisteminin temel bileşenlerinin blok diyagramı Şekil 2.13’de

görülmektedir (http://www.donanimtr.com/mikroislemci-nedir-t704.html?s=ba73d007

f8746c2c752e2b4a75199c12&, 2008).

Şekil 2.13 Bir mikroişlemci sisteminin temel bileşenlerinin blok diyagramı

2.2.2 Mikrodenetleyiciler

Bir bilgisayar içerisinde bulunması gereken temel bileşenlerden RAM, I/O ünitesinin

tek bir entegre içerisinde üretilmiş biçimine mikrodenetleyici (Microcontroller) denir.

Bilgisayar teknolojisi gerektiren uygulamalarda kullanılmak üzere tasarlanmış olan

mikrodenetleyiciler, mikroişlemcilere göre çok daha basit ve ucuzdur. Günümüz

mikrodenetleyicileri otomobillerde, kameralarda, cep telefonlarında, fax-modem

cihazlarında, fotokopi, radyo, TV, bazı oyuncaklar gibi sayılamayacak kadar pek çok

Page 30: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

19

alanda kullanılmaktadır (http://www.donanimtr.com/mikroislemci-nedir-t704.html?s=

ba73d007 f8746c2c752e2b4a75199c12&, 2008).

Günümüz mikrodenetleyicileri birçok entegre üreticisi tarafından üretilmektedir. Her

firma ürettiği entegreye farklı isimler vermektedir. Örneğin Microchip firması

ürettiklerine PIC adını verirken, Intel'in ürettiği ve 1980'lerin başında piyasaya sürdüğü

8051, bazen MCS-51 olarak da adlandırılır. PIC’in kelime anlamı “peripheral interface

controller” (çevresel arabirim denetleyicisi) dir. Bir mikrodenetleyici sisteminin temel

bileşenlerinin blok diyagramı Şekil 2.14’te görülmektedir

(http://www.donanimtr.com/mikroislemci-nedir-t704.html?s=ba73d007 f8746c2c752e

2b4a75199c12&, 2008).

Şekil 2.14 Bir mikrodenetleyici sisteminin temel bileşenlerinin blok diyagramı

Mikroişlemciler hafıza veya giriş çıkış entegresi gibi çevre elemanlar ile birlikte

aritmetik işlemler yapabilen, karar verebilen entegrelerdir. Mikrodenetleyici ise

mikroişlemcinin yanı sıra kendi program hafızası ve giriş çıkış özelliklerini içinde

barındıran entegrelerdir. Bu özellikleri sayesinde yüklü bir programı uygulamaya

dönüştürerek bir kontrol sistemi olarak kullanılabilir.

Mikroişlemci ile kontrol edilecek bir sistemi kurmak için en azından şu üniteler

bulunmalıdır; işlemci, bellek, giriş/çıkış üniteleri ve bu ünitelerin arasındaki veri alış

verişini kurmak için veri yolu (data bus) gerekmektedir. Elbette bu üniteleri

Page 31: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

20

yerleştirmek için baskılı devreyi de unutmamak gerekmektedir. Mikrodenetleyici ile

kontrol edilecek sistemde ise yukarıda saydığımız ünitelerin yerine geçecek tek bir

entegre (Mikrodenetleyici) ve bir de devre kartı kullanmak yetecektir. Tek entegre

kullanarak elektronik çözümler üretmenin maliyetinin daha düşük olacağı kesindir.

Ayrıca da kullanım ve programlama kolaylığı da ikinci bir avantajıdır. İşte yukarda

saydığımız nedenlerden dolayı son zamanlarda bilgisayar kontrolü gerektiren elektronik

uygulamalarda mikrodenetleyici kullanmaya eğilimin artmasının haklılığını ortaya

koyuyor (http://www.donanimtr.com/mikroislemci-nedir-t704.html?s=ba73d007 f8746

c2c752e2b4a75199c12&, 2008).

Bir mikrodenetleyici genel olarak aşağıdaki birimlerden oluşur (Turgutlu 2002):

• CPU (Merkezi işlem ünitesi - central processing unit)

• RAM (Rastgele erişimli bellek-Random Access Memory)

• EPROM/PROM/ROM (Silinir, yazılır sadece okunur bellek-Erasable

Programmable Read Only Memory)

• I/O (Girdi/çıktı - input/output) - seri ve paralel

• Zamanlayıcılar (Timers)

• Kesmeler (Interrupt controller)

Mikrodenetleyicilerde işlemler ve komutlar bit bit kontrol edilebildiğinden giriş ve çıkış

birimleri ve kesmeler çok etkin bir şekilde kullanılabilmektedir.

Şu an kullandığımız masaüstü veya dizüstü bilgisayarlar genel amaçlı bilgisayarlardır

ve binlerce programı çalıştırabilirler. Mikrodenetleyiciler ise özel amaçlı

bilgisayarlardır ve programlandıkları şeyi en iyi şekilde yaparlar. Bunun dışında;

• Mikrodenetleyiciler sadece bir iş için programlanmışlardır ve bu program

içlerindeki sadece okunur bellekte (ROM) değişmemek üzere saklı bulunur.

• Mikrodenetleyiciler düşük güçte çalışan çiplerdir. Bir bilgisayar 50W civarı güç

harcarken mikrodenetleyiciler sadece 50 mWatt civarında güç harcarlar.

• Mikrodenetleyiciler genelde küçük ve düşük fiyatlı çiplerdir. Bir çok parçadan

oluşan kompleks bir devreyi kolayca küçük boyutlara ve maliyete indirmenizi

sağlar (Turgutlu 2002).

Page 32: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

21

Ayrıca mikrodenetleyiciler belleklerine göre de çeşit gösterirler;

a) EEPROM Bellekli Mikrodenetleyiciler: Elektriksel olarak silinebilen ve

yazılabilen belleklerdir. Çoğu mikrodenetleyicilerde sınırlı sayıda bulunan

EEPROM lar, bir defadan fazla yazılıp silinebildikleri için oldukça kullanışlıdır.

b) Flaş (EPROM) Bellekli Mikrodenetleyiciler: Flaş bellekler EEPROM lardan

daha hızlı ve daha çok yazma silme işlemine izin vermeleri yönünden

üstündürler. Flash belleklerde bilgilerin korunması söz konusu değildir.

c) OTP Bellekli Mikrodenetleyiciler: Bir kez programlanabilen

mikrodenetleyicilerdir. OTP bir kez programlanabilen bir ROM'dur.

Programınızı bir EPROM programlayıcı ile bir kez yazdıktan sonra silemez veya

değiştiremezsiniz. Bu yöntem programınız artık tamamen hazır olduğunda ve

bütün hatalarından arındırıldıktan sonra kullanılır (Turgutlu 2002).

PIC serisi tüm denetleyiciler herhangi bir ek bellek veya giriş/çıkış elemanı

gerektirmeden sadece 2 adet kondansatör, 1 adet direnç ve bir kristal ile

çalıştırılabilmektedir. Tek bacaktan 40 mA akım çekilebilme ve entegre toplamı olarak

150 mA akım akıtma kapasitesine sahiptir. Entegrenin 4 Mhz osilator frekansında

çektiği akım; çalışırken 2 mA, stand-by durumunda ise 20uA kadardır (Matic et al.

2000).

PIC 16CXX ailesinin amatör elektronikçiler arasında en çok tanınan ve dünyada

üzerinde en çok proje üretilmiş elemanı ise PIC16C84 veya PIC16F84’tür. PIC 16F84’

ün bu kadar popüler olması onun çok iyi bir denetleyici olmasından ziyade program

belleğinin EEPROM (Elektrikle silinip yazılabilen bellek) olmasından

kaynaklanmaktadır. Seri olarak dört adet kabloyla programlanması da diğer önemli

avantajıdır. Bugüne kadar amatörce bir işlemciyle uğraşmış herkesin en büyük sıkıntısı

EPROM veya EPROM tabanlı denetleyicileri programladıktan sonra ultraviole ışık

kaynağı ile silip tekrar programlamaktır. Bu çok zahmetli ve bir amatör için ekipman

gerektiren yöntem olmuştur (http://www.elektronika.gen.tr/datasheet/16f877.pdf,

2008).

Page 33: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

22

Tasarlanan PIC kontrollü gaz basınç kontrol sisteminde PIC 16F877 kullanılmıştır. PIC

16F877 ise PIC 16F84’ün tüm özelliklerini taşımaktadır. Ayrıca PIC 16F877’de

PIC16F84’e ek olarak bazı önemli özellikleri yer almaktadır (analog/sayısal çevirici

gibi).

2.2.3 PIC’in özellikleri

PIC tipi entegrelerin öne çıkan bazı özellikleri şöyle sıralanabilir (http://www.elektro

nika.gen.tr/datasheet/16f877.pdf, 2008):

� Güvenirlik: PIC komutları bellekte çok az yer kaplarlar. Dolayısıyla bu komutlar

12 veya 14 bitlik bir program bellek sözcüğüne sığarlar. Harward mimarisi

kullanılmayan mikrodenetleyicilerde yazılım programının veri kısmına atlama

yaparak bu verilerin komut gibi çalışmasını sağlamaktadır. Bu ise büyük

hatalara yol açmaktadır. Ancak RISC mimarisi kullanılan PIC’ lerde bu durum

engellenmiştir.

� Hız: PIC oldukça hızlı bir mikrodenetleyicidir. Her bir komut satırı 1µsn’lik bir

zaman diliminde işlenir. Örneğin 5 milyon komutluk bir programın 20Mhz’ lik

bir kristalle işletilmesi yalnız 1sn sürer. Bu süre kabaca 386 diye tanımladığımız

sayısal bilgisayarın hızının yaklaşık 2 katıdır. Ayrıca PIC’lerin RISC mimarisine

sahip olmasının hıza etkisi oldukça büyüktür.

� Komut Takımı: PIC’te bir işlem gerçekleştirmek için kullanılacak komut sayısı

oldukça azdır. Örneğin PIC16F8XX ailesinde 33 komutu kullanarak sınırsız

sayıda işlem yapabilmek mümkündür.

� Statik işlem: PIC mikrodenetleyici tamamıyla statik bir işlemcidir. Bu da demek

oluyor ki işlemciye pals sağlayan osilasyon kaynağı durdurulsa bile işlenen

veriler muhafaza edilmektedir.

Page 34: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

23

� Sürme özelliği: PIC’ler yüksek bir sürme kapasitesine sahiptir. Çıkış olarak

tanımlanan pinlerin yalnız birinin aktif olması halinde 40mA çekilebilmektedir.

Entegre elemanın tamamı düşünüldüğünde ise 150 mA’e kadar akım

çekilebilmektedir.

� Güvenlik: PIC üretim özelliği itibariyle bir protect yani koruma bitine sahiptir.

Bu bitin programlanması yolu ile PIC içerisine yazılan programın başkaları

tarafından okunması ve kopyalanmasına engel olunmuş olunur.

� Flash olma özelliği: Bu özellik PIC’in yeniden programlanabilir olması

durumunu ifade etmektedir. Yani PIC üzerine yazılan program geliştirme amacı

ile silinebilir ve yeni bir program yüklenebilir.

2.2.4 Bir PIC’in işlem yapabilmesi için gerekli bileşenler

Bir PIC entegresinin işlem yapabilmesi için gerekli bileşenler şöyle sıralanabilir

(Turgutlu 2002);

a) Giriş-Çıkış (I/O): Mikrodenetleyicinin dış dünya ile ilişkisini sağlayan, girdi ve

çıktı şeklinde ayarlanabilen bir bağlantı pinidir.

b) Yazılım: Mikrodenetleyicinin çalışmasını ve işletilmesini sağlayan bilgidir.

Başarılı bir uygulama için yazılım hatasız olmalıdır. Yazılım C, Pascal veya

Assembler gibi çeşitli dillerde veya ikilik(binary) olarak yazılabilir.

c) Donanım: Mikrodenetleyiciyi, bellek, arabirim bileşenleri, güç kaynakları, sinyal

düzenleyici devreler ve bunları çalıştırmak ve arabirim görevini üstlenmek için

bu cihazlara bağlanan tüm bileşenlerdir.

d) Programlayıcı: Yazılan kaynak kodun nesne koda çevrildikten sonra bu nesne

kod dosyasının mikrodenetleyiciye aktarılmasını sağlayan yani

Page 35: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

24

mikrodenetleyicinin programlamasını sağlayan bir birimdir. Çoğunlukla seri

port’a bağlanan bu birimler çok çeşitli biçim, ebat ve fiyatlara sahiptir.

e) Kaynak Dosyası: Hem asembler’in hem de tasarımcının anlayabileceği dilde

yazılmış bir programdır. Kaynak dosya mikrodenetleyicinin anlayabilmesi için

önceden assemble edilmiş olmalıdır.

f) Assembler: Kaynak dosyayı bir nesne dosyaya dönüştüren yazılım paketidir.

Hata araştırma bu paketin yerleşik bir özelliğidir. Bu özellik assemble edilme

sürecinde hatalar çıktıkça programı hatalardan arındırırken kullanılır.

g) Nesne dosyası (object file) : Assembler tarafından üretilen bu dosya; PIC

içerisine yüklenecek ve PIC’in çalışmasını sağlayacak dosyadır. Dosya uzantısı

assemble edicinin emirlerine bağlı olarak, .OBJ veya .HEX uzantılı olur.

2.2.5 PIC 16F877

Şekil 2.15 PIC 16F877’nin giriş çıkış portları

Page 36: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

25

PIC16F877 yüksek performanslı, CMOS, full-statik, 8 bit mikrodenetleyicidir. Tüm PIC

16/17 mikrodenetleyicileri gibi PIC 16F877 de RISC mimarisini kullanmaktadır.

PIC16F87X mikroları birçok esas özelliklere sahiptir. 14 seviyeli, derin küme ve çoklu

iç ve dış kesme kaynaklarına sahiptir. 2 aşamalı komut hattı tüm komutların tek bir

saykıl ile (çevrimle) işlenmesini sağlamaktadır. Yalnızca bazı özel komutlar 2 saykıl

çekerler. Bu komutlar dallanma komutlarıdır. Şekil 2.15’te bu entegrenin giriş-çıkış

portları görülmektedir (Yalçın 2003).

PIC mikrodenetleyicilerinin en büyük özelliği sleep modu özelliğidir. Bu mod sayesinde

işlem yapılmadığı durumlarda PIC uyuma moduna geçerek çok düşük akım çeker.

Kullanıcı bir kaç iç ve dış kesmelerle PIC’i uyuma modundan çıkarabilmektedir.

Yüksek güvenilirlikli Watchdog Timer kendi bünyesindeki çip üstü RC osilatörü ile

yazılımı kilitlemeye karşı korumaktadır. PIC16F877 EEPROM program belleği, aynı

aygıt paketinin orjinali ve üretimi için kullanılmasına olanak vermektedir. Yeniden

programlanabilirliği mikroyu uygulamanın sonundan kaldırmadan kodu

güncelleştirmeye izin vermektedir. Bu aygıtın kolayca erişilemediği, fakat prototipinin

kod güncelleştirmesi gerekli olduğu durumlarda, bir çok uygulamanın geliştirilmesinde

yararlıdır. Bunun yanı sıra bu kodun güncelleştirilmesi diğer ayrı uygulamalarda da

yararlıdır. EK 6’da PIC 16F877’de pin tanımlamaları görülmektedir. EK 7’de ise PIC

16F877’nin basitleştirilmiş iç yapısı mevcuttur (Yalçın 2003).

PIC 16F877’nin belirleyici özellikleri ise şöyle sıralanabilir (Yalçın 2003, Kaçmaz

2007);

-Timer 0: 8 bit prescaler(önbölücü)’e sahip 8 bit zamanlayıcı/sayıcı,

-Timer 1: Sleep modunda artış gösterebilen ve harici saat darbesiyle artırılabilen

Prescaler’ li 16 bit zamanlayıcı/sayıcı,

-Timer 2: 8bit peryot kaydedicili, prescaler ve postscalerli (son bölücü) 16bit

zamanlayıcı/sayıcı,

-İki adet tutma, karşılaştırma, PWM (Darbe genişlik modülasyonu) modülü,

-200ns çözünürlükte 16 bitlik karşılaştırma,

-10 bit çözünürlükte PWM,

-10 bit çok kanallı analog-dijital çevirici,

Page 37: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

26

-Seri port modülü,

-9 bit adres saptamaya sahip USART (The Universal Synchronous Asynchronous

Receiver Transmitter ),

-8 bit genişliğinde paralel slave port

2.2.6 Bellek Organizasyonu

Her PIC mikrodenetleyicisinde 3 bellek bloğu bulunmaktadır. Bunlar program belleği,

veri belleği ve bunları ayıran veri hattıdır. Her bir bellek kendi taşıyıcısına sahiptir;

böylece her bir bloğa erişim aynı osilatör süreci boyunca meydana gelebilmektedir.

Bunun ötesinde, veri belleği genel amaçlı RAM ve özel fonksiyon kayıtları (SFR)

olmak üzere ikiye bölünür. SFR`ler her bir bireysel özelleşmiş modülü ele alan bölümde

açıklanan özel modülleri kontrol etmek için kullanılmaktadır. Veri belleği EEPROM

veri belleğini de içermektedir. Bu bellek, direkt veri belleğine planlanmamış, fakat

indirekt olarak planlanmıştır ve indirekt adres göstergeleri okumak/yazmak için

EEPROM belleğinin adresini belirlemektedir (Yalçın 2003).

2.2.7 Program Bellek Organizasyonu

PIC16F877 13 bit program sayacına ve 8Kx14 adresleme kapasitesine sahiptir.

PIC16F877 denetleyicisi 8Kx14 FLASH program belleğine sahiptir. Reset vektörü

0000h ve kesme vektörü 0004h adresindedir. Şekil 3,5.’te PIC16F877 program bellek

haritası görülmektedir (Yalçın 2003).

2.2.8 Veri Bellek Organizasyonu

Veri belleği genel amaçlı yazmaçlar ve özel işlev yazmaçları (SFR) olmak üzere ikiye

ayrılır. RP0 ve RP1 bitleri küme seçimi için ayrılmış bitlerdir. Her bir bank (küme) 7Fh’

ye kadar (128 bayt) uzanır. Bank seçimi için RP0 ve RP1’e hangi değerler atanacağı

Çizelge 2.1’de belirtilmiştir. Her bankın alt kısımları özel işlev yazmaçları için ayrılır.

Üstteki özel işlev yazmaçları ise statik RAM olarak kullanılan yazmaçlardır. Bütün

Page 38: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

27

banklarda özel işlev yazmaçları vardır. Özel işlev yazmaçlarındaki yüksek kullanım bir

banktan kod indirgemesi ve hızlı erişim için başka bankta gösterilebilir (Altınbaşak

2000).

Çizelge 2.1 PIC 16F877’de RP0 ve RP1 ile bank seçimi

RP1 RP0

0 0 BANK0

0 1 BANK1

1 0 BANK2

1 1 BANK3

2.3 Pic Basic Programlama Dili

LCD, EEPROM, analog/dijital çevirme, seri haberleşme, shift register, çeşitli şekillerde

sinyal çıkışı almak ve birçok sık görülen uygulamanın PIC ile kolay yapılabilmesi için

bu işleri yapan Assembly komutları makrolar halinde toplanmış ve Pic Basic dili

oluşturulmuştur. Bu programlama dili, bu tür işleri sadece parametreleri olan birer

komuta indirgemiştir. Bunlara örnek olarak 24Cxx serisi EEPROM’larla bilgi

alışverişini sağlayan I2CREAD, I2CWRITE, LCD ekrana yazı yazan LCDOUT, koşul

kontrolünü sağlayan IF...THEN...ELSE...ENDIF ve WHILE...WEND, Pic’in içindeki

EEPROM’la bilgi alışverişini sağlayan READ, WRITE ve senkron ve asenkron seri

haberleşmeyi sağlayan SHIFTIN, SHIFTOUT, SERIN, SEROUT komutları

gösterilebilir. EK 5’te ise Pic Basic proglama dilinde komutlar görülmektedir

(Altınbaşak 2002).

Page 39: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

28

3. MATERYAL VE YÖNTEM

Hastanelerde, ameliyathane ve hasta odalarına medikal oksijen, medikal karbondioksit,

medikal azot protoksit, basınçlı hava iletilmektedir. Ayrıca bu kısımlardaki havayı

vakumlamak için vakum hattı da bu kısımlara iletilir. Bu beş adet iletim hattı ilgili

hastanenin gerekli olan kısımlarındaki duvarlarda prize kadar iletilir ve buradan prize

takılan konnektörler ile kullanılır.

Bu gazların basınçları belirli sınır değerleri arasında olmak zorundadır. Gaz

basınçlarının kontrolü, hastalar için hayati önem taşımaktadır. Bölüm 2’de anlatıldığı

gibi bu gazlar merkezi gaz santrallerinden kullanılacakları birime gönderilmektedir. Bu

merkezi gaz santrallerinde santralin çıkışındaki gaz basıncı bir panelde gösterilmekte ve

normal değerlerin dışına çıktığında alarm vermektedir. Ayrıca, piyasadaki ticari

sistemler arasında hastanenin gaz iletilen katlarına kurulabilen alarm panoları da

mevcuttur. Bu panolar bu kattaki basınç değişimleri için alarm üretmektedir. Ancak her

bir katın basınç durumu ile ilgili bilgiler ilgili binanın merkezi bir yerinden toplu olarak

izlenememekte ve alarm alınmamaktadır. Herhangi bir katta alarm oluşur ise o katta

bulunan görevli personelin binanın teknik kısmına telefon ile bildirmesi suretiyle teknik

personel, alarmdan haberdar olabilmektedir. Ancak o katta bir nöbetçi bulunmuyor ise

teknik birimdeki personel bu kattaki alarmdan haberdar olamamaktadır.

Bu çalışmada gerçeklenen sistem ile bir hastane binasındaki bütün katlara iletilen gaz

hatlarına takılan sensörler vasıtası ile binanın istenilen herhangi bir biriminde bütün

hatların gaz basınçları anlık olarak görüntülenebilmekte, bu gaz basınçları sisteme bağlı

bilgisayara kayıt edilebilmekte ve geriye dönük olarak gaz basınçları

sorgulanabilmektedir. Ayrıca gaz basınçları kullanıcı tarafından belirlenebilen alt ve üst

limitler dışına çıktığında ilgili personel, sesli ve görsel alarmla uyarılmaktadır. Alarm

sesi ve görsel bildirimi farklı durumlar için de farklı şekilde olmaktadır. Bu sayede daha

etkin bir şekilde gaz hatları kontrol edilebilecek, bir nöbetçi personel dahi bütün

katlardaki gazların basınçlarını bulunduğu odadan gözleyebilecektir. Ayrıca basınç

sensörlerinin arızalı olması durumundan da kullanıcı haberdar edilmektedir.

Page 40: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

29

Yapılan çalışmada dört adet hastane gazı (medikal oksijen, medikal karbondioksit,

medikal azot protoksit, basınçlı hava) ve vakum hattının basınçları izlenebilmekte ve

kaydedilebilmektedir. Bu sistem temel olarak bir “gaz basınç görüntüleme, kayıt ve

alarm sistemi”dir. Gerçeklenen sistem ile 4 katlı bir hastanede her kata bu gazların

iletildiği durumda, bütün katlardaki iletim hatlarının basınçlarının izlenebilmesi

mümkün olabilmektedir.

3.1 Gaz Basınç Görüntüleme ve Alarm Sistemi

Sistem genel olarak 3 kısımdan oluşmaktadır.

a) Sensörler

b) Kontrol devresi

c) Geliştirilen program

3.1.1 Sensörler

Bu çalışmada gaz basınçlarını ölçmek amacıyla Freescale firmasına ait MPX5999D ve

MPX5100D model basınç sensörleri kullanılmıştır.

MPX5999D modeli pozitif basınçların ölçülmesinde kullanılan bir sensördür ve 0 ila 10

bar basınç aralığında çalışmaktadır. 5 Vdc besleme ile çalışır ve uygulanan basınç ile

doğru orantılı olarak analog bir voltaj değerini çıkış ucundan üretir. Bu sensöre ait

karakteristik özellikler, giriş basıncına karşılık verdiği analog çıkış değerleri EK 3’te

verilen üretici bilgi sayfasında mevcuttur (http://www.freescale.com, 2008).

MPX5100D modeli ise negatif basınçların ölçülmesinde kullanılan bir sensördür ve 0

ila -760 mmHg basınç aralığında çalışmaktadır. 5 Vdc besleme ile çalışır ve uygulanan

basınç ile doğru orantılı olarak analog bir voltaj değerini çıkış ucundan üretir. Bu

sensöre ait karakteristik özellikler, giriş basıcına karşılık verdiği analog çıkış değerleri

EK 4’te verilen üretici bilgi sayfasında mevcuttur (http://www.freescale.com, 2008).

Page 41: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

30

Sistem her bir kata 5 ayrı gaz iletim hattının bulunduğu 4 katlı bir hastane için

tasarlandığından toplam 20 adet basınç sensörü giriş kapasitesine sahiptir. Ancak

maliyeti yükseltmemek amacıyla 4 adet MPX5999D ve 1 adet MPX5100D model

sensör kullanılmış, diğer sensörleri simüle etmek amacıyla 1 Kohm’luk değişken

dirençler kullanılmıştır.

3.1.2 Kontrol devresi

Basınç sensörlerinden çıkışından gelen analog voltaj değerlerinin alınıp işlem yapıldığı

ve sonuçların bilgisayar kısmına gönderildiği kısım kontrol devresidir.

Kontrol devresinde mikrodenetleyici kontrollü bir devredir. Mikrodenetleyici olarak

Microchip firmasına ait PIC16F877 model mikrodenetleyici kullanılmıştır. Bu

entegreye ait genel bilgiler ve Bölüm 3.2.5’te ayrıntılı olarak anlatılmıştır. Ayrıca

bilgisayar ile seri porttan iletişim yapmaktadır. Seri iletişim ise MAX232 entegresi ile

yapılmaktadır.

Kontrol devresindeki PIC mikrodenetleyicilerinin içerisine yüklenen programların

kodları Pic Basic dilinde yazılmıştır. Pic Basic programlama dili ile genel bilgilere ise

Bölüm 2.3’te yer verilmiştir. Mikrodenetleyicilerin içerisine yüklenen kodlar ise

main_prog, slave_prog1 ve slave_prog2 EK 1’te verilmiştir.

Kontrol devresine ait genel şema Şekil 3.1’de, baskı devre ise Şekil 3.2’de gösterildiği

gibidir. Devreye ait bir fotoğraf ise Şekil 3.3’te görülmektedir. Sensör bağlantılarına ait

örnek fotoğraf Şekil 3.4’de, sensörlerin gaz prizlerine bağlantısına ait örnek fotoğraf ise

Şekil 3.5’te görülmektedir.

Page 42: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

31

Şekil 3.1 Kontrol devresi genel şeması

Page 43: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

32

Şekil 3.2 Kontrol devresine ait baskı devre

Page 44: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

33

Şekil 3.3 Geliştirilen kontrol devresi

Şekil 3.4 Sensör bağlantıları

Page 45: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

34

Şekil 3.5 Sensörlerin gaz prizlerine bağlanışı

3.1.2.1 Devrenin çalışması

Kontrol devresi temel olarak 3 adet 16F877 PIC mikrodenetleyicisinden oluşmaktadır.

Bu entegrelerin zamanlama yapabilmesi için kullanılan kristaller 4MHz değerindedir.

Bu üç entegre de sensörlerden gelen analog voltaj değerlerini sahip oldukları dahili

analog-dijital çevirici ile sayısal değere dönüştürürler. 8 bit çözünürlüğünde analog-

dijital çevrim yapılarak bu dönüşüm gerçekleştirilir. Daha sonra devre şemasında

“16F877MAIN” isimli entegre kendi analog girişlerine bağlı sensörlerin verilerini

RS232 entegresi üzerinden seri iletişim ile bilgisayar kısmına yollar.

Öte yanda devre şemasında “16F877SLAVE1” ve “16F877SLAVE2” olarak belirtilen

entegreler, analog girişlerini bağlı olan sensörlerden okuduğu ve dijital bir değere

çevirdiği bilgileri seri olarak bağlı oldukları “16F877MAIN” entegresine yollarlar.

“16F877MAIN” entegresi, kendi uçlarına bağlı sensör bilgilerini bilgisayar kısmına

yollamayı tamamladıktan sonra bu iki entegreden gelen verileri de bilgisayar kısmına

Page 46: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

35

yollar. Bütün sensörlerden gelen verilerin kısmına yollanması işlemi tek bir pin

üzerinden yapıldığı için her bir sensörün verisi bilgisayara yollanmadan önce bu verinin

başına tanıtıcı bir etiket eklenir. Bu sayede bilgisayar kısmı seri porttan verileri alırken

hangi sensöre ait verinin geldiğini kolayca algılayabilir. Çünkü bilgisayar kısmında

yazılan programda da sensör etiketleri tanımlanmıştır. Ayrıca “16F877SLAVE1” ve

“16F877SLAVE2” entegreleri “16F877MAIN” entegresine sensör verilerini yollarken

her bir sensöre ait verinin başına, tanıtıcı bir etiket ekler. Yine bu ayırt edici bilgi

sayesinde “16F877MAIN” entegresi, kendisine gelen verilerin hangi sensöre ait

olduğunu tayin edebilir.

Devredeki 5 Vdc voltajın kararlı şekilde sağlanması için LM7805 regülatör entegresi

kullanılmıştır. LM7805 entegresinin giriş ve çıkışında yer alan C7 ve C8

kondansatörleri devrenin beslemesini daha kararlı ve salınımlardan arınmış yapmak için

kullanılmıştır.

“MAX232” entegresi ise kontrol devresi ile bilgisayar arasındaki seri iletişim esnasında

voltaj dönüştürücü olarak görev yapar. “MAX232” entegresi, -12, +12 V seviyesindeki

seri port sinyallerini TTL (+5, 0 V) seviyesine çevirir. “16F877MAIN” entegresinden

gelen sensörlere ait bilgilerin, sisteme bağlı bilgisayara “J1” konektörü vasıtasıyla

gönderilmesini sağlar (Ünlü 2007).

J1 – J22 arası soketlere basınç sensörlerinin çıkış uçları bağlanır. J1 – J5 arası soketlere

sırasıyla oksijen, karbondioksit, azot protoksit, basınçlı hava ve vakum sensörleri

bağlanır. J5 – J22 arsı soketlere ise basınç sensörleri gibi davranan 1 kohm değerinde

değişken dirençler bağlanmaktadır. Sensör temininde yaşanan zorluklar nedeniyle bu

şekilde sensörleri simüle etmek için değişken dirençler kullanılmıştır.

D1 diyotu ise devrenin çalıştığını gösteren bir leddir.

Page 47: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

36

3.1.3 Geliştirilen program

Kontrol devresinin seri iletişim kanalıyla yolladığı veriler, bir bilgisayar tarafından

alınarak değerlendirilmektedir. Burada kullanılan bilgisayar yaygın kullanılan

bilgisayarlardan herhangi biri olabilir. Çalışmalar esnasında Windows XP işletim

sistemi yüklü, seri port çıkışı olan, çok yüksek donanımsal özellikleri olmayan

bilgisayarlar denenmiş ve yazılımın donanım ile uyumlu çalışabildiği gözlenmiştir.

Örneğin denemelerin yapıldığı bilgisayarlardan biri 1.4 GHz işlemcili, 256 MB ram

belleği, 32 MB ekran kartı belleği olan bir masaüstü bilgisayardır.

Bilgisayar kısmında kontrol devresinden gelen verileri alıp işlem yapacak program

Visual Basic 6.0 ile yazılmıştır. Grafik arayüzü şeklinde yapılan programın kaynak

kodları EK 2’de verilmiştir. Bu programa ait akış şeması da Şekil 3.6’da görüldüğü

gibidir.

Bu program işleyişi genel olarak şöyledir; önce program ile ilgili değişkenler, seri port

atamaları yapılır, ardından seri porttan gelen veriler alınır ve voltaj ile basınç arasındaki

ilişki formülüne göre basınç değerleri her bir gaz için hesaplanır. Daha sonra bu basınç

değerleri ayrı ayrı ekrana yazdırılır. Bu esnada basınç değerleri, kullanıcı tarafından

belirlenen alarm limit değerleri ile karşılaştırır. Basınç alt ve üst limit değerleri

programın “limit ayarla” butonuna basılarak girilebilmektedir. Program açıldığında

ölçüm, kayıt ve alarm işlemine başlamadan limit ayarlama işlemi yapılabilmekte, limit

ayarlama penceresine ait ekran görüntüsü Şekil 3.7’de görülmektedir.

Page 48: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

37

Şekil 3.6 Geliştirilen bilgisayar programına ait akış şeması

Seri Porttan Gelen Sensör Verilerini Al

Sensörlerin Tanıtıcı Etiketlerine Göre İlgili Alt

Programa Git

Sensör Tipine Göre Basıncı Hesapla

Basınç Limitler Dahilinde mi?

Başla

E

H

Sesli ve Görsel Alarm Üret

Basınç Değerlerini Dosyaya Yaz

Page 49: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

38

Şekil 3.7 Limit ayarlama penceresine ait ekran görüntüsü

İstenilen basınç limit değerleri ilgili gaz hanelerine girildikten sonra sırasıyla “kaydet”

ve “ana programa dön” butonlarına basıldığında program basınç alarmlarını artık bu

limit değerlerine göre üretecektir. Program, kontrol devresi veya kullanılan bilgisayar

açılıp kapatılsa da bu değerler bilgisayarda saklandığı için program alarmları hep bu

değerlere göre alarm üretecektir. Eğer bu limit değerleri tekrar değiştirilmek istenirse

program çalışmıyorken yine aynı yöntem izlenerek değiştirilebilir. Ancak program

çalışırken limit değiştirilemez, önce programı “dur” butonuna tıklayarak durdurmak

gerekmektedir.

Programda varsayılan basınç limit değerleri pozitif basınç sensörleri için; alt limit 3 bar,

üst limit 5 bar’dır. Ayrıca basınç 8 bar değerini aşınca çok yüksek basınç alarmı

üretilmektedir. Negatif basınç sensörleri için; alt limit -500 mmHg, üst limit -620

mmHg’dır. Ayrıca basınç değeri -650 mmHg sınırını geçtiğinde çok yüksek basınç

alarmı üretilmektedir.

Page 50: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

39

Program, girilen limit değerleri ile basınç değerleri arasında yaptığı karşılaştırma

sonucunda aşağıdaki seçeneklerden hangisi uygunsa bu duruma göre gerekli çıktıları

üretir.

a-)Normal basınç: Eğer herhangi bir gazın basıncı kullanıcı tarafından girilmiş alarm

limitleri dahilinde ise ekranda o gaza ait hanede sadece o gazın basıncı görünür. Bütün

gaz basınçları limit değerleri arasında iken yazılan bilgisayar programının ekran

görüntüsü Şekil 3.8’de görülmektedir.

Şekil 3.8 Normal basınç için örnek ekran görüntüsü

b-)Düşük basınç: Eğer pozitif basınç sensörü ile ölçülen gazlardan (medikal oksijen,

medikal karbondioksit, medikal azot protoksit ve basınçlı hava) herhangi birinin basıncı

kullanıcı tarafından girilmiş alt limit değerinin altında ise o gaz basıncının gösterildiği

kutucuğun altında arka planı sarı renkli, “düşük basınç” yazılı bir uyarı etiketi belirir.

Aynı zamanda bir de 150 Hz frekansında sesli bir alarm üretilir. Bu basınç değeri

Page 51: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

40

kullanıcı tarafından belirlenmiş limitler içinde olana kadar görsel ve sesli alarm devam

eder. Bu duruma örnek olarak 2. kattaki medikal karbondioksit gazının basıncı

düştüğünde yazılan bilgisayar programının ekran görüntüsü Şekil 3.9’da görülmektedir.

Şekil 3.9 Pozitif basınç sensöründe düşük basınç için örnek ekran görüntüsü

Eğer herhangi bir kattaki negatif basınç sensörü ile ölçülen vakumun basınç değeri alt

limit değerinin üzerinde ise vakum basıncının gösterildiği kutucuğun altında arka planı

sarı renkli, “düşük basınç” yazılı bir uyarı etiketi belirir. Burada “düşük basınç”, düşük

negatif basınç anlamına gelmektedir. Aynı zamanda bir de 150 Hz frekansında sesli bir

alarm üretilir. Bu basınç değeri kullanıcı tarafından belirlenmiş limitler içinde olana

kadar görsel ve sesli alarm devam eder. Bu duruma örnek olarak 1. kattaki vakum

basıncı düştüğünde yazılan bilgisayar programının ekran görüntüsü Şekil 3.10’da

görülmektedir.

Page 52: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

41

Şekil 3.10 Negatif basınç sensöründe düşük basınç için örnek ekran görüntüsü

c-)Yüksek basınç: Eğer pozitif basınç sensörü ile ölçülen gazlardan herhangi birinin

basıncı kullancı tarafından belirlenmiş üst limit değerinin üzerinde ise o gaz basıncının

gösterildiği kutucuğun altında arka planı kırmızı renkli, “yüksek basınç” yazılı bir uyarı

etiketi belirir. Aynı zamanda bir de 200 Hz frekansında sesli bir alarm üretilir. Bu

basınç değeri, kullanıcı tarafından belirlenmiş limitler içinde olana kadar görsel ve sesli

alarm devam eder. Bu duruma örnek olarak 3. kattaki medikal karbondioksit gazının

basıncı yükseldiğinde yazılan bilgisayar programının ekran görüntüsü Şekil 3.11’de

görülmektedir.

Page 53: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

42

Şekil 3.11 Pozitif basınç sensöründe yüksek basınç için örnek ekran görüntüsü

Eğer herhangi bir kattaki negatif basınç sensörü ile ölçülen vakumun basınç değeri üst

limit değerinin üzerinde ise vakum basıncının gösterildiği kutucuğun altında arka planı

kırmızı renkli, “yüksek basınç” yazılı bir uyarı etiketi belirir. Burada “yüksek basınç”,

yüksek negatif basınç anlamına gelmektedir. Aynı zamanda bir de 200 Hz frekansında

sesli bir alarm üretilir. Bu basınç değeri kullanıcı tarafından belirlenmiş limitler içinde

olana kadar görsel ve sesli alarm devam eder. Bu duruma örnek olarak 2. kattaki vakum

basıncı yükseldiğinde yazılan bilgisayar programının ekran görüntüsü Şekil 3.12’de

görülmektedir.

Page 54: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

43

Şekil 3.12 Negatif basınç sensöründe yüksek basınç için örnek ekran görüntüsü

d-)Çok yüksek basınç: Eğer pozitif basınç sensörü ile ölçülen gazlardan herhangi

birinin basıncı 8 bar değerinin üzerine çıkmış ise o gaz basıncının gösterildiği

kutucuğun altında arka planı koyu kırmızı renkli, “çok yüksek basınç” yazılı bir uyarı

etiketi belirir. Aynı zamanda bir de 300 Hz frekansında sesli bir alarm üretilir. Bu

basınç değeri 8 bar’ın üstünde olduğu sürece görsel ve sesli alarm devam eder. Bu

duruma örnek olarak 4. kattaki medikal azot protoksit gazının basıncı çok yükseldiğinde

yazılan bilgisayar programına ait ekran görüntüsü Şekil 3.13’de görülmektedir.

Page 55: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

44

Şekil 3.13 Pozitif basınç sensöründe çok yüksek basınç için örnek ekran görüntüsü

Eğer herhangi bir kattaki negatif basınç sensörü ile ölçülen vakumun basınç değeri -650

mmHg’nın altına düşmüş ise vakum basıncının gösterildiği kutucuğun altında arka planı

koyu kırmızı renkli, “çok yüksek basınç” yazılı bir uyarı etiketi belirir. Burada “çok

yüksek basınç”, çok yüksek negatif basınç anlamına gelmektedir. Aynı zamanda bir de

300 Hz frekansında sesli bir alarm üretilir. Bu durum basınç değeri -600 mmHg altında

olduğu sürece devam eder. Bu duruma örnek olarak 2. kattaki vakum basıncı çok

yükseldiğinde yazılan bilgisayar programının ekran görüntüsü Şekil 3.14’de

görülmektedir.

Page 56: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

45

Şekil 3.14 Negatif basınç sensöründe çok yüksek basınç için örnek ekran görüntüsü

e-)Sensör arızalı veya kullanım dışı: Eğer pozitif veya negatif basınç sensörü ile

ölçülen gazlardan herhangi birinin sensöründe arıza oluşmuş ve ölçüm yapmıyorsa ya

da o hat kullanılmadığı için basıncı 0 bar /0 mmHg ise o gaz basıncının gösterildiği

kutucuğun altında arka planı yeşil renkli, “sensör arızalı veya kullanım dışı ” yazılı bir

uyarı etiketi belirir. Bu uyarı, sensördeki arızalı giderilene kadar devam edecektir.

Sensör arızalanmamış ancak devreye gelen kablolarda bir kopukluk da olmuş olabilir.

Bu uyarı sayesinde sensör bağlantıları kontrol edilerek bu kopukluk tespit edilebilir. Bu

duruma örnek olarak 3. kattaki N2O gazının basınç sensöründen 0 (sıfır) basınç

okunması durumunda geliştirilen programa ait ekran görüntüsü Şekil 3.15’te

görülmektedir.

Page 57: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

46

Şekil 3.15 Bir basınç sensörünün arızalı olması veya o hattaki basıncın 0 (sıfır) bar olması durumuna ait örnek ekran görüntüsü

Ayrıca bütün katların gaz basınçları, bilgisayarın C: dizini içerisine geliştirilen program

tarafından oluşturulan kayit.txt isimli dosyada saklanmaktadır. Bu dosya içinde her bir

satırda sırasıyla bütün katlardaki bütün gazlara ait ölçüm değerleri ve ölçümlerin

alındığı tarih-saat bilgisi bulunmaktadır. Alt alta ardışık satırlar halinde ölçüm değerleri

sıralanmaktadır. Eğer herhangi bir basınca ait bir alarm üretilmişse basınç değerinin sol

tarafında alarmın türü belirtilmekte, sağ tarafında ise ölçümün alındığı tarih ve saat

bilgisi bulunmaktadır. Alarm türü 3 şekilde ifade edilmektedir;

a)D.B (Düşük Basınç): İlgili gaz basıncının kullanıcı tarafından belirlenen

limitin altında olduğunu,

b)Y.B (Yüksek Basınç): İlgili gaz basıncının kullanıcı tarafından belirlenen

limitin üzerinde olduğunu,

c)C.B (Çok Yüksek Basınç): İlgili gaz basıncının pozitif basıç sensörleri için 8

bar’dan, vakum sensörleri için 650 mmHg’dan yüksek olduğunu

Page 58: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

47

d)K.D (Sensör Arızalı veya Kullanım Dışı): İlgili gaz basınç sensörünün arızalı

veya bu hattın kullanım dışı olması sebebiyle bu hattan 0 bar basınç değeri algılandığını

ifade etmektedir.

Geliştirilen programda her “başla” butonuna basıldığında ise kayıt dosyasına ilk olarak

ayırma amacıyla yeni bir satıra tarih/saat bilgisi ve yan yana çizgiler yazılmaktadır.

Daha sonra ise sensörlerin basınç ve alarm bilgileri bu dosyaya yazılmaktadır. Kayit.txt

dosyasına ait bir ekran görüntüsü şekil 3.16’da görülmektedir.

Şekil 3.16 Kayit.txt dosyasına ait bir ekran görüntüsü

Page 59: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

48

4. TARTIŞMA VE SONUÇ

Hastanelerdeki tıbbi gaz santrallerinde, santral çıkış basıncının normal değerler dışına

çıktığında alarm üretecek alarm panoları mevcuttur. Ayrıca hastanenin her katına

kurularak o kattaki gazların basınçları belirli limit değerlerinin dışına çıktığında alarm

verecek alarm panoları da piyasada bulunabilmektedir. Ancak bu alarm panoları monte

edildiği kattan izlenebilmekte ve alarm ürettiği zaman bu kattaki görevliler tarafından

ilgili teknik birime haber verildiği sürece teknik birim bu alarmlardan haberdar

olabilmektedir. Bu nedenle bu panoların alarmlarından haberdar olunabilmesi için her

panonun olduğu yerde bir personel bulunması gerekmektedir. Ayrıca bu alarm panoları,

kurulum esnasında belirlenen basınç limit değerlerine göre alarm üretmekte ve bu limit

değerleri kullanıcı tarafından değiştirilememektedir.

Bu çalışmada gerçeklenen sistem ise hastanenin bütün katlarındaki gazların basınçlarını

istenilen bir birimden anlık olarak görüntüleme, bu değerleri kayıt etme ve kayıtları

geçmişe yönelik sorgulama olanağı sunmaktadır. Ayrıca bütün katlardaki gaz basınçları

ile ilgili sesli ve görsel alarmları yine bu birimden izleme imkanı vermektedir. Üstelik

alarm üretilecek alt ve üst basınç limitleri ise geliştirilen programdan kullanıcı

tarafından kolayca değiştirilebilmektedir. Ayrıca sisteme bağlı olan sensörlerden biri

arızalanırsa kullanıcı haberdar edilmektedir. İstenilen kata, iletim hattının herhangi bir

noktasına gaz basınç sensörleri bağlanılarak sisteme dahil edilebilir. Sistem 4 katlı ve

her katına da 5 gaz hattı iletilen bir hastane için tasarlanmıştır. Ancak sistem

genişletilebilir bir yapıya sahiptir. İhtiyaç duyulması halinde ilave sensör bağlantıları ve

yazılımdaki küçük güncellemeler ile kapasite çok rahat arttırılabilmektedir. Daha da

büyük ihtiyaçlar doğması halinde, ana mikrodenetleyiciye başka mikrodenetleyiciler

eklenerek daha büyük kapasite artışı sağlanabilmektedir.

Bütün bu özellikleri ile bu sistem, hastanelerde gaz basınçlarının daha etkin ve kolay bir

biçimde kontrol altında tutulmasını sağlamaya yardımcı olabilecek bir sistemdir. Teknik

personelin bulunduğu kata kurulmak suretiyle bütün katlardaki basınç bilgilerinden,

katlardaki personelin bildirimine ihtiyaç duyulmaksızın haberdar olunmasını

sağlayacaktır. Ayrıca bu sistemde oluşan alarmlar internet yoluyla başka bilgisayarlara

Page 60: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

49

da ulaştırılabilir. Hatta eklenecek bir cep telefonu modülü ile alarmlar, istenilen cep

telefonuna da ulaştırılabilir.

Gerçeklenen sistem, Gülhane Askeri Tıp Akademisi Tıbbi Gaz Santrali’nde

denenmiştir. Bu ölçümler sonucunda her bir gaz için elde edilen ölçüm sonuçların,

santal göstergelerinden okunan değerlerin ve bunlar arasındaki farkların ortalamaları

Çizelge 4.1’de görülmektedir.

Çizelge 4.1 Ölçüm sonuçları karşılaştırması

Gaz Ölçülen Değer

(bar)

Gerçek Değeri

(bar)

Hata (%)

Medikal Oksijen 4.474 4.700 4.8

Medikal Karbondioksit 4.429 4.700 5.7

Medikal Azot Protoksit 4.300 4.700 8.5

Basınçlı Hava 4.083 4.100 0.4

Vakum -0.538 -0.560 3.9

Gerçek değerler ile ölçülen değerler arasındaki farklılıklar sensörler arasındaki iç yapı

ve kalibrasyon farklılıkları gibi nedenlerden kaynaklanmaktadır. Ayrıca sensörleri

iletim hattına bağlarken kullanılan rekor ve maşonlardan kaynaklanan sızıntılar ve

kayıplar da bu hata payında rol oynamaktadır. Sonuç olarak sistemde gaz

basınçlarındaki değişimlerde algılanan ortalama hata payı % 4.66’dır.

Geliştirilen sistemin mevcut sistemlere göre üstünlüklerini özetleyecek olursak;

a) Tek bir merkezden bütün katların gaz basınçları izlenebilmekte,

kaydedilebilmekte, geçmişe yönelik sorgulama yapılabilmekte ve üretilen

alarmlar izlenebilmektedir.

b) Sistem genişleyebilir bir yapıda olup, ihtiyaç olması halinde 4 kattan fazla

katlı hastanelerde de kullanılabilecek şekilde tasarlanmıştır.

Page 61: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

50

c) Geçmiş kayıtlar, devrenin bağlı olduğu bilgisayarda saklanmaktadır. Bunlar

kolaylıkla harici depolama birimlerine, başka bilgisayarlara aktarılabilir.

İstenilen zamanda geçmişe yönelik gaz basınç değerlerinin sorgulaması

yapılabilir.

Gerçeklenen sistem ile medikal oksijenin basıncı, oksijenin üretim yöntemi ne olursa

olsun sağlıklı bir şekilde ölçülebilmektedir.

Bu sistemi daha geniş kullanım amaçlı yapmak için daha fazla tıbbi gaz çeşidinin

ölçülebileceği sensörler eklenilebilir. Bu sayede daha fazla gaz çeşidi kullanılan

hastanelerde veya başka sektörlerde kullanılması mümkün kılınabilir.

Page 62: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

51

KAYNAKLAR

Altınbaşak, O. 2000. Mikrodenetleyiciler ve pic programlama. Altaş Yayınevi, 323s.,

İstanbul.

Altınbaşak, O. 2002. PIC basic pro ile pic programlama. Altaş Yayınevi, 304s.,

İstanbul.

Anonim. 2008. Balıkesir Üniversitesi Ders Notları. Web sitesi.

http://makine.balikesir.edu.tr/ay/dersnotu/ImalatYontemleriI/ImalatYon5.pdf

Erişim Tarihi:20.09.2008

Anonim. 2008. Web sitesi. http://www.donanimtr.com/mikroislemci-nedir-

t704.html?s=ba73d007f8746c2c752e2b4a75199c12& Erişim Tarihi:

22.07.2008

Anonim. 2008. Web sitesi. http://www.elektronika.gen.tr/datasheet/16f877.pdf

Erişim Tarihi: 14.07.2008

Anonim. 2008. Web sitesi. http://www.megasan.com.tr/tr/home.htm

Erişim Tarihi: 14.06.2008

Anonim. 2008. Web sitesi. http://nedir.net/mikroislemci.html

Erişim Tarihi: 14.07.2008

Anonim. 2008. Web sitesi. http://sozluk.sourtimes.org/show.asp?t=azot+protoksit

Erişim Tarihi: 14.06.2008

Anonim. 2008. Web sitesi. http://www.tesamedikal.com/

Erişim Tarihi: 18.09.2008

Anonim. 2008. Web Sitesi. http://www.webhatti.com/kimya/49629-suyun-elektrolizi-

ile-ayrismasi.html Erişim Tarihi: 20.09.2008

Anonim. 2008. Web sitesi. http://www.4n2c.com/oksijen-uretim-tesisi-jeneratoru.htm

Erişim Tarihi:24.09.2008

Anonymus. 2008. Web sitesi. http://www.freescale.com Erişim Tarihi: 02.05.2008

Anonymus. 2008. Web sitesi. http://www.linde-gastherapeutics.com/interna

tional/web/lg/lgt/likelglgt.nsf/docbyalias/nav_healthcare_profes_gases_in_medic

ine. Erişim Tarihi: 12.05.2008

Page 63: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

52

Bodur, Y. 2002. Adım adım picmicro proglamlama, İnfogate Yayınları, 213s, Ankara

Çelik, H.H. 1997. Mikroişlemcilerin yapısını ve devrelerini kavrama. M.Ü.T.E.F. ders

notları, 160s., İstanbul.

Kaçmaz, E. 2007. PIC mikrodenetleyici kullanarak ağ bağlantılı gömülü sistem tasarımı

iklimlendirme cihaz kontrol ünitesi uygulaması. Yüksek lisans tezi, Anadolu

Üniversitesi, 72s., Eskişehir

Matic, N. and Andric, D. 2000. The Pic microcontroller book 1, Microelectronica

Publications, 367s., India

Moritary, J. D. 1954. Evaluation of carbon dioxıde inhalation therapy. Am J Psychiatry.

110; 765-769

Ruben, H. 1972. Nitrous oxide analgesia in dentistry: its use during 15 years in

Denmark. Br Dent J., 132; 195–196.

Sullivan, I. O’. and Benger, J. 2003. Nitrous oxide in emergency medicine. Emerg Med

J, 20; 214–217

Turgutlu, H. F. 2002. Pic mikrodenetleyicisi kullanarak deneysel bir endüstriyel

sistemin kontrol edilmesi. Yüksek lisans tezi, Niğde Üniversitesi, 135s., Niğde

Ünlü, B. 2007. İnternet üzerinden mobil bir robotun kontrolü. Bitirme tezi, Yıldız

Teknik Üniversitesi, 42s., İstanbul

Yalçın, M. K. 2003, Mobil robot uygulaması. Yüksek lisans tezi, Niğde Üniversitesi,

90s., Niğde

Page 64: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

53

EKLER

EK 1 Kontrol Devresindeki PIC’ler İçine Yüklenen Kodlar

EK 2 Bilgisayarda Çalışan Programın Kaynak Kodları

EK 3 MPX5999D İçin Üretici Bilgi Sayfası

EK 4 MPX5100D İçin Üretici Bilgi Sayfası

EK 5 Pic Basic Proglamlama Dilinde Komutlar

EK 6 PIC 16F877’de Pin Tanımlamaları

EK 7 PIC 16F877’nin Basitleştirilmiş İç Yapısı

Page 65: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

54

EK 1 Kontrol Devresindeki PIC’ler İçine Yüklenen Kodlar

main_prog (16F877MAIN entegresine yüklenen program)

(Microcode Studio programı, Pic Basic dili)

'*Genel port işlemleri ve başlangıç değerleri*

ADCON1=%00000000 'PortA 0-7 arasi A/D girisler

include "modedefs.bas" 'serial out için gerekli dosya

TRISA = %11111111

'* seri port ile ILGILI TANIMLAR *

DEFINE HSER_RCSTA 90h ' Setting the receiving register

DEFINE HSER_TXSTA 20h ' Setting the emitting register

DEFINE HSER_BAUD 2400 ' Baud rate

DEFINE HSER_SPBRG 25 'Direct setting of SPBRG

' Degiskenler

sens11 var byte

sens12 var byte

sens13 var byte

sens14 var byte

sens15 var byte

sens16 var byte

sens17 var byte

sens18 var byte

sens21 var byte

sens22 var byte

sens23 var byte

sens24 var byte

sens25 var byte

sens26 var byte

sens27 var byte

sens28 var byte

sens31 var byte

Page 66: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

55

sens32 var byte

sens33 var byte

sens34 var byte

Goto anadongu ' altdonguleri atla

' a/d converter'u okuma altdongusu

getad:

Pauseus 50 ' kanalin hazir olmasini bekle

ADCON0.2 = 1 ' okumaya basla

Pauseus 50 ' sonuc iicin bekle

Return

' 1. sensoru okuma altdongusu

get_sens11:

ADCON0 = %01000001 'AN0, Set A/D to Fosc/8, Channel 0, On

Gosub getad

sens11 = ADRESH

Return

' 2. sensoru okuma altdongusu

get_sens12:

ADCON0 = %01001001 'AN1, Set A/D to Fosc/8, Channel 1, On

Gosub getad

sens12 = ADRESH

Return

' 3. sensoru okuma altdongusu

get_sens13:

ADCON0 = %01010001 'AN2, Set A/D to Fosc/8, Channel 2, On

Gosub getad

sens13 = ADRESH

Return

' 4. sensoru okuma altdongusu

get_sens14:

ADCON0 = %01011001 'AN3, Set A/D to Fosc/8, Channel 3, On

Gosub getad

Page 67: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

56

sens14 = ADRESH

Return

' 5. sensoru okuma altdongusu

get_sens15:

ADCON0 = %01100001 'AN4, Set A/D to Fosc/8, Channel 4, On

Gosub getad

sens15 = ADRESH

Return

' 6. sensoru okuma altdongusu

get_sens16:

ADCON0 = %01101001 'AN5, Set A/D to Fosc/8, Channel 5, On

Gosub getad

sens16 = ADRESH

Return

' 7. sensoru okuma altdongusu

get_sens17:

ADCON0 = %01110001 'AN6, Set A/D to Fosc/8, Channel 6, On

Gosub getad

sens17 = ADRESH

Return

' 8. sensoru okuma altdongusu

get_sens18:

ADCON0 = %01111001 'AN7, Set A/D to Fosc/8, Channel 7, On

Gosub getad

sens18 = ADRESH

Return

anadongu:

Gosub get_sens11 ' 1. sensoru oku

HSEROUT ["a",dec sens11] '25. pinden bilgisayara yolla

pause 50

Gosub get_sens12 ' 2. sensoru oku

HSEROUT ["b",dec sens12] '25. pinden bilgisayara yolla

Page 68: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

57

pause 50

Gosub get_sens13 ' 3. sensoru oku

HSEROUT ["c",dec sens13] '25. pinden bilgisayara yolla

pause 50

Gosub get_sens14 ' 4. sensoru oku

HSEROUT ["d",dec sens14] '25. pinden bilgisayara yolla

pause 50

Gosub get_sens15 ' 5. sensoru oku

HSEROUT ["e",dec sens15] '25. pinden bilgisayara yolla

pause 50

Gosub get_sens16 ' 6. sensoru oku

HSEROUT ["f",dec sens16] '25. pinden bilgisayara yolla

pause 50

Gosub get_sens17 ' 7. sensoru oku

HSEROUT ["g",dec sens17] '25. pinden bilgisayara yolla

pause 50

Gosub get_sens18 ' 8. sensoru oku

HSEROUT ["h",dec sens18] '25. pinden bilgisayara yolla

pause 50

'Slave pic1'den verileri al

serin2 portb.5,16780,100,atla1,[wait("i"),sens21] '38 pin'den slave pic1

pause 10 'den al

HSEROUT ["i",dec sens21] '25. pinden bilgisayara yolla

pause 50

atla1:

serin2 portb.5,16780,100,atla2,[wait("j"),sens22] '38 pin'den al

pause 10

HSEROUT ["j",dec sens22] '25. pinden bilgisayara yolla

pause 50

atla2:

serin2 portb.5,16780,100,atla3,[wait("k"),sens23] '38 pin'den al

pause 10

Page 69: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

58

HSEROUT ["k",dec sens23] '25. pinden bilgisayara yolla

pause 50

atla3:

serin2 portb.5,16780,100,atla4,[wait("l"),sens24] '38 pin'den al

pause 10

HSEROUT ["l",dec sens24] '25. pinden bilgisayara yolla

pause 50

atla4:

serin2 portb.5,16780,100,atla5,[wait("m"),sens25] '38 pin'den al

pause 10

HSEROUT ["m",dec sens25] '25. pinden bilgisayara yolla

pause 50

atla5:

serin2 portb.5,16780,100,atla6,[wait("n"),sens26] '38 pin'den al

pause 10

HSEROUT ["n",dec sens26] '25. pinden bilgisayara yolla

pause 50

atla6:

serin2 portb.5,16780,100,atla7,[wait("o"),sens27] '38 pin'den al

pause 10

HSEROUT ["o",dec sens27] '25. pinden bilgisayara yolla

pause 50

atla7:

serin2 portb.5,16780,100,atla8,[wait("p"),sens28] '38 pin'den al

pause 10

HSEROUT ["p",dec sens28] '25. pinden bilgisayara yolla

pause 50

atla8:

'Slave pic2'den verileri al

serin2 portb.4,16780,100,atla11,[wait("r"),sens31] '37 pin'den slave pic2

pause 10 'den al

HSEROUT ["r",dec sens31] '25. pinden bilgisayara yolla

Page 70: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

59

pause 50

atla11:

serin2 portb.4,16780,100,atla12,[wait("s"),sens32] '37 pin'den al

pause 10

HSEROUT ["s",dec sens32] '25. pinden bilgisayara yolla

pause 50

atla12:

serin2 portb.4,16780,100,atla13,[wait("t"),sens33] '37 pin'den al

pause 10

HSEROUT ["t",dec sens33] '25. pinden bilgisayara yolla

pause 50

atla13:

serin2 portb.4,16780,100,atla14,[wait("u"),sens34] '37 pin'den al

pause 10

HSEROUT ["u",dec sens34] '25. pinden bilgisayara yolla

pause 50

atla14:

Goto anadongu

END 'programın sonu

Page 71: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

60

slave_prog1 (16F877SLAVE1 entegresine yüklenen program)

(Microcode Studio programı, Pic Basic dili)

'*Genel port işlemleri ve başlangıç değerleri*

ADCON1=%00000000 'PortA 0-7 arasi A/D girisler

include "modedefs.bas" 'seri haberlesme için gerekli dosya

TRISA = %11111111

' Degiskenler

sens21 var byte

sens22 var byte

sens23 var byte

sens24 var byte

sens25 var byte

sens26 var byte

sens27 var byte

sens28 var byte

Goto anadongu ' altdonguleri atla

' a/d converter'u okuma altdongusu

getad:

Pauseus 50 ' kanalin hazir olmasini bekle

ADCON0.2 = 1 ' okumaya basla

Pauseus 50 ' sonuc iicin bekle

Return

' 1. sensoru okuma altdongusu

get_sens21:

ADCON0 = %01000001 'AN0, Set A/D to Fosc/8, Channel 0, On

Gosub getad

sens21 = ADRESH

Return

' 2. sensoru okuma altdongusu

get_sens22:

ADCON0 = %01001001 'AN1, Set A/D to Fosc/8, Channel 1, On

Page 72: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

61

Gosub getad

sens22 = ADRESH

Return

' 3. sensoru okuma altdongusu

get_sens23:

ADCON0 = %01010001 'AN2, Set A/D to Fosc/8, Channel 2, On

Gosub getad

sens23 = ADRESH

Return

' 4. sensoru okuma altdongusu

get_sens24:

ADCON0 = %01011001 'AN3, Set A/D to Fosc/8, Channel 3, On

Gosub getad

sens24 = ADRESH

Return

' 5. sensoru okuma altdongusu

get_sens25:

ADCON0 = %01100001 'AN4, Set A/D to Fosc/8, Channel 4, On

Gosub getad

sens25 = ADRESH

Return

' 6. sensoru okuma altdongusu

get_sens26:

ADCON0 = %01101001 'AN5, Set A/D to Fosc/8, Channel 5, On

Gosub getad

sens26 = ADRESH

Return

' 7. sensoru okuma altdongusu

get_sens27:

ADCON0 = %01110001 'AN6, Set A/D to Fosc/8, Channel 6, On

Gosub getad

sens27 = ADRESH

Page 73: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

62

Return

' 8. sensoru okuma altdongusu

get_sens28:

ADCON0 = %01111001 'AN7, Set A/D to Fosc/8, Channel 7, On

Gosub getad

sens28 = ADRESH

Return

anadongu:

Gosub get_sens21 ' 1. sensoru oku

SEROUT2 portc.6,16780,["i",sens21] '25. pinden yolla main pic'e yolla

pause 10

Gosub get_sens22 ' 2. sensoru oku

SEROUT2 portc.6,16780,["j",sens22]

pause 10

Gosub get_sens23 ' 3. sensoru oku

SEROUT2 portc.6,16780,["k",sens23]

pause 10

Gosub get_sens24 ' 4. sensoru oku

SEROUT2 portc.6,16780,["l",sens24]

pause 10

Gosub get_sens25 ' 5. sensoru oku

SEROUT2 portc.6,16780,["m",sens25]

pause 10

Gosub get_sens26 ' 6. sensoru oku

SEROUT2 portc.6,16780,["n",sens26]

pause 10

Gosub get_sens27 ' 7. sensoru oku

SEROUT2 portc.6,16780,["o",sens27]

pause 10

Page 74: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

63

Gosub get_sens28 ' 8. sensoru oku

SEROUT2 portc.6,16780,["p",sens28]

pause 10

Goto anadongu

End 'program sonu

Page 75: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

64

slave_prog2 (16F877SLAVE2 entegresine yüklenen program)

(Microcode Studio programı, Pic Basic dili)

'*Genel port işlemleri ve başlangıç değerleri*

'**********************************************

ADCON1=%00000000 'PortA 0-7 arasi A/D girisler

include "modedefs.bas" 'seri haberlesme için gerekli dosya

TRISA = %11111111

' Degiskenler

sens31 var byte

sens32 var byte

sens33 var byte

sens34 var byte

'sens35 var byte

'sens36 var byte

Goto anadongu ' altdonguleri atla

'**********************************************************************

' a/d converter'u okuma altdongusu

getad:

Pauseus 50 ' kanalin hazir olmasini bekle

ADCON0.2 = 1 ' okumaya basla

Pauseus 50 ' sonuc iicin bekle

Return

' 1. sensoru okuma altdongusu

get_sens31:

ADCON0 = %01000001 'AN0, Set A/D to Fosc/8, Channel 0, On

Gosub getad

sens31 = ADRESH

Return

' 2. sensoru okuma altdongusu

get_sens32:

ADCON0 = %01001001 'AN1, Set A/D to Fosc/8, Channel 1, On

Page 76: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

65

Gosub getad

sens32 = ADRESH

Return

' 3. sensoru okuma altdongusu

get_sens33:

ADCON0 = %01010001 'AN2, Set A/D to Fosc/8, Channel 2, On

Gosub getad

sens33 = ADRESH

Return

' 4. sensoru okuma altdongusu

get_sens34:

ADCON0 = %01011001 'AN3, Set A/D to Fosc/8, Channel 3, On

Gosub getad

sens34 = ADRESH

Return

anadongu:

Gosub get_sens31 ' 1. sensoru oku

SEROUT2 portc.6,16780,["r",sens31] '25. pinden yolla main pic'e yolla

pause 10

Gosub get_sens32 ' 2. sensoru oku

SEROUT2 portc.6,16780,["s",sens32]

pause 10

Gosub get_sens33 ' 3. sensoru oku

SEROUT2 portc.6,16780,["t",sens33]

pause 10

Gosub get_sens34 ' 4. sensoru oku

SEROUT2 portc.6,16780,["u",sens34]

pause 10

Goto anadongu

End 'program sonu

Page 77: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

66

EK 2 Bilgisayarda Çalışan Programın Kaynak Kodları

(Visual Basic 6.0)

Dim dizi(40), i, e As Double ‘degisken tanimlamalari

Private Declare Function Beep Lib "kernel32" _

(ByVal dwFreq As Long, ByVal dwDuration As Long) As Long 'beep sesi cikmasi

icin gerekli deklerasoyon

Private Sub MSComm1_OnComm()

Dim InData As String

Dim IDTag As String

If MSComm1.CommEvent = comEvReceive Then 'seri porttan alim gerçeklesirse;

InData = MSComm1.Input

IDTag = Left(InData, 1) ' InData nin ilk karakterini al (gelen verinin tanitma

bilgisi)

adval = Right(InData, Len(InData) - 1) ' tanitma bilgisini kaldir ve sonucu sakla

adval = Val(adval)

'okisjen, karbondioksit, azotprotoksit veya basincli hava sensorlerinden

(mpx5999D)gelen veriler

If adval < 256 And adval >= 0 Then

volt = adval / 255 * 5

Label11.ForeColor = &H80000011

On Error Resume Next

Else

GoTo son

End If

If volt < 0.2 Then

basinc = 0

Else

basinc = 221.975 * volt - 44.395 'kPa cinsinden

End If

bar = basinc / 100 '1 bar 100kpa eder

bar = Round(bar, 3)

Page 78: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

67

Select Case IDTag ' tanitma bilgisine bakarak gelen verinin hangi sensore ait olduguna

karar ver

'******************** KAT 1 *****************************************

Case "a": sens11 = adval

Label6(0).Visible = False

Label6(1).Visible = False

Label6(2).Visible = False

Text1.Text = bar & " bar" ‘basinc degerini yaz

If bar < dizi(0) Then ‘limitler asiliyor mu kontrol et

Write #1, "D.B. kat1 o2", bar, "bar", Now() ‘kayit dosyasina basnc degerlerini yaz

Label6(0).Visible = True

a = Beep(150, 300)

Else

If bar > 8 Then

Write #1, "C.B. kat1 o2", bar, "bar", Now()

Label6(2).Visible = True

a = Beep(300, 150)

Else

If bar > dizi(1) Then

Write #1, "Y.B. kat1 o2", bar, "bar", Now()

Label6(1).Visible = True

a = Beep(200, 300)

Else

Write #1, " kat1 o2", bar, "bar", Now()

End If

End If

End If

Case "b": sens12 = adval

Label7(0).Visible = False

Label7(1).Visible = False

Label7(2).Visible = False

Text2.Text = bar & " bar"

Page 79: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

68

If bar < dizi(2) Then

Write #1, "D.B. kat1 co2", bar, "bar", Now()

Label7(0).Visible = True

a = Beep(150, 300)

Else

If bar > 8 Then

Write #1, "C.B. kat1 co2", bar, "bar", Now()

Label7(2).Visible = True

a = Beep(300, 150)

Else

If bar > dizi(3) Then

Write #1, "Y.B. kat1 co2", bar, "bar", Now()

Label7(1).Visible = True

a = Beep(200, 300)

Else

Write #1, " kat1 co2", bar, "bar", Now()

End If

End If

End If

Case "c": sens13 = adval

Label8(0).Visible = False

Label8(1).Visible = False

Label8(2).Visible = False

Text3.Text = bar & " bar"

If bar < dizi(4) Then

Write #1, "D.B. kat1 n2o", bar, "bar", Now()

Label8(0).Visible = True

a = Beep(150, 300)

Else

If bar > 8 Then

Write #1, "C.B. kat1 n2o", bar, "bar", Now()

Label8(2).Visible = True

Page 80: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

69

a = Beep(300, 150)

Else

If bar > dizi(5) Then

Write #1, "Y.B. kat1 n2o", bar, "bar", Now()

Label8(1).Visible = True

a = Beep(200, 300)

Else

Write #1, " kat1 n2o", bar, "bar", Now()

End If

End If

End If

Case "d": sens14 = adval

Label9(0).Visible = False

Label9(1).Visible = False

Label9(2).Visible = False

Text4.Text = bar & " bar"

If bar < dizi(6) Then

Write #1, "D.B. kat1 hava", bar, "bar", Now()

Label9(0).Visible = True

a = Beep(150, 300)

Else

If bar > 8 Then

Write #1, "C.B. kat1 hava", bar, "bar", Now()

Label9(2).Visible = True

a = Beep(300, 150)

Else

If bar > dizi(7) Then

Write #1, "Y.B. kat1 hava", bar, "bar", Now()

Label9(1).Visible = True

a = Beep(200, 300)

Else

Write #1, " kat1 hava", bar, "bar", Now()

Page 81: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

70

End If

End If

End If

Case "e": sens15 = adval

' vakum = (200 / 9) * volt - (40 / 9) 'kpa

' vakum = vakum * 760 / 101.325 'mmhg

Label10(0).Visible = False

Label10(1).Visible = False

Label10(2).Visible = False

vakum = adval * 760 / 255

vakum = Round(vakum, 3)

If vakum = 0 Then

Text5.Text = vakum & " mmHg"

Else

Text5.Text = "-" & vakum & " mmHg"

End If

If vakum < dizi(8) Then

Write #1, "D.B. kat1 vakum", vakum, "mmHg", Now()

Label10(0).Visible = True

a = Beep(150, 300)

Else

If vakum > 650 Then

Write #1, "C.B. kat1 vakum", vakum, "mmHg", Now()

Label10(2).Visible = True

a = Beep(300, 150)

Else

If vakum > dizi(9) Then

Write #1, "Y.B. kat1 vakum", vakum, "mmHg", Now()

Label10(1).Visible = True

a = Beep(200, 300)

Else

Write #1, " kat1 vakum", vakum, "mmHg", Now()

Page 82: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

71

End If

End If

End If

'******************** KAT 2 *****************************************

Case "f": sens16 = adval

Label6(3).Visible = False

Label6(4).Visible = False

Label6(5).Visible = False

Text6.Text = bar & " bar"

If bar < dizi(10) Then

Write #1, "D.B. kat2 o2", bar, "bar", Now()

Label6(3).Visible = True

a = Beep(150, 300)

Else

If bar > 8 Then

Write #1, "C.B. kat2 o2", bar, "bar", Now()

Label6(5).Visible = True

a = Beep(300, 150)

Else

If bar > dizi(11) Then

Write #1, "Y.B. kat2 o2", bar, "bar", Now()

Label6(4).Visible = True

a = Beep(200, 300)

Else

Write #1, " kat2 o2", bar, "bar", Now()

End If

End If

End If

Case "g": sens17 = adval

Label7(3).Visible = False

Label7(4).Visible = False

Label7(5).Visible = False

Page 83: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

72

Text7.Text = bar & " bar"

If bar < dizi(12) Then

Write #1, "D.B. kat2 co2", bar, "bar", Now()

Label7(3).Visible = True

a = Beep(150, 300)

Else

If bar > 8 Then

Write #1, "C.B. kat2 co2", bar, "bar", Now()

Label7(5).Visible = True

a = Beep(300, 150)

Else

If bar > dizi(13) Then

Write #1, "Y.B. kat2 co2", bar, "bar", Now()

Label7(4).Visible = True

a = Beep(200, 300)

Else

Write #1, " kat2 co2", bar, "bar", Now()

End If

End If

End If

Case "h": sens18 = adval

Label8(3).Visible = False

Label8(4).Visible = False

Label8(5).Visible = False

Text8.Text = bar & " bar"

If bar < dizi(14) Then

Write #1, "D.B. kat2 n2o", bar, "bar", Now()

Label8(3).Visible = True

a = Beep(150, 300)

Else

If bar > 8 Then

Write #1, "C.B. kat2 n2o", bar, "bar", Now()

Page 84: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

73

Label8(5).Visible = True

a = Beep(300, 150)

Else

If bar > dizi(15) Then

Write #1, "Y.B. kat2 n2o", bar, "bar", Now()

Label8(4).Visible = True

a = Beep(200, 300)

Else

Write #1, " kat2 n2o", bar, "bar", Now()

End If

End If

End If

Case "i": sens21 = adval

Label9(3).Visible = False

Label9(4).Visible = False

Label9(5).Visible = False

Text9.Text = bar & " bar"

If bar < dizi(16) Then

Write #1, "D.B. kat2 hava", bar, "bar", Now()

Label9(3).Visible = True

a = Beep(150, 300)

Else

If bar > 8 Then

Write #1, "C.B. kat2 hava", bar, "bar", Now()

Label9(5).Visible = True

a = Beep(300, 150)

Else

If bar > dizi(17) Then

Write #1, "Y.B. kat2 hava", bar, "bar", Now()

Label9(4).Visible = True

a = Beep(200, 300)

Else

Page 85: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

74

Write #1, " kat2 hava", bar, "bar", Now()

End If

End If

End If

Case "j": sens22 = adval

Label10(3).Visible = False

Label10(4).Visible = False

Label10(5).Visible = False

vakum = adval * 760 / 255

vakum = Round(vakum, 3)

If vakum = 0 Then

Text10.Text = vakum & " mmHg"

Else

Text10.Text = "-" & vakum & " mmHg"

End If

If vakum < dizi(18) Then

Write #1, "D.B. kat2 vakum", vakum, "mmHg", Now()

Label10(3).Visible = True

a = Beep(150, 300)

Else

If vakum > 650 Then

Write #1, "C.B. kat2 vakum", vakum, "mmHg", Now()

Label10(5).Visible = True

a = Beep(300, 150)

Else

If vakum > dizi(19) Then

Write #1, "Y.B. kat2 vakum", vakum, "mmHg", Now()

Label10(4).Visible = True

a = Beep(200, 300)

Else

Write #1, " kat2 vakum", vakum, "mmHg", Now()

End If

Page 86: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

75

End If

End If

'******************** KAT 3 *****************************************

Case "k": sens23 = adval

Label6(6).Visible = False

Label6(7).Visible = False

Label6(8).Visible = False

Text11.Text = bar & " bar"

If bar < dizi(20) Then

Write #1, "D.B. kat3 o2", bar, "bar", Now()

Label6(6).Visible = True

a = Beep(150, 300)

Else

If bar > 8 Then

Write #1, "C.B. kat3 o2", bar, "bar", Now()

Label6(8).Visible = True

a = Beep(300, 150)

Else

If bar > dizi(21) Then

Write #1, "Y.B. kat3 o2", bar, "bar", Now()

Label6(7).Visible = True

a = Beep(200, 300)

Else

Write #1, " kat3 o2", bar, "bar", Now()

End If

End If

End If

Case "l": sens24 = adval

Label7(6).Visible = False

Label7(7).Visible = False

Label7(8).Visible = False

Text12.Text = bar & " bar"

Page 87: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

76

If bar < dizi(22) Then

Write #1, "D.B. kat3 co2", bar, "bar", Now()

Label7(6).Visible = True

a = Beep(150, 300)

Else

If bar > 8 Then

Write #1, "C.B. kat3 co2", bar, "bar", Now()

Label7(8).Visible = True

a = Beep(300, 150)

Else

If bar > dizi(23) Then

Write #1, "Y.B. kat3 o2", bar, "bar", Now()

Label7(7).Visible = True

a = Beep(200, 300)

Else

Write #1, " kat3 co2", bar, "bar", Now()

End If

End If

End If

Case "m": sens25 = adval

Label8(6).Visible = False

Label8(7).Visible = False

Label8(8).Visible = False

Text13.Text = bar & " bar"

If bar < dizi(24) Then

Write #1, "D.B. kat3 n2o", bar, "bar", Now()

Label8(6).Visible = True

a = Beep(150, 300)

Else

If bar > 8 Then

Write #1, "C.B. kat3 n2o", bar, "bar", Now()

Label8(8).Visible = True

Page 88: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

77

a = Beep(300, 150)

Else

If bar > dizi(25) Then

Write #1, "Y.B. kat3 n2o", bar, "bar", Now()

Label8(7).Visible = True

a = Beep(200, 300)

Else

Write #1, " kat3 n2o", bar, "bar", Now()

End If

End If

End If

Case "n": sens26 = adval

Label9(6).Visible = False

Label9(7).Visible = False

Label9(8).Visible = False

Text14.Text = bar & " bar"

If bar < dizi(26) Then

Write #1, "D.B. kat3 hava", bar, "bar", Now()

Label9(6).Visible = True

a = Beep(150, 300)

Else

If bar > 8 Then

Write #1, "C.B. kat3 hava", bar, "bar", Now()

Label9(8).Visible = True

a = Beep(300, 150)

Else

If bar > dizi(27) Then

Write #1, "Y.B. kat3 hava", bar, "bar", Now()

Label9(7).Visible = True

a = Beep(200, 300)

Else

Write #1, " kat3 hava", bar, "bar", Now()

Page 89: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

78

End If

End If

End If

Case "o": sens27 = adval

Label10(6).Visible = False

Label10(7).Visible = False

Label10(8).Visible = False

vakum = adval * 760 / 255

vakum = Round(vakum, 3)

If vakum = 0 Then

Text15.Text = vakum & " mmHg"

Else

Text15.Text = "-" & vakum & " mmHg"

End If

If vakum < dizi(28) Then

Write #1, "D.B. kat3 vakum", vakum, "mmHg", Now()

Label10(6).Visible = True

a = Beep(150, 300)

Else

If vakum > 650 Then

Write #1, "C.B. kat3 vakum", vakum, "mmHg", Now()

Label10(8).Visible = True

a = Beep(300, 150)

Else

If vakum > dizi(29) Then

Write #1, "Y.B. kat3 vakum", vakum, "mmHg", Now()

Label10(7).Visible = True

a = Beep(200, 300)

Else

Write #1, " kat3 vakum", vakum, "mmHg", Now()

End If

End If

Page 90: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

79

End If

'******************** KAT 4 ***************************************

Case "p": sens28 = adval

Label6(9).Visible = False

Label6(10).Visible = False

Label6(11).Visible = False

Text16.Text = bar & " bar"

If bar < dizi(30) Then

Write #1, "D.B. kat4 o2", bar, "bar", Now()

Label6(9).Visible = True

a = Beep(150, 300)

Else

If bar > 8 Then

Write #1, "C.B. kat4 o2", bar, "bar", Now()

Label6(11).Visible = True

a = Beep(300, 150)

Else

If bar > dizi(31) Then

Write #1, "Y.B. kat4 o2", bar, "bar", Now()

Label6(10).Visible = True

a = Beep(200, 300)

Else

Write #1, " kat4 o2", bar, "bar", Now()

End If

End If

End If

Case "r": sens31 = adval

Label7(9).Visible = False

Label7(10).Visible = False

Label7(11).Visible = False

Text17.Text = bar & " bar"

If bar < dizi(32) Then

Page 91: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

80

Write #1, "D.B. kat4 co2", bar, "bar", Now()

Label7(9).Visible = True

a = Beep(150, 300)

Else

If bar > 8 Then

Write #1, "C.B. kat4 co2", bar, "bar", Now()

Label7(11).Visible = True

a = Beep(300, 150)

Else

If bar > dizi(33) Then

Write #1, "Y.B. kat4 co2", bar, "bar", Now()

Label7(10).Visible = True

a = Beep(200, 300)

Else

Write #1, " kat4 co2", bar, "bar", Now()

End If

End If

End If

Case "s": sens32 = adval

Label8(9).Visible = False

Label8(10).Visible = False

Label8(11).Visible = False

Text18.Text = bar & " bar"

If bar < dizi(34) Then

Write #1, "D.B. kat4 n2o", bar, "bar", Now()

Label8(9).Visible = True

a = Beep(150, 300)

Else

If bar > 8 Then

Write #1, "C.B. kat4 n2o", bar, "bar", Now()

Label8(11).Visible = True

a = Beep(300, 150)

Page 92: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

81

Else

If bar > dizi(35) Then

Write #1, "Y.B. kat4 n2o", bar, "bar", Now()

Label8(10).Visible = True

a = Beep(200, 300)

Else

Write #1, " kat4 n2o", bar, "bar", Now()

End If

End If

End If

Case "t": sens33 = adval

Label9(9).Visible = False

Label9(10).Visible = False

Label9(11).Visible = False

Text19.Text = bar & " bar"

If bar < dizi(36) Then

Write #1, "D.B. kat4 hava", bar, "bar", Now()

Label9(9).Visible = True

a = Beep(150, 300)

Else

If bar > 8 Then

Write #1, "C.B. kat4 hava", bar, "bar", Now()

Label9(11).Visible = True

a = Beep(300, 150)

Else

If bar > dizi(37) Then

Write #1, "Y.B. kat4 hava", bar, "bar", Now()

Label9(10).Visible = True

a = Beep(200, 300)

Else

Write #1, " kat4 hava", bar, "bar", Now()

End If

Page 93: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

82

End If

End If

Case "u": sens134 = adval

Label10(9).Visible = False

Label10(10).Visible = False

Label10(11).Visible = False

vakum = adval * 760 / 255

vakum = Round(vakum, 3)

If vakum = 0 Then

Text20.Text = vakum & " mmHg"

Else

Text20.Text = "-" & vakum & " mmHg"

End If

If vakum < dizi(38) Then

Write #1, "D.B. kat4 vakum", vakum, "mmHg", Now()

Label10(9).Visible = True

a = Beep(150, 300)

Else

If vakum > 650 Then

Write #1, "C.B. kat4 vakum", vakum, "mmHg", Now()

Label10(11).Visible = True

a = Beep(300, 150)

Else

If vakum > dizi(39) Then

Write #1, "Y.B. kat4 vakum", vakum, "mmHg", Now()

Label10(10).Visible = True

a = Beep(200, 300)

Else

Write #1, " kat4 vakum", vakum, "mmHg", Now()

End If

End If

End If

Page 94: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

83

''****************************************************

Case Else: Label11.ForeColor = &H8000000D

End Select

Else

End If

On Error Resume Next

son:

End Sub

Private Sub Form_Load()

MSComm1.Settings = "2400,N,8,1" 'Haberlesme hizi ve parity ayarlari yapildi

MSComm1.CommPort = 1 'Haberlesme portu olarak COM1 seçildi

MSComm1.RThreshold = 1 'Port dan 1 karakter geldiginde Mscomm1 alt porgramina

gitmesi için bu özellik 1 seçildi

MSComm1.InputLen = 4 'Port’dan alinacak karakter sayisi 4 olarak seçildi.

Dim sayac As Integer

Open "c:\kayit.txt" For Append As #1

Open "c:\limits.txt" For Input As #2

For sayac = 0 To 39

Line Input #2, dizi(sayac)

On Error Resume Next

dizi(sayac) = Val(dizi(sayac))

Next sayac

Close #2

For sayac = 0 To 39

Text22(sayac).Text = dizi(sayac)

Next sayac

Label11.ForeColor = &H80000011

For sayac = 0 To 11

Label6(sayac).Visible = False

Label7(sayac).Visible = False

Label8(sayac).Visible = False

Label9(sayac).Visible = False

Page 95: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

84

Label10(sayac).Visible = False

Next sayac

End Sub

Private Sub Command1_Click()

If MSComm1.PortOpen = True Then 'Port acildi

MSComm1.PortOpen = False

Command1.Caption = "BASLA"

Shape1.Visible = False

Shape2.Visible = True

Command22.Enabled = True

Else

MSComm1.PortOpen = True

Command1.Caption = "DUR"

Shape2.Visible = False

Shape1.Visible = True

Command22.Enabled = False

Write #1, Now(), "-----------------------------------------------"

Frame1.Visible = False

Form2.Hide

End If

End Sub

Private Sub Command22_Click()

If Frame1.Visible = True Then

Frame1.Visible = False

Else

Frame1.Visible = True

End If

End Sub

Private Sub Command23_Click()

Dim sayac3 As Integer

Dim sayac4 As Integer

Page 96: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

85

For sayac3 = 0 To 39

dizi(sayac3) = Val(Text22(sayac3).Text)

Next sayac3

Open "c:\limits.txt" For Output As #2

For sayac4 = 0 To 39

Write #2, Val(Text22(sayac4).Text)

Next sayac4

Close #2

End Sub

Private Sub Command24_Click()

Frame1.Visible = False

End Sub

Private Sub oku_Click()

Form2.Show

End Sub

Page 97: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

86

EK 3 MPX5999D İçin Üretici Bilgi Sayfası

Page 98: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

87

Page 99: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

88

Page 100: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

89

EK 4 MPX5100D İçin Üretici Bilgi Sayfası

Page 101: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

90

Page 102: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

91

Page 103: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

92

Page 104: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

93

Page 105: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

94

EK 5 Pic Basic Proglamlama Dilinde Komutlar

Operatör Açıklaması

@ Tek satırlık assembly komutu kullanmak için. ADCIN Channel, Var Channel’daki analog değerin karşılığı olan dijital değeri

Var’a atar. ASM..ENDASM Assembly komut grubu kullanmak için. BRANCH Index, [Label...] Label dizisinde Index sayısını karşılayan seçeneğe

yönlendirir. CALL Label Assembly’deki CALL komutunun aynısı CLEAR Bütün değişkenleri sıfırlar CLEARWDT WDT’nin içindeki değeri sıfırlayarak WDT’yi kapatır. COUNT Pin, Period, Var Belirli bir periyod içinde gelen puls sayısını Var’a atar DATA Location, Constant Pic’e program yüklenirken dahili EEPROM’a Location

adresinden başlayarak Constant’ları yükler DEBUG Var {,Var} Define komutuyla önceden belirlenmiş bir pin üzerinden

önceden belirlenmiş bir hızda (baud rate) seri haberleşme yoluyla Var’daki veriyi yollar.

DEBUGIN {Timeout, Label} [Var]

Define komutuyla önceden belirlenmiş bir pin üzerinden önceden belirlenmiş bir hızda (baud rate) seri haberleşme yoluyla gelen veriyi Var’a atar.

DISABLE Interrupt girişi ve Debug işlemlerini engeller. DISABLE DEBUG Debug işlemini engeller. DISABLE INTERRUPT INTCON.GIE’yi sıfırlayarak interrupt girişini kapatır. DTMFOUT Pin, {Onms, Offms,} [Tone]

Tone tuşunun telefondaki sesini Onms süresi boyunca tuşlar

EEPROM Location, Constant

DATA’yla aynı işi yapar

ENABLE DISABLE komutundan sonra interrupt girişine ve Debug komutuna izin verir.

ENABLE DEBUG DISABLE komutundan sonra Debug komutuna izin verir.

ENABLE INTERUPT DISABLE komutundan sonra interrupt girişine izin verir.

END Assembly’deki END’in aynısıdır. FOR i=Start TO End Task NEXT i

Start değerinden End değerine kadar i’yi birer birer arttırarak Task’i uygular.

FREQOUT Pin, Onms, Frequency

Pin bacağında Onms süresi boyunca Frequency frekansında sinüs dalgası üretir.

GOSUB Label Call komutuyla aynı işi yapar. GOTO Label Assembly’deki GOTO işleminin aynısı. HIGH Pin Pin bacağını bir yapar.

Page 106: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

95

Operatör Açıklaması

HPWM Channel, Dutycycle, Frequency

16F877 gibi PWM modülü olan mikrodenetleyicilerde bu modülün Channel numaralı kanalından % (Duty+1)/2.56 duty cycle’da Frequency frekansında PWM çıkışı sağlar

HSERIN {ParityLabel,} {Timeout,Label,} [Var]

16F77 gibi USART özelliği olan mikrodenetleyicilerde donanım asenkron seri haberleşme hattından veri bekler, gelen veriyi Var’a atar, Timeout ms süre boyunca veri gelmezse Label bloğuna gider.

HSEROUT [Var] 16F77 gibi USART özelliği olan mikrodenetleyicilerde Var’daki veriyi donanım asenkron seri haberleşme hattına yollar.

I2CREAD DataPin, ClockPin, Control, Address, Var

Control ve Address verilerini yollar, harici EEPROM’un Address bölgesinden gelen veriyi Var’a atar.

I2CWRITE DataPin, ClockPin, Control, Address, Var

Control ve Address bilgilerini yollayıp, harici EEPROM’un Address bölgesine Var’daki veriyi atar.

IF..THEN..ELSE..ENDIF If’ten sonra gelen şart doğruysa Then’den sonraki işlemi, değilse Else’ten sonraki işlemi yapar.

INPUT Pin Belirtilen Pin’i giriş yapar. LCDIN Address, Var LCD’deki RAM’in Address bölgesindeki veriyi Var’a

atar. LCDOUT Item Item’deki değeri LCD’ye gönderir {LET} Var = Value Var’a Value’daki işlem veya değeri atar. LOOKDOWN Search, [List], Var

Search’teki veriyi List’in içinde arar, o verinin List’teki 0’dan başlayarak kaçıncı veri olduğunu Var’a atar.

LOOKDOWN2 Search,Test, [List], Var

LOOKDOWN’dan farkı List’in içinde 16 bit gerektiren (256’dan büyük) değerler kullanılabilmesi ve Test için karşılaştırma operatörü kullanılırsa şartı sağlayan ilk sayıyı seçmesidir.

LOOKDOWN2 Search,Test, [List], Var

LOOKDOWN’dan farkı List’in içinde 16 bit gerektiren (256’dan büyük) değerler kullanılabilmesi ve Test için karşılaştırma operatörü kullanılırsa şartı sağlayan ilk sayıyı seçmesidir.

LOOKUP Index, [List], Var

List’in içinde Index’teki sayıya karşılık gelen veriyi Var’a atar.

LOOKUP2 Index, [List], Var

LOOKUP’tan farkı List’in içinde 256’dan büyük sayı kullanılabilmesidir.

LOW Pin Belirtilen Pin’i sıfırlar. NAP Period 18*2 (Period) ms süre için uyku moduna girer

Page 107: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

96

Operatör Açıklaması

ON DEBUG GOTO Label Debug geldiğinde Label’daki işlemleri yapar. ON INTERRUPT GOTO Label

Interrupt geldiğinde Label’daki işlemleri yapar.

OUTPUT Pin Pin’i çıkış bacağı yapar. PAUSE Period Period’daki sayı kadar milisaniye bekler. PAUSEUS Period Period’daki sayı kadar mikrosaniye bekler. POT Pin, Scale, Var Pin’deki potansiyometrenin ayarına göre Scale içindeki

uygun değeri Var’a atarak PULSIN Pin, State, Var Pin’e gelen State (0 veya 1) pulsun süresinin kaç 10us

(4MHz; 20MHz’de 2us) olduğunu Var’a atar. PULSOUT Pin, Period Pin üzerinden Period’daki sayı kadar 10us(4MHz;

20MHz’de 2us) süresince olan işaretin(0 veya 1) tersi puls verir.

PWM Pin, Duty, Cycle Pin’den % (Duty+1)/2.56 duty cycle’da Cycle’daki değer kadar periyod boyunca PWM çıkışı sağlar.

RANDOM Var 0-255 arasında rastgele bir sayı seçip Var’a atar. RCTIME Pin, State, Var Pin’in State(0 veya 1) durumunda kalma süresinin kaç

10us (4MHz; 20MHz’de 2us) olduğunu Var’a atar. READ Address, Var Dahili EEPROM’un Address bölgesindeki bilgiyi Var’a

atar. READCODE Address, Var

READ komutundan farkı 16 bit verileri kullanması.

RESUME Interrupt’la devreye giren program bloğunu bitirir, ana programın kaldığı yere geri dönüş sağlar.

RETURN Call’la çağrılan program bloğunu bitirir, ana programın kaldığı yere geri dönüş sağlar.

REVERSE Pin Pin girişse çıkış yapar, çıkışsa giriş yapar.

REVERSE Pin Pin girişse çıkış yapar, çıkışsa giriş yapar.

SELECT CASE Var CASE Expr1 Statement CASE Expr2 Statement CASE ELSE Statement END SELECT

Var’ın içindeki değeri Expr’lerin içinde arar, bulduğu seçeneğin altındaki Statement komutunu işler, bulamazsa Case Else’in altındaki Statement komutunu işler.

SERIN Pin, Mode, {Timeout, Label}, [Qual], Var

Pin’e bağlı asenkron seri haberleşme hattından Mode’la belirtilen hızda (baud rate) veri bekler, gelen veriyi Var’a atar, Timeout ms süre boyunca veri gelmezse Label bloğuna gider. [Qual] varsa verinin içinde Qual’dan sonraki ilk veriyi Var’a atar.

Page 108: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

97

Operatör Açıklaması

SERIN2 Pin, Mode, {Timeout, Label}, [Qual], Var

SERIN’den farkı standart bağlantı hızlarından farklı hızlar (baud rate) kullanılmasına izin vermesidir. Mode’daki sayı (1000000/hız)-20 olarak hesaplanır.

SEROUT Pin,Mode, [Var] Var’ın içindeki verileri Pin üzerinden Mode hızında (baud rate) asenkron seri haberleşme hattına gönderir.

SEROUT2 Pin, Mode, [Var]

SEROUT’tan farkı standart bağlantı hızlarından farklı hızlar (baud rate) kullanılmasına izin vermesidir. Mode’daki sayı (1000000/hız)-20 olarak hesaplanır.

SHIFTIN Datapin, Clockpin, Mode, Var

Datapin’e bağlı senkron seri haberleşme hattından Clockpin’e bağlı ortak osilasyonu kullanarak Mode’la belirtilen transfer protokolünü kullanarak veri alır ve Var’a atar.

SHIFTOUT Datapin, Clockpin, Mode, Var

Datapin’e bağlı senkron seri haberleşme hattına Clockpin’e bağlı ortak osilasyonu kullanarak Mode’la belirtilen transfer protokolünü kullanarak Var’daki verileri gönderir.

SLEEP Period Period s süresi için uyku modunda kalır. SOUND Pin, [Note, Duration,{Note, Duration}]

Pin üstünden Note (1-127) notasını Duration*12ms süreyle üretir.

STOP Sonsuz nop döngüsü. SWAP Var1, Var2 Var1 ve Var2’nin içeriklerini takas eder. TOGGLE Pin Pin’deki değeri (0 veya 1) tersine çevirir. WHILE Condition Statement WEND

Condition doğrulandığı sürece Statement komutunu uygular.

WRITE Address, Var Var’daki veriyi dahili EEPROM’un Address bölgesine atar.

WRITECODE Address,Var

WRITE komutundan farkı 16 bit verileri kullanması.

XIN Datapin, Zeropin, {Timeout, Label}, [Var]

Datapin ve Zeropin’e bağlı X-10 interface entegresinden veri bekler, gelen veriyi Var’a atar, Timeout ms süre boyunca veri gelmezse Label bloğuna gider.

XOUT Datapin, Zeropin, [Housecode\Keycode

Datapin ve Zeropin’e bağlı X-10 interface entegresine Housecode ve Keycode verilerini yollar.

Page 109: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

98

EK 6 PIC 16F877’de Pin Tanımlamaları

PİN ADI PİN

NO

I/O BUFFER TİPİ

AÇIKLAMALAR

OSC1/CLKIN 13 I ST/CMOS (3) Osilatör clock girişi (kristal veya harici kaynak) OSC2/CLKOUT 14 O 0 Osilatör kristal çıkış ucu MCLR/Vpp 1 I/P ST Resetleme girişi / Programlama anında programla-ma

gerilimi girişi (Mikrodenetleyicinin resetlenmesi için bu pin lojik 0 yapılmalıdır.)

RA0/AN0 RA1/AN1 RA2/AN2/VREF RA3 RA4/T0CK1 RA5/SS/AN4

2 3 4 5 6 7

I/O I/O I/O I/O I/O I/O

TTL TTL TTL TTL ST TTL

PORTA iki yönlü giriş/çıkış portudur. Analog olarak kullanılabilir. Analog olarak kullanılabilir. Analog olarak kullanılabilir. Analog olarak kullanılabilir. Bu pin (istenirse) TMR0 için bir clock girişi olabilir SSP Slave seçme pini veya analog giriş/çıkış olabilir.

RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD

33 34 35 36 37 38 39 40

I/O I/O I/O I/O I/O I/O I/O I/O

TTL/ST (1) TTL TTL TTL TTL TTL TTL/ST (2) TTL/ST (2)

PORTB iki yönlü giriş/çıkış portudur. Giriş konumunda iken dahili pull-up devresi aktifleşebilir. Dış kesme girişi olarak seçilebilir. Düşük akımla programlamada da kullanılabilir. Kesme girişi olarak seçilebilir. Kesme girişi olarak seçilebilir. Kesme girişi olarak seçilebilir. Seri programlamada clock pinidir. Kesme girişi olarak seçilebilir. Seri programlamada data (veri) pinidir.

RC0T1OS0/T1CK1 RC1/T1OS1/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SD1/SDA RC5/SDO RC6/TX/CK RC7/RX/DT

15 16 17 18 23 24 25 26

I/O I/O I/O I/O I/O I/O I/O I/O

ST ST ST ST ST ST ST ST

PORTC iki yönlü giriş/çıkış portudur. Timer1 osc. çıkışı veya saat girişi olarak kullanılabilir. Timer1 osc. giriş veya Capture2 giriş/Compare2 çıkışı/PWM2 çıkışı olarak kullanılabilir. Timer1 osc. giriş veya Capture1 giriş/Compare1 çıkışı/PWM1 çıkışı olarak kullanılabilir. SPI ve I2 modunda, seri saat giriş/çıkışında kullanılır SPA modda SPI giriş verisi veya I2 C modda I/O için SPA modda SPI çıkış verisi için seçilebilir. USART asenkron gönderme ya da senkron saat için USART asenkron alma ya da senkron veri için

RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7

19 20 21 22 27 28 29 30

I/O I/O I/O I/O I/O I/O I/O I/O

TTL/ST (1) TTL/ST (1) TTL/ST (1) TTL/ST (1) TTL/ST (1) TTL/ST (1) TTL/ST (1) TTL/ST (1)

PORTD iki yönlü giriş/çıkış portudur. PSP 0. biti olarak kullanılabilir. PSP 1. biti olarak kullanılabilir. PSP 2. biti olarak kullanılabilir. PSP 3. biti olarak kullanılabilir. PSP 4. biti olarak kullanılabilir. PSP 5. biti olarak kullanılabilir. PSP 6. biti olarak kullanılabilir. PSP 7. biti olarak kullanılabilir.

RE0/RD/AN5

8

I/O

ST/TTL (3)

PORTE iki yönlü giriş/çıkış portudur. Analog olarak ya da PSP okuma kontrollü kullanılabilir.

Page 110: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

99

RE1/WR/AN6 RE2/CS/AN7

9 10

I/O I/O

ST/TTL (3) ST/TTL (3)

Analog olarak ya da PSP okuma kontrollü kullanılabilir. Analog olarak ya da PSP okuma kontrollü kullanılabilir.

NC - - Bu pinler içerde kontrol edilmiyor, bağlı değil. VSS 8 P - Ground (toprak) uç VDD 19 P - Pozitif kaynak ucu I: Input (Giriş) O: Output (Çıkış) I/O: Input/Output (Giriş/Çıkış) TTL: TTL Giriş -: Kullanılmıyor ST: Schimitt Trigger giriş olarak çalışır. Not: 1. Bu buffer, dış kesme olarak düzenlendiğinde Schimitt Trigger giriş olarak çalışır.

2. Bu buffer, seri programlama modunda Schimitt Trigger giriş olarak çalışır. 3. Bu buffer, RC osilatör modunda ve CMOS devrelerinde Schimitt Trigger giriş olarak çalışır.

Page 111: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

100

EK 7 PIC 16F877’nin Basitleştirilmiş İç Yapısı

Page 112: oktay aydin tez - acikarsiv.ankara.edu.tracikarsiv.ankara.edu.tr/browse/6296/Microsoft Word - oktay_aydin_tez.pdf · için kullanılmaktadır (anestezi, ameliyat bölgesinin daha

101

ÖZGEÇMİŞ

Adı Soyadı : Oktay AYDIN

Doğum Yeri : Akpınar

Doğum Tarihi : 12/01/1984

Medeni Hali : Bekar

Yabancı Dili : İngilizce

Eğitim Durumu

Lise : Zonguldak Fen Lisesi, 2000

Lisans : Ankara Üniversitesi Mühendislik Fakültesi Elektronik

Mühendisliği, 2005

Yüksek Lisans: Ankara Üniversitesi Fen Bilimleri Enstitüsü Elektronik

Mühendisliği Anabilim Dalı (Eylül 2005 – Kasım 2008)

Çalıştığı kurumlar

Emniyet Genel Müdürlüğü, Haberleşme Dairesi Başkanlığı, 2006-2007

Devlet Hava Meydanları İşletmesi, 2007-…