Yazarın Yazıları
LCD Ekranlı Basit Termometre Devresi
Merhabalar,
Bu yazıda LCD ekranlı basit bir termometre yapımını anlatmaya çalışacağım. Devrenin çalışan halini ve çeşitli ortamlardaki testini yazının devamında bulabileceğiniz videoda görebilirsiniz.
“Nerden çıktı bu termometre?” derseniz de, masamın üstünde duran LCD ve PIC’e ek olarak önceden alıp bir köşeye attığım sıcaklık sensörünü bulmam en büyük neden tabi.
Ayrıca haberlerde gördüğümüz “Yarın sıcaklık -3 derceye kadar düşecek.” benzeri söylemlerden dolayı “Dışarısı gerçekten ne kadar soğuk?” diye düşünmem de bir diğer etken.
Kullanacağımız sensör teorik olarak -55, +125 santigrat derece arası sıcaklıkları ortalama 0.5 santigrat derece hassiyetler ölçebiliyor. Yine teorik olarak devreyi 3V DC ve üzeri bir kaynakla çalıştırabilirsiniz.
Devreye geçmeden önce malzemelerimizi sayalım:
- DS18B20
- PIC 16F628 veya PIC 16F628A
- 10K veya yakın değerde POT
- LED (Herhangi bir renk olabilir.)
- 470 Ohm Direnç
- 4.7 KOhm Direnç
- HD44780 veya benzeri sürücü entegre içeren 16×2 LCD Ekran
Her malzemeden bir adet olması yeterlidir. Devrenin özelliklerine kısaca bakalım.
SWAP – PBP Türkçe
SWAP Variable,Variable
Variable parametresi ile verilen iki değişkenin değerlerini karşılıklı olarak değiştirir. Genellikle, karşılıklı yer değiştirme işlemi programı yazan kişiler için sıkıcı bir işlemdir. SWAP fonksiyonu bu işlemi herhangi bir ara değişken kullanmadan gerçekleştirebilmektedir. Fonksiyon “bit”, “byte” ve “word” tipli değişkenlerle çalışabilmektedir. Sabit indeks sayılarına sahip “array” (dizi) yapısındaki değişkenler kullanılabilirken, değişken indeks sayısına sahip “array” (dizi) yapısındaki değişkenler bu fonksiyon ile kullanılamayabilir.
FOR..NEXT – PBP Türkçe
FOR Count = Start TO End {STEP {-} Inc}
{Body}
NEXT {Count}
FOR..NEXT fonksiyonu bir değişkeni sayaç olarak kullanarak belirli bir kod grubunu istenilen sayıda çalışıtırılmayı sağlar. Fonksiyonun karmaşıklığı ve çok yönlü çalıştırlabilmesinden dolayı, fonksiyonu adım adım açıklamak daha anlaşılır olacaktır.
GOSUB – PBP Türkçe
GOSUB Label
Program, label ile belirtilmiş kısımdan çalışmaya devam eder. Fakat, bu sırada programın kaldığı yerin adresi cihazın stack ( yığın ) hafızasına kaydedilir. GOTO komutunun aksine, RETURN komutu ile program, GOSUB komutunun çağırıldığı programa geri dönebilmektedir. Yazdığınız programda istediğiniz kadar alt program (subroutine ) kullanabilirsiniz. Ek olarak, alt programları birbiri içerisinde ( nested ) de kullanabilirsiniz. Bu tür kullanımda, iç içe dörtten fazla alt program kullanılmaması önerilmektedir.
READ – PBP Türkçe
READ Address,Var
Mikrokontrolcüye entegre edilmiş EEPROM’dan Address ( Adres ) ile belirtilmiş alandaki değeri okur ve Var ( Variable – Değişken ) ile belirtilen değişkene okuduğu değeri kaydeder. Bu komut sadece dahili EEPROM bulunduran PIC16F84, PIC16C84, PIC16F87x serisi gibi cihazlarda kullanılabilir. READ komutu dahili EEPROM ile I2C protokolü kullanarak haberleşen PIC12CE67x, PIC16CE62x serisi gibi cihazlarda çalışmamaktadır. Bu tip cihazlarda bu iş için I2CREAD komutu kullanılmalıdır.
REPEAT…UNTIL – PBP Türkçe
REPEAT
Statements…
UNTIL Condition
REPEAT…UNTIL kullanılarak, bir kod parçasının, belirlenmiş Condition ( Durum ) gerçekleşene kadar tekrar etmesi sağlanabilir.
IF..THEN – PBP Türkçe
IF Comp {AND/OR Comp…} THEN
Statements…
ELSE
Statements…
ENDIF
Bir veya birden fazla karşılaştırma işlemi gerçekleştirir. Her bir Comp ( Comparison – Karşılaştırma ) ifadesi, bir değişkeni, bir sabit ile ya da bir karşılaştırma ifadesi içeren bir başka değişken ile ilişkilendirebilir, karşılaştırabilir. If..Then ise bu karşılaştırma ifadesinin sonucunu “doğru” veya “yanlış” şeklinde değerlendirir. Eğer karşılaştırma ifadesi “doğru” olarak değerlendirilir ise, Then kısmından sonra yazan statement ( ifade ) kısmı çalıştırılır. Eğer “yanlış” olarak değerlendirilir ise, Then ifadesinden sonra belirtilen kısımlar çalıştırılmaz. Sonucu “0″ olarak değerlendirilen karşılaştırma ifadeleri “yanlış” olarak düşünülür. Sonucu “0″dan başka herhangi bir değer olan ifadelerin hepsi “doğru” olarak düşünülür. Karşılaştırma ifadelerinin sonuçlar işaretsizdir, “-” veya “+” değerli yoktur. Birden fazla karşılaştırma ifadesini kullanırken, karşılaştırma sırasını belirlemek için parantez kullanılmalıdır. Aksi taktirde karşılaştırma ifadeleri yazılımcının istemediği bir sıra ile çalıştırılabilir. Bu da yazılımın istenmeyen bir şekilde çalışmasına neden olabilir.
IF..THEN ifadesi iki farklı şekilde kullanılabilir.
INPUT – PBP Türkçe
INPUT Pin
Pin‘i giriş olarak ayarlar. Pin, sabit bir değer, 0-15 arası bir değer, 0-15 arası bir değer içeren ( Örneğin: B0 ) bir değişken ya da pin adı ( Örneğin: PORTA.0 ) olabilir.
Örnek
INPUT PORTA.0 ‘ PORTA, pin 0 giriş olarak ayarlandı
Alternatif olarak bu işlem daha pratik ve kısa yolla yapılabilir.