‘pic’ ile Etiketlenmiş 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.
WRITECODE – PBP Türkçe
WRITECODE Address,Value
“Word” büyüklüğündeki Value değerini kod alanındaki Address alanına yazar. PIC16F87x serisi cihazlar çalışma anında program kodlarının okunup, yazılmasına izin verir. Kod ile program kodlarını değiştirmek tehlikeli bir işlem olmasına karşın, bu yöntem yaklaşık 64-256 “byte”‘lık verinin silinmeyecek şekilde depolanmasını mümkün kılar. Bu kod kullanılırken yeni bilgilerin var olan program kodlarının üstüne yazılmamasına dikkat edilmelidir.
ERASECODE – PBP Türkçe
ERASECODE Block
Flash belleğe sahip olan bazı cihazlarda, PIC 18Fxxx serisi gibi, WRITECODE ile program kodlarının tekrar yazılmasından önce yazılacak alanın silinmesi gerekmektedir. Bu cihazlarda silme işlemi kod blokları üzerinden yapılır. Silinecek kod bloğu cihaza bağlı olarak 64 “byte” (32 “word”) büyüklüğünde veya başka büyüklüklerde olabilir. Bu büyüklük genelde yazılan blok büyüklüğünden daha fazla olmaktadır. Bu büyüklükler cihaza bağlı olduğundan en doğru bilgiyi edinmek için lütfen cihazın, Microchip tarafından hazırlanmış kullanma kılavuzuna (“datasheet”) bakınız.
ON INTERRUPT – PBP Türkçe
ON INTERRUPT GOTO Label
ON INTERRUPT komutu kesmelerin bir PICBasic altprogramı gibi değerlendirilmesini sağlar.
Kesmeleri PicBasic Pro kullanarak işlemenin iki yolu vardır. İlk yol kesmeleri assembly dili ile program yazarak işlemektir. Bu yol ile kesmeler miminumum gecikme yaşanarak işlenebilir. İkinci yol ise PicBasic Pro kesme işleyicisi (“interrupt handler”) kullanmaktır. Bu sayede kesme altprogramları RESUME ile biten sıradan PicBasic Pro altprogramları gibi yazılabilir.
SHIFTIN – PBP Türkçe
SHIFTIN DataPin,ClockPin,Mode,[Var{\Bits}...]
ClockPin ve DataPin parametreleriyle belirtilmiş pinler üzerinden senkron bir şekilde veri alır ve Var parametresi ile belirtilmiş değişkene veriyi kaydeder. ClockPin ve DataPin, 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.
\Bits parametresi opsiyoneldir ve kaç adet bitin alıncağını belirtir. Eğer belirtilmezse Var ile belirtilen değişkenin tipinden bağımsız olarak 8 adet bit alınıp kaydedilir. \Bits parametresi ile alınacak bit sayısı belirtilirse alma işleminin Mode parametresinde belirtilenden, LSB veya MSB bağımsız olarak her zaman en düşük bitten başladığı kabul edilir.
SHIFTOUT – PBP Türkçe
SHIFTOUT DataPin,ClockPin,Mode,[Var{\Bits}...]
Var parametresi ile belirtilmiş değişkenin içeriğini, ClockPin ve DataPin parametreleriyle belirtilmiş pinler üzerinden senkron bir şekilde kaydırarak gönderir. ClockPin ve DataPin, 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.
\Bits parametresi opsiyoneldir ve kaç adet bitin kaydırılarak gönderileceğini belirtir. Eğer belirtilmezse Var ile belirtilen değişkenin tipinden bağımsız olarak 8 adet bit gönderilir. \Bits parametresi ile gönderilecek bit sayısı belirtilirse gönderme işlemi Mode parametresinde belirtilenden, LSB veya MSB bağımsız olarak her zaman en düşük bitten başlar. Tek bir değişken kullanılarak 16 bite kadar bilgi gönderilebilir. Eğer 16 bitten daha fazla bilgi gönderilecekse köşeli parantez içine birden fazla değişken veya sabit veri eklenebilir.
OWOUT – PBP Türkçe
OWOUT Pin, Mode, [Item{, Item...}]
Opsiyonel olarak tek hat üzerinden haberleşen cihazlara (“one-wire”) yazmadan önce reset sinyali (“reset pulse”) gönderir, cihaza bir veya birden fazla bit veya “byte” yazar ve yine opsiyonel olarak yazma işleminden sonra bir başka reset sinyali (“reset pulse”) gönderir.
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.
OWIN – PBP Türkçe
OWIN Pin, Mode,[Item {,Item}]
Opsiyonel olarak tek hat üzerinden haberleşen cihazları (“one-wire”) okumadan önce reset sinyali (“reset pulse”) gönderir, cihazdan bir veya birden fazla bit veya “byte” okur ve yine opsiyonel olarak okuma işleminden sonra bir başka reset sinyali (“reset pulse”) gönderir.
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.