PIC MCU ile UYGULAMALAR-II

Benzer belgeler
PIC UYGULAMALARI. Öğr.Gör.Bülent Çobanoğlu

ADC: Anolog-Digital Çevirici

PIC16F87X te ADC MODÜLÜNÜN KULLANIMI

PIC MCU ile UYGULAMALAR

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu

LCD (Liquid Crystal Display )

BÖLÜM 4 KAREKTER LCD ve ADC İŞLEMLERİ

LCD (Liquid Crystal Display)

IŞIĞA YÖNELEN PANEL. Muhammet Emre Irmak. Mustafa Kemal Üniversitesi Mühendislik Fakültesi. Elektrik-Elektronik Mühendisliği Bölümü

PIC TABANLI, 4 BASAMAKLI VE SER

Deney No Deney Adı Tarih. 3 Mikrodenetleyici Portlarının Giriş Olarak Kullanılması / /201...

Program Kodları. void main() { trisb=0; portb=0; while(1) { portb.b5=1; delay_ms(1000); portb.b5=0; delay_ms(1000); } }

mikroc Dili ile Mikrodenetleyici Programlama Ders Notları / Dr. Serkan DİŞLİTAŞ

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

PIC 16F877 nin kullanılması

PIC MİKROKONTROLÖR TABANLI MİNİ-KLAVYE TASARIMI

TUŞ TAKIMI (KEYPAD) UYGULAMALARI

PİC HAKKINDA KISA KISA BİLGİLER GİRİŞ/ÇIKIŞ PORTLARI

ROBOT KOL BİTİRME PROJESİ DÖNEM İÇİ RAPORU

T.C. MİLLÎ EĞİTİM BAKANLIĞI ELEKTRİK ELEKTRONİK TEKNOLOJİSİ MİKRODENETLEYİCİYLE ANALOG İŞLEMLER 523EO0022

T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) ELEKTRİK ELEKTRONİK TEKNOLOJİSİ

ELEKTRİKSEL EYLEYİCİLER

Komutların İşlem Süresi

B.Ç. / E.B. MİKROİŞLEMCİLER

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

Mikroişlemciler Ara Sınav---Sınav Süresi 90 Dk.

BÖLÜM 1: MİKRODENETLEYİCİLER

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

PIC PROGRAMLAMA STEP MOTOR SÜRÜCÜ VE KONTROL AMAÇ NEDİR? Unipolar Step Motorlar. Uç TESPİTİ NASIL YAPILIR?

BÖLÜM 6 RS232 SERİ İLETİŞİM İŞLEMLERİ

Deney 10: Analog - Dijital Dönüştürücüler (Analog to Digital Converters - ADC) Giriş

DENEY 9-A : PIC 16F877 ve LM-35 ile SICAKLIK ÖLÇÜM UYGULAMASI

PIC MİKROKONTROLÖR TABANLI ADIM MOTORU KONTROLU

SABİT MIKNATISLI MOTORLAR ve SÜRÜCÜLERİ

# PIC enerjilendiğinde PORTB nin 0. biti 1 olacak #PIC enerjilendiğinde PORTA içeriğinin tersini PORTB de karşılık gelen biti 0 olacak

Arduino Uno ile Hc-Sr04 ve Lcd Ekran Kullanarak Mesafe Ölçmek

6. DİJİTAL / ANALOG VE ANALOG /DİJİTAL ÇEVİRİCİLER 1

UYGULAMA 05_01 MİKRODENETLEYİCİLER 5.HAFTA UYGULAMA_05_01 UYGULAMA_05_01. Doç.Dr. SERDAR KÜÇÜK

SÜLEYMAN DEMİREL ÜNİVERSİTESİ TEKNİK EĞİTİM FAKÜLTESİ MEKATRONİK EĞİTİMİ BÖLÜMÜ BİLGİSAYAR DESTEKLİ İMALAT SERVO VE STEP MOTORLAR

İÇİNDEKİLER 1. KLAVYE KLAVYE RB KLAVYE RBHIGH DİSPLAY... 31

Robotik AKTUATÖRLER Motorlar: Çalışma prensibi

LPC2104 Mikro Denetleyicisini KEIL İle Programlamak

Yrd.Doç. Dr. Bülent ÇOBANOĞLU. Sakarya Üniversitesi, Teknoloji Fakültesi

