pic 16f887 lm35 ile fan kontrolü

Majardoma

Üye
Katılım
30 Mar 2014
Mesajlar
12
Puanları
1
Yaş
27
Az önce yardım konusu açmıştım ama hallettim basitmiş :D yapmak isteyen olursa bu koddan faydalanabilir
Kod:
Device = 16F887
@CONFIG_REQ
@__CONFIG _CONFIG1, HS_OSC & WDT_OFF & MCLRE_ON & PWRTE_ON & DEBUG_OFF & LVP_OFF & FCMEN_OFF & IESO_OFF & BOR_SBODEN & CPD_OFF & CP_OFF

Xtal = 20
All_Digital = True         ' Set PORTA and PORTE to all digital
Declare PortB_Pullups = On

TRISA = %111111            ' PORTA giriş olarak tanımla
TRISB = %11111111       ' PORTB giriş olarak tanımla
TRISC = %00000000        ' PORTC nin tüm bitlerini çıkış olarak ayarla
TRISD = %00000000        ' PORTD nin tüm bitlerini çıkış olarak ayarla
TRISE = %111            ' PORTE nin tüm bitlerini giriş olarak ayarla

Declare     LCD_DTPin = PORTD.4  
Declare     LCD_RSPin = PORTD.2
Declare     LCD_ENPin = PORTD.3
Declare     LCD_Interface = 4    ' 4-bit Interface
Declare     LCD_Lines = 2       
Declare     LCD_Type = 0

ADCON1 =%00000111               ' PORTA ve PORTE digital girişler aktif.
OPTION_REG = %00000000        ' PORTB PULLUP AKTİF


'************* GİRİŞ ÇIKIŞ TANIMLAMALARI ************


'****************** Değişken tanımlamaları **********
Dim hiz       As Word
Symbol lm35     = PORTE.2

'****************** Değişken ilk değerleri **********
Dim analogdeg As Word
Dim derece1   As Word
Dim derece2   As Word

PORTC=0
PORTD=0 
'///////////////// ANA PROGRAM \\\\\\\\\\\\\\\\\
'///////////////// ANA PROGRAM \\\\\\\\\\\\\\\\\
basla:


PORTD=%00000000
ADCON1 =%10000000        ' PORTA ve PORTE analog ölçüm girişler aktif.
    analogdeg=ADIn 7   'Gerilim ölçüm pini PORTE.2 LM 35 bağlı. LM35 10 mv/C olacak şekilde çıkış verir
    derece1=(analogdeg*49)/100   'Ölçülen analog değerin derece karşılığı hesaplama
    derece2=(analogdeg*49)//100  'Ölçülen analog değerin derece karşılığı hesaplama
    Print At 1,2,  "ORTAM SICAKLIGI "
    Print At 2,1,Dec2 derece1,",",Dec2 derece2,
 
  

     If derece1>22  Then High PORTC.6  ' sıcaklık 22 derecenin üzerinde olursa portcnin 6.  pinini aktif '
     If derece1<22 Then Low PORTC.6   ' sıcaklık 22 derecenin altında olursa portc 6 pini kapalı '
 
   
   
  
GoTo basla


End
 
derece1>22 ve derece<22 olunca çıkış osilasyona girecektir. o sıcaklıklarda bir açılıp bir kapanacaktır.

bunun yerine hyteresis olmalı yani derece<22 then low portc.6 ve derece+3>22 then high portc.6 gibi.
burada 3 derecelik bir hysteresis olmuş oluyor hatta > ile birlikte 4 derece. osilasyon bu aralık içinde olsa bile çıkış tepki vermez. bu tip kontrollerde bu şarttır. deneyin daha güzel olur. birde adc okuma işlemini 10 kez yapıp toplayıp en son 10 a bölün ortalama alın.
 
derece1>22 ve derece<22 olunca çıkış osilasyona girecektir. o sıcaklıklarda bir açılıp bir kapanacaktır.

bunun yerine hyteresis olmalı yani derece<22 then low portc.6 ve derece+3>22 then high portc.6 gibi.
burada 3 derecelik bir hysteresis olmuş oluyor hatta > ile birlikte 4 derece. osilasyon bu aralık içinde olsa bile çıkış tepki vermez. bu tip kontrollerde bu şarttır. deneyin daha güzel olur. birde adc okuma işlemini 10 kez yapıp toplayıp en son 10 a bölün ortalama alın.

dediginiz gibi yaptım hocam ama farkeden birşey olmadı sadece daha erken çalışıyor 19 dereceden iibaren çalışıyor , anlatmak istediginiz buda olabilir , 10 a bölüp oratalama alma mantıgı neden hocam daha saglıklı bir ölçüm içinmi
 
internette PID kontrol ile ilgili çokça örnekler var... Bence sizin işinizi görecek böyle bir kontrol yolu olabilir.
 
ortalama almak sudur. lm35 cikisini nekadar cok sayida okuyup toplayip toplanan sayiya bolunce cok daha stabil degerler alinir. diger hyteresis olayi cok farkli bir durum. degisen cok sey olur bunun farkini sicaklik degeri set edilen degere gelince anlarsin. tekbir treshold verilmez bi uste bi alta oynayan sicaklik cikisi surekli acar kapatir. tabi secim senin.
 
internette PID kontrol ile ilgili çokça örnekler var... Bence sizin işinizi görecek böyle bir kontrol yolu olabilir.
hocam pıc'e yeni başladım inşallah ilerde
ortalama almak sudur. lm35 cikisini nekadar cok sayida okuyup toplayip toplanan sayiya bolunce cok daha stabil degerler alinir. diger hyteresis olayi cok farkli bir durum. degisen cok sey olur bunun farkini sicaklik degeri set edilen degere gelince anlarsin. tekbir treshold verilmez bi uste bi alta oynayan sicaklik cikisi surekli acar kapatir. tabi secim senin.
Deniyecegim hocamda şu hyteresis olayını pek anlamadım sanırım oraya kadar daha çok yolum var başlangıç için iyi bence ilerde zamanla oturturum
 

Forum istatistikleri

Konular
129,806
Mesajlar
930,281
Kullanıcılar
452,608
Son üye
murat620

Yeni konular

Çevrimiçi üyeler

Geri
Üst