MAX7219 Display Entegre

Gokrtl

Gökhan Kartal (TeknoDay)
Staff member
Katılım
27 Şubat 2019
Mesajlar
12,014
Dün 44dk lık bir video izledim. internette arduino için bolca satılan 7 segment 8 digit bir display var. Bu display de MAX7219 entegre kullanılmış.
Bu sayede arduinonun sadece 3 pinini kullanarak istediğimiz kadar displayi seri olarak bağlayıp kullanabiliyoruz.
Ve ayrıca istediğimiz kadar hanesini kullanabiliyoruz. Yani bize 3 hanesi lazımsa 5 hanesini devre dışı bırakabiliyoruz.

7segment 8digit.jpg


seri_display1.png


seri_display2.png


Benim uçak panelimde 3 tane 3digit, 3 tane de 5 digit display var. Dolayısıyla bu modülleri istediğim gibi kullanabilirim.
Ancak 3 hane için 8 haneli bir display kullanmak bana iki türlü sıkıntı çıkartıyor.
1- 8 haneli display 3 hanelik panel yuvasına doğal olarak oturmuyor.
2- Yan yana 6 modüi koyduğumda pcb ye tam sığıyor ve iki modül arasında olması gereken butonları koyamıyorum.

Şimdi ben kendime göre diplay alıp MAX7219 entegre ile modül oluştursam;
Soru 1: Hane sayıları farklı olduğu için seri bağlama ihtimalim ortadan kalkar mı?
Soru 2: Entegreye illa 8 haneli display mi eklemek gerekli yoksa 3 haneli de eklesek çalışır mı?

max7219 functional diagram.png


max7219 serially interface.png


max7219 serially interfaced.png


max7219 serially interfaced2.png


max7219 taypical application.png
 

Ekler

  • MAXIM-MAX7219.pdf
    266.4 KB · Görüntüleme: 250
Tam da bu uygulama için bir konu açmıştım. Ama vakit darlığından yarıda kaldı. İstersen onu devam ettir :) Entegre falan da gerekmiyor, işin aslını da öğrenmiş oluyorsun.

 
Tam da bu uygulama için bir konu açmıştım. Ama vakit darlığından yarıda kaldı. İstersen onu devam ettir :) Entegre falan da gerekmiyor, işin aslını da öğrenmiş oluyorsun.

Konuyu okudum abi. Senin projen Arduino IDE'si kullanarak display için komut yazmak üzerine ilerliyor.
Her nekadar konu içerisinde "Hazıra Konmayın" Uyarısını yapmış olsan da benim şuanki panel projemi sıfırdan kodlamam aylarca sürebilir. Bu yüzden halihazırda program kullanmak durumundayım. Bu hazır porgramı öyle bir yazmışlar ki, program arduino IDE'sine ihtiyaç duymadan kodu kendisi çipe yazıp siliyor. Ve koda haricen müdahale şansı vermiyor.

Benim kullanacağım displayleri de bu program sürüyor. Bana sadece 8 hanenin kaç tanesini kullanabileceğimi seçtiriyor ve nasıl kullanacağımı da kendisi belirliyor. Hal böyle olunca şuan için benim tek çarem displaylerin hane sayısını düşürmek oluyor. Bunun içinde MAX7219 entegresini nasıl kullanacağımı bilmem gerek.

Şimdi sırf display için de programı göz ardı edip bütün paneli arduino IDE'si kullanarak yazmak boşa uğraş gibi görünüyor. Ha sular seller gibi kod yazmayı bilsem bu program ile hiç işim olmaz. Oturur baştan kendi kodlarımı yazar, senin de dediğin gibi neyin ne olduğunu en ince detayına kadar bilirim. Ama kısa vade de bu işi çözmem lazım. Paneli yapıp bitirdikten sonra projem kalmayacağından en baştan başlayıp arduino kodlaması yolu ile uçağa bağlanıp veri alışverişi yapmayı öğreneceğim. Başlangıçta da amacım buydu ama veri alış verişi olayı hiç kolay değilmiş. Çok zorlanınca çizgimden sapmış oldum. Benim programcı arkadaşında bu konuda bariz katkısı var :D
 
Elektronikçiden 2 tane Max7219 entegre aldım.
Normalde 8 digit bağlanabiliyor ama ben 3 digit bağlayarak bir modül yapmak istiyorum.
Aşağıdaki resime göre "DIG" pinlerini display "anot" bacaklarına bağlayacağım, "SEG" pinlerinin de hepsini birleştirip "katot" bacaklarına bağlayacağım.
Benin anladığım bu yönde. Acaba doğrumu yapıyorum? Emin olamadım.