Assembler program yazımında direkt olarak çizgi ile gösterilmemesine rağmen ekranınız ya da kağıdınız 4 ayrı sütunmuş gibi düşünülür.

BÖLÜM 3 CAPTURE/COMPARE/PWM ve TUŞ TAKIMI İŞLEMLERİ

KANPUR/microcontrollers/micro/ui/Course_home3_16.htm Yrd.Doç. Dr.

DERS 7 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 örnek programlar Dallanma komutları Sonsuz döngü

PIC 16F84 VE TEK BUTONLA BĐR LED KONTROLÜ

MİKRODENETLEYİCİ GELİŞTİRME SETİ TASARIM VE UYGULAMALARI. öğrencilerine eğitimleri esnasında iş hayatında karşılaşabilecekleri kontrol işlemleri ve

BESLEME KARTI RF ALICI KARTI

16F84 ü tanıt, PORTB çıkış MOVLW h FF MOWF PORTB

Erzurum Teknik Üniversitesi RobETÜ Kulübü Robot Eğitimleri. ARDUİNO EĞİTİMLERİ I Arş. Gör. Nurullah Gülmüş

Örnek. int analogpin = 3; int val = 0; void setup() { Serial.begin(9600); } void loop() { val = analogread(analogpin); Serial.

Mikroişlemciler. Microchip PIC

7. Port Programlama. mikroc Dili ile Mikrodenetleyici Programlama Ders Notları -42- Şekil 2.1. Atmega16 mikrodenetleyici pin şeması

ADUC841 MİKRODENETLEYİCİ TABANLI GELİŞTİRME KARTININ TANITIMI:

Mikro denetleyicili Uygulama devresi bileşenleri

T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) ENDÜSTRİYEL OTOMASYON TEKNOLOJİLERİ

Eğitim - Öğretim Yöntemleri Başlıca öğrenme faaliyetleri Kullanılan Araçlar Dinleme ve anlamlandırma

Alıcı Devresi; Sinyali şu şekilde modüle ediyoruz;

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

PIC MIKRODENETLEYICILER-3: GECĠKME ve KESME PROGRAMLARI

BÖLÜM Mikrodenetleyicisine Giriş

Hacettepe Robot Topluluğu

EEM 419-Mikroişlemciler Güz 2017

5.Eğitim E205. PIC16F628 ve PIC16F877 Hakkında Genel Bilgi IF THEN ELSE ENDIF HIGH-LOW GOTO-END- PAUSE Komutları Tanıtımı ve Kullanımı PIC16F628:

MİKRODENETLEYİCİLER ÖRNEK PROGRAMLAR

Bölüm 9 A/D Çeviriciler

PIC Mikrodenetleyiciler. Hazırlayan:Öğr.Gör.Bülent ÇOBANOĞLU 1

1. PORTB ye bağlı 8 adet LED i ikili sayı sisteminde yukarı saydıracak programı

WIRELESS TECHNOLOGIES Uygulama Notu. ARX-34 ve ATX-34 KULLANARAKDATA GÖNDERMEK VE ALMAK ÇN GEREKL YAZILIM ve DONANIM

BSF STATUS,5 ;bank1 e geçiş CLRF TRISB ;TRISB= BCF STATUS,5 ;bank0 a geçiş

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

Prof. Dr. Doğan İbrahim Yakın Doğu Üniversitesi, Mühendislik Fakültesi, Biyomedikal Mühendisliği, Bölümü Tel:

PD103 BUTON LED UYGULAMA DEVRESİ UYGULAMA ÖRNEKLERİ MALZEME LİSTESİ

EasyPic 6 Deney Seti Tanıtımı

T.C. RC SERVO MOTOR KONTROLÜ

İçİndekİler. 1. Bölüm - Mİkro Denetleyİcİ Nedİr? 2. Bölüm - MİkroDenetleyİcİlerİ Anlamak

PIC16F877A nın Genel Özellikleri

PIC MCU da Komutların İşlem Süresi

3.2 PIC16F84 Yazılımı PIC Assembly Assembler Nedir?

2019

XC8 ile PİC uygulamaları

A-PDF Merger DEMO : Purchase from to remove the watermark T.C. KARADENİZ TEKNİK ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

ÖZEL EGE LİSESİ FİLTREN DÖNDÜKÇE ELEKTRİK ELDE ET

Mikroişlemci Nedir? Mikrodenetleyici Nedir? Mikroişlemci iç yapısı Ders Giriş. Mikroişlemcili Sistem Uygulamaları

