deney-7mekatronik.kocaeli.edu.tr/.../101218115558131b0.pdf · 2018-12-10 · kocaelİ...

10
KOCAELİ ÜNİVERSİTESİ - MEKATRONİK MÜHENDİSLİĞİ MİKRODENETLEYİCİ LABORATUARI DENEY-7 SABANCI ATL ÖĞRETMENLERİNDEN YAVUZ AYDIN ve UMUT MAYETİN'E VERDİKLERİ DESTEK İÇİN TEŞEKKÜR EDİYORUZ

Upload: others

Post on 09-Mar-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DENEY-7mekatronik.kocaeli.edu.tr/.../101218115558131b0.pdf · 2018-12-10 · KOCAELİ ÜNİVERSİTESİ - MEKATRONİK MÜHENDİSLİĞİ MİKRODENETLEYİCİ LABORATUARI DENEY 7-1: DC

KOCAELİ ÜNİVERSİTESİ - MEKATRONİK MÜHENDİSLİĞİ MİKRODENETLEYİCİ LABORATUARI

DENEY-7

SABANCI ATL ÖĞRETMENLERİNDEN YAVUZ AYDIN ve UMUT MAYETİN'E VERDİKLERİ DESTEK İÇİN TEŞEKKÜR EDİYORUZ

Page 2: DENEY-7mekatronik.kocaeli.edu.tr/.../101218115558131b0.pdf · 2018-12-10 · KOCAELİ ÜNİVERSİTESİ - MEKATRONİK MÜHENDİSLİĞİ MİKRODENETLEYİCİ LABORATUARI DENEY 7-1: DC

KOCAELİ ÜNİVERSİTESİ - MEKATRONİK MÜHENDİSLİĞİ MİKRODENETLEYİCİ LABORATUARI

MİKRODENETLEYİCİLERDE ANALOG DİJİTAL DÖNÜŞTÜRÜCÜ

Doğada bulunan tüm sistemler analog düzendedir. Sıcaklık, nem, basınç bunların bir kısmıdır. Bununla birlikte bilgiyi işleyen birimler ise dijital sistemlerdir. Doğadaki unsurların dijital sistemler tarafından işlenebilmesi için analog olarak ölçülen değerlerin dijital değerlere dönüştürülmesi gerekmektedir. Bunun için analog-dijital çeviriciler kullanılır. Bu çeviriciler entegre modül olarak kullanılabileceği gibi mikrodenetleyicilerin donanımları arasında da yer almaktadır. Dolayısıyla harici entegre ihtiyacı olmaksızın analog sinyaller mikrodenetleyiciler ile işlenebilir. PIC16F877A mikrodenetleyicisinde 8 adet analog kanal bulunmaktadır. Analog kanallardan alınan bilgileri dijitale çevirmek için hassas yaklaşım yöntemini kullanır (SAR - Succescive Approximation Register Method).

Analog kanalların her biri 10 bit çözünürlüğe sahiptir. Bu da uygulanan giriş gerilimini 0

ile 1023 arasında ölçeklendirerek bir sonuç verir. Çözünürlük değeri ADC’nin hassasiyetinin göstergesidir. Yüksek çözünürlük olması daha hassas aralıkta analog değerin dijitale çevrilmesi anlamına gelir. Fakat bu da düşük bit çözünürlüğe göre daha yüksek çevrim sürelerini gerektirir. 10 bit çözünürlükte eğer 0 ve 5V arası değişen bir gerilim uygulanıyorsa 5V / 1023 = 4,88mV hassasiyete sahip oluruz. SAR Yöntemi ile ADC Blok Diyagramı ve 10bit çözünürlüğün 0…5V aralıktaki değişimi aşağıda verilmiştir.

Şekil 30. ADC blok diyagramı ve gerilim-analogdeğer grafiği

Analog Dijital Dönüştürücü Birimi Direktif ve Komutları #device adc = X

○ #device adc = 8 //8 bitlik ADC çevrimi yapılacak ○ #device adc = 10 //10 bitlik ADC çevrimi yapılacak

