Arkadaşlar birkaç ay önce çalıştığım iş yerinde çay paydosları yemek paydosları ve giriş çıkışlar için bir zil devresi yapmıştım.
Devreyi yaptığımda zaman kısıtlı olduğu için delikli plakete alel acele kurup 1-2 saatte de programını yazıp yarım günde çalıştırmıştım.
Bu nedenle elimde devre şeması yoktu.
Bugün arızalandığı için içini açtım ve fırsattan istifade devre şemasını çıkardım. Ve bu şema ile yazılımını sizlerle paylaşmak istedim.
Çok acelece yapılmış bir şey olduğu için yazılımında yada donanımında gözümden kaçan şeyler olmuş olabilir. Bunları siz düzenlerseniz sevinirim. İnşallah beğenirsiniz.
Şema:
(https://www.teknolojiekibi.com/yeni/proxy.php?request=http%3A%2F%2Fimg38.imageshack.us%2Fimg38%2F4945%2Fphp3h5rdo.th.png&hash=e631b78b56404d24de3b8db56fdf6be195aa1853) (http://www.postimage.org/image.php?v=aVtJFtA)
Video:
http://rapidshare.com/files/253336957/video.rar.html
Kodlar:
#include "1307_i2c.c"
#include "ds1307.c"
char *text[3] = {"SAAT AYARLA ","ALARM AYARLA","ALARM"};
unsigned char cevir[3];
unsigned char menudurum=0;
unsigned i,j;
unsigned char gecici3[3];
unsigned char gun=0;
unsigned char kontrol=0;
void itoa(unsigned char i);
void kaydet(unsigned char adres,unsigned char bilgi);
void menu();
void bekle10ms(unsigned int i);
void main(void)
{
CMCON=7;
TRISA=0x20;
TRISB=0x00;
PORTA=0X00;
Lcd_Init(&PORTB);
Lcd_Cmd(Lcd_CLEAR);
Lcd_Cmd(Lcd_CURSOR_OFF);
porta.f4=0;
//tarih_kaydet(9,3,14,1);
while(1)
{
gun=ds1307_oku(3);
Lcd_Chr(2,1,gun+48);
gecici3[2]=ds1307_oku(0);
kontrol=ds1307_oku(0);
itoa(ds1307_oku(0));
Lcd_Chr(1,7,cevir[1]);
Lcd_Chr(1,8,cevir[0]);
Lcd_Chr(1,3,':');
gecici3[1]=ds1307_oku(1);
itoa(ds1307_oku(1));
Lcd_Chr(1,4,cevir[1]);
Lcd_Chr(1,5,cevir[0]);
Lcd_Chr(1,6,':');
gecici3[0]=ds1307_oku(2);
itoa(ds1307_oku(2));
Lcd_Chr(1,1,cevir[1]);
Lcd_Chr(1,2,cevir[0]);
for(i=8;i<24;i++)
{
if(gecici3[0]==ds1307_oku(i) && gecici3[3]!=0)
{
if(gecici3[1]==ds1307_oku(i+1))
{
if(kontrol<=8)
{
porta.f4=1;
bekle10ms(900);
porta.f4=0;
}
}
}
}
if(porta.f0==0)menu();
}
}
void itoa(unsigned char i)
{
cevir[0]=48; cevir[1]=48;
if(i<10)
{
cevir[0]=i+48;
cevir[2]=1;
}
if(i>=10 && i<100)
{
cevir[0]=(i%10)+48;
cevir[1]=(i/10)+48;
cevir[2]=2;
}
}
void menu()
{
unsigned char gecici=0;
unsigned char gecici1=0;
unsigned char yer=1;
unsigned char kayit[5];
porta.f4=0;
while(1)
{
lcd_out(1,1,text[menudurum]);
lcd_out(2,1," ");
if(porta.f1==0)
{
bekle10ms(15);
if(porta.f1==0)
{
menudurum=(menudurum==0 ? 1 : 0);
}
}
if(porta.f2==0)
{
bekle10ms(15);
if(porta.f2==0)
{
menudurum=(menudurum==0 ? 1 : 0);
}
}
if(porta.f3==0)
{
bekle10ms(15);
if(porta.f3==0)
{
if(menudurum==1)
{ //alarm ayarla
gecici1=0;
while(1)
{
Lcd_Chr(2,1,(gecici1+48));
lcd_out(2,3,text[2]);
if(porta.f1==0)
{
bekle10ms(15);
if(porta.f1==0)
{
gecici1=(gecici1<8 ? gecici1+1 : 0);
}
}
if(porta.f2==0)
{
bekle10ms(15);
if(porta.f2==0)
{
gecici1=(gecici1>0 ? gecici1-1 : 8);
}
}
if(porta.f3==0)
{
bekle10ms(15);
if(porta.f3==0)
{
Lcd_Cmd(Lcd_Clear);
while(1)
{
Lcd_Chr(1,1,(gecici1+48));
lcd_out(1,3,text[2]);
Lcd_Chr(2,yer,(gecici+48));
if(porta.f1==0)
{
bekle10ms(15);
if(porta.f1==0)
{
gecici=(gecici<9 ? gecici+1 : 0);
}
}
if(porta.f2==0)
{
bekle10ms(15);
if(porta.f2==0)
{
gecici=(gecici>0 ? gecici-1 : 9);
}
}
if(porta.f3==0)
{
bekle10ms(15);
if(porta.f3==0)
{
kayit[yer]=gecici;
gecici=0;
if(yer>=4)
{
kayit[1]=(kayit[1]*10)+(kayit[2]);
kayit[3]=(kayit[3]*10)+(kayit[4]);
kaydet((gecici1*2)+8,kayit[1]);
kaydet((gecici1*2)+9,kayit[3]);
Lcd_Cmd(Lcd_Clear);
yer=1;
break;
}
yer=(yer>3 ? 1 : yer+1);
}
}
}
}
}
if(porta.f0==1){break;}
}
}
if(menudurum==0)
{
while(1)//saat ayarla
{
Lcd_Chr(2,yer,(gecici+48));
if(porta.f1==0)
{
bekle10ms(15);
if(porta.f1==0)
{
gecici=(gecici<9 ? gecici+1 : 0);
}
}
if(porta.f2==0)
{
bekle10ms(15);
if(porta.f2==0)
{
gecici=(gecici>0 ? gecici-1 : 9);
// kayit[yer]=gecici;
}
}
if(porta.f3==0)
{
bekle10ms(15);
if(porta.f3==0)
{
kayit[yer]=gecici;
gecici=0;
if(yer>=4)
{
kayit[1]=(kayit[1]*10)+(kayit[2]);
kayit[3]=(kayit[3]*10)+(kayit[4]);
saat_kaydet(kayit[1],kayit[3]);
yer=1;
break;
}
yer=(yer>5 ? 1 : yer+1);
}
}
}
}
}
}
if(porta.f0==1){Lcd_Cmd(Lcd_Clear);break;}
}
}
void kaydet(unsigned char adres,unsigned char bilgi)
{
rtc_write(adres,dec_bcd(bilgi));
}
void bekle10ms(unsigned int i)
{
unsigned int k=0;
for(k==0;k<i;k++)delay_ms(10);
}
eline sağlık hocam ama keşke komutlar basic olsa.
yanlızkurt malesef picbasic bilmiyorum
sağlık olsun hocam. kendime göre yeni bir proje var kafamda.güvenlik sitemleri üzerine. evi takip edecek gerek duyarsa cepten haber verecek yada biz gerek duyarsak evdeki bazı şeyleri kontrol edebileceğimiz bişeyler düşünüyorum tamamen telefon kontrollü.sizce nasıl bir fikir işe yararmı.
işe yarar tabii neden yaramasın çok güzel şeyler ortaya çıkarabilirsin
şimdi 3g de çıktı gerekirse görüntü de gönderebilirsin