RGB saat

Başlatan efor, 18 Mart 2012, 18:55:58

acdc


include "modedefs.bas"

define osc 20

x var byte
z var byte

data1 var byte(16)
address var byte
fade var byte(16)
wor var word(12)


SCLK var portd.0
XLAT var portd.1
SER var portd.2
BLANK var portd.3
GSCLK var portc.4
VPRG var portc.5


gosub dc_correct


main:


gosub setGreys
gosub feedports


high porta.1   ' this is just to flash an LED so I know the chip is running.
pause 1000
low porta.1
pause 1000


goto main



'---------------------------------------------------------

'DOT CORRECTION...do once
dc_correct:

'  //Input ÒDotCorrexÓ Data
'  //16 outputs, 64 posssible levels of adjustment, 6 bits/chan = 96 bits total
'  //[use if any LEDs in array are physically too bright]

'high DCPRG
    HIGH VPRG

    HIGH BLANK
    LOW SER
    LOW XLAT

    For z = 0 to 15
      for x = 0 to 5
        HIGH Ser
        gosub pulseSCLK
        LOW SER
      next x
    next z

'----doing the FIRST GREYSCALE SETTING here becuz of the unique 193rd clock pulse

    high xlat
    low xlat
    low VPRG

    for z = 0 to 15
        data1 = 4095

        for x = 0 to 11
            shiftout Ser, sclk, 1, [data1]
        next x
    next z

    high xlat
    low xlat
    gosub pulsesclk
    low blank

return

setGreys:
    for z = 0 to 15
        data1 = fade(z)
       
        for x = 0 to 11
          wor
  • =data1
            next x
           
            for x = 0 to 11
                shiftout ser, sclk, 1, (wor[j]) 
            next x
        next z
           
           
        high xlat
        low xlat 

    return


    feedports:
        high blank
        low blank

        for z = 0 to 4095
            gosub pulsegsclk
        next z
    return


    pulseSCLK:
        HIGH SCLK
        LOW SCLK
    return     

    pulseGSCLK:
        low SCLK
        low XLAT
        low SER
        low BLANK
        high GSCLK
        low VPRG
        high GSCLK
    return 


    entegreler daha elime gelmedigi için ben kod yazmadım ama basic orneginde adam shiftout la sürmüş .4096 kadar 10 bit verebiliyor bildigim kadarıyla.

efor

bu entegreleredemı program atılıyor?   eger az öncekı gönderdıgınız kodlar işlemcide işlenecekte bahsettiginiz entegreye gönderilecekse işimize yaramaz diye düşünüyorum. Erol hocam sizin görüşünüz nedir bu entegre hakkında ?

acdc

hayır, yine işlemciden hangi kanaldan hangi pwm degerini işleyecegini siz belirtmek zorunda kalacaksınız.

efor

kullanacagımız işlemciyi saat okuma sıcaklık okuma. sanıye ledleri için bilgi gönderme. animasyon yaptırma gibi işlemler olacagından birde bukadar komut işletmek çeşitli sorunlar çıkaracaktır dıye düşünüyorum. öneriniz için sagolun.

ete

TLC5940 enteresan bir entegre. 16 kanal PWM için ne gerekiyor ise üzerinde olduğunu düşünüyorum.
Gözünde de fazla büyütme bir shiftout komutu ile toplam 16 x 12 bitlik bir bilgi entegreye verilerek PWM ayarı yapılabilmekte.
Başlangıçta dot correction denilen ve anladığım kadarı ile her kanalın maksimum parlaklık ayarını bir kereliğine yapman gerekiyor. Bunada 0-4096 arasında bir değer vererek bunu yapıyorsun. Örnek programda adam buna 4095 vermiş mesela.
Sonrasında iş zor değil. Belkide bizim sistemde yalnızca 6 kanal kullanıalcağı için toplam 6*12bit üzerinden işlem yapılacaktır.
Çok fazla yük getireceğini sanmıyorum. Ama hiç tanımadığım bir entegre biraz üzerinde çalışıp denemeler yaparak öğrenmek gerekir diye düşünüyorum. SOnuç olarak entegre bizim ihtiyacımızdan fazlasını içeriyor. Ama işimizi görür diye düşünüyorum.
Kafamda açık kalan konular şunlar. Bir PWM sinyalinin bir frekansı vardır. Bu frekans sabitmidir bu alette . Led için düşünüldüğüne göre sabit bir değer olması gerek herhalde. Sen verdiğin bilgilerle her bir kanalın duty değerini ayarlıyorsun yalnızca (12 bit olarak) . Alete her hangi bir osc için eleman bağlanmıyor.
Her neyse data sheet de öyle bir kerede okunup anlaşılacak cinsten değil. Ne yazıkki bu tür aletlerde data sheetler amatörlerin anlayacağı dilden yazılmıyor. Daha detaylı bir açıklama olsa daha iyi olurdu. Dediğim gibi anlamak için üzerinde çalışmak lazım.

