Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

Devre Şeması Doğruluğu

Başlatan phil, 25 Nisan 2014, 09:42:34

phil

Arkadaşlar merhaba.

Çok mühim bir projem için sizden yardım istiyorum. Şimdiden teşekkür ederim.

Pic16f877 ve ds1621 ile termometre yapacağım, sıcaklık belli bir değerin üzerine çıktığında led yanacak, sonrada o ledin olduğu kısmı pervana vs bağlayacağım. Şimdilik çalıştığını görmek için takılı.

Simülasyonda pic'i programladım, kodu derledim ve pic'e attım. Simülasyonda çalıştı. Program tamam.

Ancak devre şemasından emin değilim.

Sizden ricam, dikkatli biçimde inceleyip bana doğru/yanlış kısımları söyler misiniz, baskı devre aşamasındayım.

Simülasyonda (proteus) bazı kısımlar gösterilmiyor ya, osilatör, artı-eksi vs. Bir kontrol etmenizi rica ediyorum. En gerçek ve baskı devreye geçilecek haliyle çizdim.


Salih

Şemanı proteus da çizersen daha iyi olur.
Hata takibi kolaylaşır. Pcb çizerken de proteus sana kolaylık sağlar.

phil

Hocam proteusta bazı uçlar gözükmüyor. Örneğin sensörün kısa devre edilip topraklanan bacakları, besleme uçları vs. Ayrıca proteusta çizdiğim devrenin baskı devre halini almayı bilmiyorum aresle. Ben her uç belli olsun, eksik veya olmayan bir şey olmasın diye bu şekilde çizdim.

Hata var mı sizce, veya eksik/yanlış dediğiniz bir yer?

Salih

#3
LCD şöyle bağlarsan daha kolay olur.
Başka hata göremedim.


kimlenbu

1) LCD'ye bağlı 2 tane 330ohm var, backlight için tek uca bağlaman yeter.
2) D0,D1,D2,D3'ü kullanmayacaksan toprağa çek
3) fan sürmek için sink/source kullanımını değiştirmen gerekebilir http://generichid.sourceforge.net/ledsourcesink.png

onun dışında standart gibi duruyor.

phil

1: tamam hocam, 15'e 100 ohm bağlayıp 5v vereyim.

2: lcd'nin 7. ucundan 14. ucuna kadar olan tüm uçlar pic'e gidiyor. kullanmış olmuyor muyum? yani topraklayacak mıyım yine de?

3: gösterdiğiniz sistemi biraz daha açıklayabilir misin zahmet olmazsa?

kimlenbu

1) Ben 5V'da 330ohm tercih ediyorum.

2) LCD'deki 7-8-9-10. bacaklarara da ground bağlayın demek istemiştim :)

3) Kullandığın microcontroller'ın çıkışlarının sink ve source akımlarının maksimum değerleri bellidir. Kullangığın PIC'te sanırım birisi daha yüksekti, fan vs kontrol etmek için çıkış katı tasarlaman gerektiğinde dikkate alman gerekecek bunları.

Salih

Alıntı yapılan: phil - 25 Nisan 2014, 16:36:36
1: tamam hocam, 15'e 100 ohm bağlayıp 5v vereyim.

2: lcd'nin 7. ucundan 14. ucuna kadar olan tüm uçlar pic'e gidiyor. kullanmış olmuyor muyum? yani topraklayacak mıyım yine de?

3: gösterdiğiniz sistemi biraz daha açıklayabilir misin zahmet olmazsa?

LCD'nin 8 data ucunun tamamı da kullanılabilir.
Fakat 4 uc yeterli olduğu için genellikle 4 uç kullanılır.
Sende 4 uç kullan diye öyle şema verdim.

Mr.Java

Değer set ediğidiğinde, röle çalıştırılarak istenilen voltajda fan çalıştırılabilir.

phil

devreyi borda kurdum ve çalışmadı.

sadece lcd'nin ışığı yanıyor. çok moralim bozuldu. aklına sebep gelen var mı?

Salih

Alıntı yapılan: phil - 26 Nisan 2014, 18:34:14
devreyi borda kurdum ve çalışmadı.

sadece lcd'nin ışığı yanıyor. çok moralim bozuldu. aklına sebep gelen var mı?

Programı da verirsen yorum yapabiliriz.

Kabil ATICI

kurduğun devrede hata var,
işlemciyi programlayamadın,
program işlemciye göre değil,
sigorta ayarlarını yapamadın,
trimpotu ayarlamadın,
işlemci bozuk,
ekran bozuk,
regülatör devren bozuk,
besleme yetersiz.

Devreye basit bir led yak söndür programı yükle ve işlemcinin çalıştığından emin ol.
ambar7

bahacan07

Genç arkadaşım kolay gelsin,öğrenmek için en iyi yol denemektir.Ancak Amerikayı yeniden keşfetmek gereksiz.Bak aynı konuda sayın ETE hocamızın özenle hazırladığı yazılımıyla beraber sunduğu çok benzer
devreler var .Röle yardımıyla istediğini de yaptırabilirsin hepsi hazır.Onu çizemezsen yardımcı oluruz yazılımıda gayet başarılı çalışıyor...Saygılarla... 

phil

Programım:

   LIST P=16f877
   include P16F877.INC
   
   #define SDA   PORTC,4
   #define SCL     PORTC,3
   #define   DATA   0x2C

CBLOCK   20h
   SAYAC1,SAYAC2,OLCUM1H,OLCUM1L,DEGER,SAYAC,TERM
ENDC
   
        ORG     0x0000
   GOTO   KURULUM

TABLO
   ADDWF   PCL,F
   DT 00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19
   DT 20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39
   DT 40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59
   DT 60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79
   DT 80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99
   DT 00,01,02,03,04,05,06,07,08,09

KURULUM
   movlw   0x0f
        movwf   PORTD
        bsf     STATUS,RP0
        clrf    TRISC
        clrf    TRISD
   CLRF   TRISA
   CLRF   TRISB
   CLRF   TRISE

   movlw    b'10001111'
   movwf    ADCON1
        bcf     STATUS,RP0

   CALL   KUR000

   CALL   LCDKURULUM
   CALL   SCYAZ
   CALL   GECIKME

;*****************************
BASLA
   MOVLW   H'C0'
   CALL   KOMUTYAZ

   CALL   OKU000

   CALL   TERMOSTAT
   CALL   GOSTER
   CALL   C0YAZ



   CALL   GECIKME
   GOTO   BASLA

;*****************************

TERMOSTAT
   BTFSS   OLCUM1H,7
   GOTO   ARTI1
   BCF   PORTC,0       ;eksili bir değer olduğundan ledi söndür
   RETURN
ARTI1   

   MOVF   OLCUM1H,W
   MOVWF   TERM
   BTFSS   OLCUM1L,7     ;0,5 ONDALIK var mı?
   GOTO   TAMAM1
   MOVLW   H'01'         ;varsa değeri bir artiriyoruz
   ADDWF   TERM,F
TAMAM1   MOVF   TERM,W   
   SUBLW   D'21'         ;21 ile karsilastiriyoruz
   BTFSS   STATUS,C
   GOTO   UST
ALT
   BCF   PORTC,0      ;LEDi yak
   RETURN
UST
   BSF   PORTC,0      ;Ledi söndür
   RETURN



C0YAZ
   MOVLW   A' '
   CALL   VERIYAZ
   MOVLW   A'D'
   CALL   VERIYAZ
   MOVLW   A'e'
   CALL   VERIYAZ
   MOVLW   A'r'
   CALL   VERIYAZ
   MOVLW   A'e'
   CALL   VERIYAZ
   MOVLW   A'c'
   CALL   VERIYAZ
   MOVLW   A'e'
   CALL   VERIYAZ
   MOVLW   A':'
   CALL   VERIYAZ
   RETURN

SCYAZ
   MOVLW   H'80'
   CALL   KOMUTYAZ
   MOVLW   A'S'
   CALL   VERIYAZ
   MOVLW   A'I'
   CALL   VERIYAZ
   MOVLW   A'C'
   CALL   VERIYAZ
   MOVLW   A'A'
   CALL   VERIYAZ
   MOVLW   A'K'
   CALL   VERIYAZ
   MOVLW   A'L'
   CALL   VERIYAZ
   MOVLW   A'I'
   CALL   VERIYAZ
   MOVLW   A'K'
   CALL   VERIYAZ
   MOVLW   A':'
   CALL   VERIYAZ
   RETURN

GOSTER
   BTFSS   OLCUM1H,7
   GOTO   ARTI
EKSI   MOVLW   A'-'
   CALL   VERIYAZ
   COMF   OLCUM1H,W
   ADDLW   .1
   GOTO   TAMAM
ARTI   MOVLW   A'+'
   CALL   VERIYAZ


   MOVF   OLCUM1H,W
TAMAM   CALL   TABLO
   MOVWF   OLCUM1H
   SWAPF   OLCUM1H,W
   ANDLW   H'0F'
   ADDLW   H'30'
   CALL   VERIYAZ
   MOVF   OLCUM1H,W
   ANDLW   H'0F'
   ADDLW   H'30'
   CALL   VERIYAZ
   MOVLW   A'.'
   CALL   VERIYAZ
   BTFSS   OLCUM1L,7
   GOTO   SIFIR