setup_adc(mode); //ADC pinlerinin dijital veya analog olarak kullanımı için mode ayarı yapılır. Adc analog pinleri kullanılacaksa darbe(clock) kaynağı ve bölme oranları ayarlanır. ‘mode’ için hangi kelimelerin kullanılabileceği ’16F877A.h’ başlık dosyası içerisinde yazılıdır. mode ADC_OFF, ADC_CLOCK_INTERNAL ADC_CLOCK_DIV_2, ADC_CLOCK_DIV_4, ADC_CLOCK_DIV_8, ADC_CLOCK_DIV_16, ADC_CLOCK_DIV_16, ADC_CLOCK_DIV_64

USER
Highlight
USER
Highlight
USER
Highlight
Page 3: DENEY-7mekatronik.kocaeli.edu.tr/.../101218115558131b0.pdf · 2018-12-10 · KOCAELİ ÜNİVERSİTESİ - MEKATRONİK MÜHENDİSLİĞİ MİKRODENETLEYİCİ LABORATUARI DENEY 7-1: DC

KOCAELİ ÜNİVERSİTESİ - MEKATRONİK MÜHENDİSLİĞİ MİKRODENETLEYİCİ LABORATUARI

MİKRODENETLEYİCİLERDE ANALOG DİJİTAL DÖNÜŞTÜRÜCÜ

○ setup_adc(ADC_OFF) // ADC birimi kapalı ○ setup_adc(ADC_CLOCK_INTERNAL); // ADC darbe kaynağı dahili osilatör

setup_adc_ports(mode); ADC pinlerinden hangilerinin analog hangilerinin dijital olarak kullanılacağı ve bu pinler için Vref geriliminin hangi pinden alınacağı gibi seçimler yapılır. ‘mode’ için hangi kelimelerin kullanılabileceği ’16F877A.h’ başlık dosyası içerisinde yazılıdır. mode NO_ANALOGS, ALL_ANALOG AN0_AN1_AN2_AN4_AN5_AN6_AN7_VSS_VREF AN0_AN1_AN2_AN3_AN4 AN0_AN1_AN2_AN4_VSS_VREF AN0_AN1_AN3 AN0_AN1_VSS_VREF AN0_AN1_AN4_AN5_AN6_AN7_VREF_VREF AN0_AN1_AN2_AN3_AN4_AN5 AN0_AN1_AN2_AN4_AN5_VSS_VREF AN0_AN1_AN4_AN5_VREF_VREF AN0_AN1_AN4_VREF_VREF AN0_AN1_VREF_VREF AN0 AN0_VREF_VREF

○ setup_adc_ports(NO_ANALOGS) // ADC pinlerinin tamamı dijital ○ setup_adc_ports(ALL_ANALOG) // ADC pinlerinin tamamı analog. ○ setup_adc_ports(AN0_AN1_AN3) // AN0, AN1, AN3 analog, diğerleri dijital.

set_adc_channels(chan); //ADC kanallarından hangisi için çevrim yapılacağını belirler. chan 0 : RA0 / AN0 1 : RA1 / AN1 …

○ set_adc_channels(0) // Çevrim için AN0 pini seçildi. ○ set_adc_channels(1) // Çevrim için AN1 pini seçildi.

read_adc(mode); //ADC kanallarından hangisi için çevrim

yapılacağını belirler. mode ADC_START_AND_READ //ADC çevrimine başlar, tamamlar, okur ve

döner. Normal kullanımdır. Hiçbir ‘mode’ yazılmasa da bu işlev yerine getirilir.

ADC_START_ONLY //Sadece AD çevrimi yapar, döner ADC_READ_ONLY //Son çevirim sonucunu okur, döner ○ set_adc_channels(0) // Çevrim için AN0 pini seçildi. ○ deger = read_adc(); // AN0 pininden analog değeri oku.

Bir adc çevirim işlemi bitmeden kanal değiştirme yapılmamalıdır. ADC çevrimi süre alan işlemler olduğu için komutun sonrasında bir gecikme konulmalıdır.

Page 4: DENEY-7mekatronik.kocaeli.edu.tr/.../101218115558131b0.pdf · 2018-12-10 · KOCAELİ ÜNİVERSİTESİ - MEKATRONİK MÜHENDİSLİĞİ MİKRODENETLEYİCİ LABORATUARI DENEY 7-1: DC

KOCAELİ ÜNİVERSİTESİ - MEKATRONİK MÜHENDİSLİĞİ MİKRODENETLEYİCİ LABORATUARI

