Elektronik / Mikrodenetleyici Projeleri/

Animasyonlu led reklam tabelası

Sponsorlu Bağlantılar

Arkadaşlar merhaba bu yazımda sizlerle temel ve basit yöntemler kullanılarak yapılan JAL dili ile yazılan LED reklam animasyonu projesini sunuyorum.

Günümüzde artan insan ihtiyaçları daha çok reklam gerektirmekte ve reklam tabelalarının düşük maliyetle daha çok dikkat çekilmesi istenmektedir.

Tamda bu noktada gelişen LED teknolojisi imdada yetişmektedir. Artık her renk tonunda renk LED bulunabilmektedir. İstenilen ebat ve şekilde hazırlanılan LED harfler direk yakılarak dikkat çekilmektedir. Fakat insanların hareket eden tonu değişen cisimlere ya da ışıklara ilgisinin daha çok olduğu bazı araştırmaların sonucudur. Buradan bu harflere çeşitli animasyonlarla şov yaptırılması ihtiyacı doğmuştur.

Bu animasyonu kolay ve ekonomik bir şekilde yapmak PIC ve çevresel elektronik kitlerle yapılabilmektedir.

LED harfler CNC ROUTER makinelerinde bilgisayar ortamında oluşturulup plastik mukavvalara delinerek yapılmaktadır ve bir çok yerde bu modellere örnek görebilirsiniz.

Harflerdeki LED dizilimi AUTO CAD gibi programlarla elle çizilebildiği gibi COREL DRAW çizim ve görüntüleme programı için bulunabilen LED_DRAW eklentisi ile CNC ROUTER ile uyumlu çizimleri otomatik oluşturulabilmektedir.
Peki Bunu eldeki imkanlarla yapmak mümkün mü diyecek olursanız elbette mümkün. Ama biraz uğraşmak gerekiyor.

Reklam yazısı ebatlarına uygun kontrplak ya da plastik mukavva LED aralıklarının belirlendiği çıktıları sabit aralıklarla yapıştırıp bu noktalardan 5mm kalınlığında matkap ucu ile delmek ilk kısmı. LEDler bu delikler Kutuplarının hepsi aynı yöne bakacak şekilde yerleştirilir. (ledleri harf egimine göre çevirmeyin Bu görsel nazı çirkinlikler oluşturuyor.) Ek proteus çiziminde gösterdiğim şekilde 5led seri Beşerli beşerli paralel bağlanıp harf oluşturulur.

Peki neden bu yolu kullandım. Ben bu devrenin testlerini yaklaşık on gün süre ile BC547 ile gerçekleştirdim sorunsuz bir şekilde çalıştı. Yüksek akımlı transistörlerin fiyatları malum. Tüm ledler sıra ile paralel de bağlanabilirdi ama o zaman çok akım çekecektir bu yüzden transistör ve besleme trafosu gücü ve meliyeti artacaktır. Ben 14 harf için 1000küsür led kullandım ve 3wlık bir trafo ile besledim BD241 ile sürdüm. 0.35tl yakınlarında irf 840 1.5tl. ile 2tl arasında. (karaköyde 0.3 0.4 tl ye bulabilirsiniz.)

Eğer harfteki LEDler 5erli şekilde denk gelmez ise son beşli hattı panonun arkasında beşe tamamlamak gerekmekte böylece panodaki tüm LEDler eşit şiddette yanacaktır. Hazırladığımız PIC programları çıkışları birer transistör (BD241(3A)ya da irf840(8A) n kanal mosfet) ile sürülerek her harf ayrı bir çıkışa sırası ile bağlanır. PIC sürücü devre 5V ile beslenirken LED harfler 12V ile beslenmelidir.

Projenin isis simülasyon ares pcb ve jal yazılımı dosyaları: Animasyonlu led reklam tabelası

Dosya indirme LINK listesi (TXT formatında) link-9221.zip şifre-pass: 320volt.com

İletişim: aytacdurgen@gmail.com
KOCAELİ ÜNİVERSİTESİ TEKNİK EĞİTİM FAKÜLTESİ

ELEKTRİK EĞİTİMİ BÖLÜMÜ.