BES   MOVLW   A'5'
   CALL   VERIYAZ
   RETURN
SIFIR   MOVLW   A'0'
   CALL   VERIYAZ
   RETURN

LCDKURULUM
   BSF   PORTE,0
   BSF   PORTE,1
   MOVLW   H'0F'
   CALL   KOMUTYAZ
   MOVLW   H'01'
   CALL   KOMUTYAZ
   MOVLW   H'0C'
   CALL   KOMUTYAZ
   MOVLW   H'38'
   CALL   KOMUTYAZ
   RETURN

KOMUTYAZ
   BCF   PORTE,1   
   MOVWF   PORTB
   BCF   PORTE,0
   CALL   TIMER1
   BSF   PORTE,0
   RETURN
VERIYAZ
   BSF   PORTE,1
   MOVWF   PORTB
   BCF   PORTE,0
   CALL   TIMER1
   BSF   PORTE,0
   RETURN

KUR000
   CALL   SGONDER
   MOVLW   B'10010000'
   CALL   GONDER
   MOVLW   B'00100010'
   CALL   GONDER
   CALL   PGONDER
   CALL   SGONDER
   MOVLW   B'10010000'
   CALL   GONDER
   MOVLW   B'10101100'
   CALL   GONDER
   MOVLW   B'10011001'
   CALL   GONDER
   CALL   PGONDER
   CALL   SGONDER
   MOVLW   B'10010000'
   CALL   GONDER
   MOVLW   B'11101110'
   CALL   GONDER
   CALL   PGONDER
   RETURN

OKU000
   CALL   SGONDER
   MOVLW   B'10010000'
   CALL   GONDER
   MOVLW   B'10101100'
   CALL   GONDER
   CALL   SGONDER
   MOVLW   B'10010001'
   CALL   GONDER
   CALL   OKU
   CALL   NGONDER
   CALL   PGONDER
   CALL   SGONDER
   MOVLW   B'10010000'
   CALL   GONDER
   MOVLW   B'10101010'
   CALL   GONDER
   CALL   SGONDER
   MOVLW   B'10010001'
   CALL   GONDER
   CALL   OKU
   MOVF   DEGER,W
   MOVWF   OLCUM1H
   CALL   AGONDER
   CALL   OKU
   MOVF   DEGER,W
   MOVWF   OLCUM1L
   CALL   NGONDER
   CALL   PGONDER
   CALL   SGONDER
   MOVLW   B'10010000'
   CALL   GONDER
   MOVLW   B'11101110'
   CALL   GONDER
   CALL   PGONDER
   RETURN   

AGONDER
     BSF     STATUS    , RP0
            BCF     STATUS    , RP1
            BCF     PORTC      , 04
            BCF     STATUS    , RP0
            BCF     PORTC      , 04
            BSF     PORTC      , 03
            BCF     PORTC      , 03
            BSF     STATUS    , RP0
            BSF     PORTC      , 04
            BCF     STATUS    , RP0
            RETURN

PGONDER     BSF     STATUS    , RP0
            BCF     STATUS    , RP1
            BCF     PORTC      , 04
            BCF     STATUS    , RP0
            BCF     PORTC      , 04
            BSF     PORTC      , 03
            BSF     STATUS    , RP0
            BSF     PORTC      , 04
            BCF     STATUS    , RP0
            BSF     PORTC      , 03
            BCF     STATUS    , RP0
            RETURN

SGONDER
   BCF     STATUS    , RP0
        BCF     STATUS    , RP1
        BSF     PORTC      , 03
        BSF     STATUS    , RP0
        BSF     PORTC      , 04
        BCF     PORTC      , 04
        BCF     STATUS    , RP0
        BCF     PORTC      , 04
        BCF     PORTC      , 03
        BCF     STATUS    , RP0
            RETURN

NGONDER
   BSF     STATUS    , RP0
   BCF     STATUS    , RP1
   BSF     PORTC      , 04
   BCF     STATUS    , RP0
        BSF     PORTC      , 03
        BCF     PORTC      , 03
        BCF     STATUS    , RP0
        RETURN

OKU
   BCF     STATUS    , RP0
        BCF     STATUS    , RP1
        CLRF    DEGER
        BCF     PORTC      , 03
        BSF     STATUS    , RP0
        BSF     PORTC      , 04
        BCF     STATUS    , RP0
        BSF     PORTC      , 03
   BCF   STATUS,0
   MOVLW   B'10000000'
   MOVWF   SAYAC