MİKRODENETLEYİCİDE PWM BİRİMİNİN KULLANIMI

PWM (Pulse Width Modulation) kare dalga sinyal üzerinde aktiflik süresinin (darbe süresi) genişliklerini ayarlayarak istenilen analog değerin elde edilmesidir.

PERYOT T TON TOFF

FREKANS 1 1

FPERYOT T

DUTY CYCLE 100TON

DC xPERYOT

PIC16F877A entegresinde 2 adet Capture-Compare-PWM (CCP) birimi bulunmaktadır. Bu

birimde yakalama, karşılaştırma veya darbe sinyali üretimi sağlanabilir. CCP birimi bu özelliklerini yerine getirebilmek için bir zamanlayıcı/sayıcı birimi ile beraber çalışır. Bu birimi kaynak olarak kullanır. TIMER2 birimi PWM sinyali için yardımcı olarak kullanılır. PWM birimi kullanılmak istendiğinde mutlaka TIMER2 birimi için gerekli ayarlar yapılmalıdır.

PIC16F877A entegresinde RC2/CCP1 ve RC1/CCP2 pinlerinde istenilen darbe genişlik oranına sahip iki farklı PWM sinyali elde edilebilir. RC2 pininden elde edilen sinyal CCP1 birimi, RC1 pininden elde edilen sinyal CCP2 birimi tarafından kontrol edilir. PWM sinyalleri 10 bit çözünürlüğe sahiptir. Bu, darbe değerinin 0 ile 1023 arasında istenilen bir değere ayarlanabileceklerini gösterir.

Doluluk oranının artması etkin gerilimi arttıracağı için pwm ile kontrol edilen bir lamba alıcısı daha parlak yanacaktır. PWM birimi motor kontrol çalışmalarında motorun hızının ayarlanması işlemlerinde çok sık kullanılmaktadır.

C programlama dilinde CCPx biriminin PWM modu kurulumu için kullanılan komut yapısı setup_ccp1(mode);

○ mode CCP_OFF // CCP kapalı CCP_PWM // CCP PWM modunda çalışsın.

PWM modu için doluluk oranı(duty ratio) ayarlama komutları. set_pwm1_duty(deger);

○ deger 0…1023 (10bit) arasında istenilen doluluk oranı değeridir.

○ set_pwm1_duty (1023); // %100 pwm doluluk oranı ○ set_pwm1_duty (512); // %50 pwm doluluk oranı ○ set_pwm1_duty (256); // %25 pwm doluluk oranı ○ set_pwm1_duty (100); // ~%10 pwm doluluk oranı

Page 5: DENEY-7mekatronik.kocaeli.edu.tr/.../101218115558131b0.pdf · 2018-12-10 · KOCAELİ ÜNİVERSİTESİ - MEKATRONİK MÜHENDİSLİĞİ MİKRODENETLEYİCİ LABORATUARI DENEY 7-1: DC

KOCAELİ ÜNİVERSİTESİ - MEKATRONİK MÜHENDİSLİĞİ MİKRODENETLEYİCİ LABORATUARI

DENEY 7-1: DC MOTOR DEVİR AYAR UYGULAMASI

AMAÇ: Mikrodenetleyici ile bir DC motorun devir ayarının yapılmasını sağlamak. GİRİŞ: Uygulamada bir DC motorun transistör üzerinden sürülerek devir ayarının yapılması istenmektedir. Mikrodenetleyicinin RA0/AN0 pinine bağlanacak bir potansiyometreden analog değer okunacaktır. Motorun hızını kontrol etmek için mikrodenetleyicinin RC2/CCP1 pininden elde edilen PWM sinyali bir transistör yükselteç üzerinden motora uygulanacaktır. Elde edilen analog değere göre motora PWM sinyali gönderilecektir. Okunan analog değer ve motora uygulanan PWM sinyali değerleri LCD ekran üzerinde görüntülenecektir. Motora 12V besleme gerilimi uygulandığında;

%25 PWM oranı için motor uçlarında yaklaşık olarak 3V, %50 PWM oranı için motor uçlarında yaklaşık olarak 6V, %75 PWM oranı için motor uçlarında yaklaşık olarak 9V, %100 PWM oranı için motor uçlarında yaklaşık olarak 12V gerilim gözlenir.

DEVRE ŞEMASI