Lisans 4.sınıf

BİLGİ PAYLAŞTIKÇA BÜYÜR. Bu çerçevede 320volt.com’a Teşekkürleri borç biliyoruz.

led-reklam-tabelasi-devre-ledler

Uygulamanın video görüntüleri

İsis devre şemaları

animasyon-tabela-isis-pic16f877-jal led-harf-olusumu

Uygulamanın JAL yazılımı


-- ===========================================
-- Proje: IŞIK ANİMASYONLU YAZI(BÜFE 180 LEDLİ)
-- AYTAC DURGEN
-- Baslangic: 26.07.2009 Bitis: 27.07.2009
-- Dosya: animasyon.jal
-- ===========================================
include 16f84_4
include jlib
-- === PORTLARIN YONLENDIRILMESI ===
pin_b0_direction = output
pin_b1_direction = output
pin_b2_direction = output
pin_b3_direction = output
-- === AYARLAMALAR ===
port_b = 0b00000000
-- === PROGRAM BASLANGICI ===
forever loop
port_b = 0b00000001
delay_50ms (4)  -- 50ms bekle
port_b = 0b00000010
delay_50ms (4)   -- 50ms bekle
port_b = 0b00000100
delay_50ms (4)  -- 50ms bekle
port_b = 0b00001000
delay_50ms (4)   -- 50ms bekle
port_b = 0b00001001
delay_50ms  (4)  -- 50ms bekle
port_b = 0b00001010
delay_50ms  (4)  -- 50ms bekle
port_b = 0b00001100
delay_50ms (4)   -- 50ms bekle
port_b = 0b00001101
delay_50ms   (4) -- 50ms bekle
port_b = 0b00001110
delay_50ms (4)   -- 50ms bekle
port_b = 0b00001111
delay_50ms (8)

port_b = 0b00000000
delay_50ms (8)
port_b = 0b00001111
delay_50ms (8)
port_b = 0b00000000
delay_50ms (8)

port_b = 0b00000001
delay_50ms (2)
port_b = 0b00000011
delay_50ms (2)
port_b = 0b00000111
delay_50ms (2)
port_b = 0b00001111
delay_50ms (4)
port_b = 0b00000111
delay_50ms (2)
port_b = 0b00000011
delay_50ms (2)
port_b = 0b00000001
delay_50ms (2)
port_b = 0b00000000
delay_50ms (2)

port_b = 0b00000001
delay_50ms (2)
port_b = 0b00000011
delay_50ms (2)
port_b = 0b00000111
delay_50ms (2)
port_b = 0b00001111
delay_50ms (4)
port_b = 0b00000111
delay_50ms (2)
port_b = 0b00000011
delay_50ms (2)
port_b = 0b00000001
delay_50ms (2)
port_b = 0b00000000
delay_50ms (2)

port_b = 0b00000001
delay_50ms (4)
port_b = 0b00000010
delay_50ms (4)
port_b = 0b00000100
delay_50ms (4)
port_b = 0b00001000
delay_50ms (4)
port_b = 0b00001001
delay_50ms  (4)
port_b = 0b00001010
delay_50ms  (4)
port_b = 0b00001100
delay_50ms (4)
port_b = 0b00001101
delay_50ms   (4)
port_b = 0b00001110
delay_50ms (4)
port_b = 0b00001111
delay_50ms (8)



port_b = 0b00000001
delay_50ms (2)
port_b = 0b00000011
delay_50ms (2)
port_b = 0b00000111
delay_50ms (2)
port_b = 0b00001111
delay_50ms (4)
port_b = 0b00000111
delay_50ms (2)
port_b = 0b00000011
delay_50ms (2)
port_b = 0b00000001
delay_50ms (2)
port_b = 0b00000000
delay_50ms (2)

port_b = 0b00000001
delay_50ms (2)
port_b = 0b00000011
delay_50ms (2)
port_b = 0b00000111
delay_50ms (2)
port_b = 0b00001111
delay_50ms (4)
port_b = 0b00000111
delay_50ms (2)
port_b = 0b00000011
delay_50ms (2)
port_b = 0b00000001
delay_50ms (2)
port_b = 0b00000000
delay_50ms (6)
port_b = 0b00000001
delay_10ms (4)  -- 50ms bekle
port_b = 0b00000010
delay_10ms (4)   -- 50ms bekle
port_b = 0b00000100
delay_10ms (4)  -- 50ms bekle
port_b = 0b00001000
delay_10ms (4)   -- 50ms bekle

