Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: smartcard - 14 Aralık 2011, 21:42:36

Başlık: Kablosuz kombi termostatı yapıyorum Güncellendi
Gönderen: smartcard - 14 Aralık 2011, 21:42:36
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

(http://img403.imageshack.us/img403/6082/kombiq.png)

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);
}
   
}
}
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum
Gönderen: eraygil - 15 Aralık 2011, 17:57:42
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.
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum
Gönderen: 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
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum
Gönderen: skara1214 - 15 Aralık 2011, 23:27:17
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...
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum
Gönderen: t2 - 16 Aralık 2011, 00:10:39
öğrenmek için giriyor olabilir. Çok iyi bilmiyorsanız, öğrenmeyin mi diyorsunuz?
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum
Gönderen: Mucit23 - 16 Aralık 2011, 00:12:20
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.
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum
Gönderen: 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..
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum
Gönderen: smartcard - 16 Aralık 2011, 09:28:36
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
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum
Gönderen: Mucit23 - 16 Aralık 2011, 10:00:10
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.
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum
Gönderen: Erol YILMAZ - 16 Aralık 2011, 10:05:34
@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 ?
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum
Gönderen: smartcard - 16 Aralık 2011, 10:17:24
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.
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum
Gönderen: skara1214 - 16 Aralık 2011, 18:11:25
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...
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum
Gönderen: smartcard - 16 Aralık 2011, 18:24:37
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.
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum Güncellendi 22.12.2011
Gönderen: smartcard - 26 Aralık 2011, 12:02:19
Baskı devresini hazırlayıp bu haftasonuna kadar çalıştırmayı düşünüyorum.
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum Güncellendi
Gönderen: Kabil ATICI - 27 Aralık 2011, 10:54:28
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.
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum Güncellendi
Gönderen: smartcard - 28 Aralık 2011, 11:05:12
Tavsiyelerin için teşkekürler @ambar7 dikkate alacağım.
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum Güncellendi
Gönderen: tayyar - 28 Aralık 2011, 12:45:30
Rf kısmı halen daha deneme durumunda mı?


Veri göndermeden önce "uyandırma" işlemi için 5 baytlık 01 gönderilmesi gerekmez mi?
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum Güncellendi
Gönderen: smartcard - 28 Aralık 2011, 14:03:28
Şu an Rf kısmı deneme aşamasında şu an baskı devresini çizmeye çalışıyorum.Rf kısmı ile düzeltmeleri en sona bıraktım.Bitince en son halini ekleyeceğim. Teşekkürler.
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum Güncellendi
Gönderen: smartcard - 06 Ocak 2012, 17:49:08
Devre araya başka işlerim olmasından dolayı biraz ara vermiş idim. Verici devrenin baskı devresini bitirdim. Baskı devre ile ilgili önerilerinizi beklemekteyim. Kod kısmında değişiklik yapılması gerekmektedir. Onuda bu hafta sonu yapmayı planlıyorum.

(http://img836.imageshack.us/img836/4129/verici.png)
Ares Verici Baskı Devresi
http://www.mediafire.com/?aupwkazke1dtbmo
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum Güncellendi
Gönderen: t2 - 06 Ocak 2012, 17:55:43
Baskı devreyi istersen altın kaplama yap  bunlar devrenin çalışmasını sağlar mı? uğraştığın kombinin protokolü nedir? belki de protokol filan yok sadece kontak ile çalışıyor olabilir. Bu konudaki deneyiminizi öğrenebilir miyim? Kontak ile mi çalışıyor?
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum Güncellendi
Gönderen: Kabil ATICI - 06 Ocak 2012, 18:00:18
Entegreye yakın besleme hatlarına 100nF kondansatör koy.
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum Güncellendi
Gönderen: smartcard - 06 Ocak 2012, 18:03:41
@ambar7 Daha önce belirttiğin gibi 7805,pic,ds,buton kontaklarına 100nf bağladım.
@t2 Kombim on - off şeklinde çalışmakta plaketi altın kaplamaya gerek yok diye düşünmekteyim fakat yolları kalay ile kaplamayı düşünüyorum.
Peki son bir soru daha Ankara'da sadece Solder Mask(Plaket bakırlı yüzeydeki yeşil veya farklı renkteki boya ) yaptıracağım bir yer önerebilirmisiniz?
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum Güncellendi
Gönderen: Kabil ATICI - 06 Ocak 2012, 18:20:17
Pardon DS1302'nin ki biraz uzak kaldığı için görememişim.

http://pdfserv.maxim-ic.com/en/ds/DS1302.pdf (http://pdfserv.maxim-ic.com/en/ds/DS1302.pdf)
DS1302 veri kağıtlarında kristalin bağlantısı konusunda 5. sayfada bazı öneriler var. Kristal çevresini gnd hattı ile çevrelenmesi gerektiğini belirtiyor. (topraklama) Çevredeki elektriksel alanlardan etkilenmesi söz konusu olabiliyor.

Bilemiyorum pic ile donanım olarak ilgim olmadı ama yaptığım mikrokontroller uygulamalarında kristlin dışı kılıfını gnd'ye bağlıyorum. Böylece elle yaklaşma ve kristale dokunma durumunda işlemci saat frekansı değişmiyor. (bu konuda hiç başım ağrımadı!)
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum Güncellendi
Gönderen: smartcard - 06 Ocak 2012, 18:32:35
@ambar7 Tamam onu da ekleyeyim onun dışında ilk defa PCB çizen birine göre nasıl olmuş?
Birde daha önce ETE beyin saat uygulamasını yaptım orada DS1302 ayaklarında pullup dirençleri yoktu.Ben yanlış mı biliyorum DS1307'de SDA-SCL hatlarına 10K pullup direnci takılıyordu.
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum Güncellendi
Gönderen: zamzam23 - 02 Ekim 2012, 00:00:22
hocam termostat ne alemde, çalıştırabıldınız mı?
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum Güncellendi
Gönderen: computerboy - 02 Ekim 2012, 08:40:26
Merhaba, üstad bi ara internette texas' ın saatleri ile yapıldığını hatırlar gibiyim bi yerde görmüştüm araştırmak lazım estetik olması açısından süper olur. ayrıca sitede arkadaşın biri satıyor o saatten inceleyip araştırmanı tavsiye ederim. üretici firmalara fahiş fiyattan millete yivliyor sende onlara yivle :)
Başlık: Ynt: Kablosuz kombi termostatı yapıyorum Güncellendi
Gönderen: Eren Eraslan - 10 Ocak 2013, 10:45:30
hocam dosyayı tekrar upload edermisiniz  silinmişte .