Teknomerkez
TR EN ES
Konular

Akan Işık - PIC16F84 ile JAL programlı

Yazar: Mehmet Yılmaz
Tarih: 27.04.2008
Türkçe

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

KEMAL CAN - 14.10.2008
tşk emeğinize sağlık
muhammet - 19.11.2008
ben muhammet tokatlıyım ben PIC16F84 entegreyi bulamadım istetiyorum gelmiyoo onun yerine kullana bilecegim entegre yokmu???

Bir yorum ekleyin

İsim:
E-posta:
Yorumunuz:
Güvenlik Kodu:
 
Tüm alanları doldurmak zorunludur. Yorumunuz kontrol edilince yayınlanacaktır. E-posta adresi yayınlanmaz.
İzin verilen html etiketler (tag): <p><div><b><strong><i><u><del><hr><sup><sub><br>