Pic ile Yavaş Yavaş Işık Şiddeti Artarak Yanan Bir Led Devresi?

youngman_2

Üye
Katılım
27 Nis 2009
Mesajlar
120
Puanları
1
selamun aleykum arkadaslar
16f84a kullanarak 13 ledli bir devre yapacagım. ama ledlerin ışık şiddeti agır agır artacak bunu nasıl yapabilirim yardımlarınız için şimdiden tesekkur ederım
 
Paralel Dac Devreleri var Picin cıkısını Dacın Paralel Data girişine baglıyıp bu baglantıya Deger veriyorsun Dac ta cıkısını degere gore ayarlıyor..
Paralel Dac kullanıcaksan Picin baska bir portunuda onluk decodere baglayıp Decoder cıkıslarını Chip select olarak kullanabilirsin
Boylece 1den fazla DAC data gondermis olursun

ayrıca 2 hatlı ve 3 hatlı seri haberlesen Daclarda var
2 hatlı olanlarda Adresleme yapılan pinler var . 3 hatlı olanlardada Chip Select Ucu var
MAX519 DACI 16 adet MAX519 cihazı baglatısı yapabiliyorsun ayrıca herdacın 2 dac cıkısı var yani toplamda 32 Dac cıkısı alabilirsin
Ben Similasyonda bu ornekte 2 dac kullandım

1 dac adresi 0 Pinler (A0,A1,A2,A3 = gnd )
2 dac adresi 16 PİNLER (A0,A1,A2,A3 = +5V)



2 hatlı seri DAC 'ın kodları assagıdaki gibi


Include "proton_4.inc"

Dim DacVal As Byte
Dim DACAddress As Byte
Dim DACCommand As Byte

DACCommand = 0
DACAddress=%1000000 ' 1 dac
'DACAddress =%1000010 ' 2 dac
'DACAddress =%1000100 ' 3 dac
'DACAddress =%1000110 ' 4 dac
'DACAddress =%1001000 ' 5 dac
'DACAddress =%1001010 ' 6 dac
'DACAddress =%1001100 ' 7 dac
'DACAddress =%1001110 ' 8 dac
'DACAddress =%1010000 ' 9 dac
'DACAddress =%1010010 ' 10 dac
'DACAddress =%1010100 ' 11 dac
'DACAddress =%1010110 ' 12 dac
'DACAddress =%1011000 ' 13 dac
'DACAddress =%1011010 ' 14 dac
'DACAddress =%1011100 ' 15 dac
'DACAddress =%1011110 ' 16 dac
' her dac ta 2 cıkıs var yani 32 cıkıs eder
'Dacların 1ci cıkısı DACCommand = 0 yaparak
'Dacların 2ci cıkısı DACCommand = 1 yaparak
'kullanılır
' Bir adrese komut gonderilince ve bu adres sistemde yoksa
' Porteusra Command error olusuyor...


start:

For DacVal = 0 To 255
BusOut DACAddress,DACCommand,[DacVal]
DelayMS 10
Next

GoTo start
 
PWM lede olur fakat Pic icerisindeki komutlar tek tek işlediginden PWM cıkısı veren uclarında surekli cıkıs vermesi gerektiginden
13 bacagada Software olarak PWM yapınca tam duzgun calısmayabilir. 13 cıkısılı bir pwm yapıp Denemedigim icin kesin konusmuyorum ama iyi olmaz diye dusunuyorum...
DAC daha mantıklı
 
dac olayına kafam yattı bununla yapmaya karar verdim proton pek bilimyorum genelde microcode yazıyorum basic rogramlarımı ama cok sorun olmaz sanırım sagolsın sn serkank
 
Peki mikrocode da yazdıgın basic programı Proteusta debug edebiliyormusun ? debug yapılabiliyorsa nasıl yapılır ?
 
peki pwm ile nasıl yapılır mantıgı nasıl

Hangi PWM çıkışını aktif etmişsen (ben 1. PWM çıkışını ele aldım)


for(i=0;i<255;i++)
{
set_pwm1_duty(i);
delay_ms(10); // 10 ms aralıklarla değeri değişecek ve toplamda 2,5 sn de yanmış olacak. Bu değeri (ms cinsinden zaman/255) şeklinde istediğin gibi ayarlayabilirsin.
}

aktif hale getirmek için de setup_ccp1 (CCP_PWM), kapatmak için ise setup_ccp1 (CCP_OFF) komutlarını kullanabilirsin. Daha detaylı bilgiyi de CCS yardım dosyalarından erişebilirsin.
 
software olrak pwm aslanlr gibi çalışıyor denemiştim 16 kanal ile başka bir 16seride.sadece 20 mhz xtal kullanın.


ayrıca dac kullansanda çıkışında direk voltaj alamazsın opampa girmen gerekir.13 adet dac + 13 adet opamp yazık günah 13 led için.

geleceğe dönüş filminde çılgın profesörün yaptığı ilk buzdolabı gibi kocaman salon kadar.ucundan küçücük buz çıkıyodu.buda o misal 13 led için.

R2R networkü diye bişeyden haberiniz yokmu aarkadaşlar.
 

Forum istatistikleri

Konular
128,220
Mesajlar
915,906
Kullanıcılar
450,007
Son üye
harunppp

Yeni konular

Çevrimiçi üyeler

Geri
Üst