1. Ders Giriş. Mikroişlemcili Sistem Uygulamaları

DENEY 10-A : PIC 16F877 ile DARBE GENİŞLİK MODÜLASYONU (PWM) SİNYAL KONTROL UYGULAMASI

ABSOLUTE ROTARY ENKODER Tek Turlu Absolute Enkoder, Manyetik Ölçüm GENEL ÖZELLİKLER

DENEY NO : 2 DENEY ADI : Sayısal Sinyallerin Analog Sinyallere Dönüştürülmesi

Bölüm 19 FBs-4DA/2DA Analog Çıkış Modülü

ARTOS7F1 ARIZA TESPİT CİHAZI VE PC OSİLOSKOP 7 FONKSİYON 1 CİHAZDA

8 Ledli Havada Kayan Yazı

T.C. MİLLÎ EĞİTİM BAKANLIĞI DENİZCİLİK MİKRODENETLEYİCİ 2

DC motorların sürülmesi ve sürücü devreleri

Çizgi İzleyen Robot Yapımı

Mikrodenetleyici Eğitim seti

SAYISAL ANALOG DÖNÜŞTÜRÜCÜ DENEYİ

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

DENEY 6a- Dijital/Analog Çevirici (DAC) Devreleri

Transkript:

PIC MCU ile UYGULAMALAR-II ADC-DAC Uygulamaları Paralel LCD Uygulamaları Seri LCD Uygulamaları Step Motorlar DC Motorlar Servo Motorlar YRD.Doc..Dr.BÜLENT ÇOBANOĞLU

ADC: Anolog-Digital Çevirici ADC, girişlerine uygulanan akım, gerilim, sıcaklık gibi analog büyüklükleri değerleri ile orantılı olarak çıkışında digital sinyale çeviren devredir. PIC6F877a da 8 kanallı ADC modülü bulunmaktadır. bit çözünürlüğe sahiptir. 2^=24 Vref+=5v,Vref-=v 5/24=.48282 Her.48282 volt değişiminde bit in dijitinde değişim olur. DAC ise, girişindeki sayısal değerlere karşılık analog bir gerilim veya akım üreten devredir. ADC lerde olduğu gibi bit çözünürlüğü, adım büyüklüğü gibi bir çok kavram DAC ler içinde geçerlidir.

Bir MCU da ADC birimi yoksa ne olur? MCU da ADC birimi yoksa (Örneğin 6F84 gibi) ADC83 entegresini kullanarak dönüştürme yapabilirsiniz. ADC83, Üç kontrol hattı, DO (data out), CLK (clock), _CS (chip seçim) kullanır.

Orta Ölçekli PIC ADC Yapısı

PIC ADC Çevrim Algoritması. Hangi kanalları A/D çevrimine açacağınızı ve çevrim sonucunu nasıl yazdırmak istediğinizi göz önünde bulundurarak ADCON yazmacının değerini ayarlayın. 2. Çevrimi açmak ve bu çevrimi hangi kanaldan(a/d çevrimini birkaç kanaldan aynı anda yapamazsınız) yapacağınızı ve çevrim periyodunu ayarlamak için ADCON yazmacına gerekli değerleri ayarlayın. 3. ADCON ın Go/Done bitini yaparak çevirme işlemini başlatın. 4. Go/Done bitinin değerini almasını bekleyin. Bu değerin olması işlemin bittiğinin, sonucunda ADRESH ve ADRESL ye yazıldığını belirtir. 5. Sonuç yazılma ayarlarınızı göz önünde bulundurarak sonucu değerlendirebilirsiniz. Sonucu bit üzerinden değerlendirmeniz gerekir. Elde edilen sonucun kaç volta karşılık geldiğini şu şekilde formülize edebiliriz. ((ADRESH:ADRESL) x (Vref+ - Vref-) ) / 23 Örnek olarak sonuç değerimiz olsun, referans olarakta Vdd ve Vss yi seçtiğimizi varsayarsak Vo=(426x(5-)) / 23 den yaklaşık olarak V=2. volt sonucunu elde ederiz. Veya Vin=Vo*adım buyuklugu Adım buyuklugu=5/2^=4.88

