Atmega 328p digit ekran problemi

Başlatan sessiz_roman, 25 Mart 2019, 00:13:11

sessiz_roman

Arkadaslar hepinize selamlar.
Sorunu kisaca ozetleyeyim.
Atmega 328p ile kendi devre kartimi hazirladim ve bu kartta bir adet 9mm 2digit display bulunmakta. Displayin gnd cikislarinda 220ohm luk direncler var. Her seyi kurallarina gore yaptim ancak displayde duzgun goruntu alamiyorum.

Ornegin displayde 22 yazmasi gerekirken 22 yaziyor ancak uzaktan degilde yakindan bakarsaniz sanki 88 yaniyor gibi gorunuyor. Sayilari olusturan butun cizgiler yanmamasi gerekirken az cok yaniyor hal boyle olunca sanki yakindan bakinca butun cizgiler yaniyirmus gibi geliyor ve ekranda surekli 88 yaziyirmus gibi gorunuyor.

Cozum olarak gnd hatlarinda ki direncin degerini arttirmayi denedim ama yine ayni sorun devam ediyor.

Yardimlariniza ihtiyacim var.

Simdiden tesekkurler

mehmet

Kodlarınızı ve şemanızı da ekleyiniz.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

z

Led displaylerde ortak hat üzerine direnç bağlamanız yanlış. 7 segmentten her birisine direnç bağlamanız gerekir.

Bir diğer konu da işlemcininizi kaç volt ile besliyorsunuz?

Eğer 5v ile besliyorsanız ledlerin 1v 10mA ile beslendiği varsayımıyla (5-1)/10 dan 400 Ohm (390 Ohm)

3.3v ile besliyorsanız (3.3-1)/10=230 Ohm (220 Ohm) kullanmanız gerekir.

Fakat;

Bu hesaplamalar displaylerin her bir segmentinin ayrı port pinlerine bağlandığı varsayımı için geçerli.

Eğer displeylerin segmentlerinin aynı port pinlerine bağladıysanız yani tarama tekniğini kullanıyorsanız yukarıda çıkan direnç değerlerini display sayısına bölmeniz gerekir.

Bu durumda örneğin 2 display için 400 Ohm direnç 200 Ohm olmalı, 220 Ohm olan direnç de 120 Ohm civarında seçilmelidir.

Eğer yazılımı düzgün yapmadı ve tarama süreleri toplamı haricinde ledler sönük kalıyorsa bu durumda direnç değerleri daha da düşürülmelidir.

Öte yandan direnç değeri düştükçe darbe akımı artacağından portun bu darbe akımını verip veremediğini de katalogdan öğrenmelisiniz. Aksi takdirde displey ile MCİU arasına transistör vs ile yapılmış buffer devreleri eklemeniz gerekir.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

sessiz_roman

#3
Alıntı yapılan: mehmet - 25 Mart 2019, 01:16:43Kodlarınızı ve şemanızı da ekleyiniz.


kardeşim öncelikle şemam şöyle. g2 ve g3 yazan pinler birinci ve ikinci displayın toprak hattı ve orada dirençlerin değeri 220ohm.(1k yazdığına bakmayın)





kod kısmına gelirken ise şöyle bir tarama yöntemi var.
for (int i = 1; i <= 120; i++)
    {
        digitalWrite( GND1, LOW);    //digit 1
        DisplayNumber(dig1);
        delay(2);
        digitalWrite( GND1, HIGH);

        digitalWrite( GND2, LOW);    //digit 2
        DisplayNumber(dig2);
        delay(2);
        digitalWrite( GND2, HIGH);

    }   
  
}
yardımlarınız için teşekkürler

sessiz_roman

#4
Alıntı yapılan: z - 25 Mart 2019, 09:23:11Led displaylerde ortak hat üzerine direnç bağlamanız yanlış. 7 segmentten her birisine direnç bağlamanız gerekir.

Bir diğer konu da işlemcininizi kaç volt ile besliyorsunuz?

Eğer 5v ile besliyorsanız ledlerin 1v 10mA ile beslendiği varsayımıyla (5-1)/10 dan 400 Ohm (390 Ohm)

3.3v ile besliyorsanız (3.3-1)/10=230 Ohm (220 Ohm) kullanmanız gerekir.

Fakat;

Bu hesaplamalar displaylerin her bir segmentinin ayrı port pinlerine bağlandığı varsayımı için geçerli.

Eğer displeylerin segmentlerinin aynı port pinlerine bağladıysanız yani tarama tekniğini kullanıyorsanız yukarıda çıkan direnç değerlerini display sayısına bölmeniz gerekir.

Bu durumda örneğin 2 display için 400 Ohm direnç 200 Ohm olmalı, 220 Ohm olan direnç de 120 Ohm civarında seçilmelidir.

Eğer yazılımı düzgün yapmadı ve tarama süreleri toplamı haricinde ledler sönük kalıyorsa bu durumda direnç değerleri daha da düşürülmelidir.

Öte yandan direnç değeri düştükçe darbe akımı artacağından portun bu darbe akımını verip veremediğini de katalogdan öğrenmelisiniz. Aksi takdirde displey ile MCİU arasına transistör vs ile yapılmış buffer devreleri eklemeniz gerekir.


Led displaylerde ortak hat üzerine direnç bağlamanız yanlış. 7 segmentten her birisine direnç bağlamanız gerekir.

hocam displaydeki her bir harf için direnç bağlamadım sadece her bir displayın toprak hatlarına 220ohmluk direnç bağladım şemayı yukarıya attım oradan inceleyebilirsiniz.


işlemcimi 5v ile beslemekteyim


displayleri tarayn kod ise şudur hocam.
for (int i = 1; i <= 120; i++)
    {
        digitalWrite( GND1, LOW);    //digit 1
        DisplayNumber(dig1);
        delay(2);
        digitalWrite( GND1, HIGH);

        digitalWrite( GND2, LOW);    //digit 2
        DisplayNumber(dig2);
        delay(2);
        digitalWrite( GND2, HIGH);

    }   
  
}

hatam nerede hala bulambilmiş değilim.


mehmet

Delaydan sonra ilgili digit
kapatılmalı.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr