7 segmen tarama yönteminde hafif yanık kalan segmentler

Başlatan mcn, 30 Kasım 2011, 19:41:11

mcn

Herkese iyi akşamlar,

pic den 74164 ile dataları göndererek ve ULN2003 ile de displayleri sürerek 4 tane  7segmente sayıları tarayarak yazdırıyorum.Sayılar normal şekilde yanıyor ancak örneğin 1 sayısı yazaken  b ve c segmentlerinin haricinde kalan segmentler sönük olması gerekirken onlarda da neredeyse %50 oranında parlaklık görünüyor.

önce bc546 kullanmıştım sürmek için anahtarlama hızı yavaş kalıyordur diye düşündüm ULN2003 le sürdüm çok az bir düzelme oldu.Sonra segmentlere giden direnç değerlerini büyüttüm biraz daha düzeldi ama hala bariz şekilde yanıyor gibi diğer yanmaması gereken segmentler.

Yazılımda tarama yaptırırken diğer segmente geçmeden önce komple kapatıp diğerini yaktırıyorum değişen bişey olmuyor.

Bu sorunun çözümü nedir?direnç değerlerini daha çok büyütsem parlaklık azalacak.Ne yapmalı?
Şimdiden teşekkürler.
www.teknikyazi.com --üşenme,erteleme,vazgeçme...

z

Alıntı YapYazılımda tarama yaptırırken diğer segmente geçmeden önce komple kapatıp diğerini yaktırıyorum değişen bişey olmuyor.


Transistörlerin yavaşlığından kaynaklanıyordur.

Aşağudaki yöntemi dene.

Yeni segmentleri yak.
Bekle1
Segmentleri söndür.
Bekle2

Şeklinde yaparsan sorun çıkmaması lazım. Ancak parlaklıkta düşüş yaşayacaksın bunu da akımı artırmak yoluyla aşarsın.
Bekleme değerlerini dene yanıl da bulabilirsin.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Erol YILMAZ

Şu ana kadar belki 10 tane taramalı led display tasarımı yaptım.
Hiçbirisinde yanık kalıyor gibi bi sıkıntı olmadı...

Açıkçası devrenizi merak ediyorum.
Ve tarama frekansınız nedir ?

justice_for_all

Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

pea

Bende de aynı durum oldu.Programa göre ikisi aynı anda açık olmamasına rağmen sönük olması gereken kısımlarda hafif yanıklık var.20KHz civarı bir frekansta açılıp kapanıyor 7segmentler.Sanırım 7segment için çok yüksek bir hız bu.
Benim kod da şöyle bir şey.
;Tablo
_7SEG               ;ortak anot icin tablo
    addwf PCL
    retlw h'C0'     ;0
    retlw h'F9'     ;1
    retlw h'A4'
    retlw h'B0'
    retlw h'99'
    retlw h'92'
    retlw h'83'
    retlw h'F8'
    retlw h'80'
    retlw h'90'     ;9
;Tablo

ONYAK
    bcf PORTA,3
    bsf PORTA,2
    movfw ONLAR  ; ONLAR'i aküye al
    call _7SEG
    movwf PORTB     ; 7 segmentleri yak
    return

BIRYAK
    bcf PORTA,2
    bsf PORTA,3
    movfw BIRLER
    call _7SEG
    movwf PORTB
    return


KESME               ;7 Segmentleri sür
    btfsc IE,0
    call ONYAK
    btfss IE,0
    call BIRYAK
    movlw d'1'      ;IE'i tersle , sonraki interruptta basamak degistir
    xorwf IE,1
    bcf INTCON,2
    retfIe
END

mcn

bunalmıs hocam söylediğiniz yöntemi denedim,hatta sönük kalma kısmını yanık kalma kısmından 5 kat daha uzun yaptım ama gene olmadı malesef.

Devre bağlantı şeklim aynen bu şekilde.MSP430 ile sürüyorum.Ancak bundan önce de picle deneme amaçlı yaptığım bir çalışmada da aynı şekilde sorun yaşamıştım.
ISIS simulasyonunu yapmadım,sadece bağlantıları göstermek için çizdim bunu.

[IMG]http://img15.imageshack.us/img15/1922/adszmnt.jpg[/img]

Uploaded with ImageShack.us

Devremin fotoğrafı da bu:

[IMG]http://img36.imageshack.us/img36/2386/301120111567.jpg[/img]

Uploaded with ImageShack.us
www.teknikyazi.com --üşenme,erteleme,vazgeçme...

Erol YILMAZ

mcn;
74164'e veri gönderirken kesinlikle ULN2003 kapalı olmalı.

pea;
20 kHz çok yüksek bir tarama frekans bence,
ben genellikle 100-200 Hz arası tercih ediyorum...

justice_for_all

bence tarama frekansin cok yuksek oldugu icin hepsini yanik olarak goruyo olabilirsin...
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

pea

Olabilir.
Assembly'de ilk ve büyük olasılıkla son kodumdu.Prescaler'la uğraşmak istememiştim ;D

mcn

@Allegro hocam,dediğiniz gibi yaptım.şu anda o bahsettiğim yanık kalmadan eser kalmadı.Tertemiz.

Ama bu seferde sayılar bozuldu :) yani,en iyi fotoğraf anlatır olayı:

[IMG]http://img840.imageshack.us/img840/2135/301120111568.jpg[/img]

Uploaded with ImageShack.us



tarama algoritmam şu şekilde:
// 0 dan 9999 a kadar sayıyor devre.

while(true){

sayiyi 1 arttır

birleri hesapla
onları hesapla
yüzleri hesapla
binleri hesapla

//burada "i" 74164e gönderilecek sayının dizi içerisindeki hex değerine ulaştırıyor

i=birler basamağı
74164 e verileri gönder
birler basamağı segmentini aktif et
bekle
tüm segmentleri söndür

i=onlar basamağı
74164 e verileri gönder
onlar basamağı segmentini aktif et
bekle
tüm segmentleri söndür

i=yuzler basamağı
74164 e verileri gönder
yuzler basamağı segmentini aktif et
bekle
tüm segmentleri söndür

i=binler basamağı
74164 e verileri gönder
binler basamağı segmentini aktif et
bekle
tüm segmentleri söndür
}

www.teknikyazi.com --üşenme,erteleme,vazgeçme...

Erol YILMAZ


mcn

valla anlamadım hocam bende,eski haline alıyorum sayılar normal gözüküyor,tabi  yanık kalmalarda devam.
www.teknikyazi.com --üşenme,erteleme,vazgeçme...

justice_for_all

#12
o while dongusununun icinde yaptiklarinizi 10 kezde tekrar edin ama sayiyi arttirmadan..10 kez tekrar ettikten sonra sayiyi arttirin..

ayrica display ler ortak anotmu ortak katotmu?
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

Erol YILMAZ


picmanya

74164 e giren seri dveri, çipin paralel çıkış pinlerine nasıl aktarılıyor.
programda 74164 e verileri gönder kısmından sonra, 74164 çipini aktif ve pasif etmek gerekmiyor mu?
programa göre, çipe ne basarsanız anında paralel port pinlerine basılıyor gibi bir durum var.
bu normalmidir?