Screenshot_20200609-001913.jpg
 
DIG leri birleştireceksin. Katotları ayrı ayrı kendi SEG lerine bağlayacaksın.
 
DIG leri birleştireceksin. Katotları ayrı ayrı kendi SEG lerine bağlayacaksın.
Tam anlayamadım abi. DIG leri birleştirip katota tek bağlayacağım, SEG lerdeki harfleri de displaydeki karşılık harfine tek tek bağlayacağım. Yani anotlara. Doğru mu?

20200609_004219.jpg
 
Tam anlayamadım abi. DIG leri birleştirip katota tek bağlayacağım, SEG lerdeki harfleri de displaydeki karşılık harfine tek tek bağlayacağım. Yani anotlara. Doğru mu?

4123 eklentisine bak

7 segment displaylerin her birisini katot dışında paralel bağlıyorsun. Katotları da ayrı ayrı ilgili SEG pinine bağlıyorsun.
 
Kendime uyarı: Ezberden konuşmayıp datasheet'e bakmakta fayda var :D Şu resim üzerinden gidelim.

1591652984254.png


Burada

A -- SEG A
B -- SEG B
C -- SEG C
D -- SEG D
E -- SEG E
F -- SEG F
G -- SEG G
DP -- SEG DP

Sonra da her hanenin katodu da ayrı ayrı DIG 0, DIG 1, DIG 2 diye bağlanacak.
 
Kendime uyarı: Ezberden konuşmayıp datasheet'e bakmakta fayda var :D Şu resim üzerinden gidelim.

4124 eklentisine bak

Burada

A -- SEG A
B -- SEG B
C -- SEG C
D -- SEG D
E -- SEG E
F -- SEG F
G -- SEG G
DP -- SEG DP

Sonra da her hanenin katodu da ayrı ayrı DIG 0, DIG 1, DIG 2 diye bağlanacak.
Zaten az buçuk kafa var onuda sen heba ediyorsun abi :katil1:

Şu çizim doğru mu?
20200609_005437.jpg
 
İşte kendin arduino'da bunun kodunu yazsaydın olayı derinlemesine öğrenmiş olacaktın :D Şimdi sana bu entegre kapalı kutu geliyor, içinde ne olup bittiğini bilmediğin için böyle.

Bu entegrenin çalışma prensibi, milisaniyeler mertebesinde sırayla 7 segment displaylere veri yazıyor. Yeterince hızlı olduğu için de sen sürekli yanıyor görüyorsun.

Şimdi bu mantıkla düşünürsen, her bir 7 segment display aynı SEG çıkışlarına paralel bağlanacak. Ama katotlar ayrı ayrı kendi DIG'lerine gidecek. Böylece entegre sırayla bunlara veriyi yazacak.
 
İşte kendin arduino'da bunun kodunu yazsaydın olayı derinlemesine öğrenmiş olacaktın :D Şimdi sana bu entegre kapalı kutu geliyor, içinde ne olup bittiğini bilmediğin için böyle.

Bu entegrenin çalışma prensibi, milisaniyeler mertebesinde sırayla 7 segment displaylere veri yazıyor. Yeterince hızlı olduğu için de sen sürekli yanıyor görüyorsun.

Şimdi bu mantıkla düşünürsen, her bir 7 segment display aynı SEG çıkışlarına paralel bağlanacak. Ama katotlar ayrı ayrı kendi DIG'lerine gidecek. Böylece entegre sırayla bunlara veriyi yazacak.
O zaman benim çizim doğru.
Peki ben bunu arduino ile yazsaydım çipe hiç ihtiyacım olmayacak mıydı?
 
O zaman benim çizim doğru.
Peki ben bunu arduino ile yazsaydım çipe hiç ihtiyacım olmayacak mıydı?

Senin çizimde DIG'lerin hepsi kısa devre. Bu doğru değil.

Arduino ile yapsan sadece 4 tane BC serisi transistöre ihtiyacın olur. Eğer arduino çıkışlarını biraz kasarsan ona da gerek yok :) Ama koymak daha iyi, daha yüksek akımla sürüp daha fazla parlaklık elde edebilirsin.
 
Senin çizimde DIG'lerin hepsi kısa devre. Bu doğru değil.

Arduino ile yapsan sadece 4 tane BC serisi transistöre ihtiyacın olur. Eğer arduino çıkışlarını biraz kasarsan ona da gerek yok :) Ama koymak daha iyi, daha yüksek akımla sürüp daha fazla parlaklık elde edebilirsin.
Abi şu uçak paneli işini bir çözeyim arduino ile testler yaparım.
Bu entegreyi çözmem lazım. Anladığımı sandım ama hala anlayamamışım.
Seg leri 7 harfe göre karşılıklı birleştiricem onu anladım ama DIG ler 7 tane, katot çıkışı iki tane. Bunlar nasıl eşleşecek o zaman?
 
Aşağıda örnek bir şema var.

1591654824165.png
 
Bu da mı gol değil?

20200609_014551.jpg
 
Yamyam abi ile yazışıyor muşum gibi hissetmeye başladım. :katil1:

Adım 1
Şimdi abim senin verdiğin şemada 4 ayrı digit var. Bu digitlere SEG ler paralel bağlanmış. Buraya kadar okey.

Adım 2
Her bir digitin kendine ait tek bir ortak katotu var. Dolayısıyla bağlantı aşağıdaki gibi olmalı.
1.digit DIG0
2.digit DIG1
3.digit DIG2
4.digit DIG3

Adım 3
Benim displayim de 3 digit var.
7 segment
1 dp
2 ortak katot

Adım 4
7 segmenti harflerine göre 7 bacağa bağladık.
Dp bacağınıda SEGdp ye bağladık.

Adım 5
Elimizde kaldı 2 tane ortak katot bacak.
1.Bacak DIG0
2.Bacak DIG1

Burada yanlış olan neresi? Hangi adım?
 
Yamyam abi ile yazışıyor muşum gibi hissetmeye başladım. :katil1:

Çizmesi kolay olsa çizerdim, ama bir sürü 7 segment paralel çizmek zor. O yüzden örnek bulduk işte :D

Adım 1
Şimdi abim senin verdiğin şemada 4 ayrı digit var. Bu digitlere SEG ler paralel bağlanmış. Buraya kadar okey.

Adım 2
Her bir digitin kendine ait tek bir ortak katotu var. Dolayısıyla bağlantı aşağıdaki gibi olmalı.
1.digit DIG0
2.digit DIG1
3.digit DIG2
4.digit DIG3

Adım 3
Benim displayim de 3 digit var.
7 segment
1 dp
2 ortak katot

Adım 4
7 segmenti harflerine göre 7 bacağa bağladık.
Dp bacağınıda SEGdp ye bağladık.

Adım 5
Elimizde kaldı 2 tane ortak katot bacak.
1.Bacak DIG0
2.Bacak DIG1

Burada yanlış olan neresi? Hangi adım?

Bu anlatım doğru. Ama en son gol teşebbüsünde DIG1 ve DIG0 ı kısa devre etmişsin, o yanlış. Neyse işin doğrusunu anladığına göre mesele yok :)
 
Çizmesi kolay olsa çizerdim, ama bir sürü 7 segment paralel çizmek zor. O yüzden örnek bulduk işte :D



Bu anlatım doğru. Ama en son gol teşebbüsünde DIG1 ve DIG0 ı kısa devre etmişsin, o yanlış. Neyse işin doğrusunu anladığına göre mesela yok :)

Abi onu ben kısa devre etmedimki. Şemada öyle çizmişler. O tek çıkışın üzerine 3 ve 8 bacak yazmışlar. Bende her bacağı temsilen iki ayrı DIG çizdim :D
 

Çevrimiçi üyeler

Forum istatistikleri

Konular
6,951
Mesajlar
118,748
Üyeler
2,824
Son üye
selocan32

Son kaynaklar

Son profil mesajları

hakan8470 wrote on Dede's profile.
1717172721760.png
Dedecim bu gul mu karanfil mi? Gerci ne farkeder onu da anlamam. Gerci bunun anlamini da bilmem :gulus2:
Lyewor_ wrote on hakan8470's profile.
Takip edilmeye başlanmışım :D ❤️
Merhaba elektronik tutsakları...
Lyewor_ wrote on taydin's profile.
Merhabalar. Elektrik laboratuvarınız varsa bunun hakkında bir konunuz var mı acaba? Sizin laboratuvarınızı merak ettim de :)
Lyewor_ wrote on taydin's profile.
Merhabalar forumda yeniyim! Bir sorum olacaktı lcr meterler hakkında. Hem bobini ölçen hemde bobin direnci ölçen bir lcr meter var mı acaba?
Back
Top