Akan Işık - PIC16F84 ile JAL programlı
Yılbaşı veya eğlence zamanlarında duvarlara veya ağaçlara yerleştirilen ve bakıldığı zaman akıyor şekilde görülen ışık gösterisi bu devre ile yapılabilir. Bu çalışma aslında 4017 ve 555 gibi dijital entegrelerle daha ucuza yapılabilecek olan bir devrenin JAL ve PIC ile yapılan uygulamasından ibarettir. Ayrıca PIC16F84 yerine PIC16F628 entegresi için tasarlanır ve dahili osilatör olarak programlanırsa kristal maliyeti de ortadan kalkar. Devrede kullanılan led sayısını uygun dizilimle artırarak çok daha uzun ışık çubuğu elde edilir.
Devrenin Çalışması ve Yapısı
Devreden beklenen görsel efektin oluşması için 3 tane led yeterlidir. Ledler programladığımız şekilde sırasıyla ışık yayacak ve bakıldığı zaman akıyormuş hissini verecek şekilde sık ve yan yana yerleştirilmesiyle oluşacak gösteri devrenin görüntü açısından beklenen sonucudur.
Devrede PIC 16F84 mikrokontrolör entegresi kullanılmıştır. Bu entegrenin RB0, RB1, RB2 uçları çıkış olarak tayin edilmiş ve ledleri sürmektedir. Yine devrede 4MHz kristal kullanılmıştır. Devre tasarlanırken en basit hali esas alınmış ve geliştirmeye açık olacak şekilde düşünülerek ledler transistörlerle sürülmüştür.
Devrenin programı JAL ile yapılmış belki de en basit program uygulamasıdır. PORTB'ye değer atanıyor ve bekleme yapılıyor. Beklemenin süresi testlerde 100 milisaniye olarak denenmiştir. Ama devrenin çalışması anında en güzel ışık akışı görüntüsünün 70 milisaniye değerinde olduğu görülmüştür.
İki tip görüntü düşünülerek program yapılmıştır. Birincisinde 3 sıralı ledlerde 1 led yanacak 2 led sönecek ve sıra ile işlem devam edecek. Bu çalışma şekli esas alınmıştır. Bunun için program kodları şöyle:
-- =========================================== -- Proje: AKAN ISIK -- Mehmet YILMAZ mehmet@teknimer.com -- Baslangic: 26.04.2008 Bitis: 27.04.2008 -- Dosya: akan1.jal -- =========================================== include 16f84_4 include jlib -- === PORTLARIN YONLENDIRILMESI === pin_b0_direction = output pin_b1_direction = output pin_b2_direction = output -- === AYARLAMALAR === port_b = 0b00000000 -- === PROGRAM BASLANGICI === forever loop port_b = 0b00000001 delay_100ms -- 100ms bekle port_b = 0b00000010 delay_100ms -- 100ms bekle port_b = 0b00000100 delay_100ms -- 100ms bekle end loop -- === PROGRAM SONU ===
Bu uygulamaya ait JAL kaynak dosyasını indirmek için tıklayınız.
Bu uygulamaya ait HEX kaynak dosyasını indirmek için tıklayınız.
Diğer tip görüntüde ise 3 sıralı ledlerde 2 led yanacak 1 led sönecek ve sıra ile işlem devam edecek. Bu program kodları ise şöyledir.
-- =========================================== -- Proje: AKAN ISIK -- Mehmet YILMAZ mehmet@teknimer.com -- Baslangic: 26.04.2008 Bitis: 27.04.2008 -- Dosya: akan2.jal -- =========================================== include 16f84_4 include jlib -- === PORTLARIN YONLENDIRILMESI === pin_b0_direction = output pin_b1_direction = output pin_b2_direction = output -- === AYARLAMALAR === port_b = 0b00000000 -- === PROGRAM BASLANGICI === forever loop port_b = 0b00000011 delay_100ms -- 100ms bekle port_b = 0b00000110 delay_100ms -- 100ms bekle port_b = 0b00000101 delay_100ms -- 100ms bekle end loop -- === PROGRAM SONU ===
Bu uygulamaya ait JAL kaynak dosyasını indirmek için tıklayınız.
Bu uygulamaya ait HEX kaynak dosyasını indirmek için tıklayınız.
En beğendiğimiz görüntü olarak 70 milisaniyelik gecikme için kodlar ise şöyle:
-- =========================================== -- Proje: AKAN ISIK -- Mehmet YILMAZ mehmet@teknimer.com -- Baslangic: 26.04.2008 Bitis: 27.04.2008 -- Dosya: akan4.jal -- =========================================== include 16f84_4 include jlib -- === PORTLARIN YONLENDIRILMESI === pin_b0_direction = output pin_b1_direction = output pin_b2_direction = output -- === AYARLAMALAR === port_b = 0b00000000 -- === PROGRAM BASLANGICI === forever loop port_b = 0b00000001 delay_10ms( 7 ) -- 70ms bekle port_b = 0b00000010 delay_10ms( 7 ) -- 70ms bekle port_b = 0b00000100 delay_10ms( 7 ) -- 70ms bekle end loop -- === PROGRAM SONU ===
Bu programda 70 milisaniyenin elde edilişi için "delay_10ms( 7 )" komutu kullanılmıştır. Siz de bu komutu uygulayarak istediğiniz hızlarda akan ışık gösterisi yapabilirsiniz.
Ayrıca 50 milisaniyelik hız için gerekli JAL ve HEX programlarını sıkıştırılmış zipli dosya olarak indirmek için tıklayınız.
Devreye ait şema ve baskı devre çizimleri KiCad programı ile yapılmıştır.
Devrenin şeması:
Devre şemasını büyük görmek için tıklayınız.
Devre şemasını PDF dosya olarak indirmek için tıklayınız.
Malzeme Listesi:
U1: PIC16F84
Q1-Q3: BC547
XTAL1: 4MHz
C1, C2: 22pF
C3: 100nF
R1-R4: 10K
R5-R7: 1K
D1-D9: LED
Devreye ait baskı devre:
KiCad ile hazırlanmış devre çizim dosyalarını indirmek için tıklayınız.
Yerleştirilmeye hazırlanmış baskı devre
Montajı yapılarak tamamlanan ve çalışan devre
Akan ışık uygulama vidyosu:
Yorumlarınız
Bir yorum ekleyin
İzin verilen html etiketler (tag): <p><div><b><strong><i><u><del><hr><sup><sub><br>