Page 6: DENEY-7mekatronik.kocaeli.edu.tr/.../101218115558131b0.pdf · 2018-12-10 · KOCAELİ ÜNİVERSİTESİ - MEKATRONİK MÜHENDİSLİĞİ MİKRODENETLEYİCİ LABORATUARI DENEY 7-1: DC

KOCAELİ ÜNİVERSİTESİ - MEKATRONİK MÜHENDİSLİĞİ MİKRODENETLEYİCİ LABORATUARI

DENEY 7-1: DC MOTOR DEVİR AYAR UYGULAMASI

AKIŞ DİYAGRAMI

//Ana programı başlat.

//“ang_bilgi” değişkeni tanımla.

//ADC için dahili saat sinyali kullan.

//AN0 pini analog, diğerleri dijital kullan.

//CCP birimini PWM modunda kullan.

//PORTD’nin tüm pinleri çıkış

//LCD’yi kullanıma hazırla.

//LCD imlecini 1.sütun 1.satıra götür.

//Ekrana "ADC değeri: " yaz.

//LCD imlecini 1.sütun 2.satıra götür.

//Ekrana "PWM orani: " yaz.

//Sonsuz döngü başlangıcı

//ADC için AN0 analog kanalını seç.

//10us bekle.

//ADC değerini oku, “ang_bilgi”ye yükle.

//”ang_bilgi” değerini PWM’e ver.

//LCD imlecini 12.sütun 1.satıra götür.

//Ekrana ”ang_bilgi” değerini yaz.

//LCD imlecini 12.sütun 2.satıra götür.

//Ekrana ”ang_bilgi/10” değerini yaz.

//50ms bekle.

//Ana programı bitir.

Page 7: DENEY-7mekatronik.kocaeli.edu.tr/.../101218115558131b0.pdf · 2018-12-10 · KOCAELİ ÜNİVERSİTESİ - MEKATRONİK MÜHENDİSLİĞİ MİKRODENETLEYİCİ LABORATUARI DENEY 7-1: DC

KOCAELİ ÜNİVERSİTESİ - MEKATRONİK MÜHENDİSLİĞİ MİKRODENETLEYİCİ LABORATUARI

DENEY 7-1: DC MOTOR DEVİR AYAR UYGULAMASI

UYGULAMA KODLARI SORULAR 1. Uygulama devresi üzerinde analog giriş özelliği kullanmadan, PIN_A2, PIN_A3, PIN_A4, PIN_A5 pinlerine bağlanacak butonlar ile 0…1023 arasında PWM değerleri ile motorun devir ayarı yapılacaktır.

a. PIN_A2 pinine bağlı butona basıldığında 1 birim arttıran, b. PIN_A3 pinine bağlı butona basıldığında 1 birim azaltan c. PIN_A4 pinine bağlı butona basıldığında motoru durduran, d. PIN_A5 pinine bağlı butona basıldığında motoru en yüksek hızda çalıştıran

komut satırlarını yazınız 2. Uygulama programı üzerinde analog olarak alınan değer ile motorun hızı %10-%60 arasında değiştirilecektir. Analog girişin 0V olması durumunda hızı %10, analog girişin en fazla olması durumunda ise hızı %60’a ayarlayan komut satırlarını yazınız. 3. Uygulama üzerinde PWM sinyali doluluk oranının %50’nin üzerine çıkması durumunda PIN_D0 pinine bağlı ledin yanmasını sağlayan, %50’nin altında olması durumunda ise PIN_D0 pinine bağlı ledi söndüren komut satırlarını yazınız.

#include "16f877A.h" //Mikrodenetleyici başlık dosyası tanıtılır.

#device adc = 10 //ADC birimi 10

#fuses XT //Kristal osilatör kullanılacak.

#use delay(clock=4M) //delay komutları için osilatör hızı 4Mhz

#include "lcd.c" //LCD başlık dosyasının tanıtılması.

int16 ang_bilgi = 0; //16bitlik “ang_bilgi” isimli değişken tanımla.

/*----------------------------------------------------------------------------*/

void main(void) //Ana program başlangıcı

