Elektrotekno.com Ana Sayfa || Programlanabilir Cihaz ve Elemanlar || Microchip Pic Serisi


rf ile ds18b20 sıcaklık okuyup gönderip RS232 ile LCD ye yazdırma yardım?

Açıklama:
Elektrik, Elektronik, Haberleşme ve Otomasyon konularının ağırlıklı olarak konuşulduğu, tartışıldığı ve bilgi paylaşımı yapıldığı forumumuza hoşgeldiniz.
Şu an Kod Paylaşım ve Soru Cevap Alanı kategorisi içerisindeki Microchip Pic Serisi forumunda bulunuyorsunuz.
Bu sayfada üyelerimizin "PIC için C dilinde PID?" konusundaki problem, görüş ve önerileri okuyabilir ayrıca konu hakkındaki doküman, resim, proje, devre ve programlara ücretsiz olarak ulaşabilirsiniz. Üye olduktan sonra sizler de konu hakkında sorular sorabilir ya da yorum ve paylaşım yaparak birikimlerinizi aktarabilirsiniz.
Forumdan tam olarak yararlanabilmek için üye olmayı unutmayınız!
Kayıt: 07 Ksm 2007
Mesajlar: 8

Offline
futureng
Tarih: 31 12 2007 09:52

Arkadaşlar ben bir proje yaptım. rf kullanarak sıcaklık verisini kablosuz lcd ekrana yazdırıyorum. Yaptığım proje 3 adet devreden oluşuyor: 1: 16f628 li RF verici devresi 2: 16f628 li RF alıcı devresi 3: 16f877 li LCD ekranlı devre. Sıcaklık bilgisini 1-wire olarak okuyorum rf' e çevirip gönderiyorum. 2. devrem ile datayı alıp RS232 vasıtası ile 3. devreye aktarıyorum. 3.devre ise rs232 portundan aldığı bilgiyi LCD ekrana yazıyor. sorunum şu= ds18b20 den sıcaklık datası okunduğunda bana 3 adet bilgi veriyor. 1-işaret, 2-Isı değeri, 3- Ondalık değeri bu 3 bilgiyi seri olarak gönderiyorum. Fakat dataları alırken LCD ekrana yorumlamak için nasıl bu bilgiyi çözdüreceğim. Sistem çalışıyor fakat sadece "sıcaklık" bilgisini gönderip yorumlatabiliyorum. Çünkü diğer bilgiler LCD ekrana yazıalacak ham lıkta değil. Sıcaklık bilgisini direk Decimal e çevir diyorum o da basit olarak ekrana yazıyor. Fakat (-) dereceleri ve ondalığı nasıl ayırıp LCD ye gönderecem çözemedim. ( Bu iş için JAL dilini kullandım)
Kayıt: 06 Ksm 2007
Mesajlar: 17

Offline
SOVALYE
Tarih: 03 01 2008 10:46

Jal dilini bilmiyorum ama yardımcı olursa diye Basic kodları


jal dilini bilmiyorum ama yardımcı olursa diye basic kodlarını yazdım...

'değişken tanımlamaları:
busy var bıt ' busy status-bit
ham var word ' sensör ham okuma değeri
ısı_ds1820 var word ' hesaplanmış ısı değeri
float var word ' holds remainder for + temp c display
x var word
ısaret_bıtı var ham.bit11 ' +/- sıcaklık işaret biti, 1 = olursa eksi sıcaklık
eksı_ısı con 1 ' sıfır altında isaret biti=1 oluyor kontrol için
derece con 223 ' ° işareti
ısaret var byte ' ısı değeri için +/- işaret
temp var byte ' div32 bit hesap için geçici değişken
symbol comm_pın=portc.7 ' one-wire data-pin "dq" portb.0 da