port_b = 0b00000001
delay_10ms (4)  -- 50ms bekle
port_b = 0b00000010
delay_10ms (4)   -- 50ms bekle
port_b = 0b00000100
delay_10ms (4)  -- 50ms bekle
port_b = 0b00001000
delay_10ms (4)   -- 50ms bekle

port_b = 0b00000001
delay_10ms (4)  -- 50ms bekle
port_b = 0b00000010
delay_10ms (4)   -- 50ms bekle
port_b = 0b00000100
delay_10ms (4)  -- 50ms bekle
port_b = 0b00001000
delay_10ms (4)   -- 50ms bekle

port_b = 0b00000001
delay_10ms (4)  -- 50ms bekle
port_b = 0b00000010
delay_10ms (4)   -- 50ms bekle
port_b = 0b00000100
delay_10ms (4)  -- 50ms bekle
port_b = 0b00001000
delay_10ms (4)   -- 50ms bekle

port_b = 0b00000001
delay_10ms (4)  -- 50ms bekle
port_b = 0b00000010
delay_10ms (4)   -- 50ms bekle
port_b = 0b00000100
delay_10ms (4)  -- 50ms bekle
port_b = 0b00001000
delay_10ms (4)   -- 50ms bekle

port_b = 0b00000001
delay_10ms (4)  -- 50ms bekle
port_b = 0b00000010
delay_10ms (4)   -- 50ms bekle
port_b = 0b00000100
delay_10ms (4)  -- 50ms bekle
port_b = 0b00001000
delay_10ms (4)   -- 50ms bekle

port_b = 0b00000001
delay_10ms (4)  -- 50ms bekle
port_b = 0b00000010
delay_10ms (4)   -- 50ms bekle
port_b = 0b00000100
delay_10ms (4)  -- 50ms bekle
port_b = 0b00001000
delay_10ms (4)   -- 50ms bekle

port_b = 0b00000001
delay_10ms (4)  -- 50ms bekle
port_b = 0b00000010
delay_10ms (4)   -- 50ms bekle
port_b = 0b00000100
delay_10ms (4)  -- 50ms bekle
port_b = 0b00001000
delay_10ms (4)   -- 50ms bekle
port_b = 0b00000001
delay_10ms (4)  -- 50ms bekle
port_b = 0b00000010
delay_10ms (4)   -- 50ms bekle
port_b = 0b00000100
delay_10ms (4)  -- 50ms bekle
port_b = 0b00001000
delay_10ms (4)   -- 50ms bekle

port_b = 0b00000001
delay_10ms (4)  -- 50ms bekle
port_b = 0b00000010
delay_10ms (4)   -- 50ms bekle
port_b = 0b00000100
delay_10ms (4)  -- 50ms bekle
port_b = 0b00001000
delay_10ms (4)   -- 50ms bekle

port_b = 0b00000001
delay_10ms (4)  -- 50ms bekle
port_b = 0b00000010
delay_10ms (4)   -- 50ms bekle
port_b = 0b00000100
delay_10ms (4)  -- 50ms bekle
port_b = 0b00001000
delay_10ms (4)   -- 50ms bekle

port_b = 0b00000001
delay_10ms (4)  -- 50ms bekle
port_b = 0b00000010
delay_10ms (4)   -- 50ms bekle
port_b = 0b00000100
delay_10ms (4)  -- 50ms bekle
port_b = 0b00001000
delay_10ms (4)   -- 50ms bekle

port_b = 0b00001111
delay_50ms (8)
 
port_b = 0b00000000
delay_50ms (8)
port_b = 0b00001111
delay_50ms (8)
port_b = 0b00000000
delay_50ms (8)
 port_b = 0b00000001
delay_100ms (8)
port_b = 0b00000011
delay_100ms (8)
port_b = 0b00000111
delay_100ms (8)
port_b = 0b00001111
delay_100ms (8)

