Bu devrede PIC16F84A mikroişlemcisi ve DS18B20 ısı sensörü kullanılarak ısı bilgisi elde edilir. Elde edilen ısı bilgisi 16X2 LCD ekranda gösterilerek kullanıcının belirttiği ısı değeri aşıldığında sesli olarak uyarı verir. Ortamdaki ısı değeri istenen seviyeye düşünceye kadar fanın çalışmasını sağlar. Ayrıca kullanıcının belirttiği ısı değeri eeproma kaydedilerek herhangi bir elektrik kesintisinde bilgilerin kaybolması engellenmiştir.Artı(+) ve eksi(-) butonları fanın çalışması için gereken sıcaklık seviyesini ayarlamanızı sağlar.
Devre Şeması
PIC16F84A ve DS18B20 ısı sensörü ile fan kontrol devresinde kullanılan malzemeler;
- 1 Adet PIC16F84A mikroişlemci
- 1 Adet 16X2 LCD
- DS18B20 ısı sensörü
- 1 Adet 1K direnç
- 3 Adet 10K direnç
- 1 Adet 4.7K direnç
- 1 Adet 330Ω direnç
- 1 Adet LED diyod
- 1 Adet BC237 transistör
- 1 Adet Buzzer
- 1 Adet 4Mhz kristal osilatör
- 2 Adet 22pF kondansatör
- 2 Adet buton
Kaynak Kodlar
Devreye ait mikroişlemci kodları MicroCode Studio Plus PIC BASIC PRO derleyicisinde yazılmış ve derlenmiştir. Derleme işlemi için bilgisayarınızda PBP246 ve MPASM assembly derleyici dosyaları bulunmalıdır.
================================================================================= ’**************************************************************** '* Proje Adı: FAN KOTROL DEVRESİ * '* Yazar : HASAN ÜZÜLMEZ * '* Not : DS18B20 Isı sensörü ile fan kontrolü * '* Tarih : 10.09.2008 * '**************************************************************** DEFINE LCD_DREG PORTA 'LCD data bacakları hangi porta bağlı? DEFINE LCD_DBIT 0 'LCD data bacakları hangi bitten başlıyor? DEFINE LCD_RSREG PORTA 'LCD RS Bacağı Hangi Porta bağlı ? DEFINE LCD_RSBIT 4 'LCD RS bacağı Hangi Bite bağlı ? DEFINE LCD_RWREG PORTB DEFINE LCD_RWBIT 1 DEFINE LCD_EREG PORTB 'LCD Enable Bacağı Hangi Porta bağlı? DEFINE LCD_EBIT 0 'LCD Enable Bacağı Hangi bite bağlı ? DEFINE LCD_BITS 4 'LCD 4 bit mi yoksa 8 bit olarak bağlı? DEFINE LCD_LINES 2 'LCD Kaç sıra yazabiliyor TRISA=0 TRISB=%01111000 K VAR WORD SICAK VAR WORD SICAK1 VAR WORD A VAR BYTE command VAR BYTE ' Komut bilgisi i2 VAR BYTE ' Sayıcı bilgisi temp VAR WORD ' Isı bilgisi DQ VAR PORTB.7 ' DS1820 data pin DQ_DIR VAR TRISB.7 ' DS1820 data komut pini Deg CON 223 SICAK1=0 K=300 PAUSE 500 ' LCD nin başlatılması için bekle LOW PORTB.1 READ 0,SICAK ' Eepromdan sıcaklık bilgisi al mainloop: GOSUB init1820 ' DS1820 başlat command = $cc GOSUB write1820 command = $44 ' Isı dönüşümünü başlat GOSUB write1820 PAUSE 500 ' Isı dönüşümünün bitmesini bekle GOSUB init1820 command = $cc ' ROM bilgisi al GOSUB write1820 command = $be ' Isı oku GOSUB write1820 GOSUB read1820 KONTROL: LCDOUT $FE,1 LCDOUT $FE,$80,"SICAKLIK=>" , DEC (temp >> 4 ), ".", DEC (temp.1 * 5),deg,"C" LCDOUT $FE,$C0,"FAN=>",DEC2 SICAK,deg,"C" IF PORTB.3=0 THEN SICAK=SICAK+1:WRITE 0,SICAK IF PORTB.4=0 THEN SICAK=SICAK-1:WRITE 0,SICAK IF (TEMP >> 4)<=SICAK THEN LOW PORTB.1 IF (TEMP >> 4)>=SICAK THEN GOTO MOTOR LOW PORTB.1 GOTO mainloop ' Devam et ' DS18B20 okuma işlemleri init1820: LOW DQ PAUSEUS 500 DQ_DIR = 1 PAUSEUS 100 IF DQ = 1 THEN LCDOUT $fe,1,"ISI SENSORU" LCDOUT $fe,$c0,"HAZIR DEGIL" PAUSE 500 GOTO mainloop ENDIF PAUSEUS 400 RETURN write1820: FOR i2 = 1 TO 8 IF command.0 = 0 THEN GOSUB write0 ELSE GOSUB write1 ENDIF command = command >> 1 NEXT i2 RETURN write0: LOW DQ PAUSEUS 60 DQ_DIR = 1 RETURN write1: LOW DQ @ nop DQ_DIR = 1 PAUSEUS 60 RETURN read1820: FOR i2 = 1 TO 16 temp = temp >> 1 GOSUB readbit NEXT i2 RETURN readbit: temp.15 = 1 LOW DQ @ nop DQ_DIR = 1 IF DQ = 0 THEN temp.15 = 0 ENDİF PAUSEUS 60 RETURN 'Fan aktif hale gelince sesli uyarı verir MOTOR: HIGH PORTB.1 SOUND PORTB.6,[120,60] GOTO mainloop END
Projenin Kaynak Simülasyon pcb ve kod;
Şifre-Pass: 320volt.com
Yayım tarihi: 2008/10/16 Etiketler: 2X16 LCD, DS18B20, fan kontrol devresi, microchip pic projeleri, Microcode studio, MPASM, PIC16F84 örnekleri, picbasic pro, Sıcaklık
Acaba bu proje DS1620 ve DS1621 ısı sensörleri ile de çalışır mı.Teşekkürler.
ısı bilgisini gönderme sistemleri aynı ise büyük ihtimalle çalışır ama ısı okuma kodları bu sensörlere görede düzenlenebilir. sonuçta aynı firmanın sensörleri.
merahaba projeyi ödev olara yaptım ama hex kodunda bi sorun var isis’te çalışıyor ama pıc’in içine programı atamıyoruz hata veriyor neden böyle bi sorun oluyor yardımcı olursanız sevinirim teşekkürler…
picbasic kodlarını tekrar derleyip hex haline çevirmeyi denediniz mi? programlayıcınızıda kontrol etmenizi tavsiye ederim kolay gelsin
herşeyi denedim ama hata veriyor proteusta.. yardımcı olursanız sevinirim
Kamil bey neleri denediniz hata nedir bilgi vermeniz gerekli
herşeyi denedim derken dier arkadsların sölediklerini yaptım yani hex. dosyası falan o tip şeyler.. ama hala pproteusta hata verio anlamış deilim..
ayrıca proteusta bu hatayı veriyo: Internal exception:access violation in module ” verdiği hata aynen bu ing. bilmediğim için:S
bu devreyi proteusta uygulama yapmadan çalıştıran var mı
saygılar
Ben bu devreyi gerçekte yaptım. Fakat sınır değerin dışına çıkıldığında çıkış vermiyor
sınır değer nedir anlayamadım.derece mi?
saygılar
dostum bana bu devrenin çalışan asm , hex kodu lazım.hem de çok acele.internette bu devreden başka lcd göstergeli fan kontrol bulamadım…lütfenyardım!!!!
Ben deveyi hex koduna çeviremedim pıc basic proyu nasıl hex koduna çevirebilirim bilmiyorum
ben isis devreyi calıstırdım termo metreye baglı r1 direncini silince calısıyor. dirençle ilgili birsey heralde
arkadaşlar ben devreyi plakete kurdum fakat çalışmadı transistör ısınıyor hatayı bulamadım yardımcı olursanız sevinirim ayrıca lcd ekran ısınıyor +5 voltta sebebi bulamadım
arkadaşlar sınır değerde çıkış vermemesinin sebebi başlangıçta eepromda ff değeri(255) okuyor olması pici programlarken eeproma herhangi 0-99 arası set değeri yazarsanız düzgün çalışacaktır. Devre ilk çalışmasında zaten 55 değeri gösteriyor yani 255’in 55’i elle bu değeri sıfırlarsanız yine sonuca ulaşırsınız. Proteus problemide büyük ihitmalle sensörle ilgili dosyaların eksik olmasından kaynaklanıyordur gerekli dosyaları bulup tekrar denerseniz çalıştığını görürsünüz. 😉
Arkadaşlar Verilen Baskı devre ile açık şema bir birini tutmuyor. ve LCD ye hiç görüntü gelmiyor. Bana kesin çalışan bu devreden lazım çok acil
Arkadaşlar Mehmetc nin dediği gibi baskı devre ile şema birbirini tutmuyor bir çogunun yeri yok devreyi yapan arkadaşa ulaşılıp bu konuyla ilgilenirse çok sevineceğiz hepimizin işini görecek bu devre çünki
similasyon çalışıyor sadece ısı sensörünün .dll sini bulup yüklemeniz gerekiyor
basic de hex kodları MicroCode Studio ile çıkartılıyor.
arkadaşlar bende rf ds18b20li çift lcd li termometre var ve buna 20 derece üstünde fan açılmasını istiyorum nasıl yapabilirim.hoca if else dedi ama olmuyor
http://b1108.hizliresim.com/11/8/2/319.png
bu hata nedir acaba
merhaba acaba malzemelerin plaket üzerindeki yerlerini gosteren bir resım ekler misiniz sıze zahmet..şimdiden teşekkürler
Ben bu çıkışı ile ilgili sorunlar sıcaklığını ayarlamak için aktif değil var, ve Proteus plaka da çalışıyor ama yürümez, kod benim e-posta doğru olup olmadığını görmek için PBP kodda gönderebilir [email protected] olduğunu
proje isisde çalışıyor fakat belirli süre sonra-1dk sonra- lcd’de tuhaf harfler çıkıyor ama devre işlevini kaybetmiyor anlamadım gitti
selam.hocam rica etsem bana bu devrenin ccsc dilinde yazılmış programını verebilirmisin
devre çalışmıyor paranıza emeğinize yazık. yapmayın benim gibi dersten kalırsınız.
defıne kelimesi hata veriyor nasıl düzeltebilirim.
mikro basic programında