7 segment 4 digit display

Başlatan _MeRKeZ_, 20 Ekim 2012, 18:11:43

_MeRKeZ_

Merhaba arkadaşlar,

7 segment 4 digit anot 14mm display'in devre üzerindeki bacak bağlantılarını öğrenmek istiyorum. İnternette datasheet'lere baktım ancak bir çözüme ulaşamadım. Bilgisi olan arkadaşların yardım etmelerini rica ediyorum.

Not: Aşağıda verdiğim pdf dosyasının 38.sayfasında biraz açıklama var ancak ben tam anlayamadım.

Teşekkürler

https://hotfile.com/dl/176811488/c9f43ce/Segment_Digit_LED_Display.pdf.html

F®T

7 segement üzerinde ürün kodu olmalı.onu yazarsan daha iyi olur.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

ete

38 ci sayfada pin numaralarını ve isimlerini vermiş. Anlaşılan bu birleştirilmiş bir display.
Mesela 11 nolu pin, 4 adet displayin A pini olarak çalışıyor. Bütün A lar birleşmiş vaziyette. Bütün B lerde birleşmiş ve 7 nolu pine bağlanmış. Bütün C ler birleşmiş ve 4 nolu pine bağlanmış Bütün D ler birleşmiş 2 nolu pine bağlanmış.
Bütün E ler birleşmiş ve 1 nolu pine bağlanmış bütün F ler birleşmiş ve 10 nolu pine bağlanmış ve bütün G ler birleşip 5 nolupine bağlanmış.
4 adet display olunca 4 adet de ortak uç olması gerekiyor. Bunlarda sırası ile 1. displayin ortak Anot ucu 12 nolu pinde, 2 ci displayin ortak anot ucu 9 nolu pinde 3. cü displayin ortak anot ucu 8 nolu pinde ve son olarak 4. displayin ortak anot ucu ise 6 nolu pine bağlı duruyor.
Denemek için eline 3V luk bir pil al ve artı ucuna 100 ohm direnç bağla. Bu direncin diğer ucunu 12 nolu pine tut ve GND (eksi) ucunu ise sırası ile, 11 - 7 - 4 - 2 - 1 - 10 - 5 nolu pinlere dokundur. Böylece 1 nolu displayin segmentlerinin sırası ile yandığını göreceksin. Ortak anot ucunu 9 nolu pine dokunup diğer ucu yine segment pinlerine dokundurursan bu seferde 2. displayin segmentlerinin yandığını göreceksin.
Hepsi bu kadar.
Ete

F®T

38inci sayfada tüm herşeyi yazıyor.sorunun ne olduğunu anlayamadım.

        1. dijit                               2.dijit                                3.dijit                           4.dijit

ortak anod ayak no 12    ortak anod ayak no 9     ortak anod ayak no 8     ortak anod ayak no 6


tüm hepsinde segnentler ortak   A  11 NOLU AYAK , B 7 NOLU AYAK ,C  4 NOLU AYAK , D 2 NOLU AYAK ,

E 1 NOLU AYAK, F 10 NOLU AYAK ,G 5 NOLU AYAK, NOKTA 3 NOLU AYAK.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

_MeRKeZ_

#4
Alıntı yapılan: ete - 20 Ekim 2012, 19:20:23
38 ci sayfada pin numaralarını ve isimlerini vermiş. Anlaşılan bu birleştirilmiş bir display.
Mesela 11 nolu pin, 4 adet displayin A pini olarak çalışıyor. Bütün A lar birleşmiş vaziyette. Bütün B lerde birleşmiş ve 7 nolu pine bağlanmış. Bütün C ler birleşmiş ve 4 nolu pine bağlanmış Bütün D ler birleşmiş 2 nolu pine bağlanmış.
Bütün E ler birleşmiş ve 1 nolu pine bağlanmış bütün F ler birleşmiş ve 10 nolu pine bağlanmış ve bütün G ler birleşip 5 nolupine bağlanmış.
4 adet display olunca 4 adet de ortak uç olması gerekiyor. Bunlarda sırası ile 1. displayin ortak Anot ucu 12 nolu pinde, 2 ci displayin ortak anot ucu 9 nolu pinde 3. cü displayin ortak anot ucu 8 nolu pinde ve son olarak 4. displayin ortak anot ucu ise 6 nolu pine bağlı duruyor.
Denemek için eline 3V luk bir pil al ve artı ucuna 100 ohm direnç bağla. Bu direncin diğer ucunu 12 nolu pine tut ve GND (eksi) ucunu ise sırası ile, 11 - 7 - 4 - 2 - 1 - 10 - 5 nolu pinlere dokundur. Böylece 1 nolu displayin segmentlerinin sırası ile yandığını göreceksin. Ortak anot ucunu 9 nolu pine dokunup diğer ucu yine segment pinlerine dokundurursan bu seferde 2. displayin segmentlerinin yandığını göreceksin.
Hepsi bu kadar.
Ete

