P10 panel sürmek

Başlatan gogoce, 20 Şubat 2021, 16:07:38

ete

#30
Ne yapmaya çalıştığınızı pek anlamadım doğrusu. Panel nasıl sürülecek daha doğrusu nasıl karekter oluşturulacak ilk sayfada anlatmıştım.
Ortada tam tamına 4x4=16 adet 74HC595 var. Bir defa bunların tamamına bilgi yazılması gerekiyor çünki bir birlerine seri bağlılar.
Bir kereliğine bilgiyi yükledikten sonra bilginin hangi çift satırlarda görüleceğine karar vermeniz gerekiyor.
Bunlar 1-9, 2-10, 3-11, 4-12, 5-13, 6-14 , 7-15 ,8-16 şeklinde.
Kısaca 16 adet bilgiyi yükledikten sonra 74HC138 üzerinden 1. satırı aktif edeceksiniz. Bu aynı zamanda 9. cu satırıda otomatikman aktif etmiş olacak. Ardından yaklaşık 1 ms bekledikten sonra (yada kesme oluşturarak bu sefer 16 adet 74HC595'e ikinci satır bilgilerini yükleyeceksiniz. Yüklemenin hemen ardından bu sefer 74HC138 üzerinden 2. ci satırı aktif edecek birinciyi kapatacaksınız.
Bu aynı zamanda 10. satırıda aktif edecek. Bu mantıkla devam edip bütün satırları taramanız gerekiyor. İşin iyi tarafı taram işleminin yanlızca 8 defa yapılıp tekrar başa dönmesinde. Böylece görüntüde fazla titreme olmayacaktır. Titreme oluyor ise ya beklemeniz çok uzun ki bu konuda tecrübelerim bana doğru sürenin 500us ile 1ms arasında olması gerektiğini söylüyor. Ama dediğim gibi 16 adet shift registere bu bilgileri yüklemek zaman alan bir işlemdir ve bu işi donanımsal yapmamanız durumunda titreme olma ihtimali artacaktır.

Satırlar sürülürken genelde yapılan şey şöyledir. Bir önceki satır pasif hale getirilir ve bilgi shift registerlere yüklenir. Böylece yeni satır aktive edildiğinde bir oynama görülmez. Sanki hep orada imiş gibi davranır sistem. Buna dikkat edilmeli.
Dikkat edilmesi gereken bir diğer konuda satır bilgisinin 1ci 595 te, 5. ci 595 te, 9.cu 595 te ve 13. cü 595 te yer alacağına dikkat edilmeli. Değişkene yükleme sırası bu sıralama dikkate alınarak yapılmalıdır.
Sürme şekli şağıdaki mantıkla yapılmalı. 74138 in adres bacaklarına verilen değerler üzerinden,
%00, bu değer 1. ci ve 3.cü çıkışları aktif ediyor. Buda 1-3 ve 9  - 13 nolu satırları aktif ediyor.
%01, bu değer 2. ci ve 4.cu çıkışları aktif ediyor. Buda 2-6 ve 10 - 14 nolu satırları aktif ediyor.
%10  bu değer 5. cü ve 7.ci çıkışları aktif ediyor. Buda 3-7 ve 11 - 15 nolu satırları aktif ediyor.
%11  bu değer 6. cü ve 8.ci çıkışları aktif ediyor. Buda 4-8 ve 12 - 16 nolu satırları aktif ediyor.
74138 3 adres bacağı olmasına rağmen çıkış olarak yanlızca 4 çıkış kontrol edildiği ve bu iş içinde 2 (A ve B) adres bacağı yeterli olduğu için Adres bacağı C direk GND ye bağlanmış durumda.

Ete

gogoce

Alıntı yapılan: ete - 09 Mart 2021, 20:17:22Ne yapmaya çalıştığınızı pek anlamadım doğrusu. Panel nasıl sürülecek daha doğrusu nasıl karekter oluşturulacak ilk sayfada anlatmıştım.
Ortada tam tamına 4x4=16 adet 74HC595 var. Bir defa bunların tamamına bilgi yazılması gerekiyor çünki bir birlerine seri bağlılar.
Bir kereliğine bilgiyi yükledikten sonra bilginin hangi çift satırlarda görüleceğine karar vermeniz gerekiyor.
Bunlar 1-9, 2-10, 3-11, 4-12, 5-13, 6-14 , 7-15 ,8-16 şeklinde.
Kısaca 16 adet bilgiyi yükledikten sonra 74HC138 üzerinden 1. satırı aktif edeceksiniz. Bu aynı zamanda 9. cu satırıda otomatikman aktif etmiş olacak. Ardından yaklaşık 1 ms bekledikten sonra (yada kesme oluşturarak bu sefer 16 adet 74HC595'e ikinci satır bilgilerini yükleyeceksiniz. Yüklemenin hemen ardından bu sefer 74HC138 üzerinden 2. ci satırı aktif edecek birinciyi kapatacaksınız.
Bu aynı zamanda 10. satırıda aktif edecek. Bu mantıkla devam edip bütün satırları taramanız gerekiyor. İşin iyi tarafı taram işleminin yanlızca 8 defa yapılıp tekrar başa dönmesinde. Böylece görüntüde fazla titreme olmayacaktır. Titreme oluyor ise ya beklemeniz çok uzun ki bu konuda tecrübelerim bana doğru sürenin 500us ile 1ms arasında olması gerektiğini söylüyor. Ama dediğim gibi 16 adet shift registere bu bilgileri yüklemek zaman alan bir işlemdir ve bu işi donanımsal yapmamanız durumunda titreme olma ihtimali artacaktır.

Satırlar sürülürken genelde yapılan şey şöyledir. Bir önceki satır pasif hale getirilir ve bilgi shift registerlere yüklenir. Böylece yeni satır aktive edildiğinde bir oynama görülmez. Sanki hep orada imiş gibi davranır sistem. Buna dikkat edilmeli.
Dikkat edilmesi gereken bir diğer konuda satır bilgisinin 1ci 595 te, 5. ci 595 te, 9.cu 595 te ve 13. cü 595 te yer alacağına dikkat edilmeli. Değişkene yükleme sırası bu sıralama dikkate alınarak yapılmalıdır.
Sürme şeklinize bakılırsa 74HC138'e sırası ile;
%00, bu değer 1. ci ve 9.cu satırları aktif ediyor.
%01, bu değer 2. ci ve 10.cu satırları aktif ediyor.
%10  bu değer 3. cü ve 11. satırları aktife ediyor.
%11  bu değer 4. cü ve 12. ci satırları aktif ediyor.
gerisi??? yok. Halbuki 74138 in 3 adres bacağı var. Dolayısıyla 2 değil 3 bit adresleme yapmanız gerekiyor. Yani %000 , %001, %010 , %011, %100 , %101, %110, %111 şeklinde satır seçimi yapmanız gerekir.

Ete

Hocam özür dileyerek hala anlayamadığımı söylesem ve örnek program istesem olur mu?
Hala hangi adresin hangi satırı kontrol edeceğinde takıldım  :(
Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

aRci

merhaba
burda bahsedilen olayın görseli var. bilgi burada sol üstten başlayıp sırası ile resimde gösterildii şekilde 595 ler arasında aktarılır ve sol attan bağlı kart varsa ona akatrılarak devam eder.
gönderilen 16 byte lık bilgi bu kutucuklara (595 lere) yerlestirilir ardından a ve b girişlerine uygalanan sinyale göre kutucuklardaki bilgiler seçilen led grubunu aydınlatır.
aslında ekran da görülen yazı aslında 4 farklı grupta parca parca ekrana getirilir yani ben 16 byte gönderem ekranda a harfi çıksın olmaz siz 4 farklı grupta harfı olusturaca değerleri dogru değişkenlere atayarak A harfini ekrana yansıta bilirsiniz.


aRci

altta paylaştığım kod ile "A" karekteri sol üst köşede oluşturuluyor daha sonra "A" harfi oluşturulduğu basamakların gösterimi yavaşlatıyor ve sonra tekrar hızlandırıyor. Panelde görüntünün tek seferde oluşturulmadığının göstermesi amacı ile paylaşıyorum
ayrıca bir karekterinin nasıl oluştuğuna da örnek alabilirsin.

'227, 221, 221, 193, 221, 221, 221, 255
A[0] = 227
B[0] = 221
C[0] = 221
D[0] = 193
A[1] = 221
B[1] = 221
C[1] = 221
D[1] = 255
üsteki kısım "A" karekterinin değişkenlere aktarıldığı kısım.



include "modedefs.bas"
@ __config _CP_ALL & _DEBUG_OFF & _BODEN_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC & _LVP_OFF & _CPD_ON 
      define OSC 20
      TRISA=0
      TRISB=%11100001  'B portu giriş yapıldı
      TRISC=%10000000  'C portu 3 giriş/4'ü çıkış yapıldı
      TRISD=%00000000  'D portu çıkış yapıldı
      TRISE=%111

      porta = 0
      portb = %11110001
      portc = %10000000
      portd = 0  


'----------------------A b portu-------------------------------------------

SYMBOL LED1  =PORTB.1

      symbol Oe         = Portd.0
      symbol p10_a         = portd.1
      Symbol p10_b         = portd.2
      symbol Clk        = portd.3
      Symbol LATCH       = portd.4
      Symbol DTA        = portd.5
 
'-----------------------TİMER DEGİSKENLERİ-------------------------------

A var byte [16]
B var byte [16]
C var byte [16]
D var byte [16]
X var byte
Tr    var byte
Sutun var byte
Say var byte
Tra   var word

FOR X=15 TO 0 STEP -1
A[X]=255
B[X]=255
c[X]=255
d[X]=255
NEXT X
'227, 221, 221, 193, 221, 221, 221, 255
A[0] = 227
B[0] = 221
C[0] = 221
D[0] = 193
A[1] = 221
B[1] = 221
C[1] = 221
D[1] = 255

Sutun = 0


BASLA:
Tr = 1
for Tra = 0 to 100
GOSUB TARA
Sutun = Sutun + 1
if Sutun >= 4 then Sutun = 0
next Tra

Tr = 0
for say = 1 to 20 
FOR Tra = Say to 0 step - 1
GOSUB TARA
next Tra
Sutun = Sutun + 1
if Sutun >= 4 then Sutun = 0
next say

Tr = 0
for say = 20 to 1 step - 1 
FOR Tra = 0 to Say
GOSUB TARA
next Tra
Sutun = Sutun + 1
if Sutun >= 4 then Sutun = 0
next say

GOTO BASLA

TARA:   
        if Sutun = 0  or Tr = 1 then
        for x = 15 to 0 Step - 1
        SHIFTOUT  dta,clk,1,[A[x]]
        next x
        else
        for x = 0 to 15
        SHIFTOUT  dta,clk,1,[255]
        next X
        endif
        p10_a=0:p10_b=0
        LATCH=1:LATCH=0:OE=0
        OE=1
        Pause 2
        
        if Sutun = 1 or Tr = 1 then
        for x = 15 to 0 Step - 1
        SHIFTOUT  dta,clk,1,[B[x]]
        next x
        else
        for x = 0 to 15
        SHIFTOUT  dta,clk,1,[255]
        next X
        endif
        p10_a=1:p10_b=0
        LATCH=1:LATCH=0:OE=0
        OE=1
        Pause 2
        
        if Sutun = 2 or Tr = 1 then
        for x = 15 to 0 Step - 1
        SHIFTOUT  dta,clk,1,[C[x]]
        next x
        else
        for x = 0 to 15
        SHIFTOUT  dta,clk,1,[255]
        next X
        endif
        p10_a=0:p10_b=1
        LATCH=1:LATCH=0:OE=0
        OE=1
        Pause 2
        
        if Sutun = 3 or Tr = 1 then
        for x = 15 to 0 Step - 1
        SHIFTOUT  dta,clk,1,[D[x]]
        next x
        else
        for x = 0 to 15
        SHIFTOUT  dta,clk,1,[255]
        next X
        endif
        p10_a=1:p10_b=1
        LATCH=1:LATCH=0:OE=0
        OE=1
        Pause 2
        
        
    return
    
    
Karekter:
'LOOKUP Tara, [227, 221, 221, 193, 221, 221, 221, 255],Krkter

Return

ete

#34
Hangi bilginin nereye gittiğini anlamanın en güzel yolu aslında şemaya bakmaktır.
Şemayı göz önüne getirirseniz her biri yan yana dizilmiş 8 er led den oluşan 4 adet sütün olduğunu görürsünüz. Dolayısıyla bir satırdaki led sayısı 32 oluyor.
16 adet de satır var led sırası olarak. Ancak bunların 4 er sırası tek bir 74HC595 e bağlanmış.
Bu nedenle sütunda yer alan her 4 sırayı bir 595 kontrol ediyor. Toplam 16 sıra olunca elbette 595 sayısıda yukarıdan aşağı 4 adet oluyor.
Yukarıdan aşağıda sütunlarda yer alan 595 ler  bir birbirlerine seri bağlı . Her bir sütunda yanındaki sütuna seri bağlı. Böylece toplamda 16 adet 595 bir birine seri bağlı oluyor. Bu nedenle karekter oluştururken 16 adet 595 e bilgi yazman gerekiyor. Bunu sağlayan komut dizisi
-SHIFTOUT ....[Sutun1-1, Sütun1-2, Sütun1-3, Sütun1-4,  Sütun 2-1, Sütun2-2, Sütun2-3, Sütun2-4, Sütun 3-1, Sütun 3-2,Sütun 3-3,Sütun 3-4, Sütun 4-1, Sütun 4-2, Sütun 4-3,Sütun 4-4]
Bu komut dizisinde aslında kim nereye gidiyor belli oluyor. En üstteki 32 ledlik satırı oluşturacak olan değişkenler Sütun1-1,Sütun2-1,Sütun3-1,Sütun4-1 oluyor.
İkinci sırayı oluşturacak bilgi yine aynı değişeknlere veriliyor ama ikinci satır aktif ediliyor 74138 den. Çünki her bir 74HC595 şemaya bakılırsa 4 satırı kontrol ediyor. Bu demektirki 4 satıra kadar olan bilgi aynı değişkenlere verilecek ama satır aktive edilerek bilginin 1-4 satır arasında yer alması sağlanacak demektir.

Sütun1-2 , Sütun2-2 , Sütun3-2, Sütun4-2 isimli değişkenler ise 5.ci satır ile 8. ci satır değişkenleri olarak çalışıyor.

Sütun 1-3, Sütun 2-3, Sütun3-3, Sütun4-3 isimli değişkenler ise 9. satır ile 12. satırları oluşturuyor.

Sütun1-4, Sütun2-4, Sütun3-4, Sütun4-4 isimli değişkenler ise 13-16 nolu satırları oluşturuyor.
Değişkenlere isim verirken Sutun11 Sütun12, Sütun13 gibi isimler verirsen kimin nereye gideceğini kolaylıkla anlayabilirsin.
ELimizde 8x8 matrix oluşturan aşağıdaki harf datası olduğunu varsayalım.
sütun11 = 220 , OUT-1 (Satır-1 oluyor) ile kontrol edilecek
Sütun11 = 221 , OUT-2 (Satır-2 oluyor) ile kontrol edilecek
Sütun11 = 222 , OUT-5 (satır-3 oluyor) ile kontrol edilecek
Sütun11 = 223 , OUT-6 (Satır-4 oluyor) ile kontrol edilecek
Sütun12 = 224 , OUT-3 (satır-5 oluyor) ile kontrol edilecek
Sütun12 = 225 , OUT-4 (satır-6 oluyor) ile kontrol edilecek
Sütun12 = 226 , OUT-7 (satır-7 oluyor) ile kontrol edilecek
Sütun12 = 227 , OUT-8 (satır-8 oluyor) ile kontrol edilecek.

Bu datalara dikkat edersen ilk 4 sıra Sütun11 değişkeni tarafından verilmesi gerekiyor. Seçim farklı çıkışlar seçilerek yapılıyor.
Kalan 4 sıra ise Sütun12 değişkeni tarafında verilecek. Buda şöyle olacak,

ABC=%00  buda 74138 e verilecek satır seçme bilgisi olacak. OUT-1 seçilmiş oldu.
Shiftout .....[220,.....geri kalan 15 bilgi buraya yazılacak]
Pulsout Kilit,1 komutu ile bütün bilgi çıkışa verilmiş olacak.
1 ms beklenecek
Burada dikkat edilmesi gereken husus şudur. OUT-1 seçildiği zaman aynı zamanda OUT-3 de seçilmiş oluyor. Dolayısıyla hem Out-1 hemde Out-3 ün sürdüğü satırlara denk gelen bilgiler kendi değişkenlerine yerleştirilmiş olması gerekir.

ABC=%01 ,.......OUT-2 seçilmiş oldu.
Shiftout ......[221,.....]
Pulsout Kilit,1
1 ms bekle

ABC=%10,...........OUT-5 seçilmiş oldu.
Shiftout.......[222,.....]
Pulsout Kilit,1
1 ms bekle

ABC=%11 ,...........OUT-6 seçilmiş oldu
Shiftout .....[223,.........]
Pulsout Kilit,1
1 ms bekle

ABC=%00,............OUT-3 seçilmiş oldu
Shiftout ......[223,224.............] bu satırdan itibaren ikinci 5.ci sıraya geçiyoruz
Pulsout kilit,1
1 ms bekle

ABC=%01,............OUT-4 seçilmiş oldu
Shiftout.......[223,225..........]
Pulsout kilit,1
1 ms bekle

ABC=%10,............OUT-7 seçilmiş oldu
Shiftout .......[223,226...........]
Pulsout Kilit,1
1 ms Bekle

ABC=%11,............OUT-8 seçilmiş oldu
Shiftout ......[223,227........]
Pulsout Kİlit,1
1ms bekle

buraya kadar 8x8 matrixden oluşan bir harfi ilk sütunda ve 8 satırlık üst kısımda yaratmış olduk.
Hemen komut daki ..... ile gösterilen diğer değişkenlere ne değer verilecek diye sorabilirsiniz.
Dikkat ederseniz ilk 8x8 matix için komut sırasındaki 2 değişken etkili oldu. Sonrasında gelen 2 değişken ise alttaki 8x8 matirxi oluşturur. Sonraki 2 değişken ikinci sütun dakiilk 8x8 matrixi oluşturur. Bu şekilde sıra ile devam eder gider.
Elbette bir şekil yada karekter oluştururken yanlızca 8x8 matrix düşünülmez. 16x32 olarak düşünüp bütün değişkenlere uygun değerler verilmelidir.

Umarım şimdi anlaşılmıştır.

not: yinede atladığım bir şey varmış Şemaya dikkatli bakınca anladım. 74HC138 çıkışları sıralı gitmiyor.
Dedikki her bir 595 , 4 adet led sırasını kontrol ediyor. Bu sıraların ortak uçları ise sıralı gitmiyormuş.
Karmaşık bağlantı iyice karmaşık olmuş ama dikkatlice takip edilirse sorun çıkmaz.
Bu kısmı yeniden açıklayayım.
ilk 595 in çıkışı 4 adet 8'erli ledi kontrol ediyor. Birinci sıranın ortak uçları OUT-1 e bağlı, İkinci sıranınki OUT-2 ye bağlı , işte terslik burada başlıyor, 3. cü sıranınki OUT-5'e bağlı ve 4. sıranınki ise OUT-6 ya bağlı. Ben yukarıdaki açıklamamda bunları Out-1, OUT-2,OUT-3,OUT-4 diye sıralamıştım.Ama şu anda o kısmı düzelttim.
Bir sonraki 595 in çıkışları ortak uçlar ise  OUT-3, OUT-4, OUT-7, OUT-8 şeklinde bağlı. Ondan sonrası tekrarlayarak aynı dizilişte gidiyor.

Ete

gogoce

ilginiz için teşekkür ederim . inceleyip uygulamaya başlayacağım
Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

gogoce

Herkese hayırlı kandiller dilerim
Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

gogoce

arci arkadaşımın verdiği programı denedim fakat aşağıdaki gibi bir görüntü oluştu. 2 panel 2 kablo denedim problem düzelmedi. RD0-rd1 portlarını A-B adresleri olarak ayarlamıştım RB1-RB2 olarak da değiştirdim düzelmedi.
Kablo ucundan 18f46k20 nin portuna kadar kabloyu takip edebiliyorum kabloda kopuk yok. Sanırım kafamı karıştıran bu problem oldu adreslere göre istediğim ledi yakamamıştım :(

Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

ete

Değişkenlerin diziliş sırası sütun isismlerine göre aşağıdaki gibi olmalı.
[Sut11, Sut12, Sut13, Sut14, Sut21, Sut22, Sut23, Sut24, Sut31, Sut32, Sut33, Sut34, Sut41, Sut42, Sut43, Sut44]
Bu sıralamaya bakarak Yan yana gelerek 32 ledden oluşan sıraları oluşturan ledlerin kontrolü için hangi değişkenlere değer verilecek ve buna karşılık hangi çıkış aktif edilecek onuda teker yazıyorum.

SUT11 - SUT21 - SUT31 - SUT41 değişkenleri en üstte yer alan 4 sıraya ait olup her bir sıranın seçimi için sırası ile OUT-1, OUT-2, OUT-5 ve OUT-6 Seçilmelidir.

SUT12 - SUT22 - SUT32 - SUT42 değişkenleri ise sonrasında gelen 4 sıraya ait olup her bir sıranın seçimi için OUT-3, OUT-4, OUT-7 ve OUT-8 seçilmelidir.

SUT13 - SUT23 - SUT33 - SUT43 değişkenleri ise 9-12 ci sıraları kontrol ediyor ve her bir sıranın seçimi için OUT-1, OUT-2, OUT-5, OUT-6 seçilmelidir.

SUT14 - SUT24 - SUT34 - SUT44 değişkenleri ise 13-16 cı sıraları kontrol ediyor ve her bir sıranın seçimi için OUT-3, OUT-4, OUT-7 ve OUT-8 seçilmelidir.

Mesela en süt sıradaki ledler kontrol edilirken. yanlızca  SUT11 - SUT21 - SUT31 - SUT41 değişkenlerine değer yazılır ve out-1 aktif edilir.

İkinci sıradaki ledlere bir şey yazılır ise , yanlızca SUT11 - SUT21 - SUT31 - SUT41 değişkenlerine değer verilir ve OUT-2 aktif edilir.

Üçüncü sıradaki ledlere bir şey yazılır ise SUT12 - SUT22 - SUT32 - SUT42 değişkenlerine değer verilir ve OUT-3 aktif edilir.

Dördüncü sıradaki ledlere bir şey yazılır ise SUT12 - SUT22 - SUT32 - SUT42 değişkenlerine değer verilir ve OUT-4 aktif ediir.

Beşinci sıradaki ledlere bir şey yazılır ise SUT11 - SUT21 - SUT31 - SUT41 değişkenlerine değer yazılır ve OUT-5 aktif edilir.

Altıncı sıradaki ledlere bir şey yazılırsa SUT11 - SUT21 - SUT31 - SUT41 değişkenlerine değer yazılır ve OUT-6 aktif edilir.

Yedinci sıradaki ledlere birşey yazılırsa SUT12 - SUT22 - SUT32 - SUT42 değişkenlerine değer yazılır ve OUT-7 aktif edilir.

Sekizinci sıradak ledlere bir şey yazılır ise SUT12 - SUT22 - SUT32 - SUT42 değişkenlerine değer yazılır be OUT-8 aktif edilir.

Şimdi her şey yeterince açık sanırım.

Ete

gogoce

Alıntı yapılan: ete - 11 Mart 2021, 11:08:50Değişkenlerin diziliş sırası sütun isismlerine göre aşağıdaki gibi olmalı.
[Sut11, Sut12, Sut13, Sut14, Sut21, Sut22, Sut23, Sut24, Sut31, Sut32, Sut33, Sut34, Sut41, Sut42, Sut43, Sut44]
Bu sıralamaya bakarak Yan yana gelerek 32 ledden oluşan sıraları oluşturan ledlerin kontrolü için hangi değişkenlere değer verilecek ve buna karşılık hangi çıkış aktif edilecek onuda teker yazıyorum.

SUT11 - SUT21 - SUT31 - SUT41 değişkenleri en üstte yer alan 4 sıraya ait olup her bir sıranın seçimi için sırası ile OUT-1, OUT-2, OUT-5 ve OUT-6 Seçilmelidir.

SUT12 - SUT22 - SUT32 - SUT42 değişkenleri ise sonrasında gelen 4 sıraya ait olup her bir sıranın seçimi için OUT-3, OUT-4, OUT-7 ve OUT-8 seçilmelidir.

SUT13 - SUT23 - SUT33 - SUT43 değişkenleri ise 9-12 ci sıraları kontrol ediyor ve her bir sıranın seçimi için OUT-1, OUT-2, OUT-5, OUT-6 seçilmelidir.

SUT14 - SUT24 - SUT34 - SUT44 değişkenleri ise 13-16 cı sıraları kontrol ediyor ve her bir sıranın seçimi için OUT-3, OUT-4, OUT-7 ve OUT-8 seçilmelidir.

Mesela en süt sıradaki ledler kontrol edilirken. yanlızca  SUT11 - SUT21 - SUT31 - SUT41 değişkenlerine değer yazılır ve out-1 aktif edilir.

İkinci sıradaki ledlere bir şey yazılır ise , yanlızca SUT11 - SUT21 - SUT31 - SUT41 değişkenlerine değer verilir ve OUT-2 aktif edilir.

Üçüncü sıradaki ledlere bir şey yazılır ise SUT12 - SUT22 - SUT32 - SUT42 değişkenlerine değer verilir ve OUT-3 aktif edilir.

Dördüncü sıradaki ledlere bir şey yazılır ise SUT12 - SUT22 - SUT32 - SUT42 değişkenlerine değer verilir ve OUT-4 aktif ediir.

Beşinci sıradaki ledlere bir şey yazılır ise SUT11 - SUT21 - SUT31 - SUT41 değişkenlerine değer yazılır ve OUT-5 aktif edilir.

Altıncı sıradaki ledlere bir şey yazılırsa SUT11 - SUT21 - SUT31 - SUT41 değişkenlerine değer yazılır ve OUT-6 aktif edilir.

Yedinci sıradaki ledlere birşey yazılırsa SUT12 - SUT22 - SUT32 - SUT42 değişkenlerine değer yazılır ve OUT-7 aktif edilir.

Sekizinci sıradak ledlere bir şey yazılır ise SUT12 - SUT22 - SUT32 - SUT42 değişkenlerine değer yazılır be OUT-8 aktif edilir.

Şimdi her şey yeterince açık sanırım.

Ete

cevap için teşekkürler hocam testlere başlıyorum
Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

aRci

Alıntı yapılan: ete - 10 Mart 2021, 16:45:37Hangi bilginin nereye gittiğini anlamanın en güzel yolu aslında şemaya bakmaktır.
Şemayı göz önüne getirirseniz her biri yan yana dizilmiş 8 er led den oluşan 4 adet sütün olduğunu görürsünüz. Dolayısıyla bir satırdaki led sayısı 32 oluyor.
16 adet de satır var led sırası olarak. Ancak bunların 4 er sırası tek bir 74HC595 e bağlanmış.
Bu nedenle sütunda yer alan her 4 sırayı bir 595 kontrol ediyor. Toplam 16 sıra olunca elbette 595 sayısıda yukarıdan aşağı 4 adet oluyor.
Yukarıdan aşağıda sütunlarda yer alan 595 ler  bir birbirlerine seri bağlı . Her bir sütunda yanındaki sütuna seri bağlı. Böylece toplamda 16 adet 595 bir birine seri bağlı oluyor. Bu nedenle karekter oluştururken 16 adet 595 e bilgi yazman gerekiyor. Bunu sağlayan komut dizisi
-SHIFTOUT ....[Sutun1-1, Sütu1-2, Sütun1-3, Sütun1-4,  Sütun 2-1, Sütun2-2, Sütun2-3, Sütun2-4, Sütun 3-1, Sütun 3-2,Sütun 3-3,Sütun 3-4, Sütun 4-1, Sütun 4-2, Sütun 4-3,Sütun 4-4]
Bu komut dizisinde aslında kim nereye gidiyor belli oluyor. En üstteki 32 ledlik satırı oluşturacak olan değişkenler Sütun1-1,Sütun2-1,Sütun3-1,Sütun4-1 oluyor.
İkinci sırayı oluşturacak bilgi yine aynı değişeknlere veriliyor ama ikinci satır aktif ediliyor 74138 den. Çünki her bir 74HC595 şemaya bakılırsa 4 satırı kontrol ediyor. Bu demektirki 4 satıra kadar olan bilgi aynı değişkenlere verilecek ama satır aktive edilerek bilginin 1-4 satır arasında yer alması sağlanacak demektir.

Sütun1-2 , Sütun2-2 , Sütun3-2, Sütun4-2 isimli değişkenler ise 5.ci satır ile 8. ci satır değişkenleri olarak çalışıyor.

Sütun 1-3, Sütun 2-3, Sütun3-3, Sütun4-3 isimli değişkenler ise 9. satır ile 12. satırları oluşturuyor.

Sütun1-4, Sütun2-4, Sütun3-4, Sütun4-4 isimli değişkenler ise 13-16 nolu satırları oluşturuyor.
Değişkenlere isim verirken Sutun11 Sütun12, Sütun13 gibi isimler verirsen kimin nereye gideceğini kolaylıkla anlayabilirsin.
ELimizde 8x8 matrix oluşturan aşağıdaki harf datası olduğunu varsayalım.
sütun11 = 220
Sütun11 = 221
Sütun11 = 222
Sütun11 = 223
Sütun12 = 224
Sütun12 = 225
Sütun12 = 226
Sütun12 = 227
Bu datalara dikkat edersen ilk 4 sıra Sütun11 değişkeni tarafından verilmesi gerekiyor.
Kalan 4 sıra ise Sütun12 değişkeni tarafında verilecek. Buda şöyle olacak,

ABC=%000  buda 74138 e verilecek satır seçme bilgisi olacak. OUT-1 seçilmiş oldu.
Shiftout .....[220,.....geri kalan 15 bilgi buraya yazılacak]
Pulsout Kilit,1 komutu ile bütün bilgi çıkışa verilmiş olacak.
1 ms beklenecek

ABC=%001 ,.......OUT-2 seçilmiş oldu.
Shiftout ......[221,.....]
Pulsout Kilit,1
1 ms bekle

ABC=%100,...........OUT-5 seçilmiş oldu.
Shiftout.......[222,.....]
Pulsout Kilit,1
1 ms bekle

ABC=%101 ,...........OUT-6 seçilmiş oldu
Shiftout .....[223,.........]
Pulsout Kilit,1
1 ms bekle

ABC=%010,............OUT-3 seçilmiş oldu
Shiftout ......[223,224.............] bu satırdan itibaren ikinci 5.ci sıraya geçiyoruz
Pulsout kilit,1
1 ms bekle

ABC=%011,............OUT-4 seçilmiş oldu
Shiftout.......[223,225..........]
Pulsout kilit,1
1 ms bekle

ABC=%110,............OUT-7 seçilmiş oldu
Shiftout .......[223,226...........]
Pulsout Kilit,1
1 ms Bekle

ABC=%111,............OUT-8 seçilmiş oldu
Shiftout ......[223,227........]
Pulsout Kİlit,1
1ms bekle

buraya kadar 8x8 matrixden oluşan bir harfi ilk sütunda ve 8 satırlık üst kısımda yaratmış olduk.
Hemen komut daki ..... ile gösterilen diğer değişkenlere ne değer verilecek diye sorabilirsiniz.
Dikkat ederseniz ilk 8x8 matix için komut sırasındaki 2 değişken etkili oldu. Sonrasında gelen 2 değişken ise alttaki 8x8 matirxi oluşturur. Sonraki 2 değişken ikinci sütun dakiilk 8x8 matrixi oluşturur. Bu şekilde sıra ile devam eder gider.
Elbette bir şekil yada karekter oluştururken yanlızca 8x8 matrix düşünülmez. 16x32 olarak düşünüp bütün değişkenlere uygun değerler verilmelidir.

Umarım şimdi anlaşılmıştır.

not: yinede atladığım bir şey varmış Şemaya dikkatli bakınca anladım. 74HC138 çıkışları sıralı gitmiyor.
Dedikki her bir 595 , 4 adet led sırasını kontrol ediyor. Bu sıraların ortak uçları ise sıralı gitmiyormuş.
Karmaşık bağlantı iyice karmaşık olmuş ama dikkatlice takip edilirse sorun çıkmaz.
Bu kısmı yeniden açıklayayım.
ilk 595 in çıkışı 4 adet 8'erli ledi kontrol ediyor. Birinci sıranın ortak uçları OUT-1 e bağlı, İkinci sıranınki OUT-2 ye bağlı , işte terslik burada başlıyor, 3. cü sıranınki OUT-5'e bağlı ve 4. sıranınki ise OUT-6 ya bağlı. Ben yukarıdaki açıklamamda bunları Out-1, OUT-2,OUT-3,OUT-4 diye sıralamıştım.Ama şu anda o kısmı düzelttim.
Bir sonraki 595 in çıkışları ortak uçlar ise  OUT-3, OUT-4, OUT-7, OUT-8 şeklinde bağlı. Ondan sonrası tekrarlayarak aynı dizilişte gidiyor.

Ete

Merhaba.
p10 panelde aslında 74HC138 adres pininin 1 tanesi sabit o sebeple panelde adresleme 2 pin üzerinden yapılması gerekiyor. anlatımınızda 8 satır tek tek sürülürken aslında 2 ser 2 ser sürülmesi gerekiyor.
örnek üzerinden gidersek...
sütun11 = 220
Sütun12 = 221
Sütun21 = 222
Sütun22 = 223
Sütun31 = 224
Sütun32 = 225
Sütun41 = 226
Sütun42 = 227
Burdaki değerler 8x8 matrix olarak düşünüldüğünde yukarında aşağı 4 grup olduğunu düşünmeliyiz. yukarıdan aşşağı 1 den 8 e kadar olan satırların
AB = 0 adresi secildiğinde 1. ve 4. satırı
AB = 1 adresi secildiğinde 2. ve 5. satırı
AB = 2 adresi secildiğinde 3. ve 6. satırı
AB = 3 adresi secildiğinde 4. ve 7. satırı

seçiliyor bu durumda değişkenlerin sıralaması bu şekilde yapılmalıdır.

AB = 0 '%00
Shiftout ......[Sutun11,Sutun12,...]

AB = 0 '%01
Shiftout ......[Sutun21,Sutun22,...]

AB = 0 '%10
Shiftout ......[Sutun31,Sutun32,...]

AB = 0 '%11
Shiftout ......[Sutun41,Sutun42,...]





ete

Çok haklısın. Gören iki göz bir gözden daima daha iyidir diye boşuna dememişler.
Gerek benim şemaya gerekse Gogoce nin çizdiği şemaya bakınca paneli yapanların biraz daha akıllıca davranıp her bir çıkış ile iki mosfet sürmüşler. Bunda mosfetlerin tek kılıfta iki mosfeti barındırması etkin rol oynamış anlaşılan.
Ama yazdıklarına bakınca;
satırların
AB = 0 adresi secildiğinde 1. ve 4. satırı
AB = 1 adresi secildiğinde 2. ve 5. satırı
AB = 2 adresi secildiğinde 3. ve 6. satırı
AB = 3 adresi secildiğinde 4. ve 7. satırı
Sende hata yapmışsın. Zira seçim şekli şöyle,
satırların
AB = 0 adresi secildiğinde 1. ve 3. satırı
AB = 1 adresi secildiğinde 2. ve 4. satırı
AB = 2 adresi secildiğinde 5. ve 7. satırı
AB = 3 adresi secildiğinde 6. ve 8. satırı
Çabalaya çabalaya işin doğrusunu buluyoruz sanırım.
Aslında 74138 den çıkan 4 uç var böylece bu 4 ucu ayrı ayrı seçmek için yanlızca 2 pin kullanılabilir. Zira ;
%00 ile OUT-1  ,  P10 panelde 1 ve 3 nolu satırları aktif ediyor.
%01 ile OUT-2  ,  P10 panelde 2 ve 4 nolu satırları aktif ediyor.
%10 ile OUT-3  ,  P10 panelde 5 ve 7 nolu satırları aktif ediyor.
%11 ile OUT-4  ,  P10 panelde 6 ve 8 nolu satırları aktif ediyor.
seçilmiş oluyor bu nedenle 74138 in C girişini sabit GND ye (LOW verilmiş) bağlanmış.
Şemaya daha dikkatli bakmak gerekiyor demekki. Her neyse umarım bir başka hatamız yoktur.
Bu durumda ben yazdığım mesajları bu son duruma göre düzelteceğim yeniden.

Ete



aRci

hata yapmadan bitirmek yada batmadan cıkmak olursa işin eğlencesi kalmaz. Bu şekilde panelde 8x8 şeklinde harfleri oturtabiliyorum ama harfler kalıp şeklinde hep aynı yerde kalıyor aslında benim istediğim bir kordinat sistemi şeklinde hareket edebilmek biraz daha deneme ile tam olarak düzeni anladığımda yapmaya başlıyacağım. bir formül ve döngülerle yapılabileceğini düşünmekteyim.
zor olan kısım ise 1 değişkene karekterin yarısı diğer değişkene diğer yarısının aktarılması tabi unuda formul ile yapabilmek gerekli.

gogoce

nöbetim nedeniyle ilgilenemiyorum en kısa zamanda tekrar testlere başlayacağım
Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

gogoce

Tekrar merhaba, işlemcimin P10_A pinindeki problemden dolayı satır seçiminde problem oluyordu görüntü tam olarak çıkmıyordu.
Giderdikten sonra arci arkadaşımın programını deneyerek panelin ve bağlantılarımın sağlamlığından emin oldum

Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

Powered by EzPortal