{

setup_adc(ADC_CLOCK_INTERNAL); //ADC için dahili saat sinyali kullan.

setup_adc_ports(AN0); //ADC için AN0 pini analog, diğerleri dijital

setup_ccp1(CCP_PWM); //CCP birimini PWM modunda kullan.

set_pwm1_duty(0); //PWM değerini 0 yap.

set_tris_d(0x00); //PORTD’nin tüm pinleri çıkış olarak kullan.

lcd_init(); //LCD’yi kullanıma hazırla.

/*----------------------------------------------------------------------------*/

lcd_gotoxy(1,1); //LCD imlecini 1.sütun 1.satıra götür.

lcd_putc("ADC degeri: "); //Ekrana "ADC değeri: " yaz.

lcd_gotoxy(1,2); //LCD imlecini 1.sütun 2.satıra götür.

lcd_putc("PWM orani : "); //Ekrana "PWM orani: " yaz.

while(1) //Sonsuz döngü başlangıcı

{

/*----------------------------------------------------------------------------*/

set_adc_channel(0); //ADC için AN0 analog kanalını seç.

delay_us(10); //10us bekle.

ang_bilgi = read_adc(); //ADC değerini oku, “ang_bilgi”ye yükle.

set_pwm1_duty(ang_bilgi); //”ang_bilgi” değerini PWM’e ver.

lcd_gotoxy(12,1); //LCD imlecini 12.sütun 1.satıra götür.

printf(lcd_putc, "%4ld", ang_bilgi); //Ekrana ”ang_bilgi” değerini yaz

lcd_gotoxy(12,2); //LCD imlecini 12.sütun 2.satıra götür.

printf(lcd_putc, "%4ld", ang_bilgi/10); //Ekrana ”ang_bilgi/10” değerini

//…yaz.

delay_ms(50); //50ms bekle.

}

}

Page 8: DENEY-7mekatronik.kocaeli.edu.tr/.../101218115558131b0.pdf · 2018-12-10 · KOCAELİ ÜNİVERSİTESİ - MEKATRONİK MÜHENDİSLİĞİ MİKRODENETLEYİCİ LABORATUARI DENEY 7-1: DC

KOCAELİ ÜNİVERSİTESİ - MEKATRONİK MÜHENDİSLİĞİ MİKRODENETLEYİCİ LABORATUARI

DENEY 7-2: VOLTMETRE UYGULAMASI

AMAÇ: Mikrodenetleyici ile lcd üzerinde görüntülenen voltmetre uygulaması gerçekleştirmek. GİRİŞ: Mikrodenetleyicide PortD’ye bağlı karakter tabanlı LCD üzerinde giriş noktasından alınan gerilim görüntülenmek istemektedir. Voltmetre uygulamasında giriş gerilimi ölçüm aralığı 0…15V arasında olacaktır.

Mikrodenetleyicinin analog giriş okuma özelliği 0…5V arasında olabilir. bu durumda 5V’un üstünde gerilimler mikrodenetleyici için zararlı olur. 0…15V arasındaki gerilim mikrodenetleyiciye uygulanmadan önce bir gerilim bölücü devre üzerinden geçirmek gerekir. Voltmetreye uygulanan gerilim 1/3 oranına düşürülür. Bu dönüştürme oranı mikrodenetleyici için yazılan program üzerinde gerekli orantının sağlanmasıyla hatasız ölçüm yapılması sağlanacaktır. Burada gerilim bölücü devre üzerinde 1k trimpot elemanı ile voltmetrenin kalibrasyonu yapılarak istenilen yüksek hassasiyette ölçümler elde edilebilir.

volt = 15.0 * ang_bilgi / 1023.0; //Mikrodenetleyici ile okunan değerin katsayı ile

çarpılıp 0…15V arasına genişletilmesini sağlar. printf ( lcd_putc, "%2.2f", volt); // lcd ekrana, “volt” değerini, virgülden önce iki basamak, virgülden sonra iki basamak

görüntülencek biçimde yaz.

DEVRE ŞEMASI

Page 9: DENEY-7mekatronik.kocaeli.edu.tr/.../101218115558131b0.pdf · 2018-12-10 · KOCAELİ ÜNİVERSİTESİ - MEKATRONİK MÜHENDİSLİĞİ MİKRODENETLEYİCİ LABORATUARI DENEY 7-1: DC

KOCAELİ ÜNİVERSİTESİ - MEKATRONİK MÜHENDİSLİĞİ MİKRODENETLEYİCİ LABORATUARI