PIC6f877 ADC yapısı PIC6F877 de 8 kanallı ADC modülü bulunmaktadır, bu modüllerden bitlik giriş alınabilir. Bu kanallar PIC6F877 de ise PORTA ve PORTE de bulunur. ADC modül işlemlerinde 4 önemli kaydedici vardır. Bunlar ADCON, ADCON, ADRESH, ADRESL dir. ADCON lar A/D çevriminin kontrolünü yönetirler. ADRES ler ise sonuçların yazıldığı yazmaçlardır.

I/O Portları: Analog/Digital Seçimi 6F877 de 8 tane bitlik A/D çevirme kanalı bulunur. A / D kanalları için RA4 hariç diğer A ve E portları kullanılır. A/D çevirme işlemi 4 adet kaydediciyle yapılmaktadır. Aşağıda ilgili register lar ve adresleri gösterilmiştir. ADRESH ADRESL ADCON ADCON xe x9e xf x9f ; A / D sonuç kaydedicisi (high register) ; A / D sonuç kaydedicisi (low register) ; A / D kontrol kaydedicisi ; A / D kontrol kaydedicisi ADFM biti dönüştürme işlemi sonunda bitlik sayının formatını belirler.: Sayı sağa kaydırılır.: Sayı sola kaydırılır. PCFG3 PCFG bitleri A/D portlarının durumunu belirler. Tümü yapılırsa bu durumda 8 tane analog kanal seçilmiş olur ve her kanalın referans gerilimi VDD olarak ayarlanır. Dr. Bülent ÇOBANOĞLU

I/O Portları: Analog/Digital Seçimi :ADCON ADCON, PORTA ve PORTE portlarını dijital veya analog giriş-çıkış olarak ayarlamaya yarar. Default olarak bu portlar analogtur ADCON kaydedicisine ilgili değerler yüklenerek bütün pinler digital veya analog işlemler için ayarlanabilir. Ayrıntılı bilgi için lütfen datasheet e ve ileride anlatacağımız ADC konusuna göz atınız.

I/O Portları: Analog/Digital Seçimi : ADFM biti ve ADRESL-ARESH

I/O Portları: Analog/Digital Seçimi : ADCON TAD:Bir bitlik dönüşüm süresidir. bitlik dönüşüm için TAD süresi çeker.

PIC6f877 ADC yapısı CHS2, CHS, CHS : Kanal seçme bitleridir. GO/DONE : ADC çevrimini başlatan bittir, çevrim bitince olur. ADON : ADC birimini açan bittir. ADCS, ADCS : Frekans kaynağı seçim bitleridir (ADCS: ADCS (Bit özel isimleri)) Bu yazmaçın 7 ve 6. bitleri TAD değerini ayarlamaya yarar. TAD, A/D çevrim periyodudur. Bir çevrim için minimum TAD süresi gerekir. TAD süresi için dört seçenek vardır. = Fosc/2 = Fosc/8. TAD süresi minimum.6 mikro saniye olmalıdır. Bunun 4 Mhz likte 2 veya 8, 2 MHZ likte ise hepsi seçilebilir. ADFM: ADRES kaydedicisi formatını belirler ADCS2 : Yardımcı frekans seçme biti. PCFG3, PCFG2, PCFG, PCFG : Portların görevlerini ayarlayan bitler.

ADC Örnek Vo= Vin*4/5.*256

ADC Örnek Uygulama ADFM biti #include <xc.h> void main() { TRISA = xff; // PORTA input TRISD = x; // portd çıkış TRISB = ; // PORTB çıkış PORTC=; PORTD=; ADCON=b; // AN ler analog, ADFM=,ADcs2= ADCON=b; //fosc/4, AN2, GODONE=, ADON= for(;;){ ADCONbits.GO=; // çevrime başla while (ADCONbits.nDONE); //bitene kadar bekle PORTB = ADRESL; // ilk 8 bit PORTB e gönder PORTD = ADRESH; //Son iki biti (MSB leri) PORTD e gönder } }

Soru: Referans gerilimlerini farklı seçtiğinizde elde edilen sonuçları bir önceki örnek değerleri ile karşılaştırınız

DAC Uygulaması Birçok DAC de ADC lerde olduğu gibi çevrime başlama çevrimin bitmesini bekleme gibi kontrol işlemleri yoktur. 8 btilik bir DAC, maksimum 2^8=256 adet farklı sayısal değerin analog karşılığını üretebilir. #include <pic.h> const unsigned char deger[]={28,92,238,255, 238,92,28,64,7,,7,64,28}; void main() { unsigned char x; TRISB=; while() { for (x=;x<2;x++) PORTB= deger[x]; } }

