Kablosuz kombi termostatı yapıyorum Güncellendi

Başlatan smartcard, 14 Aralık 2011, 21:42:36

smartcard

Kablosuz kombi termostatı yapıyorum. Projem daha tamamlanmadı. Bitirdiğim zaman tüm dosyaları paylaşağım. Arkadaşlar öneri ve yardımlarınız bekliyorum.CCS C yeni yeni öğrenmeye başlıyorum.
Menü kodları için Eraygil Arkadaşına teşekkürü bir borç bilirim.

1.Sıcaklık gece ve Gündüz olarak ayarlanabilir . 00:00 ile 07:00 gece olarak 07:00 ile 23:59 arası gündüz olarak ayarlanmıştır.
2.Sıcaklık ayarı  gece ve gündüz için ayrı ayrı 5-40 derece arasında 0,5 derece aralıklarla ayarlanabilir.
3.Sıcaklık ayarları yapılmaz ise Gündüz için sıcaklık 21 C Gece için sıcaklık 17 C kabul edilir.
4. Limit ayarlanabilir. Ayarlanan sıcaklıktan belirli bir limit altına yada üstüne çıkmadan kombi çalışmaz. Ayar aralığı 0,5 - 2,0 C   
Ayar yapılmaz ise Alt ve Üst Limit 0,5 C yani  ayarlanan 20 C ise kombi 19,4 C devreye girer 20,6 devreden çıkar.
Tüm Dosyalar Proteus Dsn+ C proje dosyaları http://www.mediafire.com/?dbd3m360noq3je0



Verici Kodları
#include <16F886.h>
#device adc=10
#FUSES NOWDT, XT, NOPUT, MCLR, NOPROTECT, NOCPD, NOFCMEN,NOBROWNOUT, IESO, NOLVP, NODEBUG, NOWRT, BORV40
#use delay(clock=4000000)
#define RTC_RST    PIN_C0
#define RTC_SCLK   PIN_C1
#define RTC_IO     PIN_C2
#define Menu       PIN_A0
#define Up         PIN_A1     
#define Down       PIN_A2
#define Open       PIN_A3
#define Light      PIN_A4     
#define RfOpen     PIN_A5    
#define use_portb_lcd TRUE
#include <DS1302.C>
#include <lcd.c>
#include <ds18b20.c>
#include <internal_eeprom.c>
#include <float.h>
#use rs232(baud=600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)

Byte day,mth,year,dow,hr,min,sec;
float Temp,Set,Set1,Set2,Limit1,Limit2;
int Count=0,Count1=0,Count2=0;
const char  Days[7][4]={
{"Paz"},{"Pzt"},{"Sal"},{"Crs"},{"Prs"},{"Cum"},{"Cts"}};

Temp_Control()
{
if (hr>7) Set=Set1;
if (hr<7) Set=Set2;
if (Temp<Set-Limit1)
{
output_high(Open);
putc('Y');
};
if (Temp>Set+Limit2)
{
output_low(Open);
putc('K');
};
}
Byte ReadRTC()
{
rtc_get_date(day,mth,year,dow);
delay_ms(5);
rtc_get_time(hr,min,sec);
if (year<2010) rtc_set_datetime(22,06,11,2,12,00);
Return (day,mth,year,dow,hr,min,sec);
}

Float ReadDS()
{
Temp=ds1820_read();
Return (Temp);
}

Void ShowLCD()
{
lcd_gotoxy(1,1);
printf(lcd_putc,"%02u:%02u %s %4.1f%cC",hr,min,Days[dow-1],Temp,223);
lcd_gotoxy(1,2);
printf(lcd_putc,"%02u/%02u/%02u  %4.1f%cC",day,mth,year,Set,223);
}

Void StartUp()
{
output_high(Light);
lcd_gotoxy(1,1);
printf(lcd_putc," KABLOSUZ KOMBI ");
lcd_gotoxy(1,2);
printf(lcd_putc,"TERMOSTATI YUCEL");
Delay_ms(1000);
output_low(Light);
printf(lcd_putc,"\f");
Set1 = Read_Float_Eeprom(0);
Set2 = Read_Float_Eeprom(4);
Limit2 = Read_Float_Eeprom(8);
Limit1 = Read_Float_Eeprom(12);
if (limit1<.0)  limit1=.5;
if (limit2<.0)  limit2=.5;
if (Set1<0.0) Set1=21.0;
if (Set2<0.0) Set2=17.0;

}