DENEY 7-2: VOLTMETRE UYGULAMASI

AKIŞ DİYAGRAMI

//Ana programı başlat.

//“ang_bilgi” değişkeni tanımla.

//”volt” değişkeni tanımla.

//ADC için dahili saat sinyali kullan.

//AN0 pini analog, diğerleri dijital kullan.

//PORTD’nin tüm pinleri çıkış

//LCD’yi kullanıma hazırla.

//LCD imlecini 1.sütun 1.satıra götür.

//Ekrana " Voltmetre Uyg. “ yaz.

//LCD imlecini 1.sütun 2.satıra götür.

//Ekrana "Vin = “ yaz.

//Sonsuz döngü başlangıcı

//ADC için AN0 analog kanalını seç.

//10us bekle.

//ADC değerini oku, “ang_bilgi”ye yükle.

//”volt” değerini hesapla.

//LCD imlecini 8.sütun 2.satıra götür.

//Ekrana ”volt” değerini yaz.

//50ms bekle.

//Ana programı bitir.

Page 10: DENEY-7mekatronik.kocaeli.edu.tr/.../101218115558131b0.pdf · 2018-12-10 · KOCAELİ ÜNİVERSİTESİ - MEKATRONİK MÜHENDİSLİĞİ MİKRODENETLEYİCİ LABORATUARI DENEY 7-1: DC

KOCAELİ ÜNİVERSİTESİ - MEKATRONİK MÜHENDİSLİĞİ MİKRODENETLEYİCİ LABORATUARI

DENEY 7-2: VOLTMETRE UYGULAMASI

UYGULAMA KODLARI SORULAR 1. Mikrodenetleyici ile yapılan voltmetre uygulamasında 0…30V arasında giriş gerilimi ölçümü yapılacaktır. Yeni durumda uygulama programında hangi komut satır veya satırlarında nasıl bir değişiklik yapılması gerekmektedir? 2. Mikrodenetleyici ile 0…15V arasında 2 farklı kanaldan gerilim ölçebilen ve bunları aynı LCD üzerinde iki satırda alt alta görüntüleyen komut satırlarını yazınız. 3. Mikrodenetleyici ile akım ölçümü nasıl yapılabilir? Araştırınız.

#include "16f877A.h" //Mikrodenetleyici başlık dosyası tanıtılır.

#device adc = 10 //ADC birimi 10 bit

#fuses XT //Kristal osilatör kullanılacak.

#use delay(clock=4M) //delay komutları için osilatör hızı 4Mhz

#include "lcd.c" //LCD başlık dosyasının tanıtılması.

int16 ang_bilgi = 0; //16bitlik “ang_bilgi” isimli değişken tanımla.

float volt = 0; //”volt” isimli ondalıklı sayı değişkeni tanımla.

/*----------------------------------------------------------------------------*/

void main(void) //Ana program başlangıcı

{

setup_adc(ADC_CLOCK_INTERNAL); //ADC için dahili saat sinyali kullan.

setup_adc_ports(AN0); //ADC için AN0 pini analog, diğerleri dijital

set_tris_d(0x00); //PORTD’nin tüm pinleri çıkış olarak kullan.

lcd_init(); //LCD’yi kullanıma hazırla.

/*----------------------------------------------------------------------------*/

lcd_gotoxy(1,1); //LCD imlecini 1.sütun 1.satıra götür.

lcd_putc(" Voltmetre Uyg. "); //Ekrana " Voltmetre Uyg. " yaz.

lcd_gotoxy(1,2); //LCD imlecini 1.sütun 2.satıra götür.

lcd_putc("Vin = "); //Ekrana "Vin = " yaz.

while(1) //Sonsuz döngü başlangıcı

{

/*----------------------------------------------------------------------------*/

set_adc_channel(0); //ADC için AN0 analog kanalını seç.

delay_us(10); //10us bekle.

ang_bilgi = read_adc(); //ADC değerini oku, “ang_bilgi”ye yükle.

volt = 15.0 * ang_bilgi / 1023.0; //”volt” değerini hesapla.

lcd_gotoxy(8,2); //LCD imlecini 8.sütun 2.satıra götür.

printf(lcd_putc, "%2.2f", volt); //”volt” değerini ekrana yaz.

delay_ms(50); //50ms bekle.

}

}