Ete

efor

hocam arkadaşın gönderigi örnek program uzunlugu kafamı karıştırdı. eger bahsettiginiz gibi işlemciyi yoracak cinsten değilse bunu uygulayabiliriz. picprojelerde bu entegreyi bilen arkadaslara sorayım bakalım kullanan birileri vardır belki.

efor

#36
hocam işlemcıyı mesgul edecek türden değilmiş bu eleman. nedersiniz? sizin inceleme fırsatınız olurmu alıp size göndersem? yeni bir elemanla tanısmısta oluruz aslında. yapabilirmiyiz?

efor

Erol hocam hangisiyle başlıyoruz ? bugun sıparısı verecem. yurt dısından gec geliyor birde onu bekleyecegiz.

ete

Bence hangisi ile başlayalım demek yersiz. Önce TLC yi bir denemek sonrada diğer işlemcileri denemek gerekir.
Kara senin yola sen çıktın . Ben sadece yardımcı olacağım.
Bana kalırsa TLC yi bir denemek gerek. Önceden. Denemek gerek derken istediğimiz formatta çalışıyorsa faydalanabileceğimiz bir entegre. Ama değilse mecburen bir işlemci kullanacağız. O zaman diğerlerine yönelmek gerekir.

Ete



efor

hocam bu entegreyı alıyım ve sızede göndereyim incelemeniz için  zamanınız olurmu ?

efor

TLC nın siparişini verdim hocam smd kılıf olarak ebaydan.

efor

hocam emtegreler gelene kadar boş zamanımda çizimdeki diger işlemleri yapsam iyi olacak.

saati besleme konusunda tam bir karara varamadık hocam.

saat ledlerinin cekecegı akımı hesaplayalım kabaca.

5mm rgb ledlerden oluşacak 7 segmentlerde her bir digitte 29 led var 4 digit + ortadakı sanıye ledleri  ile beraber 118  rgb led birbirine paralel olarak baglı.

Bir adet rgb ledin maksimum akımı yanı beyaz renk verebilmesi için 20mA den kabul edersek bir rengi, beyaz için 60mA yapar

saat için kullanılan ledlerin beyaz yandıgını dusunursek 60*118/1000 = 7.08 A yapar hocam.

Hesaptamı bir yanlıslık var dusuncelermdemı bir yanlıslık var sıstemdemı bir yanlıslık var hocam?

normalde 7 segmeti olustrmak için kullanılan ledlerin seri baglanark gerilim yuksek tutulr ve akım azaltılır. ama RGB ledlerde seri baglama yapamıyoruz malesef.

hocam sızın öneriniz nedır bu konuda? bukadar akım cok fazla daha sanıye için kullanılan 60 ledın akımını katmadık :)

ete

Ledleri paralel bağlarsan hesap doğru. Bu kadar yüksek akım çekileceği hiç aklıma gelmemişti doğrusu. Bana kalırsa ledler seri bağlanmalı. Başka çaresi yok . Bence RGB lerde seri bağlanabilir.

Ete

efor

nasıl baglayacagız hocam serı? bir tane ortak uc var sadece

efor

hocam baglantı hakkında hiçbir fikir yokmu?  yada başka bir yöntem ?

Powered by EzPortal