Adiltgrl
Üye
- Katılım
- 27 Haz 2024
- Mesajlar
- 1
- Puanları
- 1
- Yaş
- 23
Merhabalar bana lütfen yardım edermisiniz bir devre yapmaya çalışıyorum internetten birşey buldum ama buna nasıl şart koşabilirim mesela saat tarih ayarı vs yapılabiliyor derece de var ama şöyle yapmam lazım mesela
anlık 35 derece diyelim 40 derece olunca A portun 4. bacağına tetik versin mesela veya bunu ayarlayabileyim
mesela 12 saatte 1 a portunun 5. bacağını tetik verip kapatsın bu şekilde nasıl düzenleyebilirim lütfen yardım edin
kısaca ayarlı tetikli derece ayarı ve saat ayarı nasıl yapabilirim lütfen yardım edin
#include <16f628a.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.
#fuses INTRC_IO,NOWDT,NOBROWNOUT,NOLVP,NOPUT,NOCPD // Fuses ayarları
#use delay (clock=4000000) //4mhz delay süresi
#include "flexy_lcd.c" //lcd c dosyası
#include "ds18b20.c" //termometre entegresi c dosyası
#include "ds1302.C" //saat entegresi c dosyasi
int8 sicak,saniye,dakika,saat,gun,ay,hafta,yil,ayar=0;
void lcd()
{
lcd_gotoxy(1,1);
printf(lcd_putc,"%02d/%02d/%02d",gun,ay,yil);
lcd_gotoxy(1,2);
printf(lcd_putc,"%02d:%02d:%02d",saat,dakika,saniye);
lcd_gotoxy(11,1);
switch(hafta)
{
case 1: printf(lcd_putc,"Pzts"); break;
case 2: printf(lcd_putc,"SALI"); break;
case 3: printf(lcd_putc,"CARS"); break;
case 4: printf(lcd_putc,"PERS"); break;
case 5: printf(lcd_putc,"CUMA"); break;
case 6: printf(lcd_putc,"Cmts"); break;
case 7: printf(lcd_putc,"Pzar"); break;
}
}
void sicaklik()
{
sicak=ds1820_read(); //termometre entegresindeki değeri sicak değişkenine aktar
lcd_gotoxy(11,2);printf(lcd_putc,"%02d",sicak);
lcd_gotoxy(13,2);lcd_send_byte(0x4a,0xdf);lcd_gotoxy(14,2);printf(lcd_putc,"C");
}
void ayaryap(){
//(0x0d) lcd belirtilen konumun yanıp sönmesi
if(input(pin_b0)==0){ayar++;delay_ms(20);printf(lcd_putc,"\f AYAR MODU");delay_ms(450);printf(lcd_putc,"\f");}
while(ayar==1){
lcd();lcd_gotoxy(1,1);lcd_send_byte(0x01,0x0d);lcd_gotoxy(2,1);lcd_send_byte(0x02,0x0d);
if(input(pin_a3)==0){gun++;delay_ms(20);if(gun==32){gun=1;}while(input(pin_a3)==0);}
if(input(pin_a4)==0){gun--;delay_ms(20);if(gun==0){gun=31;}while(input(pin_a4)==0);}
if(input(pin_b0)==0){ayar++;delay_ms(200);while(input(pin_b0)==0);}}
while(ayar==2){
lcd();lcd_gotoxy(4,1);lcd_send_byte(0x04,0x0d);lcd_gotoxy(5,1);lcd_send_byte(0x05,0x0d);
if(input(pin_a3)==0){ay++;delay_ms(20);if(ay==13){ay=1;}while(input(pin_a3)==0);}
if(input(pin_a4)==0){ay--;delay_ms(20);if(ay==0){ay=12;}while(input(pin_a4)==0);}
if(input(pin_b0)==0){ayar++;delay_ms(200);while(input(pin_b0)==0);}}
while(ayar==3){
lcd();lcd_gotoxy(7,1);lcd_send_byte(0x07,0x0d);lcd_gotoxy(8,1);lcd_send_byte(0x08,0x0d);
if(input(pin_a3)==0){yil++;delay_ms(20);while(input(pin_a3)==0);}
if(input(pin_a4)==0){yil--;delay_ms(20);if(yil==-1)yil=99;while(input(pin_a4)==0);}
if(input(pin_b0)==0){ayar++;delay_ms(200);while(input(pin_b0)==0);}}
while(ayar==4){
lcd_gotoxy(11,1);lcd_send_byte(0x11,0x0d);lcd();delay_us(5);
if(input(pin_a3)==0){hafta++;delay_ms(20);if(hafta==8){hafta=1;}while(input(pin_a3)==0);}
if(input(pin_a4)==0){hafta--;delay_ms(20);if(hafta==0){hafta=7;}while(input(pin_a4)==0);}
if(input(pin_b0)==0){ayar++;delay_ms(200);while(input(pin_b0)==0);}}
while(ayar==5){
lcd_gotoxy(1,2);lcd_send_byte(0x40,0x0d);lcd_gotoxy(2,2);lcd_send_byte(0x41,0x0d);lcd();
if(input(pin_a3)==0){saat++;delay_ms(20);if(saat==24){saat=0;}while(input(pin_a3)==0);}
if(input(pin_a4)==0){saat--;delay_ms(20);if(saat==-1){saat=23;}while(input(pin_a4)==0);}
if(input(pin_b0)==0){ayar++;delay_ms(200);while(input(pin_b0)==0);}}
while(ayar==6){
lcd_gotoxy(4,2);lcd_send_byte(0x43,0x0d);lcd_gotoxy(5,2);lcd_send_byte(0x44,0x0d);lcd();
if(input(pin_a3)==0){dakika++;delay_ms(20);if(dakika==60){dakika=0;}while(input(pin_a3)==0);}
if(input(pin_a4)==0){dakika--;delay_ms(20);if(dakika==-1){dakika=59;}while(input(pin_a4)==0);}
if(input(pin_b0)==0){ayar++;delay_ms(200);while(input(pin_b0)==0);}}
while(ayar==7){rtc_set_datetime(gun,ay,yil,hafta,saat,dakika); //değişkenleri saat entegresine aktar.
delay_ms(20);
printf(lcd_putc,"\f AYARLAR\n YUKLENIYOR");
delay_ms(1000);printf(lcd_putc,"\f");
ayar=0;}
}
void main()
{
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
lcd_init(); //lcd yi hazırla
rtc_init(); //saat entegresini hazırla
delay_ms(5);
printf(lcd_putc,"\fAIBU");
delay_ms(3000);
printf(lcd_putc,"\f");
delay_ms(5);
while(1)
{
if(ayar==0){rtc_get_time(saat,dakika,saniye);rtc_get_date(gun,ay,yil,hafta);}
sicaklik();
lcd();
ayaryap();
}
}
anlık 35 derece diyelim 40 derece olunca A portun 4. bacağına tetik versin mesela veya bunu ayarlayabileyim
mesela 12 saatte 1 a portunun 5. bacağını tetik verip kapatsın bu şekilde nasıl düzenleyebilirim lütfen yardım edin
kısaca ayarlı tetikli derece ayarı ve saat ayarı nasıl yapabilirim lütfen yardım edin
#include <16f628a.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.
#fuses INTRC_IO,NOWDT,NOBROWNOUT,NOLVP,NOPUT,NOCPD // Fuses ayarları
#use delay (clock=4000000) //4mhz delay süresi
#include "flexy_lcd.c" //lcd c dosyası
#include "ds18b20.c" //termometre entegresi c dosyası
#include "ds1302.C" //saat entegresi c dosyasi
int8 sicak,saniye,dakika,saat,gun,ay,hafta,yil,ayar=0;
void lcd()
{
lcd_gotoxy(1,1);
printf(lcd_putc,"%02d/%02d/%02d",gun,ay,yil);
lcd_gotoxy(1,2);
printf(lcd_putc,"%02d:%02d:%02d",saat,dakika,saniye);
lcd_gotoxy(11,1);
switch(hafta)
{
case 1: printf(lcd_putc,"Pzts"); break;
case 2: printf(lcd_putc,"SALI"); break;
case 3: printf(lcd_putc,"CARS"); break;
case 4: printf(lcd_putc,"PERS"); break;
case 5: printf(lcd_putc,"CUMA"); break;
case 6: printf(lcd_putc,"Cmts"); break;
case 7: printf(lcd_putc,"Pzar"); break;
}
}
void sicaklik()
{
sicak=ds1820_read(); //termometre entegresindeki değeri sicak değişkenine aktar
lcd_gotoxy(11,2);printf(lcd_putc,"%02d",sicak);
lcd_gotoxy(13,2);lcd_send_byte(0x4a,0xdf);lcd_gotoxy(14,2);printf(lcd_putc,"C");
}
void ayaryap(){
//(0x0d) lcd belirtilen konumun yanıp sönmesi
if(input(pin_b0)==0){ayar++;delay_ms(20);printf(lcd_putc,"\f AYAR MODU");delay_ms(450);printf(lcd_putc,"\f");}
while(ayar==1){
lcd();lcd_gotoxy(1,1);lcd_send_byte(0x01,0x0d);lcd_gotoxy(2,1);lcd_send_byte(0x02,0x0d);
if(input(pin_a3)==0){gun++;delay_ms(20);if(gun==32){gun=1;}while(input(pin_a3)==0);}
if(input(pin_a4)==0){gun--;delay_ms(20);if(gun==0){gun=31;}while(input(pin_a4)==0);}
if(input(pin_b0)==0){ayar++;delay_ms(200);while(input(pin_b0)==0);}}
while(ayar==2){
lcd();lcd_gotoxy(4,1);lcd_send_byte(0x04,0x0d);lcd_gotoxy(5,1);lcd_send_byte(0x05,0x0d);
if(input(pin_a3)==0){ay++;delay_ms(20);if(ay==13){ay=1;}while(input(pin_a3)==0);}
if(input(pin_a4)==0){ay--;delay_ms(20);if(ay==0){ay=12;}while(input(pin_a4)==0);}
if(input(pin_b0)==0){ayar++;delay_ms(200);while(input(pin_b0)==0);}}
while(ayar==3){
lcd();lcd_gotoxy(7,1);lcd_send_byte(0x07,0x0d);lcd_gotoxy(8,1);lcd_send_byte(0x08,0x0d);
if(input(pin_a3)==0){yil++;delay_ms(20);while(input(pin_a3)==0);}
if(input(pin_a4)==0){yil--;delay_ms(20);if(yil==-1)yil=99;while(input(pin_a4)==0);}
if(input(pin_b0)==0){ayar++;delay_ms(200);while(input(pin_b0)==0);}}
while(ayar==4){
lcd_gotoxy(11,1);lcd_send_byte(0x11,0x0d);lcd();delay_us(5);
if(input(pin_a3)==0){hafta++;delay_ms(20);if(hafta==8){hafta=1;}while(input(pin_a3)==0);}
if(input(pin_a4)==0){hafta--;delay_ms(20);if(hafta==0){hafta=7;}while(input(pin_a4)==0);}
if(input(pin_b0)==0){ayar++;delay_ms(200);while(input(pin_b0)==0);}}
while(ayar==5){
lcd_gotoxy(1,2);lcd_send_byte(0x40,0x0d);lcd_gotoxy(2,2);lcd_send_byte(0x41,0x0d);lcd();
if(input(pin_a3)==0){saat++;delay_ms(20);if(saat==24){saat=0;}while(input(pin_a3)==0);}
if(input(pin_a4)==0){saat--;delay_ms(20);if(saat==-1){saat=23;}while(input(pin_a4)==0);}
if(input(pin_b0)==0){ayar++;delay_ms(200);while(input(pin_b0)==0);}}
while(ayar==6){
lcd_gotoxy(4,2);lcd_send_byte(0x43,0x0d);lcd_gotoxy(5,2);lcd_send_byte(0x44,0x0d);lcd();
if(input(pin_a3)==0){dakika++;delay_ms(20);if(dakika==60){dakika=0;}while(input(pin_a3)==0);}
if(input(pin_a4)==0){dakika--;delay_ms(20);if(dakika==-1){dakika=59;}while(input(pin_a4)==0);}
if(input(pin_b0)==0){ayar++;delay_ms(200);while(input(pin_b0)==0);}}
while(ayar==7){rtc_set_datetime(gun,ay,yil,hafta,saat,dakika); //değişkenleri saat entegresine aktar.
delay_ms(20);
printf(lcd_putc,"\f AYARLAR\n YUKLENIYOR");
delay_ms(1000);printf(lcd_putc,"\f");
ayar=0;}
}
void main()
{
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
lcd_init(); //lcd yi hazırla
rtc_init(); //saat entegresini hazırla
delay_ms(5);
printf(lcd_putc,"\fAIBU");
delay_ms(3000);
printf(lcd_putc,"\f");
delay_ms(5);
while(1)
{
if(ayar==0){rtc_get_time(saat,dakika,saniye);rtc_get_date(gun,ay,yil,hafta);}
sicaklik();
lcd();
ayaryap();
}
}