Yapay Zeka Destek

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    34sileli
    34sileli's avatar
    Kayıt Tarihi: 26/Haziran/2015
    Erkek

    Merhaba dostlar,

     

    şu programı chatgpt veya benzeri bir zekaya yaptırabilecek var mı acep, ben çok yazdım free bitti o yüzden.

    program şu 

    herkese teşekkürler

     

    şifre hane girişleri portb.0, 1, 2, 3 

    buzzer porta.3

    alarm aktif ledi porta.2

    kontak porta.0

    röle portb.7

     

    alarm pasifken doğru şifre girilirse buzzer high olsun ve 5 saniye sonra alarm aktif olsun kontak kontrolü yapılsın

    alarm aktifken şifre doğru girilirse buzzer 3 kere ötsün ve alarm pasif olsun

    alarm aktifken hep kontak kontrolü yapılsın kontak low olursa buzzer high olsun doğru şifre girilirse alarm ve buzzer pasif olsun, yanlış şifre girilirse portb.7 high olsun

    şifrenin her hanesi girildiğinde 1 kez buzzer ötsün

     

    EDIT : program adı pic basic pro 

     

    34sileli tarafından 18/Kas/24 22:16 tarihinde düzenlenmiştir
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Shakespeare
    Shakespeare's avatar
    Kayıt Tarihi: 02/Haziran/2024
    Erkek

    hocam chatgpt.com zaten ücretsiz. yazdıklarını direkt kopyalayıp yazdığımda aşağıdaki çıktıyı verdi.

    // Pin Tanımlamaları
    #define SHIFRE_PIN1   PORTBbits.RB0  // Şifre 1. hane
    #define SHIFRE_PIN2   PORTBbits.RB1  // Şifre 2. hane
    #define SHIFRE_PIN3   PORTBbits.RB2  // Şifre 3. hane
    #define SHIFRE_PIN4   PORTBbits.RB3  // Şifre 4. hane
    #define BUZZER        PORTAbits.RA3  // Buzzer çıkışı
    #define ALARM_LED     PORTAbits.RA2  // Alarm aktif LED çıkışı
    #define KONTAK        PORTAbits.RA0  // Kontak girişi
    #define ROLE           PORTBbits.RB7  // Röle çıkışı
    
    // Sabitler
    #define DOGRU_SIFRE   1234  // Örnek doğru şifre
    
    // Değişkenler
    int sifre = 0;  // Girilen şifre
    int alarmDurumu = 0; // 0 -> Pasif, 1 -> Aktif
    
    void setup() {
        // Portları giriş ve çıkış olarak ayarla
        TRISA = 0b00000001;  // RA0 (KONTAK) giriş, diğer RA pinleri çıkış
        TRISB = 0b00001111;  // RB0-RB3 (Şifre haneleri) giriş, RB7 (Röle) çıkış
        TRISC = 0;            // Diğer portlar çıkış
    }
    
    void loop() {
        // Şifre girişi yapılırken her bir pin okunur
        sifre = 0;
        sifre = sifre * 10 + (SHIFRE_PIN1 ? 1 : 0);
        buzzerCal(); delay(100);
        sifre = sifre * 10 + (SHIFRE_PIN2 ? 1 : 0);
        buzzerCal(); delay(100);
        sifre = sifre * 10 + (SHIFRE_PIN3 ? 1 : 0);
        buzzerCal(); delay(100);
        sifre = sifre * 10 + (SHIFRE_PIN4 ? 1 : 0);
        buzzerCal(); delay(100);
        
        // Alarm pasifken doğru şifre girildiğinde işlem
        if (alarmDurumu == 0 && sifre == DOGRU_SIFRE) {
            BUZZER = 1;  // Buzzer'ı çalıştır
            delay(5000);  // 5 saniye bekle
            ALARM_LED = 1; // Alarm aktif LED'ini yak
            alarmDurumu = 1;  // Alarm aktif
            kontrol();  // Kontak kontrolünü başlat
        }
        
        // Alarm aktifken doğru şifre girildiğinde işlem
        if (alarmDurumu == 1 && sifre == DOGRU_SIFRE) {
            for (int i = 0; i < 3; i++) {
                BUZZER = 1; // Buzzer'ı çalıştır
                delay(300);  // 300ms süreyle çalıştır
                BUZZER = 0;
                delay(300);
            }
            ALARM_LED = 0;  // Alarm LED'ini kapat
            alarmDurumu = 0; // Alarm pasif hale gelir
        }
        
        // Alarm aktifken kontak kontrolü
        if (alarmDurumu == 1) {
            kontrol();  // Kontak durumu kontrol et
        }
    }
    
    void buzzerCal() {
        BUZZER = 1;  // Buzzer'ı çalıştır
        delay(200);  // 200ms süreyle çalıştır
        BUZZER = 0;  // Buzzer'ı kapat
    }
    
    void kontrol() {
        if (KONTAK == 0) {
            BUZZER = 1; // Kontak low olduğunda buzzer'ı çalıştır
        } else {
            BUZZER = 0; // Kontak yüksekse buzzer'ı kapat
        }
        
        // Kontak low olduğunda şifre kontrolü yapılır
        if (KONTAK == 0 && sifre == DOGRU_SIFRE) {
            ALARM_LED = 0; // Alarm pasif
            BUZZER = 0;    // Buzzer kapalı
            ROLE = 0;      // Röle kapalı
        }
        
        // Şifre yanlışsa röle aktif edilir
        if (sifre != DOGRU_SIFRE) {
            ROLE = 1;  // Röleyi aktif et (Alarm tetikleniyor)
        }
    }
    
    

     

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    34sileli
    34sileli's avatar
    Kayıt Tarihi: 26/Haziran/2015
    Erkek
    Shakespeare bunu yazdı

    hocam chatgpt.com zaten ücretsiz. yazdıklarını direkt kopyalayıp yazdığımda aşağıdaki çıktıyı verdi.

    // Pin Tanımlamaları
    #define SHIFRE_PIN1   PORTBbits.RB0  // Şifre 1. hane
    #define SHIFRE_PIN2   PORTBbits.RB1  // Şifre 2. hane
    #define SHIFRE_PIN3   PORTBbits.RB2  // Şifre 3. hane
    #define SHIFRE_PIN4   PORTBbits.RB3  // Şifre 4. hane
    #define BUZZER        PORTAbits.RA3  // Buzzer çıkışı
    #define ALARM_LED     PORTAbits.RA2  // Alarm aktif LED çıkışı
    #define KONTAK        PORTAbits.RA0  // Kontak girişi
    #define ROLE           PORTBbits.RB7  // Röle çıkışı
    
    // Sabitler
    #define DOGRU_SIFRE   1234  // Örnek doğru şifre
    
    // Değişkenler
    int sifre = 0;  // Girilen şifre
    int alarmDurumu = 0; // 0 -> Pasif, 1 -> Aktif
    
    void setup() {
        // Portları giriş ve çıkış olarak ayarla
        TRISA = 0b00000001;  // RA0 (KONTAK) giriş, diğer RA pinleri çıkış
        TRISB = 0b00001111;  // RB0-RB3 (Şifre haneleri) giriş, RB7 (Röle) çıkış
        TRISC = 0;            // Diğer portlar çıkış
    }
    
    void loop() {
        // Şifre girişi yapılırken her bir pin okunur
        sifre = 0;
        sifre = sifre * 10 + (SHIFRE_PIN1 ? 1 : 0);
        buzzerCal(); delay(100);
        sifre = sifre * 10 + (SHIFRE_PIN2 ? 1 : 0);
        buzzerCal(); delay(100);
        sifre = sifre * 10 + (SHIFRE_PIN3 ? 1 : 0);
        buzzerCal(); delay(100);
        sifre = sifre * 10 + (SHIFRE_PIN4 ? 1 : 0);
        buzzerCal(); delay(100);
        
        // Alarm pasifken doğru şifre girildiğinde işlem
        if (alarmDurumu == 0 && sifre == DOGRU_SIFRE) {
            BUZZER = 1;  // Buzzer'ı çalıştır
            delay(5000);  // 5 saniye bekle
            ALARM_LED = 1; // Alarm aktif LED'ini yak
            alarmDurumu = 1;  // Alarm aktif
            kontrol();  // Kontak kontrolünü başlat
        }
        
        // Alarm aktifken doğru şifre girildiğinde işlem
        if (alarmDurumu == 1 && sifre == DOGRU_SIFRE) {
            for (int i = 0; i < 3; i++) {
                BUZZER = 1; // Buzzer'ı çalıştır
                delay(300);  // 300ms süreyle çalıştır
                BUZZER = 0;
                delay(300);
            }
            ALARM_LED = 0;  // Alarm LED'ini kapat
            alarmDurumu = 0; // Alarm pasif hale gelir
        }
        
        // Alarm aktifken kontak kontrolü
        if (alarmDurumu == 1) {
            kontrol();  // Kontak durumu kontrol et
        }
    }
    
    void buzzerCal() {
        BUZZER = 1;  // Buzzer'ı çalıştır
        delay(200);  // 200ms süreyle çalıştır
        BUZZER = 0;  // Buzzer'ı kapat
    }
    
    void kontrol() {
        if (KONTAK == 0) {
            BUZZER = 1; // Kontak low olduğunda buzzer'ı çalıştır
        } else {
            BUZZER = 0; // Kontak yüksekse buzzer'ı kapat
        }
        
        // Kontak low olduğunda şifre kontrolü yapılır
        if (KONTAK == 0 && sifre == DOGRU_SIFRE) {
            ALARM_LED = 0; // Alarm pasif
            BUZZER = 0;    // Buzzer kapalı
            ROLE = 0;      // Röle kapalı
        }
        
        // Şifre yanlışsa röle aktif edilir
        if (sifre != DOGRU_SIFRE) {
            ROLE = 1;  // Röleyi aktif et (Alarm tetikleniyor)
        }
    }
    
    

     

    hocam pic basic pro ile yaptırabilir misin söylemeyi unutmuşum

     

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NoktaliVirgul
    NoktaliVirgul's avatar
    Kayıt Tarihi: 02/Temmuz/2007
    Erkek
    34sileli bunu yazdı
    Shakespeare bunu yazdı

    hocam chatgpt.com zaten ücretsiz. yazdıklarını direkt kopyalayıp yazdığımda aşağıdaki çıktıyı verdi.

    // Pin Tanımlamaları
    #define SHIFRE_PIN1   PORTBbits.RB0  // Şifre 1. hane
    #define SHIFRE_PIN2   PORTBbits.RB1  // Şifre 2. hane
    #define SHIFRE_PIN3   PORTBbits.RB2  // Şifre 3. hane
    #define SHIFRE_PIN4   PORTBbits.RB3  // Şifre 4. hane
    #define BUZZER        PORTAbits.RA3  // Buzzer çıkışı
    #define ALARM_LED     PORTAbits.RA2  // Alarm aktif LED çıkışı
    #define KONTAK        PORTAbits.RA0  // Kontak girişi
    #define ROLE           PORTBbits.RB7  // Röle çıkışı
    
    // Sabitler
    #define DOGRU_SIFRE   1234  // Örnek doğru şifre
    
    // Değişkenler
    int sifre = 0;  // Girilen şifre
    int alarmDurumu = 0; // 0 -> Pasif, 1 -> Aktif
    
    void setup() {
        // Portları giriş ve çıkış olarak ayarla
        TRISA = 0b00000001;  // RA0 (KONTAK) giriş, diğer RA pinleri çıkış
        TRISB = 0b00001111;  // RB0-RB3 (Şifre haneleri) giriş, RB7 (Röle) çıkış
        TRISC = 0;            // Diğer portlar çıkış
    }
    
    void loop() {
        // Şifre girişi yapılırken her bir pin okunur
        sifre = 0;
        sifre = sifre * 10 + (SHIFRE_PIN1 ? 1 : 0);
        buzzerCal(); delay(100);
        sifre = sifre * 10 + (SHIFRE_PIN2 ? 1 : 0);
        buzzerCal(); delay(100);
        sifre = sifre * 10 + (SHIFRE_PIN3 ? 1 : 0);
        buzzerCal(); delay(100);
        sifre = sifre * 10 + (SHIFRE_PIN4 ? 1 : 0);
        buzzerCal(); delay(100);
        
        // Alarm pasifken doğru şifre girildiğinde işlem
        if (alarmDurumu == 0 && sifre == DOGRU_SIFRE) {
            BUZZER = 1;  // Buzzer'ı çalıştır
            delay(5000);  // 5 saniye bekle
            ALARM_LED = 1; // Alarm aktif LED'ini yak
            alarmDurumu = 1;  // Alarm aktif
            kontrol();  // Kontak kontrolünü başlat
        }
        
        // Alarm aktifken doğru şifre girildiğinde işlem
        if (alarmDurumu == 1 && sifre == DOGRU_SIFRE) {
            for (int i = 0; i < 3; i++) {
                BUZZER = 1; // Buzzer'ı çalıştır
                delay(300);  // 300ms süreyle çalıştır
                BUZZER = 0;
                delay(300);
            }
            ALARM_LED = 0;  // Alarm LED'ini kapat
            alarmDurumu = 0; // Alarm pasif hale gelir
        }
        
        // Alarm aktifken kontak kontrolü
        if (alarmDurumu == 1) {
            kontrol();  // Kontak durumu kontrol et
        }
    }
    
    void buzzerCal() {
        BUZZER = 1;  // Buzzer'ı çalıştır
        delay(200);  // 200ms süreyle çalıştır
        BUZZER = 0;  // Buzzer'ı kapat
    }
    
    void kontrol() {
        if (KONTAK == 0) {
            BUZZER = 1; // Kontak low olduğunda buzzer'ı çalıştır
        } else {
            BUZZER = 0; // Kontak yüksekse buzzer'ı kapat
        }
        
        // Kontak low olduğunda şifre kontrolü yapılır
        if (KONTAK == 0 && sifre == DOGRU_SIFRE) {
            ALARM_LED = 0; // Alarm pasif
            BUZZER = 0;    // Buzzer kapalı
            ROLE = 0;      // Röle kapalı
        }
        
        // Şifre yanlışsa röle aktif edilir
        if (sifre != DOGRU_SIFRE) {
            ROLE = 1;  // Röleyi aktif et (Alarm tetikleniyor)
        }
    }
    
    

     

    hocam pic basic pro ile yaptırabilir misin söylemeyi unutmuşum

     

    bu kodu alıp "pic basic pro" ya göre düzenlemesini istesen chatgpt'den.

    çünkü ücretsiz.


    If my calculations are correct, when this baby hits eighty-eight miles per hour... you"re gonna see some serious shit.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    34sileli
    34sileli's avatar
    Kayıt Tarihi: 26/Haziran/2015
    Erkek
    NoktaliVirgul bunu yazdı
    34sileli bunu yazdı
    Shakespeare bunu yazdı

    hocam chatgpt.com zaten ücretsiz. yazdıklarını direkt kopyalayıp yazdığımda aşağıdaki çıktıyı verdi.

    // Pin Tanımlamaları
    #define SHIFRE_PIN1   PORTBbits.RB0  // Şifre 1. hane
    #define SHIFRE_PIN2   PORTBbits.RB1  // Şifre 2. hane
    #define SHIFRE_PIN3   PORTBbits.RB2  // Şifre 3. hane
    #define SHIFRE_PIN4   PORTBbits.RB3  // Şifre 4. hane
    #define BUZZER        PORTAbits.RA3  // Buzzer çıkışı
    #define ALARM_LED     PORTAbits.RA2  // Alarm aktif LED çıkışı
    #define KONTAK        PORTAbits.RA0  // Kontak girişi
    #define ROLE           PORTBbits.RB7  // Röle çıkışı
    
    // Sabitler
    #define DOGRU_SIFRE   1234  // Örnek doğru şifre
    
    // Değişkenler
    int sifre = 0;  // Girilen şifre
    int alarmDurumu = 0; // 0 -> Pasif, 1 -> Aktif
    
    void setup() {
        // Portları giriş ve çıkış olarak ayarla
        TRISA = 0b00000001;  // RA0 (KONTAK) giriş, diğer RA pinleri çıkış
        TRISB = 0b00001111;  // RB0-RB3 (Şifre haneleri) giriş, RB7 (Röle) çıkış
        TRISC = 0;            // Diğer portlar çıkış
    }
    
    void loop() {
        // Şifre girişi yapılırken her bir pin okunur
        sifre = 0;
        sifre = sifre * 10 + (SHIFRE_PIN1 ? 1 : 0);
        buzzerCal(); delay(100);
        sifre = sifre * 10 + (SHIFRE_PIN2 ? 1 : 0);
        buzzerCal(); delay(100);
        sifre = sifre * 10 + (SHIFRE_PIN3 ? 1 : 0);
        buzzerCal(); delay(100);
        sifre = sifre * 10 + (SHIFRE_PIN4 ? 1 : 0);
        buzzerCal(); delay(100);
        
        // Alarm pasifken doğru şifre girildiğinde işlem
        if (alarmDurumu == 0 && sifre == DOGRU_SIFRE) {
            BUZZER = 1;  // Buzzer'ı çalıştır
            delay(5000);  // 5 saniye bekle
            ALARM_LED = 1; // Alarm aktif LED'ini yak
            alarmDurumu = 1;  // Alarm aktif
            kontrol();  // Kontak kontrolünü başlat
        }
        
        // Alarm aktifken doğru şifre girildiğinde işlem
        if (alarmDurumu == 1 && sifre == DOGRU_SIFRE) {
            for (int i = 0; i < 3; i++) {
                BUZZER = 1; // Buzzer'ı çalıştır
                delay(300);  // 300ms süreyle çalıştır
                BUZZER = 0;
                delay(300);
            }
            ALARM_LED = 0;  // Alarm LED'ini kapat
            alarmDurumu = 0; // Alarm pasif hale gelir
        }
        
        // Alarm aktifken kontak kontrolü
        if (alarmDurumu == 1) {
            kontrol();  // Kontak durumu kontrol et
        }
    }
    
    void buzzerCal() {
        BUZZER = 1;  // Buzzer'ı çalıştır
        delay(200);  // 200ms süreyle çalıştır
        BUZZER = 0;  // Buzzer'ı kapat
    }
    
    void kontrol() {
        if (KONTAK == 0) {
            BUZZER = 1; // Kontak low olduğunda buzzer'ı çalıştır
        } else {
            BUZZER = 0; // Kontak yüksekse buzzer'ı kapat
        }
        
        // Kontak low olduğunda şifre kontrolü yapılır
        if (KONTAK == 0 && sifre == DOGRU_SIFRE) {
            ALARM_LED = 0; // Alarm pasif
            BUZZER = 0;    // Buzzer kapalı
            ROLE = 0;      // Röle kapalı
        }
        
        // Şifre yanlışsa röle aktif edilir
        if (sifre != DOGRU_SIFRE) {
            ROLE = 1;  // Röleyi aktif et (Alarm tetikleniyor)
        }
    }
    
    

     

    hocam pic basic pro ile yaptırabilir misin söylemeyi unutmuşum

     

    bu kodu alıp "pic basic pro" ya göre düzenlemesini istesen chatgpt'den.

    çünkü ücretsiz.

    yok hocam düzenleyemiyor, denediğimde hata veriyor

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Muhalif Yorumcu
    SeRDaR
    SeRDaR's avatar
    Kayıt Tarihi: 09/Kasım/2003
    Erkek

    bu chatgpt ye bir kod veriyorsun şuna şunu ekle gibisinden ekliyor ama verdiğin kodda ki başka bir işlevi yok ediyor.  sil baştan tekrardan anlatmak zorunda kalıyorsun içerik bütünlüğünü bozmadan herhangi bir şey eksiltmeden desen bile mutlaka bir şeyleri ya siliyor ya eksiltiyor öyle veriyor 


    Siklediğin Kadar Siklenirsin. Siklendiğin kadar Siklersin.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Shakespeare
    Shakespeare's avatar
    Kayıt Tarihi: 02/Haziran/2024
    Erkek

    al hocam, pic basic proya göre yeniden oluştur dedim:

    ' Pin Tanımlamaları
    DEFINE SHIFRE_PIN1  PINB.0  ' Şifre 1. hane
    DEFINE SHIFRE_PIN2  PINB.1  ' Şifre 2. hane
    DEFINE SHIFRE_PIN3  PINB.2  ' Şifre 3. hane
    DEFINE SHIFRE_PIN4  PINB.3  ' Şifre 4. hane
    DEFINE BUZZER       PINA.3  ' Buzzer çıkışı
    DEFINE ALARM_LED    PINA.2  ' Alarm aktif LED çıkışı
    DEFINE KONTAK       PINA.0  ' Kontak girişi
    DEFINE ROLE         PINB.7  ' Röle çıkışı
    
    ' Sabitler
    DOGRU_SIFRE   VAR  WORD    ' Doğru şifre
    DOGRU_SIFRE = 1234         ' Örnek doğru şifre
    
    ' Değişkenler
    sifre          VAR WORD    ' Girilen şifre
    alarmDurumu    VAR BIT     ' Alarm durumu (0: Pasif, 1: Aktif)
    
    ' Başlangıç Ayarları
    TRISA = %00000001   ' RA0 (KONTAK) giriş, diğer RA pinleri çıkış
    TRISB = %00001111   ' RB0-RB3 (Şifre haneleri) giriş, RB7 (Röle) çıkış
    TRISC = 0           ' Diğer portlar çıkış
    
    ' Ana Program Döngüsü
    DO
        sifre = 0        ' Şifreyi sıfırla
        sifre = sifre * 10 + SHIFRE_PIN1
        buzzerCal
        PAUSE 100        ' 100ms bekle
    
        sifre = sifre * 10 + SHIFRE_PIN2
        buzzerCal
        PAUSE 100        ' 100ms bekle
    
        sifre = sifre * 10 + SHIFRE_PIN3
        buzzerCal
        PAUSE 100        ' 100ms bekle
    
        sifre = sifre * 10 + SHIFRE_PIN4
        buzzerCal
        PAUSE 100        ' 100ms bekle
    
        ' Alarm pasifken doğru şifre girildiğinde işlem
        IF alarmDurumu = 0 AND sifre = DOGRU_SIFRE THEN
            BUZZER = 1   ' Buzzer'ı çalıştır
            PAUSE 5000   ' 5 saniye bekle
            ALARM_LED = 1 ' Alarm aktif LED'ini yak
            alarmDurumu = 1 ' Alarm aktif
            kontrol      ' Kontak kontrolünü başlat
        END IF
    
        ' Alarm aktifken doğru şifre girildiğinde işlem
        IF alarmDurumu = 1 AND sifre = DOGRU_SIFRE THEN
            FOR i = 1 TO 3
                BUZZER = 1   ' Buzzer'ı çalıştır
                PAUSE 300    ' 300ms süreyle çalıştır
                BUZZER = 0   ' Buzzer'ı kapat
                PAUSE 300    ' 300ms bekle
            NEXT i
            ALARM_LED = 0  ' Alarm LED'ini kapat
            alarmDurumu = 0 ' Alarm pasif hale gelir
        END IF
    
        ' Alarm aktifken kontak kontrolü
        IF alarmDurumu = 1 THEN
            kontrol  ' Kontak durumu kontrol et
        END IF
    
    LOOP
    
    ' Buzzer'ı çalıştıran fonksiyon
    buzzerCal:
        BUZZER = 1   ' Buzzer'ı çalıştır
        PAUSE 200    ' 200ms süreyle çalıştır
        BUZZER = 0   ' Buzzer'ı kapat
        RETURN
    
    ' Kontak durumu ve şifre kontrolü
    kontrol:
        IF KONTAK = 0 THEN
            BUZZER = 1   ' Kontak low olduğunda buzzer'ı çalıştır
        ELSE
            BUZZER = 0   ' Kontak yüksekse buzzer'ı kapat
        END IF
    
        ' Kontak low olduğunda şifre kontrolü yapılır
        IF KONTAK = 0 AND sifre = DOGRU_SIFRE THEN
            ALARM_LED = 0  ' Alarm pasif
            BUZZER = 0     ' Buzzer kapalı
            ROLE = 0       ' Röle kapalı
        END IF
    
        ' Şifre yanlışsa röle aktif edilir
        IF sifre <> DOGRU_SIFRE THEN
            ROLE = 1   ' Röleyi aktif et (Alarm tetikleniyor)
        END IF
        RETURN
    

     

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Shakespeare
    Shakespeare's avatar
    Kayıt Tarihi: 02/Haziran/2024
    Erkek
    SeRDaR bunu yazdı

    bu chatgpt ye bir kod veriyorsun şuna şunu ekle gibisinden ekliyor ama verdiğin kodda ki başka bir işlevi yok ediyor.  sil baştan tekrardan anlatmak zorunda kalıyorsun içerik bütünlüğünü bozmadan herhangi bir şey eksiltmeden desen bile mutlaka bir şeyleri ya siliyor ya eksiltiyor öyle veriyor 

    hocam bana göre uzun bir süre kullandım chatgpt'yi. öğrendiğim en önemli şey, tüm  kodu tek seferde değil parça parça yazdırmak. mesela taslağı oluşturduktan sonra, işlevleri adım adım ayrıca sorup, bi önceki işlemle bağlantı yapmasını ve buna göre çıktı vermesini istiyorum. yakın zamanda bu sistemle 2 tane script yazdım çalıştığım firmaya.

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    PsychoDawn
    PsychoDawn's avatar
    Kayıt Tarihi: 01/Nisan/2007
    Erkek
    ' PIC16F877A mikrodenetleyicisi için alarm sistemi programı
    ' Şifre hane girişleri PORTB.0, PORTB.1, PORTB.2, PORTB.3
    ' Buzzer PORTA.3
    ' Alarm aktif LED'i PORTA.2
    ' Kontak PORTA.0
    ' Röle PORTB.7
    
    ' Oscilatör frekansı tanımı (4 MHz varsayılmıştır)
    DEFINE OSC 4
    
    ' Gerekli kütüphanelerin eklenmesi
    INCLUDE "modedefs.bas"
    
    ' Değişken tanımlamaları
    alarm_aktif VAR BIT         ' Alarm durumu (aktif/pasif)
    kontak_durumu VAR BIT       ' Kontak girişi durumu
    sifre[4] VAR BYTE           ' Doğru şifre dizisi
    girilen_sifre[4] VAR BYTE   ' Girilen şifre dizisi
    hane_index VAR BYTE         ' Şifre hane indeksi
    gecici_hane VAR BYTE        ' Geçici hane değeri
    buzzer_sayac VAR BYTE       ' Buzzer ötüş sayacı
    sifre_dogru VAR BIT         ' Şifre kontrol sonucu
    
    ' Port yönlerinin ayarlanması
    TRISA = %00000001  ' RA0 giriş (kontak), RA1-RA5 çıkış
    TRISB = %00001111  ' RB0-RB3 giriş (şifre), RB4-RB7 çıkış
    
    ' Başlangıç değerlerinin atanması
    sifre[0] = 1
    sifre[1] = 2
    sifre[2] = 3
    sifre[3] = 4
    
    alarm_aktif = 0       ' Alarm başlangıçta pasif
    hane_index = 0        ' Şifre hane indeksi başlangıç
    
    ' Ana döngü
    Ana_Dongu:
        IF alarm_aktif = 0 THEN
            ' Alarm pasifken doğru şifre girilirse
            GOSUB Sifre_Gir
            GOSUB Sifre_Kontrol
            IF sifre_dogru = 1 THEN
                HIGH PORTA.3      ' Buzzer aktif
                PAUSE 5000        ' 5 saniye bekle
                LOW PORTA.3       ' Buzzer pasif
                alarm_aktif = 1   ' Alarmı aktif et
                HIGH PORTA.2      ' Alarm aktif LED'i yak
            ENDIF
        ELSE
            ' Alarm aktifken
            kontak_durumu = PORTA.0
            IF kontak_durumu = 0 THEN
                ' Kontak LOW ise
                HIGH PORTA.3      ' Buzzer aktif
                GOSUB Sifre_Gir
                GOSUB Sifre_Kontrol
                IF sifre_dogru = 1 THEN
                    LOW PORTA.3       ' Buzzer pasif
                    alarm_aktif = 0   ' Alarmı pasif et
                    LOW PORTA.2       ' Alarm LED'i söndür
                ELSE
                    HIGH PORTB.7      ' Röleyi aktif et
                ENDIF
            ELSE
                ' Kontak HIGH ise
                GOSUB Sifre_Gir
                GOSUB Sifre_Kontrol
                IF sifre_dogru = 1 THEN
                    FOR buzzer_sayac = 1 TO 3
                        HIGH PORTA.3
                        PAUSE 200
                        LOW PORTA.3
                        PAUSE 200
                    NEXT buzzer_sayac
                    alarm_aktif = 0   ' Alarmı pasif et
                    LOW PORTA.2       ' Alarm LED'i söndür
                ENDIF
            ENDIF
        ENDIF
        GOTO Ana_Dongu
    
    ' Şifre giriş alt programı
    Sifre_Gir:
        hane_index = 0
        WHILE hane_index < 4
            ' Hane girişini oku
            gecici_hane = PORTB & %00001111
            ' Hane girilene kadar bekle
            WHILE (PORTB & %00001111) = gecici_hane
            WEND
            ' Yeni hane değerini al
            gecici_hane = PORTB & %00001111
            girilen_sifre[hane_index] = gecici_hane
            ' Buzzer 1 kez ötsün
            HIGH PORTA.3
            PAUSE 100
            LOW PORTA.3
            PAUSE 100
            hane_index = hane_index + 1
            ' Tuş bırakılana kadar bekle
            WHILE (PORTB & %00001111) <> 0
            WEND
        WEND
        RETURN
    
    ' Şifre kontrol alt programı
    Sifre_Kontrol:
        sifre_dogru = 1
        FOR hane_index = 0 TO 3
            IF girilen_sifre[hane_index] <> sifre[hane_index] THEN
                sifre_dogru = 0
                EXIT
            ENDIF
        NEXT hane_index
        RETURN
    

     

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ar0fer
    Ar0fer's avatar
    Kayıt Tarihi: 03/Mayıs/2011
    Erkek

    Kodu detaylı açıklayayım:

    1. İlk olarak, değişkenlerimizi ve port yönlerimizi tanımladık:
      • PORTA.3: Buzzer çıkışı
      • PORTA.2: Alarm LED çıkışı
      • PORTA.0: Kontak girişi
      • PORTB.7: Röle çıkışı
      • PORTB.0-3: Şifre girişleri
    2. Program özellikleri:
      • Her tuş girişinde buzzer kısa bir bip sesi çıkarır
      • Alarm pasifken doğru şifre girilirse:
        • Buzzer 5 saniye boyunca çalar
        • Ardından alarm aktif moda geçer
      • Alarm aktifken doğru şifre girilirse:
        • Buzzer 3 kere öter
        • Alarm pasif moda geçer
      • Alarm aktifken kontak kontrolü sürekli yapılır:
        • Kontak low olursa buzzer çalar
        • Bu durumda doğru şifre girilirse alarm ve buzzer kapanır
        • Yanlış şifre girilirse röle aktif olur
    3. Şifre kontrol mekanizması:
      • Her hane girişi beklenir ve kaydedilir
      • Girilen değerler kayıtlı şifre ile karşılaştırılır
      • Sonuç STATUS register'ının Z biti ile döndürülür
    4. Gecikme rutinleri:
      • 100ms, 500ms ve 5sn için ayrı gecikme rutinleri
      • İç içe döngüler kullanılarak zaman ayarı yapılır

    ; Değişkenler için RAM alanı
    cblock 0x20
    sifre1
    sifre2
    sifre3
    sifre4
    giris1
    giris2
    giris3
    giris4
    sayac
    durum ; 0:pasif, 1:aktif
    gecikme1
    gecikme2
    endc

    org 0x00
    goto BASLA

    BASLA
    ; Port ayarları
    banksel TRISA
    movlw b'11110100' ; RA3(buzzer), RA2(led), RA0(kontak) çıkış
    movwf TRISA
    movlw b'00001111' ; RB7(röle) çıkış, RB0-3 giriş
    movwf TRISB

    banksel PORTA
    clrf PORTA
    clrf PORTB

    ; Şifre tanımlama (örnek: 1234)
    movlw d'1'
    movwf sifre1
    movlw d'2'
    movwf sifre2
    movlw d'3'
    movwf sifre3
    movlw d'4'
    movwf sifre4

    clrf durum ; Başlangıçta alarm pasif

    ANA_DONGU
    ; Kontak kontrolü
    btfss durum, 0 ; Alarm aktif mi?
    goto PASIF_MOD

    btfss PORTA, 0 ; Kontak low mu?
    goto KONTAK_ALARM

    goto AKTIF_MOD

    KONTAK_ALARM
    bsf PORTA, 3 ; Buzzer high
    call SIFRE_AL
    btfsc STATUS, Z ; Şifre doğru mu?
    goto ALARM_PASIF
    bsf PORTB, 7 ; Yanlış şifreyse röle high
    goto ANA_DONGU

    PASIF_MOD
    call SIFRE_AL
    btfss STATUS, Z ; Şifre doğru mu?
    goto ANA_DONGU

    ; Doğru şifre girildi
    bsf PORTA, 3 ; Buzzer high
    call GECIKME_5SN
    bcf PORTA, 3 ; Buzzer low
    bsf durum, 0 ; Alarm aktif
    goto ANA_DONGU

    AKTIF_MOD
    call SIFRE_AL
    btfss STATUS, Z ; Şifre doğru mu?
    goto ANA_DONGU

    ; Doğru şifre - 3 kez buzzer
    movlw d'3'
    movwf sayac
    BUZZER_LOOP
    bsf PORTA, 3
    call GECIKME_500MS
    bcf PORTA, 3
    call GECIKME_500MS
    decfsz sayac, f
    goto BUZZER_LOOP

    ALARM_PASIF
    bcf durum, 0 ; Alarm pasif
    bcf PORTA, 3 ; Buzzer low
    bcf PORTB, 7 ; Röle low
    goto ANA_DONGU

    SIFRE_AL
    ; İlk hane
    call TARA_RB0_3
    movwf giris1
    bsf PORTA, 3 ; Buzzer bip
    call GECIKME_100MS
    bcf PORTA, 3
    call GECIKME_100MS

    ; İkinci hane
    call TARA_RB0_3
    movwf giris2
    bsf PORTA, 3 ; Buzzer bip
    call GECIKME_100MS
    bcf PORTA, 3
    call GECIKME_100MS

    ; Üçüncü hane
    call TARA_RB0_3
    movwf giris3
    bsf PORTA, 3 ; Buzzer bip
    call GECIKME_100MS
    bcf PORTA, 3
    call GECIKME_100MS

    ; Dördüncü hane
    call TARA_RB0_3
    movwf giris4
    bsf PORTA, 3 ; Buzzer bip
    call GECIKME_100MS
    bcf PORTA, 3

    ; Şifre kontrolü
    movf giris1, w
    subwf sifre1, w
    btfss STATUS, Z
    retlw 0

    movf giris2, w
    subwf sifre2, w
    btfss STATUS, Z
    retlw 0

    movf giris3, w
    subwf sifre3, w
    btfss STATUS, Z
    retlw 0

    movf giris4, w
    subwf sifre4, w
    btfss STATUS, Z
    retlw 0

    retlw 1 ; Şifre doğru

    TARA_RB0_3
    btfsc PORTB, 0
    retlw 1
    btfsc PORTB, 1
    retlw 2
    btfsc PORTB, 2
    retlw 3
    btfsc PORTB, 3
    retlw 4
    goto TARA_RB0_3

    GECIKME_5SN
    movlw d'50'
    movwf gecikme2
    LOOP_5SN
    call GECIKME_100MS
    decfsz gecikme2, f
    goto LOOP_5SN
    return

    GECIKME_500MS
    movlw d'5'
    movwf gecikme2
    LOOP_500MS
    call GECIKME_100MS
    decfsz gecikme2, f
    goto LOOP_500MS
    return

    GECIKME_100MS
    movlw d'100'
    movwf gecikme1
    LOOP_100MS
    nop
    nop
    decfsz gecikme1, f
    goto LOOP_100MS
    return

    end

Toplam Hit: 851 Toplam Mesaj: 10
program yapayzeka chatgpt