Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

8x8 led denemesi.

Başlatan Eski Klasör, 17 Ekim 2013, 16:02:42

Eski Klasör

Arkadaşlar bayram tatilini fırsat bilip biraz pic ile uğraşayım dedim daha önce kullanmadığım ledlerle biraz bişiler yapmak istedim. Ancak internetteki videolardaki gibi bir görüntü alamadım. 74xx184 mü ne tam serilerini bilmiyorum kullanma mantığını bilmediğim icin kullanmadım elimde de yoktu zaten. Devrede BD243 kullandım

Bu şekilde bir devre kurdum.





Birkaç deneme yaptım.
8x8 led

https://www.youtube.com/watch?v=Mmc_adTfZkw

Son demememin kodları aşağıdadır nerede hata yapıyorum anlamadım süreyi azaltıyorum görüntü kötü oluyor en ideal aldığım görüntü bu şekilde.
Birde kayan yazı yada bu şekilde animasyon panolarının basit mantığını anlatabilirmisiniz her yerde genel ve teknik tabirler kullanılmış.

#include <18F46k22.h>
#device *=16
#fuses NOMCLR,INTRC,PLLEN,WDT256
#use delay(clock=64m,internal=16m,restart_wdt)

#use fast_io(a)
#use fast_io(b)

void main ()
{
   
   setup_timer_1(T1_DISABLED);     
   setup_timer_2(T2_DISABLED,0,1); 
   setup_adc_ports(NO_ANALOGS);    
   setup_adc(ADC_OFF);            
   setup_CCP1(CCP_OFF);            
   setup_CCP2(CCP_OFF);            


set_tris_a(0x00);  
output_a(0x00);     
set_tris_b(0x00);   
output_b(0x00);     


basla:              
output_a(0b10000000); 
output_b(0b11111111);
delay_ms(25);
output_a(0b01000000); 
output_b(0b00011000);
delay_ms(25);
output_a(0b00100000); 
output_b(0b00100100);
delay_ms(25);
output_a(0b00010000); 
output_b(0b11000011);
delay_ms(25);
output_a(0b00001000); 
output_b(0b11000011);
delay_ms(25);
output_a(0b00000100); 
output_b(0b00100100);
delay_ms(25);
output_a(0b00000010); 
output_b(0b00011000);
delay_ms(25);
output_a(0b00000001); 
output_b(0b11111111);
delay_ms(25);

goto basla;
}

RaMu


1>transistörlerin hepsi kesimde (pasif kapalı herneyse iletimde değil)
2>led portuna değer yükle
(bu aşağıdan yukarı sıralı 8 li led gruplarından ilk led sırasında hangi ledler yanacaksa
o değer olmalı- yani satır tarama yapıyoruz) -sende Q1 in bağlı olduğu led sırası-
3>transistörlerden sadece Q1 iletimde diğreleri kesimde şeklinde porta veri gönder
4>çok kısa süre bekle (en fazla 1 saniye / (25 x 8 )  niye ?
çünkü bütün sıraları 1 saniye içinde en az 25 defa taramalısın yoksa gözü aldatamazsın.

şimdi bu işlemi aynen 8 sıra transistörün hepsini tarayana kadar devam ediyorsun,

yani birsonraki adım ne olmalı örnek verirsek

5>transistörlerin hepsi kesimde (pasif kapalı herneyse iletimde değil)
6>led portuna değer yükle
(bu aşağıdan yukarı sıralı 2. led sırasında hangi ledler yanacaksa o değer olmalı -yani sadece ikinci satır aktif)
7>transistörlerden sadece Q2 iletimde diğerleri kesimde şeklinde porta veri gönder
8>çok kısa süre bekle (en fazla 1 saniye / (25 x 8 ) )   5 ms
.
.
.


Böyle 8 tane 4lü adımın olacak 8 sıra ledin herbiri için yani,
ve dikkat edersen bu 8 adımın tamamlanması saniyenin 25 de 1 inden daha kısa sürede olacak,
ancak bu şekilde kötüde olsa bir görüntü alırsın temel mantık bu şekilde.

Fakat yine dikkat edersen bu tarama işlemi esnasında
herbir led sırası ancak 8 de 1 süre boyunca yanık kalıyor ve 7/8 süresince sönük oluyor,
anlattığım şekliyle programını yazdıktan sonra
şimdi adım 4 deki bekleme süresini 50 mikrosaniyeye ye kadar düşür ve farkı gözle.

Eksik yanlış hatırladığım yazdığım şeyler olabilir, bir dene bakarız yine.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

acar

Tarama isini hallettikten sonra glcd font creator programini kurup incelemenizi tavsiye ederim.ancak ccs c yi bilemedigimden bu program ile olusturdugunuz karakter kodlarini yazdiginiz programa eklemeniz gerekiyor.