LCD UYGULAMASI LCD (Liquid Crystal Display) göstergeli mikro denetleyici uygulamaları ile hayatımızın her alanında (cep telefonları, fotokopi makineleri, otomobiller, kameralar, oyuncaklar, güvenlik sistemleri gibi) karşılaşılmaktadır. Karakter tabanlı dot matrix LCD (paralel/seri) ve grafik LCD olmak üzere iki çeşit LCD vardır. LED gösterge ile sadece sayısal değerler ve sınırlı sayıdaki karakterler gösterilebilmektedir. Buna karşılık LCD göstergeler ile her türlü yazı ve sayısal değeri göstermek mümkündür. LCD ler çeşitli firmalar tarafından üretilmesine rağmen kontrolleri standartlaşmıştır. Tüm LCD göstergelerde yetki (Enable), oku yaz (R/W), ve kaydedici seçim (RS) uçları ile veri giriş hatları vardır. Bağlantı şekillerine göre LCD göstergeler seri ve paralel olarak sınıflandırılmaktadırlar. Paralel LCD ler ucuz oluşları nedeniyle çok yaygın olarak kullanılmaktadır.

LCD Kontrol İşlemleri LCD göstergeye gönderilen veri ya bir komut kodu veya bir karakterdir. Şekil 3. de LCD göstergeye yazma işlemine ait zamanlama diyagramı görülmektedir. RS ucu düşük seviyeye çekilirse yapılacak işlem bir kontrol işlemidir. Eğer yüksek seviyede tutulursa gönderilen bir karakterdir. LCD ye her 8 bitlik veri, önce yüksek değerlikli 4 - bit, sonra düşük değerlikli 4 - bit olmak üzere iki defada gönderilir. LCD ekrana veriler ASCII karakter kodları gönderilerek gösterilirler. Mesela ekrana göstermek için, sıfırın ASCII kodu olan 48 i göndermek gerekir. RW= ise LCD ye yazma, RW= ise LCD den okuma işlemi yapılıyordur. LCD ekrana veri yazmak için aşağıdaki adımlar izlenir; Veri, veri yoluna konulur, RS ucu lojik yapılarak, yazma işleminin komut olmadığı belirtilir, RW ucu lojik yapılır, E ucuna lojik şeklinde bir saat (clock) darbesi verilir. LCD ekrana komut yazmak için ise aşağıdaki adımlar izlenir; Komut, veri yoluna konulur, RS ucu lojik yapılarak, yazma işleminin komut olduğu bildirilir, RW ucu lojik yapılır, E ucuna lojik şeklinde bir saat (clock) darbesi verilir.

LCD Bacak Bağlantıları LCD dış dünyaya 4 pinlik bir konnektör ile bağlanır. Tablo da LCD nin pin (bacak) numaraları ve her pinin görevi verilmiştir. Pin No Pin ismi Fonksiyon Açıklama Vss Toprak/Şase GND 2 Vdd Kaynak / Power V 5+ 3 Vee Kontrast /Parlaklık V 5 - ( 2)- 4 RS Komut/Veri Seçici Komut, : Veri: 5 R/W Oku/Yaz LCD ye yaz, : LCD den oku: 6 E Enable /Etkinleştirme LCD ye veri gönderme için aktif yapılır. E bacağının lojik den lojik a geçişi ile LCD ye veri transfer olur. Bacağın lojik dan lojik e geçmesi ile LCD den durum. okunabilir 7 D I/O Data LSB 8 D I/O Data 9 D2 I/O Data D3 I/O Data D4 I/O Data 2 D5 I/O Data 3 D6 I/O Data 4 D7 I/O Data MSB

Karakter gösterimi Karakter LCD lerin oluşturabileceği her bir karakter ise karakter LCD nin özel CGROM hafızasına kaydedilmişlerdir. ASCII karakter uyumu olan karakterlerin listesi şekil de görülebilmektedir. Şekilde görüleceği üzere CGROM un ilk 8 karakterlik (x..xf) kısmı boştur ve yazılabilirdir. Bu kullanıcıya tabloda olmayan karakterleri (CGRAM ile) kendisinin tanımlamasına imkan tanır.

LCD

LCD nin kullanıma hazır hale getirilmesi