sensoroku:
owout comm_pin, 1, [$cc, $44]' ısı değerini oku
bekle:
owın comm_pin, 4, [busy] ' busy değerini oku
ıf busy = 0 then bekle ' hala meşgulmü? , evet ise goto bekle..!
owout comm_pin, 1, [$cc, $be] ' scratchpad memory oku
owın comm_pin, 2, [ham.lowbyte, ham.highbyte]' iki byte oku ve okumayı bitir.
gosub hesapla
return
hesapla: ' ham değerden santigrat derece hesabı
ısaret = "+"
ıf ısaret_bıtı = eksı_ısı then
ısaret = "-"
temp=($ffff - ham+1)*625
ısı_ds1820 = dıv32 10
goto gec
endif
temp = 625 * ham
ısı_ds1820 = dıv32 10 ' div32 hassas derece hesabı için 32 bit bölme yapıyoruz.
gec:
float = (ısı_ds1820 //1000)/100
ısı_ds1820=ısı_ds1820/1000
lcdout $fe,$89,ısaret,dec ısı_ds1820,".",dec1 (float),derece,"c" '1. satırda ısı
return
end
goto sensoroku
Başa dön
Kayıt: 17 Ekm 2007
Mesajlar: 9

Offline
DemirHan
Tarih: 03 01 2008 16:06

JAL dilini bende duymadım (pic ler için) ama mantığını anlatabilirim belki kendin yazarsın
belli veri paketleri hazırlaman lazım örneğin senin durumunda 3 değişik veri var bunları 1 er baytlık paketlere koyduğunu düşün bu paketleri hep aynı sırayla göndereceksin 1. paket (+/-) 2. paket (sıcaklık tamsayı kısmı) 3. paket( sıcaklık kesirli kısım) ama bunların başına birde normalde bu 3 paketdede oluşması mümkün olmayan örneğin 0xff gibi bi başalngıç paketi daha eklersen sırası karışmaz toplamda bu 4 paketi arka arkaya yolarsın karşıdaki işlemci 0xff i alınca bilirki ondan sonraki paketde +/- bilgisi var bi sonrakinde tamsayı değeri var bi sonrakinde kesirli kısım var bu şekilde tüm data karışmadan karşı tarafa ileilmiş olur. sonra tekrar 0xff karakterinin gelmesini bekler bu arada gelen dataları dikkate almaz.


Aynı iş başka şekillerdede yapılabilir. Bu sadece fikir vermek için yazılmış bi örnek
Başa dön



rf ile ds18b20 sıcaklık okuyup gönderip RS232 ile LCD ye yazdırma yardım?


Benzer Konular

- Sıcaklık Kontrollü Havya

- Fırçasız D.A Motoru FUZZY Kontrol ACİLLL Yardım
- iki ayrı trafo merkezinden gelen iki hat - yardım
- rs232 rf verici
- 24v digital göstergeli sıcaklık ayarlı havya
- MOSFET ile Dimmer (Yardım)
- Proteus ve USB kullanımı hakkkında yardım.
- pic ile usb to rs232
- 8051 robot projesi yardım!!

- Generatör talep gücü hesaplama - yardım

- Ustalardan Acil yardım Lazım (step motor daha çok elektronikle ilgili)

Sitemize üyelik ve içeriğin indirilmesi tamamen ücretsizdir. Sitemizde paylaşılan tüm dokümanlar (Tezler, makaleler, ders notları, sınav soru cevaplar, projeler) paylaşımcıların bireysel çalışmaları olup telif hakları kendilerine aittir ya da açık bir şekilde kamusal alana yerleştirilmiş dokümanların birer kopyalarıdır. Kişilerin bireysel çalışmalarını sitemizde yüklemesinde, sitemizde paylaşıma teşvik eden puanlama sisteminin de etkisi büyüktür. Bunlara rağmen hala size ait olan ve burada bulunmasına izin vermediğiniz dokümanlar varsa iletişim bölümünden yöneticilere bildirmeniz durumunda derhal silineceklerdir.
Powered by phpBB | Translated by phpBB Türkiye | Ads by Google Adsense | Design by Crazy Bat based
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72