DEVAM
        BTFSS   PORTC      , 04
        GOTO    SIFIR0
        MOVF    SAYAC,W
        ADDWF   DEGER,F
SIFIR0   BCF     STATUS    , RP0
   BCF     STATUS    , RP1
        BCF     PORTC      , 03
   BTFSS   SAYAC,0
        BSF     PORTC      , 03
   RRF   SAYAC,F
   BTFSS   STATUS,0
   GOTO   DEVAM
        MOVF    DEGER      , W
   BCF     STATUS    , RP1
        BCF     STATUS    , RP0
        ;BCF     PORTC      , 03
   RETURN

GONDER
        MOVWF   DATA
        BCF     STATUS    , RP1
   BCF     STATUS    , RP0
   MOVLW   .8
   MOVWF   SAYAC
GTEKRAR
        BCF     PORTC      , 03
   BTFSC   DATA      , 7
        GOTO    YEDI11
   BSF     STATUS    , RP0
        BCF     PORTC      , 04
        BCF     STATUS    , RP0
        BCF     PORTC      , 04
        GOTO    $+3
YEDI11   BSF     STATUS    , RP0
        BSF     PORTC      , 04
   BCF     STATUS    , RP0
        BSF     PORTC      , 03
   RLF   DATA,F
   DECFSZ   SAYAC,F
   GOTO   GTEKRAR
        BCF     PORTC      , 03
        BSF     STATUS    , RP0
        BSF     PORTC      , 04
        BCF     STATUS    , RP0
        BSF     PORTC      , 03
        MOVLW   0x00
        BTFSC   PORTC      , 04
        MOVLW   0x01
        SUBLW   0x01
        MOVWF   DEGER
        BCF     PORTC      , 03
        MOVF    DEGER      , W
   BCF     STATUS    , RP1
        BCF     STATUS    , RP0
        RETURN


GECIKME
   MOVLW   H'2F'
   MOVWF   SAYAC1
GECIKME1
   MOVLW   H'FF'
   MOVWF   SAYAC2
GECIKME2
   DECFSZ   SAYAC2,F
   GOTO   GECIKME2
   DECFSZ   SAYAC1,F
   GOTO   GECIKME1
   RETURN

TIMER1
   MOVLW   H'3F'
   MOVWF   SAYAC1
DONGU1
   MOVLW   H'1F'
   MOVWF   SAYAC2
DONGU2
   DECFSZ   SAYAC2,F
   GOTO   DONGU2
   DECFSZ   SAYAC1,F
   GOTO   DONGU1
   RETURN

        END

------------------------------------------------

Simülasyon hali:

http://i59.tinypic.com/2llem4g.png

------------------------------------

buna göre çizdiğim devre şeması:

http://tinypic.com/view.php?pic=op2uy1&s=8#.U1y-rVfZb9k

(burada lcd-6'dan pic-8'e gidecek, onu yanlış çizmişim.) gerçi iki türlü de bir şey fark etmedi.

---------------------------

kontrollerim neticesinde:

1: Programı attırdım yazıcıoğlunda hocam.
2: Doğru besleme yaptım.
3: Kristal bağlı, kondansatörler 22pf.
4: MCLR direnci 10k. 1'de 5v var.

5: Pic'in besleme uçları hariç (veya doğrudan 5v gelen uçları hariç) hiç bir uçta bir gerilim göremiyorum. Aynı şekilde sensörde de. Aynı şekilde lcdde de.

6: Simülasyonda pic 16f877, ben 16f877A almışım. Aralarında fark yok neredeyse. Bu acaba çalışmamasına yol açar mı?

7: Assembly dilinde kodum. Simülasyonda falan 16f877 ile yaptığımdan koda da LIST P=16f877
include P16F877.INC ile başlamışım. sizce sorun bu da olabilir mi?

Pic mi çalışmıyor acaba. Ama daha yeni ve programı dün attırdım.

------------------

Gerçekten yardımlarınızı bekliyorum arkadaşlar.

phil

Alıntı yapılan: ambar7 - 26 Nisan 2014, 22:06:12
kurduğun devrede hata var,
işlemciyi programlayamadın,
program işlemciye göre değil,
sigorta ayarlarını yapamadın,
trimpotu ayarlamadın,
işlemci bozuk,
ekran bozuk,
regülatör devren bozuk,
besleme yetersiz.

Devreye basit bir led yak söndür programı yükle ve işlemcinin çalıştığından emin ol.
Sigorta ayarları nedir?
İşlemci ve ekranın bozuk olup olmadığını bilmiyorum durumu üstteki postta elimden geldiğince açıklamaya çalıştım.
Regülatör devrem yok ki.