PIC- Assembly: 8 bitlik LCD ye yazı yazmak LIST P=6F84 INCLUDE "P6F84.INC«SATIRYAZ MOVLW 'B' CALL DATAYAZ MOVLW 'U' CALL DATAYAZ MOVLW 'L' CALL DATAYAZ MOVLW 'E' CALL DATAYAZ MOVLW 'N' CALL DATAYAZ MOVLW 'T' CALL DATAYAZ RETURN CBLOCK H'C' SAY,SAY2 ENDC CLRF PORTB BSF STATUS,5 CLRF TRISA CLRF TRISB BCF STATUS,5 BASLA MOVLW X; DISPLAY TEMIZLE CALL KOMUTYAZ MOVLW X3 ;8 BITLIK BAGLANTI, SATIR CALL KOMUTYAZ MOVLW XC ;EKRANI AÇ,KURSORU KAPAT, YANIP SONME YOK CALL KOMUTYAZ CALL SATIRYAZ DUR BEKLE MOVLW H'FF' MOVWF SAY DON MOVLW H'FF' MOVWF SAY2 GOTO DUR DON2 KOMUTYAZ BCF PORTA, ;RS= İLE KOMUT YAZ MOVWF PORTB BSF PORTA, ;E= CALL BEKLE BCF PORTA, ;E= RETURN DATAYAZ DECFSZ SAY2,F GOTO DON2 DECFSZ SAY,F GOTO DON RETURN END BSF PORTA, ;RS= İLE VERI YAZ MOVWF PORTB BSF PORTA, ;E= CALL BEKLE BCF PORTA, ;E= RETURN

Devre Şeması

PIC- C: 8 bitlik LCD ye yazı yazmak #include <xc.h> #define RS RB #define RW RB #define E RB2 void lcdkomut (unsigned char); void lcdveri (char); void bekle(unsigned int); void main() { TRISD=; TRISB=; E=; bekle(25); lcdkomut(x38);//2 satır 5*7 matrix bekle(25); lcdkomut(xe); //display ve kursor açık bekle(5); lcdkomut(x);//ekranı temizle bekle(5); lcdkomut(x6);//kursor sağa kaysın bekle(5); lcdkomut(x86);//. satır,6.sıra bekle(5); lcdveri('s'); bekle(5); lcdveri('a'); bekle(5); lcdveri('u'); } void lcdkomut(unsigned char k) { PORTD=k; RS=; RW=; E=; bekle(); E=; } void lcdveri(char veri) { PORTD=veri; RS=; RW=; E=; bekle(); E=; } void bekle(unsigned int sn) { unsigned int i,j; for (i=; i<sn; i++) for (j=; j<35; j++); }