dow_adj() //yıl ayar alt menüsü
{
if(input(Menu)) //onay kod sayacı
{
delay_ms(10);
Count2=Count2+1;
while(input(Menu))
{}
}


//yıl değerini 1 ve 90 arasında tutmak için
if(dow>=7)
dow=1;
if(dow==0)
dow=1;


while(input(Up))//yukarı tuş basılma işlemi
{
delay_ms(20);
dow=dow+1;

while(input(Up))
{
lcd_gotoxy(1,1);
printf(lcd_putc," Tarih Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Gun:%s   ",Days[dow]);
rtc_set_datetime(day,mth,year,dow,hr,min);    
}
}
while(input(Down))//aşağı tuş basılma işlemi
{
delay_ms(20);
dow=dow-1;

while(input(Down))
{
lcd_gotoxy(1,1);
printf(lcd_putc," Tarih Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc," Gun:%s   ",Days[dow]);
rtc_set_datetime(day,mth,year,dow,hr,min);
}
}
}

hour_adj() 
{
if(input(Menu)) 
{
delay_ms(10);
Count2=Count2+1;
while(input(Menu))
{}
}
while(input(Up))
{
delay_ms(20);
hr=hr+1;

while(input(Up))
{
if(hr==13)
hr=0;
lcd_gotoxy(1,1);
printf(lcd_putc," Saat  Ayarlama ",);
lcd_gotoxy(1,2);
printf(lcd_putc,"Saat:%2d        ",hr);
rtc_set_datetime(day,mth,year,dow,hr,min);   
}
}
while(input(Down))
{
delay_ms(20);
hr=hr-1;

while(input(Down))
{
if(hr==-1)
hr=12;
lcd_gotoxy(1,1);
printf(lcd_putc," Saat  Ayarlama ",);
lcd_gotoxy(1,2);
printf(lcd_putc,"Saat:%2d        ",hr);
rtc_set_datetime(day,mth,year,dow,hr,min);
}
}
}

min_adj()
{
if(input(Menu)) 
{
delay_ms(10);
Count2=Count2+1;
while(input(Menu))
{}
}


while(input(Up))
{
delay_ms(20);
min=min+1;

while(input(Up))
{
if(min==60)
min=0;
lcd_gotoxy(1,1);
printf(lcd_putc," Saat  Ayarlama ",);
lcd_gotoxy(1,2);
printf(lcd_putc,"Dakika:%2d       ",min);
rtc_set_datetime(day,mth,year,dow,hr,min);    
}
}
while(input(Down))
{
delay_ms(20);
min=min-1;

while(input(Down))
{
if(min==-1)
min=59;
lcd_gotoxy(1,1);
printf(lcd_putc," Saat  Ayarlama ",);
lcd_gotoxy(1,2);
printf(lcd_putc,"Dakika:%2d       ",min);
rtc_set_datetime(day,mth,year,dow,hr,min);
}
}
}
day_adj() 
{
if(input(Menu)) 
{
delay_ms(10);
Count2=Count2+1;
while(input(Menu))
{}
}

while(input(Up))
{
delay_ms(20);
day=day+1;

while(input(Up))
{
if(day==32)
day=1;
lcd_gotoxy(1,1);
printf(lcd_putc," Tarih Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Gun:%2d          ",day);
rtc_set_datetime(day,mth,year,dow,hr,min);
}
}
while(input(Down))
{
delay_ms(20);
day=day-1;

while(input(Down))
{
if(day==0)
day=31;
lcd_gotoxy(1,1);
printf(lcd_putc," Tarih Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Gun:%2d          ",day);
rtc_set_datetime(day,mth,year,dow,hr,min);
}
}
}

month_adj() 
{
if(input(Menu)) 
{
delay_ms(10);
Count2=Count2+1;
while(input(Menu))
{}
}
while(input(Up))
{
delay_ms(20);
mth=mth+1;

while(input(Up))
{
if(mth==13)
mth=1;
printf(lcd_putc," Tarih Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Ay:%2d           ",mth);
rtc_set_datetime(day,mth,year,dow,hr,min);     
}
}
while(input(Down))
{
delay_ms(20);
mth=mth-1;

while(input(Down))
{
if(mth==0)
mth=12;
printf(lcd_putc," Tarih Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Ay:%2d           ",mth);
rtc_set_datetime(day,mth,year,dow,hr,min);
}
}
}

year_adj() 
{
if(input(Menu)) 
{
delay_ms(10);
Count2=Count2+1;
while(input(Menu))
{}
}

if(year>=90)
year=1;
if(year==0)
year=89;


while(input(Up))
{
delay_ms(20);
year=year+1;

while(input(Up))
{
lcd_gotoxy(1,1);
printf(lcd_putc," Tarih Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Yil:%2d          ",year);
rtc_set_datetime(day,mth,year,dow,hr,min);    
}
}
while(input(Down))
{
delay_ms(20);
year=year-1;

while(input(Down))
{
lcd_gotoxy(1,1);
printf(lcd_putc," Tarih Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Yil:%2d           ",year);
rtc_set_datetime(day,mth,year,dow,hr,min);
}
}
}

float daytemp_adj()
{
if(input(Menu)) 
{
delay_ms(10);
Count2=Count2+1;
Write_Float_Eeprom(0,Set1);
while(input(Menu))

{}
}
while(input(Up))
{
delay_ms(20);
Set1=Set1+.5;
while(input(Up))
{
lcd_gotoxy(1,1);
printf(lcd_putc," Isi  Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Gunduz:%3.1f%cC       ",Set1,223);
if (Set1>40.0) Set1=40.0;
}
}
while(input(Down))
{
delay_ms(20);
Set1=Set1-.5;
while(input(Down))
{
lcd_gotoxy(1,1);
printf(lcd_putc," Isi  Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Gunduz:%3.1f%cC       ",Set1,223);
if (Set1<5.0) Set1=5.0;
}
}

}
float nighttemp_adj()
{
if(input(Menu)) 
{
delay_ms(10);
Count2=Count2+1;
Write_Float_Eeprom(4,Set2);
while(input(Menu))
{}
}


while(input(Up))
{
delay_ms(20);
Set2=Set2+.5;
while(input(Up))
{
lcd_gotoxy(1,1);
printf(lcd_putc," Isi  Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Gece:%3.1f%cC      ",Set2,223);
if (Set2>40.0) Set2=40.0;
}
}
while(input(Down))
{
delay_ms(20);
Set2=Set2-.5;
while(input(Down))
{
lcd_gotoxy(1,1);
printf(lcd_putc," Isi  Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Gece:%3.1f%cC      ",Set2,223);
if (Set2<5.0) Set2=5.0;
}
}

}

float lowlimit_adj()
{
if(input(Menu)) 
{
delay_ms(10);
Count2=Count2+1;
Write_Float_Eeprom(8,Limit2);
while(input(Menu))
{}
}


while(input(Up))
{
delay_ms(20);
Limit2=Limit2+.5;
while(input(Up))
{
lcd_gotoxy(1,1);
printf(lcd_putc," Limit Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Alt:%3.1f%cC      ",Limit2,223);
if (Limit2>2.0) Limit2=2.0;
}
}
while(input(Down))
{
delay_ms(20);
Limit2=Limit2-.5;
while(input(Down))
{
lcd_gotoxy(1,1);
printf(lcd_putc," Limit Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Alt:%3.1f%cC      ",Limit2,223);
if (Limit2<.5) Limit2=.5;
}
}

}

float highlimit_adj()
{
if(input(Menu)) 
{
delay_ms(10);
Count2=Count2+1;
while(input(Menu))
{}
}


while(input(Up))
{
delay_ms(20);
Limit1=Limit1+.5;
Write_Float_Eeprom(12,Limit1);
while(input(Up))
{
printf(lcd_putc," Limit Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Ust:%3.1f%cC      ",Limit1,223);
if (Limit1>2.0) Limit1=2.0;
}
}
while(input(Down))
{
delay_ms(20);
Limit1=Limit1-.5;
while(input(Down))
{
printf(lcd_putc," Limit Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Ust:%3.1f%cC      ",Limit1,223);
if (Limit1<.5) Limit1=.5;
}
}

}


void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
   rtc_init();
   lcd_init();

   
//Setup_Oscillator parameter not selected from Intr Oscillator Config tab

   // TODO: USER CODE!!
   StartUp();
  
while(true)
{

   ReadRTC();
   ReadDS();
   ShowLCD();
   Temp_Control();
if(input(Menu))
{
Count=Count+1;
while(input(Menu))
{}}
if(Count==3)
Count=0;

output_low(Light);
while(Count==1)
{
output_high(Light);
lcd_gotoxy(1,1);
printf(lcd_putc,"    AYARLAR     ");
lcd_gotoxy(1,2);
printf(lcd_putc,"<              >");
//delay_ms(50);
//Count1=0;
if(Count1==-1)
Count1=6;
if(input(Menu))
{
delay_ms(20);
Count=0;
while(input(Menu))
{}}
if(input(Up))
{
delay_ms(20);
Count1=Count1+1;
while(input(Up))
{}}
if(input(Down))
{
delay_ms(20);
Count1=Count1-1;
while(input(Down))
{}}

while(Count1==1)
{
Count2=0;
lcd_gotoxy(1,1);
printf(lcd_putc," Isi  Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"<              >");
if(input(Menu))
{
delay_ms(10);
Count2=Count2+1;
while(input(Menu))
{}}
if(input(Up))
{
Count1=Count1+1;
while(input(Up))
{}
}
if(input(Down))
{
delay_ms(20);
Count1=Count1-1;

while(input(Down))
{}}
while(Count2==1)
{
lcd_gotoxy(1,1);
printf(lcd_putc," Isi  Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Gunduz:%3.1f%cC  ",Set1,223);
delay_ms(20);
daytemp_adj();

}
while(Count2==2)
{
lcd_gotoxy(1,1);
printf(lcd_putc," Isi  Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Gece:%3.1f%cC    ",Set2,223);
delay_ms(20);
nighttemp_adj();

}
}

while(Count1==2)
{
Count2=0;
lcd_gotoxy(1,1);
printf(lcd_putc," Saat  Ayarlama ",);
lcd_gotoxy(1,2);
printf(lcd_putc,"<              >");
if(input(Menu))
{
delay_ms(10);
Count2=Count2+1;
while(input(Menu))
{}}
if(input(Up))
{
Count1=Count1+1;
while(input(Up))
{}
}
if(input(Down))
{
delay_ms(20);
Count1=Count1-1;
while(input(Down))
{}}
while(Count2==1)
{
printf(lcd_putc," Saat  Ayarlama ",);
lcd_gotoxy(1,2);
printf(lcd_putc,"Saat:%2d        ",hr);
delay_ms(20);
hour_adj();
}
while(Count2==2)
{
lcd_gotoxy(1,1);
printf(lcd_putc," Saat  Ayarlama ",);
lcd_gotoxy(1,2);
printf(lcd_putc,"Dakika:%2d       ",min);
delay_ms(20);
Min_adj();
}

delay_ms(100);
}
while(Count1==3)
{
Count2=0;
lcd_gotoxy(1,1);
printf(lcd_putc," Tarih Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"<              >");

if(input(Menu))
{
delay_ms(20);
Count2=Count2+1;
while(input(Menu))
{}}


if(input(Up))
{
delay_ms(20);
Count1=Count1+1;
while(input(Up))
{}
}

if(input(Down))
{
delay_ms(20);
Count1=Count1-1;
while(input(Down))
{}}
while(Count2==1)
{
lcd_gotoxy(1,1);
printf(lcd_putc," Tarih Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Gun:%2d          ",day);
delay_ms(20);
day_adj() ;
}


while(Count2==2)
{
lcd_gotoxy(1,1);
printf(lcd_putc," Tarih Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Ay:%2d           ",mth);
delay_ms(20);
month_adj();
}

while(Count2==3)
{
lcd_gotoxy(1,1);
printf(lcd_putc," Tarih Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Yil:%2d           ",year);
delay_ms(20);
year_adj();
}
while(Count2==4)
{
lcd_gotoxy(1,1);
printf(lcd_putc," Tarih Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Gun:%s   ",Days[dow]);
delay_ms(20);
dow_adj();
}
}

while(Count1==4)
{
Count2=0;
lcd_gotoxy(1,1);
printf(lcd_putc," Limit Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"<              >");
if(input(Menu))
{
delay_ms(10);
Count2=Count2+1;
while(input(Menu))
{}}
if(input(Up))
{
Count1=Count1+1;
while(input(Up))
{}
}
if(input(Down))
{
delay_ms(20);
Count1=Count1-1;
while(input(Down))
{}}
while(Count2==1)
{
lcd_gotoxy(1,1);
printf(lcd_putc," Limit Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Ust:%3.1f%cC     ",Limit1,223);
delay_ms(20);
highlimit_adj();

}
while(Count2==2)
{
lcd_gotoxy(1,1);
printf(lcd_putc," Limit Ayarlama ");
lcd_gotoxy(1,2);
printf(lcd_putc,"Alt:%3.1f%cC     ",Limit2,223);
delay_ms(20);
lowlimit_adj();

}
}
while(Count1==5)
{

lcd_gotoxy(1,1);
printf(lcd_putc,"  Menuden  Cik  ");
lcd_gotoxy(1,2);
printf(lcd_putc,"<              >");
if(input(Menu))
{
delay_ms(10);

Count=0;
Count1=0;
Count2=0;
while(input(Menu))
{}}
}

}
} 
}


Alıcı Kodları

#include <16F630.h>
#FUSES NOWDT, XT, NOPROTECT, NOBROWNOUT, MCLR, NOCPD, NOPUT, BANDGAP_HIGH
#use delay(clock=4000000)
#use rs232(baud=600,parity=N,xmit=PIN_A3,rcv=PIN_A2,bits=8)
#define relay PIN_A0
#define Led PIN_A1
char a=0;

void main()
{

   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_comparator(NC_NC);
   setup_vref(FALSE);

   // TODO: USER CODE!!
While(TRUE)
{
a=getc();
if(a=='Y'){
output_high(relay);
output_high(led);
}
if(a=='K'){
output_low(led);
output_low(relay);
}
   
}
}

eraygil

aynı yönlü benimde çalışmam var programı devresi herseyi hazır ama işlerimin yoğunluğundan dolayı uygulama fırsatım olmadı.  devre olarak sorunum yok ancak kutu olayı canımı braz sıkıyor isteğime gör bi kutu bulamadım.

smartcard

Sakıncası yok ise kodlarınızı paylaşırmınız? Ben bu projemi ailem için yapmaktayım. Kodların tamanını paylaşmanız mümkün değil ise sadece menu ve rf modül kodlarını paylaşabilirseniz çok iyi olacak benim için

skara1214

Alıntı yapılan: smartcard - 15 Aralık 2011, 20:27:56
Sakıncası yok ise kodlarınızı paylaşırmınız? Ben bu projemi ailem için yapmaktayım. Kodların tamanını paylaşmanız mümkün değil ise sadece menu ve rf modül kodlarını paylaşabilirseniz çok iyi olacak benim için
sahsi fikrim sakın yanlış anlamayın eğer konuyu iyi bilmiyorsanız kombi v.s tarzı riskli işlere girmeyin derim...
Herkes ölür ama herkes gerçekten yaşamaz

t2

öğrenmek için giriyor olabilir. Çok iyi bilmiyorsanız, öğrenmeyin mi diyorsunuz?

Mucit23

Yeri gelmişken söyliyeyim. Baymak Luna 3 Kombi kullanıcısıyım. Kombi Takılalı 15 gün civarı oldu. Kombiye 7 Yıl Garanti vermişler. Benimde yapacaklarım arasında bi oda termostatı var fakat Baymak bana Oda termostatı takarsan illa benim yaptığımı kullanacaksın diyor başka bi marka kullanırsan cihaz arızalarını garantiye saymam diyor. Kablosuz Oda Termostatlarıda  250 ile 300TL arasında değişiyor.

t2

Evet hocam onun dediğini kullanmalısın.  Yok ben kendim termostat yaparım seriüretim yapar bu markanın çakma oda termostatı diye  satarım dersen uğraşabilirsin, yakışır. Bunlara birilerinin haddini bildirmesi gerek. fahiş fiyattan satmasınlar. Vur..

smartcard

Zaten projeye başlama sebebim 1. firmasının kendi kablosuz termostatlarının fiyatlarının 250-300 TL civarında olması 2. Senelerdir elektronik ile uğraşan biri olarak Pic porgramlamayı öğrenmek istemek 3. Kendi imkanlarınla yapmış olmanın verdiği haz 4. Proje kesinlikle bir ticari faaliyet değildir

Mucit23

Alıntı yapılan: t2 - 16 Aralık 2011, 01:20:02
Evet hocam onun dediğini kullanmalısın.  Yok ben kendim termostat yaparım seriüretim yapar bu markanın çakma oda termostatı diye  satarım dersen uğraşabilirsin, yakışır. Bunlara birilerinin haddini bildirmesi gerek. fahiş fiyattan satmasınlar. Vur..

Bir ara kombinin içini açıp bakıcam. Odatermostatı klemensine nasıl bir bağlantı yapılmış. Yani karta zarar vermedikten sonra ne gibi sorunla karşılaşabilirimki.

Erol YILMAZ

@smartcard;
uğraşınız geniş bir kitleye hitap eden bence hoş bir çalışma,
ilk mesajınızda kablosuz modüle ait bağlantılar görünmüyor,
bu kısmı ne ile yapmayı düşünüyorsunuz ?

smartcard

RWS434N-TWS-BS3 rf modül ve alıcı kısmında pic olarak 16F630 kullanmayı planlıyorum.Verici yazılımı tamamlanmadığı için yer almıyor. Bitirdiğim zaman ekleyeceğim.

skara1214

Alıntı yapılan: t2 - 16 Aralık 2011, 00:10:39
öğrenmek için giriyor olabilir. Çok iyi bilmiyorsanız, öğrenmeyin mi diyorsunuz?
benim söylediğim şey kombi v.s gibi şeylere bulaşmamak gerektiği yoksa öğrenmek için yapılacak bir ton konu var ama benden çok daha tecrübeliler destek olduğuna göre saygı gösterip çalışmalarında başarılar dilemek gerekli...
Herkes ölür ama herkes gerçekten yaşamaz

smartcard

#12
Alıntı yapılan: skara1214 - 16 Aralık 2011, 18:11:25
benim söylediğim şey kombi v.s gibi şeylere bulaşmamak gerektiği yoksa öğrenmek için yapılacak bir ton konu var ama benden çok daha tecrübeliler destek olduğuna göre saygı gösterip çalışmalarında başarılar dilemek gerekli...
Niye karşı çıkıyorsunuz anlamadım ama ben bunu yapmak istiyorum ve bitirdiğim zaman tüm kodları ile paylaşacağım.
Kombi dediğiniz cihazı bu kadar gözünüzde büyütmeyin benim yapacağım kombide oda termostatı girişinde bulunan tel köprüyü söküp yerine alıcı devredeki röleyi bağlamaktan öteye gimeyecek kombiye müdahalem yani gaz yada ateşleme devresine yaptığım bir müdahele yok
Ben daha çok bu konuda yardım ve fikirlerinizi beklemekteyim.

smartcard

Baskı devresini hazırlayıp bu haftasonuna kadar çalıştırmayı düşünüyorum.

Kabil ATICI

Devrenizi inceledim gerçi şimdilik simülasyon olarak çalıştırdınız sanırım. Sizde biliyorsunuzdur.
1. LED'lere seri direnç bağlayın. Ve LED'in diğer ucuna gnde yerine vcc bağlayın (uygun şekilde çevirmeyi unutmayın). Gerçi programda değişiklik yapmanız gerekecek. (işlemcilerin dışarı akım verme kapasiteleri içeri akıtma kapasiterilden daha azdır)
2. Röleyi bir transistör üzerinden sürün. Kullanacağınız röleyi bilmiyorum ama işlemcilerin akım akıtma kapasiteleri düşüktür.
3.LCD'nin Vee olarak belirtilen ucu bir trimpotun orta ucuna gelecek şekilde (trimptun diğer uçları besleme uçları arasında olacak şekilde) bağlamanızı öneririm. (ekran kontrastını ayarlamak için)
4. Veri kağıtların DS1302 bat ucuna doğrudan bilgisayar bios pili bağlanması önerilmiyor. Çünkü bu entegre şarjlı tip pil ile kullanılmak üzere tasarlanmış. Eğer bu pili kullanacaksan entegre ile pil arasına diyot konulması öneriliyor.
5. i2c yollarına pull up dirençleri (10K) koymanız önerilir.
6.Her entegrenin besleme bacakları arasına entegreye yakın 100 nf kondansaör koymanız önerilir.

Kolay gelsin.
ambar7