Pic ile led animasyonu yapmak istiyorum. Yardım lütfen

Başlatan behlul, 18 Nisan 2008, 10:43:22

behlul

Pic ile sıralı yanan led yapmak istiyorum.  1. led yanacak yanık kalacak 2. led yanacak yanık kalacak 3. yanacak yanık kalacak bu şekiilde sekiz led yanacak. sonra ledlerin hepsi parlaklığı azalarak sönecek.  tekrar parlaklığı artarak yanacak.  pic basic pro ile yazılacak. yardımcı olursanız sevinirim  .

M_B

mrb aramıza hos geldın.
forumda bolca Picbasıc ile alakalı uygulamalar var. forumda arama yapmanı onerırım.  
Kolay gelsın.
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

mucitotomasyon

hani demsin parlaklıgı degisreşek yanacak
yapılır ama
oncelikle
kendinebu işi yapan donanımı kurmanlazım

iyonosfer

arkadaşların dediği gibi öncelikle donanım dizaynını halletmen gerek. Ledleri transistörle sürersen iyi olur. pwm sinyali oluşturarak parlaklıklarını ayarlayabilirsin. Sen başla yavaş yav çalışmalara takıldığın yerde destek oluruz.
Blog Sayfam: www.teknobakis.com

ete

Sana ben yardımcı olayım. Tabiiki yol göstererek yardımcı olmaya çalışacağım.
Önce hemen belirteyim. Ledlerin sıralı yanması isteğinle ilgili olarak, ledlerin arada bir sönmesi tekrar yanması hiç sorun değil. Tamamen programda vereceğin senaryo ya bağlı olarak ledler istediğin şekilde yanıp sönebilirler. Ancaak yavaş yavaş parlaklıklarını değiştireyim dedinmi iş zora giriyor demektir. Normal olarak her led için bir PWM sinyali üretmen gerekebilir. Bu ise hem programlama açısından hemde picin imkanları açısından gerçekten zor bir iş.
Akılma şöyle bir yol geldi. Led leri pic pinlerine bağlamış olsak. Bu durumda Led ler + beslemelerini pic pinlerinden alacak. Ledlerin GND bağlantılarını ortak yapıp bunuda pic den alacağımız 1 adet PWM sinyaline bağlasak ledlerin hepsi birden parlar hepsi birden yavaş yavaş sönebilir.
Anladığım kadarı ile istediğinde böyle bir şey.
Sakın ola her bir led ayrı parlayacak yada sönecek deyip böyle bir istekte bulunma çünki gerçekten zor bir iş. Biliyorsan kendin yap derim yalnızca.
Diğer meseleye gelince,

1 adet 16F628 kullan. HPWM seçeneğini aktif hale getir. Bu PWM çıkışını bir NPN transistöre gir ve transistörün çıkışını ledlerin ortak GND lerine bağla.
Ledlerin diğer uçlarını pic pinlerine bağla. Bu pinleri çıkış olarak ayarla.
Sonra yakmak istediğin pin için HIGH PIN yada PIN=1 şeklinde komut kullan. Söndürmek istediğin zaman ise LOW PIN yada PIN=0 komutunu kullan.
Parlaklıkla oynamak için ise PWM sinyalini ilk açılışta %100 duty olarak ver.
Parlaklığı azaltmak için bir döngü içinde yavaş yavaş duty değerini sıfıra kadar çek. Hepsi bu kadar.

Kolay Gelsin.
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

behlul

@ DEVICE PIC16F628 
@ DEVICE PIC16F628, WDT_off 
@ DEVICE PIC16F628, MCLR_OFF 
@ DEVICE PIC16F628, INTRC_OSC 

CMCON=7 
Trisb=%00000000 
duty var byte 

basla:
portb=%00000001
pause 500
portb=%00000011
pause 500
portb=%00000111
pause 500
portb=%00001000
goto sondur

sondur: 
FOR DUTY=255 to 0 step -1 
pwm porta.o, duty, 100
gosub sondur 
next 
if duty=0 then goto yak
end if

yak:
FOR DUTY=0 to 255 
pwm porta.o, duty, 100
NEXT 
GOTO BASLA 


END


bu şekilde programı yazsam ve en son parlaklık için tüm ledleri  4 bacağa bağlasam olur mu acaba ? yardımlarınız için teşekkürler.

MOD NOTU: CODE TAGI KULLANINIZ.

ete

Öncelikle tavsiye olarak söylüyorum. Benim hazırladığım Pic Basic Pro derslerinin bu forumda bulabilirsin. 11. ders PWM konusu  ile ilgilidir. Dersleri okursan oradan bir şeyler çıkartabilirsin.
Basit çözüm olarak aşağıdakini denemeni öneririm.
Öncelikle A portunu kullanmadığın için, PortA.0 pininden PWM sinyali çıkartalım derim. Buna uygun olarakda aşağıdaki değişikliği yap ve bir dene istersen.

sondur:
pwm  
FOR DUTY=255 to 0 step -1
 pwm porta.0,duty,100
next
Yak:
FOR DUTY=0 to 255
  pwm porta.0,duty,100
NEXT
GOTO BASLA


Kolay Gelsin
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

behlul

denedim ama arkadaşlar yapamadım bir türlü pwm yi  
ledleri yakıyorum onda sorun yok . a.o portundaki ledin parlaklığını yavaş yavaş arttırıpp azaltamadım .  ilginize teşekkürler.

behlul

tamamdır. bilgileriniz için telşekkürler. şu an yaptım çalışıyor. hepinize teşekkür ederim