port_b = 0b00000000
delay_50ms (8)
port_b = 0b00001111
delay_50ms (8)
port_b = 0b00000000
delay_50ms (8)
port_b = 0b00000000
delay_50ms (8)
port_b = 0b00001111
delay_50ms (8)
port_b = 0b00000000
delay_50ms (8)
 
 
 

end loop


-- === PROGRAM SONU ===

  • Yılmaz Can Aktaş

    Süpersin aytaç :) teşekkürler

  • zxcv

    for döngüsü gibi birşey yok mu jal’da

  • tahir

    çok güzel olmuş 16f84 lü olan devrenin şeması yokmu acaba.

  • AYTAÇ DÜRGEN

    jalda for döngüsü elbet var ama C diline göre biraz tuhaf bir yapısı var. ben önemli olan işimizin görülüyor olduğunu düşünüyorum. ve açıkçası bu şekil biraz daha kolayıma geldi. bu projeleri acemlik çekiyorken yazmıştım. Aynı projeyi C derleyicilerle diziler yardımıyla ve for döngüleriyle çok daha kolay bir şekilde yapmak mümkün. yazı yayınlamaktaki amacım gelişen teknolojide amatörden profosyonele her ilgilenen birşeyleri bilmesini istediğim içindir

  • AYTAÇ DÜRGEN

    Tahir arkadaşın sorusuna:16f84a ile devre aynen 877de olduğu gibi transistörle sürülecek. proteusta pıc içene yazılımı yüklediğinizde animasyonu bir bağlant yapmaksızın görürsünüz.

  • murat

    Teşekkürler süper :)

  • Emrah

    büfe güzel ama benim diğeri hoşuma gitti harfler uzadıkca göze hitap artıyor. tebrik ediyorum yapan arkadaşı ellerine sağlık. ama uzun yazılı olanın jal komutları yok. :(

  • mecit

    arkadaşlar bu konuda çok bigisizim ama ilgisiz değilim bu ve benzeri elektronik devre konusunda sorunum yok ama yazılım konusunda sorunum çok daha doğrusu yazlım bilgim eksilerde. yazılım konusunda prof olmayı düşünmüyorum bu tür devreleri bitirebileyim yeter. bu konuda yardımcı olacak ve yol göstrecek arkadaşalara teşekkür ediyorum.

    • yazılım için bir yerlerden başlamalı sanırım sizin için en uygunu: http://320volt.com/pic-basic-dersleri/

  • murat

    bu dosyalar hangi versiyon proteusta çalışıyor benimki 7,2 açılmıyor surum farkı var yardımcı olurmusunuz yada 7,2 versiyonuna uygun dosya koyabilme imkanınız varmı emeğinize teşekkür ediyorum başarılarınızın devamını diliyorum

  • aytac dürgen

    proteus 7,4 sürümü ile hazırlanmış bir projedir. siz 877a ile hex direk çalıştırasbilirsiniz.
    Bu devreyi sadece örnek olması için yayınladım. 14 harf için tasarlandığı için harf sayısı artırılıp azaltıldığında görünümde boşluklar oluşacaktır.

  • murat

    Transistörleri ne kullandınız resimdekiler bd539 fakat yazınızda bd241 ve bd547 den bahsetmişsiniz. ben proteusta projenizi tekrar çizdim bd539 kullandım fakat aklıma bir şey takıldı pic kanal çıkışı transistör arasına 10k mı yoksa 100r direncmi kullanmalıyım (entegreden 12 kanal çıkış alacağım) birde entegre çıkışında kullandığımız transistör 1 adet yeterlimi led sayısını çoğalttıgımızda o kanal için ayrıca transistör ilave edecekmiyiz ? yardımlarınız için çok teşekkür ederim

  • aytac dürgen

    ben bd 241 kullandım ve beyz seri yol direnci 4,7 k ile 10 k arası kullanabilirsin. eğerki yazı karakteriçok büyükse bu direnci 220 ohm a çekersin BD 241 3A akım gfeçirebilen npn transistördür. Bu yazıdaki büyük panonun tamamı ışık veriyorken 1A yakın akım çekiyor. Yani siz BD241 kullanırsanız her hangi bir sorun yaşamazsın. Ledleri yazıda bahis ettiğim gibi 5 led seri ve bu serilenmiş ledleri ise paralel bağlayarak karakter oluşturmalısın. Aksi taktirde akım yükselmekte ve transistör maliyeti yüksek olmakta

  • murat

    usanmadan bilginizi benimle paylaştığınız için sonsuz teşekkürler sizin gibi insanları Allah başımızdan eksik etmesin.

  • emre

    Merhaba Aytaç abi ben end. meslek 11.sınıfa gidiyorum bu devreden yapmak istiyorum yukarda geçen bazı kelimeleri anlamıyorum abi anlıyacağım dilden biraz bahsedermesin en önemlisi harf dizilimini nasıl yaptın biraz bahsedermisin şimdiden teşekkür ediyorum

  • Ceyhun Artan

    teşekkürler gerçekten hevesleniyorum aytaç yaptıklarını görünce.

  • Ramin

    merhaba
    paylaşımınız için teşekkür ederiz

  • soner

    hocam projeniz bir harika bu proje de harf sayısını arttırmak için nerelerde değişiklik yapmamız gerekli?

  • SsEeRrCcAaNn

    Alıntı – soner :hocam projeniz bir harika bu proje de harf sayısını arttırmak için nerelerde değişiklik yapmamız gerekli?

    öncelikle devresinde.. pic kanalları yetmeyebilir.. port çoklaman bile gerekeblir.. daha sonra devreye uygun programın tekrar yazılması lazım.. hangi dilde olduğu önemli değil..

    kolay gelsin..

  • soner

    teşekkür ederim hocam port çoklama işini bilmiyorum pic işinde acemi olduğum için kısa bir örnekle açıklarsanız memnun olurm………saygılar………….

  • aytaç dürgen

    Arkadaşlar yazımı okuduysanız bu tasarımı ilgilenen arkadaşlara sadede örnek olması amacı ile yayınladım. PIC devresi 14 harf için hazırlanmıştır ve eksik yada fazla harfli tabelada kullanılamaz.Ben port genişletme işini 74hc595 kullanarak yazılımsal spı(seri haberleşme) kullanarak yapıyorum ve en fazla 20harflik bir tabela yaptım daha uzunu amaç dışı kalıyor. İsteyenlere 3a lik kanal sürebilen kart yollayabilirim. aytacdurgen@gmail.com dan ulaşabilirsiniz.

  • gökay

    Öncelikle ellerinize sağlık, paylaşım için teşekkürler.

    Güç kaynağı kaç amperlik kullandınız ?

  • aytacdurgen

    Tabela yaparken tabela boyutlarına göre adaptor amperi değişiyor.
    Ama pratik olsun bir bilgi vereyim yukarıda anlattığım tabela bilgilerine göre yapılmış bir tabelaiçin her 150 led yaklaşık 1A AKIM ÇEKER. buradan basit hesaplamalar yapabilirsiniz.

    Akım hesabına gelince her 3lü seri led 20mA akım çeker.
    I=3lü bağlı led kolu*20mA.

  • mustanoglu@gmail.com

    plastik mukavvayı nerden bulabiliriz

  • mustafa

    öncelikle Selamün Aleyküm transistörün emitörüne 10k bağlamışsınız bu LED’in parlaklığını etkilemez mi?

  • aytaç Dürgen

    @Mustafa: 10Klık direnç Beyz yolundadır. emiterde değil. Bu sebeple parlaklığı çok fazla etkilez

  • cafer

    ben led tabela işini her aksamıyla öğrenmek istiyorum yardımcı olabilirmisiniz

  • Kasamiko

    Hi,

    The circuit uses 16F877 but the source code is for F84?

    Where can I find the source of F877?

    BR

  • osman

    ben transistorleri bd 530 diye okuduysam pnp transistor demektir.E devre npn gerektiriyor? Ben mi yanlış okudum acaba?

  • kasamiko

    Can somebody tells me what this code means?

    delay_10ms (4) — 50ms bekle

    What I understand is a 10ms delay but (4) if for what?

    TIA