K

PicBasic'de yazılmış bir program ve devresinin modifiyesi

Başlatan KralMurat, 05 Nisan 2013, 13:34:27

KralMurat

Merhabalar,

Pic programlama konusunda biraz yeniyim, belki basit bir soru olacak ama fikrinizi almak istedim.

Şimdi elimde bir devre var, Pic16f628 ile yapılmış bir devre. Devrede 1 adet röle var, fakat ben devreyi ve kaynak kodunu biraz modifiye ederek 2 röleyi kontrol edecek şekilde düzenlemek istiyorum. Fakat 2. röle için hiçbir I/O portu kalmıyor maalesef. PORTA'nın tüm pinleri sensörler ve birkaç buton için kullanımda. PORTB ise Ortak katotlu bir DIGIT (8 şeklindeki display) sürmek için kullanılmakta. PORTB'nin 8 pini, digit'in ABCDEFG ve (dot) olmak üzere 8 pinini sürüyor. Burda (dot) sürmek gereksiz, yani PORTB.7'inci bitini 2. röle için kullanabilirim, pic'den veri almaya gerek yok digit'in nokta led'ini yakmak için, bunu iptal edebiliriz.

Fakat söyle bir sorunla karşılaşabileceğimi düşünüyorum, eğer PORTB.7'ye röle bağlarsam, digit'e veri sürüldüğü zaman (örneğğin digit'te 3 yazmasını istediğim zaman) gönderdiğim veri röleyi etkileyecektir, çünkü digit'e veriyi direk PORTB'ye aktararak sürüyorum. Buda 8. pin'e bağlı 2. röleyi etkileyecektir değil mi? Birinci sorum bu.

Bunu engellemek için söyle birşey geldi aklıma, PORTA'ya bağlı butonlardan birini PORTB.7'ye bağlasam, yani TRISB'ye '10000000' atsam ve PORTB.7'yi input yapsam, ve geri kalan 7 bite de digit'i aynı şekilde bağlasam, digit'e veri gönderdiğim zaman (yani örneğin 3 bilgisini direk PORTB'ye aktardığım zaman) program hata verir mi? İkinci sorumda bu. Eğer hata vermezse, butonlardan birini PORTB'deki (dot)'tan arttırdığımız pine taşırım, PORTA'daki aktarılan butonun yerine de kontrol etmek istediğim 2. rölemi bağlamış olurum.

Olabildiğince basit anlatmaya çalıştım umarım karışmamıştır. Bu konudaki yardımlarınızı bekliyorum (aslında multiplexer kullanarak 8 bir yerine 3-4 bitle digit sürüp fazladan 4-5 bit arttırılabilir, veya PORTA'daki 4 buton pic'de 2 portla kontrol edilebilir belki ama bunları teorik olarak biliyorum, devreye uyarlayacak kadar bilgi sahibi değilim, o yüzden en basit şekilde 1 pin arttırıp digit'e sayı bilgisi göndermemi etkilemeyecek şekilde 1 röle daha bağlayabilmem gerekiyor  PORA'da arttırılacah hiç pin yok, o yüzden mecburen digit'in bağlı olduğu PORTB2den arttırmam gerekiyor) Zaman ayırdığını için teşekkür ederim.

KralMurat

Aslında ben tam olarak ne yapmak istediğimi anlatayım, 2. röle olayını çözdükten sonra kodlama kısmında da yardıma ihtiyacım olabilir çünkü  hem devreyi gördüğünüzde 2. röle için anlattıklarımı da daha iyi görebilir ve yardımda bulunabilirsiniz diye düşündüm.

Modifiye etmek istediğim devre şu :

http://320volt.com/ayarlanabilir-termometre-devresi-16f628-ds18b20-picbasic-pro/

Bu devre sadece ısıtıcı bağlanarak ortam ısısını belirli bir seviyede tutmayı sağlayan bir termostat. Ben bunu peltier kullanarak hem ısıtıcı hemde soğutucu elemanı kontrol eden bir devreye dönüştürmek istiyorum. Bu yüzden 2 röleye ihtiyacım var. Tek röleylede peltieri kontrol edebilirim aslında ama peltier'in sürekli çalışması gerekiyor ozamanda. Rölenin 2 konumu olduğu için birisinde ısıtıcı birisinde soğutucu olarak çalışması gerekecek, buda çok verimsiz olacak, belli bir ısı aralığında peltier'in çalışmadan durması gerekiyor.

Mevcut devrenin çalışması şu şekilde, bir sıcaklık değeri set ediyoruz, birde tolerans değeri veriyoruz. ortam sıcaklığı Set edilen değere (örneğin 27 dereceye) gelene kadar röleyi sürüyor (ısıtıcıyı çalıştırıyor). 27 dereceye gelince röleyi kesiyor. ve tolerans değerinin altına düşene kadar (örneğin tolerans değeri 0.5 derece ise 26.5'e gelene kadar) ısıtıcıyı çalıştırmıyor, 26.5'in altına düştüğü anda tekrar 27 olana kadar röleyi sürüyor.

Benim modifiye etmek istediğim devrenin ise çalışma prensibi şu şekilde olmalı, yine sıcaklığı 27 dereceye set ettiğimizi ve toleransın 0.5 derece olduğunu varsayarsak, eğer sıcaklık 26.5'in altında ise 1. röleyi sürerek ısıtıcıyı çalıştıracak, 27 dereceye gelince 1. röleyi (ısıtıcıyı) kesecek. Eğer sıcaklık 27.5'in üzerine çıkarsa da soğutucuyu çalıştıracak, 27 dereceye kadar soğutunca da 2. röleyi (soğutucuyu) kesecek. Yani sıcaklık 26.5-27.5 arasında tutulmuş olacak. ve peltier devamlı çalışmak zorunda kalmayacak. Sıcaklığı 27 dereceye getirince peltier çalışmayı bırakacak, 26.5'un altına düşünceye kadar veya 27.5'un üzerine çıkıncaya kadar çalışmayacak.

Eğer bu mevcut devreyi dediğim şekilde modifiye etmeyi başarabilirsek harika bir termostat devresi ortaya çıkarmış oluruz, devreyi tasarlayan arkadaşa fikir önerisinde bulunduk bir arkadaşımla birlikte ama tasarlayan arkadaş oralı olmadı :) buna ayıracak zamanı olmadığını söyleyince bizde şansımızı forumlarda deneyelim dedik :)

İnternette de buna benzer bir proje (hem ısıtıcıyı hem soğutucuyu kontrol eden) bulamadım, var ama şöyle var, ısı 27 dereceye set edilmişse tolerans değeri kadar aşağı inince ısıtıcıyı çalıştırıyor, set edilen değerin üzerine çıkar çıkmaz soğutucuyu çalıştırıyor, yani tolerans değeri kadar üstüne çıkmasını beklemiyor. O yüzden bu önerdiğim devreyi yapabilirsek çok daha kullanışlı ve internette olmayan (veya bulamadığım) bir devre tasarlamış olacağız. Durum genel olarak bu

ruzgar78

aynı proje benden istenmişti yıllar önce yapmıştım ete hocamın projelerinden esinlenerek çokda güzel oldu.Biraz kasıyor zor değil ama

ete

İşlemcilerde dahili OSC, NOCLKOUT seçeneği ile kullanılır ise PORTA.7 ve PORTA.6 pinleri boşa çıkar.
Bu söylediğim konu tamamen dahili OSC leri olan işlemcilerle alakalıdır. Olmayanlarda zaten yapacak bir şey yok.
Bu pinleri boşa çıkardıktan sonra istediğiniz gibi kullanabilirsiniz.
PORTA.5 pini genellikle MCLR olarak kullanılan  bir pin olup MCLR iptal edilir ise yalnızca Giriş olarak kullanılabilir. Dolayısıyla bu pine varsa butonlarınızı bağlayıp yine pin tasarrufu yapabilirsiniz.

Ete

ruzgar78

çok teşekkür ederim hocam birde pic pro basic kitabı bulabilirmiyiz örnekler vs içinde barındıran.Bu işde sizin kadar olamasakda en azından profesyonelliğe doğru gitsek. böyle bir kitap veya kaynak tavsiye edermisiniz ?

ruzgar78

hocam 628 yerine 877 kullanarak daha çok pin elde ederek çözümü öyle yaptım artık hocam.Agoritmada değişiklikler yaptıkça pin ihtiyacı doğuyor bu şekilde yaptım artık.çok teşşekür ederim Allah Razı olsun

ete

Benim kitaptan (ders notları, toplam 13 ders)daha fazla örnek bulunduran yok sanırım.
Ete

ruzgar78

http://books.google.com.tr/books/about/Pic_Basic_Projects.html?id=tBynyrs3esYC&redir_esc=y  bu link te bitane buldum hocam ama nasıl temin edilir bilemiyorum ayrıca sizin 13 ders notu pc de gözüm gibi bakıyor yedek alıyorum Allah razı olsun sizden


ruzgar78


Powered by EzPortal