Ete hocam,

Bacakları burada belirttiğin şekilde bağladım lâkin gösterici çalışmadı. Tekli göstericiyi çalıştırmak için bc 337 transistör kullanmıştım. Bunun bağlantılarını ise aşağıda resimde görülen şekilde bağladım. Acaba aktifleştirme (com) bacaklarını transistöre de mi bağlamam gerekiyor? Dirençler 330 ohm




ete

#5
Ortak anot uçlar (isis şemasında görülen 1234 olarak isimlendirilmiş pinlerdir) transistörle sürülmesi gerekir. Sebebide işlemci bacağının ancak 20-25 ma akımı verbilmesidir. HAlbuki ortak anot ucu displayde 8 rakamı yandığında ortak uçtan yaklaşık 70 ma akım çeker. Bu ise işlemciyi bozar aşırı akım çekilmesi nedeni ile. Bu nedenle ortak uçları transistörle beslemen gerekiyor.

Bunun öncesinde display uçları doğrumu diye deneme yapman gerekiyor. Onu mutlaka yap.
önceki mesajımda belirtmiştim.

Ete

_MeRKeZ_

Bacakların hangilerinin com hangilerinin a,b,c vs. olduğunu tespit ettim hocam. O zaman bağlantıyı aşağıda resimde gösterdiğim gibi kurmam gerekiyor. (Com uçlarındaki dirençler 4.7k, diğerleri 330) Ben bu bağlantı şeklinin tekli katot gösterici için kullanmıştım. Benimki ise anot hocam, yine de bu şekilde çalışır mı?



Not: Devre üzerinde çalışır mı henüz denemedim ama isis'te bu şekilde çalışmadı hocam

F®T

merkez ortak anod ise tr üzerinden eksi göndermek olmaz.tr üzerinden artı yollaman lazım.yakacağın segmentlerede eksi göndereceksin.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Mucit23

Çalışmaz tabiki
Anot ile katot farklıdır.
Katot için verdiğin bağlantı şekli doğru. Anot için yapman gerekenler şöyle

1- BC337 yerine BC327 kullanıp BC327 nin emiterini +5V'a kollektör ucunu ise displayin seğment seçim ucuna gir.
2- Portb den çıkaracağın karakter datalarını terslemen gerekiyor. Bunun için portB ye yazmandan önce 255 den çıkar. Bu şekilde çıkması gereken data 11001011 ilse 00110100 çıkar. Tani değillenmiş hali.
3- Aynı işlemi taramadada yapmalısın. Önceden transistöre 1 verdiğinde transistör iletime geçiyordu. Şimdi 0 vermen gerekecek. Display kapalı iken transistörün beyz ucudu 1 olmalı.

Bunları yaparsan düzgün çalışır.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

ete

Merkez,

Anlaşılan display tipleri konusunda bilgin yok. 7 segment displalerde her bir segment bir led den oluşur. (Büyük tiplerde birden fazla led olur). Her bir ledin yanması için bir artı beslemesi (Anot) birde eksi beslemesi (katod) olması gerekir. 7 segment displayde 7 adet segment bulunduğuna göre bunların birer uçlarınıbirleştirip ortak uç haline getirirler. Ortak ANot olan tiplerde Pozitif besleme ucu ortak uçtur. Segment uçları ise güç kaynağının negatif (eksi) ucu ile beslenir.  Ortak katod displaylerde ise bu Anotun tersi şeklindedir. Ortak uca eksi gerilim segment uçlarına artı gerilim uygulanır.

Sen Ortak Anot kullandığın için ortak uçlara artı gerilim uygulaman ve segment uçlarınada eksi gerilim uygulaman gerekir. Ortak anot ucuna arkadaşların tarif ettiği gibi transistör üzerinden anahtarlayarak + gerilim uygula.
Segment uçlarını ise tersleyerek ver.  Yada terslenmiş hazır data yı pic portundan çıakrtıp segment uçlarına ver.

Ete


_MeRKeZ_

Yardımlarınız için çok teşekkür ederim, anot mantığını da kavramış oldum böylece. Son olarak, devreyi Mucit23 hocamın dediği gibi, resimde görülen şekilde kurdum (C portuna ait dirençler 4.7k, diğerleri 330) fakat c portunu kontrol edemiyorum. Hangi göstericinin yanıp hangisinin yanmaması gerektiğini ayarlayamıyorum. Kod olarak ne yazarsam yazayım her zaman dördü de açık oluyor. C portuna ait direnç değerlerini başka değerler  yaptım (1.2k gibi) fakat sorun sadece transistörleri kaldırdığımda çözüldü. Devre üzerinde kurduğumda da bu sorun devam eder mi yoksa proteus'a özgü bir durum mu?