PIC- C: Hazır fonksiyon kullanarak 4 bitlik LCD ye yazı yazmak Kod Değişikliği: Hitech klasörünün altındaki LCDemo klasörü içerisindeki «lcd.c» dosyasındaki PORTD yi PORTB, TRISD yi de TRISB ye şeklinde değiştirmeliyiz. lcd.h içindeki fonksiyonlar; lcd_init)(: lcd yi hazırla lcd_clear)(: lcd yi temizle lcd_goto)p(: belirtilen pozisyona git lcd_write)(: Karakter gönder lcd_puts)(: String gönder lcd_putch)(: karakter gönder

Seri LCD MCU ya seri olarak sadece bir kablo ile bağlanırlar ve normal olarak RS232 seri iletişim protokolüne göre çalışırlar. Fiyatları paralel LCD ye göre daha pahalıdır. LCD2 VDD RXD VSS MILFORD-2X6-BKP

Basılan tuşu seri LCD de gösteren uygulama Not: printf bazı lite derleyici sürümlerinde çalışmıyor o zaman bu örnek atlanabilir!

MOTOR TİPLERİ DC MOTOR: Kutuplarına uygulanan DC gerilim motorun dönmesini sağlar, kutup uçları ters çevrildiğinde motor dönüş yönü de değişir. SERVO MOTOR: Verilen duty cycle periyotlarına göre açısal bir dönüş yapar. STEP MOTOR: Girişlerine uygulanan lojik sinyallere karşılık analog dönme hareketi yaparlar. Her bir pals, rotoru bir adım döndürmektedir.

Step motor Step motorlar, diğer motorlardan farklı olarak motor bobinlerine uygulanan elektrik palsi (pulse) ile döndürülürler. Her bir pals, rotoru bir adım döndürmektedir. (Adımın derece değeri, motorun adım sayısına bağlıdır) bu palsler, adım olarak adlandırıldıklarından bu motor türüne adım (step) motor denir. Adım motorları (Step Motors), girişlerine uygulanan lojik sinyallere karşılık analog dönme hareketi yapan fırçasız, sabit mıknatıs kutuplu DC motorlardır. Sabit mıknatıslı kutuplar hareketli kısımda yer alır. DC gerilimin uygulandığı sargıların bulunduğu kısım stator, dönen kısım ise rotor olarak isimlendirilir. Step motorlar, bir turdaki adım sayısı ile anılırlar. Örneğin 3 adımlık bir step motorun bir tam dönüşünde (tur) 3 adım bulunur. Zaten ismini de buradan alır. Buna göre bir adımın açısı; 36 / 3 =,2 derecedir. Bu değer, step motorun hassasiyetinin bir ölçüsüdür. Her bir adımda motorun döneceği açı derecesi motorun üzerinde yazar. Örneğin 7.5 derecelik (36º/48) step motor, bir tam turda 48 adım atar. Bir devirdeki adım sayısı yükseldikçe step motorun hassasiyeti yükselmektedir ancak buna paralel olarak maliyeti de artmaktadır. Step motorlar yarım adım modunda çalıştırıldıklarında hassasiyetleri daha da artar. Örneğin 3 adım / tur değerindeki bir step motor, yarım adım modunda çalıştırıldığında tur başına 6 adım yapacaktır. Bu da,2 dereceye oranla daha hassas olan,6 derecelik bir adım açısı anlamına gelir.

ÇALIŞMA PRENSİBİ /Kullanım Yerleri Step motora giriş palsi uygulandığı zaman belli bir miktar döner ve durur. Bu dönme miktarı motorun yapısına göre belli bir açı ile sınırlandırılmıştır. Step motorda rotorun dönmesi girişe uygulanan pals adedine bağlı olarak değişir. Girişe tek bir pals verildiğinde rotor tek bir adım hareket eder ve durur. Daha fazla pals uygulanınca pals adedi kadar adım hareket eder. Bütün step motorlarının çalışma prensibi bu şekildedir. Kullanım yerleri: Bant sürücüler, imalat tezgahları, printer (yazıcı), disket sürücüleri, teyp sürücüleri, hafıza işlemlerinde, tıbbi cihazlarda, makine tezgahlarında, dikiş makinelerinde, kameralarda, taksimetrelerde, kart okuyucularında, ayar ve kontrol tekniğinde, uzaktan kumanda göstergelerinde kullanılır. Sonuç olarak step motorlar; her türlü kontrol edilmiş hareket veya pozisyon gerekli olan yerlerde, dijital bilgileri mekanik harekete çeviren bir transduser olarak görev yapar.

Step motorların sürülmesi Bir step motor, tek fazlı, 2 faz tam adımlı ve 2 faz yarım adımlı olmak üzere farklı şekillerde sürülebilir. Bazı kaynaklarda unipolar step motorlar tek fazlı, bipolar motorlar ise 2 fazlı olarak adlandırılabilir. Bipolar iki yönlü beslenen anlamına gelir ve Bipolar step motor, iki yönde de akım akabilen motor demektir.

fazlı sürüm A B C D A 2 fazlı TAM adımlı sürüm A B C D 2 fazlı YARIM adımlı sürüm B C D YRD.DOC.Dr.BÜLENT ÇOBANOĞLU

Yarım (8) adımlı step motor sürümü

Yarım adımlı Soru: 2 dereceli ve 8 adımlı bir step motoru 8 derece hareket ettirmek için kaç sıralı adım yaptırmamız gerekir? Cevap:?

Step motoru yarım adım döndüren program A(B 4) B(B 3) (B2) D(B )

Step motoru RA a basınca sağa RA e basınca sola Döndüren program A(B 4) B(B 3) (B2) D(B )

2 tur sola 4 tur sağa dönen step motor uygulaması Öğr.Gör.Bülent Çobanoğlu

? Çalışma Sorusu: Sürekli bir şekilde 2 tur sola 4 tur sağa dönen step motor uygulamasını C ile yapınız.

DC MOTOR DC Motor, doğru akım elektrik enerjisini mekanik enerjiye dönüştüren elektrik makinesidir. Herhangi bir iletkene doğru akım tatbik edildiğinde iletken, sabit bir manyetik alan oluşturur. DC motorlar, statorda oluşturulan sabit manyetik alanın rotorda oluşturulan sabit manyetik alanı itmesi ve çekmesi prensibine göre çalışır. Statorda kuzeygüney ekseninde oluşan sabit manyetik alana karşı, rotorda bu eksenden belli bir açıda kayık olarak yerleştirilen sargıda ikinci bir sabit manyetik alan oluşturulur.

DC MOTOR Step motorun aksine DC motorun hareketi süreklidir. Çoğu anakart üzerindeki küçük fanlarda, CPU soğutucuları üzerinde DC motor vardır. Küçük boyutları ve maliyetlerinin düşüklüğü tercih edilme sebepleridir. Kutuplarına uygulanan DC gerilim motorun dönmesini sağlar, kutup uçları ters çevrildiğinde motor dönüş yönü de değişir. Dönüş hızı doğrudan uçlarına uygulanan DC gerilimin büyüklüğü ile doğru orantılıdır. Fakat uygulamalarda genellikle PWM yöntemi ile dönüş hızı ayarlanır.

DC MOTOR DC motorun hızı üç faktöre bağlıdır: Yüke, Voltaja, Akıma PWM (Pals Genişlik Modülasyonu) ile, ayarlanabilir bir frekans ve periyotta sayısal sinyal üretilebilir. Üretilen dalganın genişliği değiştikçe DC motor hızı da değişir, genişlik artarsa hız da artar (Duty Cycle) Sarımlara akım gitmez ve dönüş durur Motor sarımlarına elektrik gider ve rotor döner,

Donanımsal Olarak PWM Programlama.PR2 kaydedicisine PWM peryodunu yaz, 2.CCPRL ye duty cycle değerini ayarla 3.CCP pinlerini çıkış yap 4.T2CON kaydedicisinin prescaler değerini ayarla 5.TMR2 kaydedicisini temizle 6.CCPCON kaydedicisini ayarla ve (DCB2:DCB) 7. Timer2 yi başlat

DC MOTOR #include <xc.h> void main(void) { PORTD=x; PORTB=x; TRISD=xFF; // GIRIS TRISB=x; // PORTB çıkıs RB2=; // A köprüsü seçiliyor RB3=; for(;;) { if(rd5) //ileri { RB=; RB=; } if(rd6) // Geri { RB=; RB=; } if(rd7) // Dur { RB=; RB=; } } }

DC MOTOR PWM ile DC Motor Kontrolü #include <xc.h> //#define btn RD7; void bekle(int); void main() { TRISD=x8; TRISB=xFD; while() { if ( RD7 == ) //%25 DC { RB=; bekle(25); RB=; bekle(75); } else { //%5 DC RB=; bekle(5); RB=; bekle(5); } } } void bekle(int sn) { unsigned int i,j; for (int i=; i<=275;i++) for (int j=; i<=sn;j+ +); }

Servo MOTOR Servo motorlar genel itibari ile içerlerinde bir DC motor ve şaft konum bilgisi devresi barındırırlar. Bu devre şaftın kaç derece döndüğünün algılanmasında kullanılır. Servo motorlar 2ms periyotlu, ms den 2ms e kadar değişen duty cycle lı PWM sinyali ile sürülürler. Verilen duty cycle periyotlarına göre servo motorun -8 derece aralığı arasında alacakları değerler yanda gösterilmiştir. Burada sinyal verilirken örneğin,5ms ile ms arası 9 a bölünerek istenilen açıya gidilebilir. Model uçak, araba ve robotik uygulamalarda yaygın olarak kullanılır

#include <xc.h> #include "delay.h" void main() { TRISB =x; // PORTB cikis TRISD=xFF; while() { if(rd5)// Derece Dön { for(;;){ RB = ; DelayUs(25);DelayUs(25); DelayUs(25);DelayUs(25);//ms bekle RB = ; DelayMs(9); if(rd6 RD7) break; } } if(rd6) //9 Derece Dön { for(;;){ RB = ; DelayUs(25);DelayUs(25); DelayUs(25);DelayUs(25); DelayUs(25);DelayUs(25); RB = ; DelayMs(8); DelayUs(25);DelayUs(25); if(rd5 RD7) break; } } if(rd7) //8 Derece Dön { for(;;){ RB = ; DelayMs(2); RB = ; DelayMs(8); if(rd5 RD6) break; } } }} Servo MOTOR