Site içi Arama

Ara

PIC18F2550 Assembly İle 2 Motorun Belirli Koşullara Göre Sürülmesi

İsmail Sahillioğlu - 24.02.2017
1. Devrenin Yapısı:


Kontrol devresi şekilde de görüldüğü gibi bir sıfırlama(RESET) girişi, 2 motorun denetimini yapan 1-başlat, 1-durdur buton girişi, Aşırı Akım Rölesinden gelen 2 sinyal bilgisi girişi, 2 hata düzeltildi onay butonu girişi, 2 adet Motor1 ve Motor2 çıkışı, 2 hata göstergesi çıkışı ve sayaç devresini süren 3 uçtan oluşmaktadır. 6-harici giriş, 4-harici çıkış ve 3-dahili çıkış olmak üzere toplam 13 adet giriş-çıkış ucu kullanılmıştır.

Sayaç devresi de 1Hz saat darbesi üreteci, 2x7-Parçalı LED gösterge, göstergeleri süren 2xCD4026 7-Parçalı gösterge sürücü entegresinden oluşmaktadır. Gerekirse entegrelerin LED sürücü uçlarına direnç bağlanabilir.

Not: Burada çoğu şeyi ayrıntılarıyla anlattığım için açıklama biraz uzun oldu. Böyle olması konuya tam hakim olmayanlar tarafından konunun rahatlıkla anlaşılabilmesi içindir.

EKLER:

2. Devrenin Çalışması:

Devreye enerji verildiğinde, Kontrol devresi kullanıcının BAŞLA butonuna basmasını bekler.

Kullanıcı başla butonuna bastığında;

2.1. Hata Durumu:

Güç devresinde bir aşırı yüklenme ya da başka bir hata dolayısıyla AAR1(Aşırı Akım Rölesi) ve AAR2 girişlerinden bir hata bilgisi geldiğinde şu senaryolar gerçekleşecektir:

I. Eğer 1. motor 10sn dolmadan önce hata verirse:


II. Eğer 1. motor 10sn dolduktan sonra hata verirse ve 2. motor çalışıyors ama 30sn dolmamışsa:


III. Eğer 1. motor 10sn ve 30sn süreleri dolduktan sonra hata verirse:


IV. Eğer 2. motor 30sn dolmadan hata verirse:


V. Eğer 2. motor 30sn dolduktan sonra hata verirse:

3. Donanım:

Bu örnek devrede Timer0 ve kesme donanımlarının PIC18 Assembly içinde nasıl düzenlenip programlanabileceği ve işletilebileceği açıklanmıştır. Ayrıca harici bir sayaç devresi ve 1Hz/s'lik bir saat kaynağı devresi kullanılmıştır. Bu sayede 7-Parçalı(burada ortak katotkullanılmıştır) göstergelerin CD4026 ile nasıl sürülebileceği ve 555 entegresi ile nasıl bir saat darbesi kaynağı oluşturulabileceği de görülecektir. Devre bredboard üzerinde kurulmuş ve denenmiştir.

Not: Vidyoyu kaydettikten bu yana yazılım içinde birkaç iyileştirme yaptım. Bu yüzden devre denendiğinde vidyodaki çalışma şeklinden biraz daha farklı olacaktır. Bu iyileştirmeler hata senaryolarının daha kararlı işletilmesi için yazılımın çeşitli bölgelerinde uygulanmıştır.

Aşağıda PIC18F2550 mikrodenetçisinin bacak düzeni ve ardından kontrol devresinin giriş-çıkış uçlarının işlevleri verilmiştir:

1) RA1 (giriş): Motor-1 için hata düzeltildi onay butonu girişi.
2) RA2 (giriş): Motor-2 için hata düzeltildi onay butonu girişi.
3) RA3 (çıkış): 4026 Entegresinin Gösterge Etkinleştirme/Display Enable In(DEI) ucunu denetler.
4) RA5 (çıkış): 4026 Entegresinin Saat Engelleme / Clock Inhibit(INH) ucunu denetler.
5) RB1 (harici kesme girişi): 1. Motorun aşırı akım rölesi kontak bilgisi girişi ve 1. harici kesme ucudur.
6) RB2 (harici kesme girişi): 2. Motorun aşırı akım rölesi kontak bilgisi girişi ve 2. harici kesme ucudur.
7) RB3 (giriş): BAŞLA butonu giriş ucudur.
8) RB4 (giriş): DUR butonu giriş ucudur.
9) RC0 (çıkış): 4026 Entegresinin Sıfırlama / Reset(MR) ucunu denetler.
10) RC1 (çıkış): Motor-1 için hata göstergesi çıkışı.
11) RC2 (çıkış): Motor-2 için hata göstergesi çıkışı.
12) RC6 (çıkış): 1. Motoru süren uçtur.
13) RC7 (çıkış): 2. Motoru süren uçtur.




Eğer 555 sinyal üreteç devresinin nasıl çalıştığıyla ve nasıl hesaplandığıyla kafa yormak istemiyorsanız AŞAĞIDAKİ BİLGİLERİ OKUMADAN GEÇİN.

555 Sinyal Üreteci Devresinin Çalışması ve Hesaplamaları:


T = 0,693 x (R8 + 2 x R9) x C2
T = 0,693 x ([1x10
3] + 2 x [14,7x103]) x (47x10-6)
T = 0,693 x (1000 + [2 x 14700]) x 0,000047
T = 0,693 x 30400 x 0,000047
T = 0,9901584 saniye (1 saniyeden 9,8416 milisaniye eksik :) )

Yukarıdaki sonuca göre frekansı bulmak istersek şu formülle hesaplayabiliriz:

f = 1 / t
f = 1/0,9901584 = 1,009939419793843Hz

CD4026 entegresinin bacak yapısı aşağıda gösteriliyor.



Yukarıdaki şekilde göstergenin bacak bağlantısı ve iç yapısının mantığı görülüyor.

Buna göre 4026 entegresinin "a,b,c,d,e,f,g" uçları göstergenin karşılık gelen "a,b,c,d,e,f,g" uçlarına dirençler aracılığıyla ya da doğrudan bağlanabilir.

Eğer daha güvenli olması açısından direnç bağlamaya karar verilirse 7 adet 220 ohm değerinde direnç bağlanabilir.

4. Yazılım:

Yazılımda kullanılan neredeyse tüm yazmaçların/dosyaların, etiket ve komutların Türkçe açıklamaları yapılmıştır. Burada kesmelerin ve Timer0 sürevcisinin hazırlanması, Timer0 hesabı, yazılım bayrakları ve yazılım sayaçlarının açıklamaları yapılacak.