Mucit23

C Portuyla Transistörün Beyz ucu arasındaki direnci 1K olarak değiştir. Sonra söktüğün 4.7K dirençlerin 1 ucunu Transitörün Beyz ucuna, Diğer ucunu ise +5V a Bağla. Bu şekilde transistörün rastgele iletime geçmesini engellemiş olursun. C portu normalde sürekli 1 konumunda olacak. Hangisini 0 a çekersen o transistör aktif olur.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

ete

Dikkat edersen bu displayde bütün segmentler ortak yalnızca ortak anot uçları ayrı ayrı sürülüyor.
Mantığını çalıştır. Şayet segmentlere 7 rakamının bilgisini verirsem ve sonrada 1 nolu displayin ortak anot ucunu aktif edersem yani onu sürersem 7 rakamı 1 nolu displayde gözükür. 1 nolu displayin ortak anot ucu değilde 2 nolu displayin ortak anot ucunu sürersem bu seferde 7 rakamı 2 nolu displade gözükür diğerleri sönük olarak bekler. İşte işin temel mantığı budur.
Şayet bir display'i 1 sn içinde en az 25 defa yakıp söndürürsen göz onu sürekli yanıyormuş zanneder ve sen onu sürekli yanıyor olarak görürsün. Buda işin ikinci püf noktası. O halde ben aşağıdaki yolu takip edersem her bir displayde farklı bir rakamı görebilirim.
- sağdan sola doğru yer alan displaylerden 4 numarada gözükmesini istediğim rakamı 7 segment bilgisi olarak veririrm.
- 4 numaralı displayin ortak anot ucunu sürerüm diğerlerini sürmeden kapalı tutarım.
- yaklaşık 1-5 ms arası bir süre bu displayi yanık durumda tutarım sonra söndürürüm.
- Bu seferde 3 nolu displayde görmek istediğim rakam bilgisini 7 segmentlere veririm ve 3 nolu displayi sürerim. Displayi 1-5ms süre ile yanık tutarım ve sonra söndürürüm.
- Daha sonra 2 nolu displayde görmek istediğim rakam bilgisini segment bilgisini 7 segmentlere veririm. 2 nolu displayi sürerim ve 1-5ms arası yanık kalmasını sağladıktan sonra displayi söndürürüm.
- Sonunda 1 nolu displayde görmek istediğim bilgiyi 7 segmentlere veririm ve o displayi sürerim. 1-5 ms arasında yanık kalmasını sağladıktan sonra displayi söndürürüm.
Bu aşamadan sonra en başa döner aynı işlemleri sürekli tekrarlarım. Böylece 4 adet displayde 4 farklı rakamı görmek mümkün olur. BU arada rakamlar değişebilir. Yeterki bu işlemi aksatmadan yap. En doğrusu bir TMR0 kesmesi çalıştırmaktır. Her 2 ms de bir kesme olacak şekilde programı kurarsan ve bir sıra değişkeni her kesmede artırılırsa sıra kimde ise o display sürülerek sistem otomatik olarak çalıştırılabilr.

Bütün displaylerde aynı rakamı görüyorsan zaman paylaşımı yapmıyorsun demektir. Bunun sebebi 7 segmentlere bir rakam bilgisi verip bütün displayleri aktif edersen aynı rakam hepsinde görülür. Ama yukarıda açıkaldığım zaman paylaşımını yaparsan gözü aldatır ve her displayde farklı bir rakam izleyebilirsin.

Ete

_MeRKeZ_

@Mucit23

Hocam onu da denedim fakat yine sorun değişmedi. Sanırım bu proteus'tan kaynaklanıyor devre üzerinde böyle bir sorun yaşamam.

@ete

Hocam açıkladığın için teşekkür ederim fakat benim söylediğim o değildi, çalışma mantığının o şekilde olduğunu biliyorum sorun devreyi transistörle kurunca hangi göstericinin açık hangisinin kapalı olacağını belirleyememdi yani ben ne yaparsam yapayım hepsi açık kalıyordu. Sanırım bu sorun proteus'a has bir durum, benzeri bir devrenin proteus'ta transistörsüz kurulduğunu görmüştüm.

ete

Bu konuda proteus un ufak bir kusuru var. Transistörle anahtarladığın ortak anot uçlarını senin birer pull-down direnci ile low a çekmen gerekiyor. Aksi halde proteus onlerı low yapamıyor. Uçlar low olmayıncada hepsi high da kalıp hepsi birden sürülmiş oluyorlar. Her bir pine 10 k lık direnç bağla ve dirençlerin diğer uçlarını gnd ye bağla.
Gerçek devrende buna gerek olmayacaktır.
Ete

Powered by EzPortal