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


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 "rf ile ds18b20 sıcaklık okuyup gönderip RS232 ile LCD ye yazdırma yardım?" 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!

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

Kayıt: 07 Ksm 2007
Mesajlar: 6

Offline
futureng
Tarih: 31 12 2007 10: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 11: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 17: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


Benzer Konular

- Windows boot problemi yardım

- picbasic COUNT komutu yardım :)
- pic 5 volt vermesem ile bile çıkış veriyor lütfen yardım
- DC den 20 volt Ac oluşturmak - yardım
- Cypress psoc mixed signal array'larla çalışanlar lütfen yardım!!
- Led Aydınlatma [Yardım]
- At89c51rd2 ve sht11 ile nem ve sıcaklık ölçümü
- faz farkı yakalama 200khz de - yardım
- ccs pic c onewire (ds18b20) haberleşme program kodları

- aktif güç filtresi ve inverter - yardım

- proton dili - eeprom yardım!!

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



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 için 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