P10 Led Panel Sürme
P10 Panel Nedir? Çalışma Mantığı Nasıldır? Ben Bu Projede Ne Yaptım? Karşılaştığım Sorunlarla Nasıl Mücadele Ettim?
“Nasıl düşüneceğini bilmek, sadece ne düşüneceğini bilenlerin çok daha ötesinde olmanı sağlayacaktır.” — Neil deGrasse Tyson
Sevgili Elfatek Blog Takipçileri,
Ben Rana Selçuk Üniversitesi elektrik elektronik mühendisliği 4. Sınıf öğrencisiyim. Sizlerle yaz stajım süresi boyunca gerçekleştirmiş olduğum projemin detaylarını bu yazımda paylaşacağım.
P10 panel ile ilgili en başta benim de bir bilgim yoktu. Ancak araştırıp öğrenince ve mantığını anlamaya başlayınca her şey çok daha kolay olmaya başladı. Bu yüzden lütfen gözünüz korkmasın!
P10 paneller aslında günlük hayatımızda her yerde; kaç dakika kaldı diyerek baktığımız otobüs, metro, tren dakikalarının yazdığı gösterge panelleri veya dükkanların dışında yazan kayan yazı panelleri ve daha niceleri.
Şekil 1’ de görülen yakın çekim bir led paneldir. Benim kullandığım panel kırmızı renkte yanan 16×32 boyutlara sahip bir paneldi. Üzerinde 512 adet led bulundurmakta ve en güzeli ise bütçe dostu olmasıdır.
IP koruma standardı 65’dir ve uzun ömürlü olması çok tercih edilmesinin en büyük nedenidir. Her 10mm’de 1 tane led bulunduğu için panelin ismi P10 şeklinde adlandırılır. Boyutlarına ve özelliklerine göre P2, P5, P6, P8 gibi çeşitleri de sıkça kullanılmaktadır.
Led paneli çalıştırabileceğiniz kontrol kartları ve programlar piyasada kullanılmaktadır. PowerLed isimli programda panel boyutlarını, kaç panel kullandığınızı ve nasıl bir yazı yazdıracağınızı seçtiğiniz zaman kolayca çalıştırabilirsiniz. Kontrol kartı ile yapılacak olan bağlantılara dikkat edin! |
Bu kadar P10 panel tanımı galiba yeterli olacaktır. Ben sizlere daha çok projemi anlatmak istiyorum. Atmel SAMC21 Xplained Pro bir proje geliştirme kartıdır. Üzerinde bulunan SAMC21J18A ailesine ait bir mikroişlemcidir. Atmel Studio (Microchip Studio) ile programlanarak birçok proje gerçekleştirilebilir. Benim projemde ise Atmel SAMC21 serisi mikroişlemci ile P10 paneli sürmem istendi. CANBus hattından gelen veriyi panele kayan yazı olarak yazdırmam gerekiyordu.
Şekil 2’de görülen bu kart üzerinde CANBus haberleşmeye ait iki ayrı bağlantı bulunmaktadır. Paneli sürerken kullanmam gereken CANBus hattı bağlantılarını (CANH, CANL) bu kart sayesinde sağlayabilecektim. Haberleşme sonucunda gelen veri SPI ile haberleşen P10 panele yazılarak projem gerçekleştirilmiş olacaktı.
İlk olarak elimde bulunan P10 panelin nasıl çalıştığını öğrenmem gerekiyordu. İnternetten sipariş vererek aldığım panelde yaptığım en büyük hata, paneli çalıştıran registerların ne olduğuna dikkat etmememdi. Normalde sürme işleminde 74HC595 shift registerları kullanılırken almış olduğum panelde TC5020A ve DP4536 adında entegreler bulunuyordu. Kullanılan bu iki malzeme ise Çin menşei ürün olduğu için internetten bilgi toplamakta zorlandım. Kullanılan TC5020A entegresi 16 adet çıkışa sahiptir 8×8’lik matris taraması yaparken kullanılabilir. Eğer 16×32 çözünürlüğe sahip paneli kontrol etmek istersek entegrenin nasıl sürüldüğünü çok iyi öğrenmeniz gerekmektedir.
1.Adım:Peki! Nasıl Yapıyoruz Bu Sürme İşlemini?
Sütunları 8×8’lik matrisler halinde düşünün ve ilk matrisi birinci TC5020A entegresinin kontrol etiğini farz sayın. Aynı sütunda bulunan 8×8’lik matrisi ise diğer entegrenin sürdüğünü düşünün. 8 adet ledin bulunduğu ilk sütunu iki ayrı entegre ile kontrol etmiş olduk. İç mantığı tamamen 74HC595’in çalışması ile aynı, ilk entegrenin girişinden veri girer ve output oluşur, bu çıkış aynı sütunu kontrol eden diğer entegrenin girişine bağlıdır. Bu şekilde sırayla sütunlarda bulunan entegreler tetiklenmiş olur. Sütunları kontrol eden entegreler satır kontrolünü eş zamanlı yapamazlar. Bu işlemde panelin bağlantı uçlarından gelen dijital pinler sayesinde yapılır. P10 panel HUB12 bağlantı şekline sahiptir.
A ve B olarak adlandırılan dijital pinler panelin satır kontrolü için kullanılır. İlk satırın tarama yapabilmesi için ‘A=0; B=0’ değerleri gelmelidir. İkinci satır için ise ‘A=1; B=0’ değeri gelmelidir. Aynı mantıkla diğer satırlar içinde tarama işlemi yapılabilir. Şekil 3’de alternatif bağlantılarına da yer verdiğim bağlantı şeması bulunmaktadır. 1.pine(EN-Enable) normalde PWM pin bağlantısı yapılarak panelin parlaklığı ayarlanabilmektedir. Böyle bir amacım olmadığı için enable pini high durumunda tuttum. İşleri biraz daha kolaylaştırmak ve alternatif çözüm sunabilmek için pinlere iki ayrı seçenek tanıdım. Kod ile ayarlama yapmak isterseniz ona göre alternatif pinleri seçebilirsiniz.
2.Adım:Parçalar Tamamlanıyor
Bağlantısı hazır olan panelin tek eksiği kodları. Eğer araştırdıysanız birçok kişinin Arduino kullanarak panel çalıştırdığını görmüşsünüzdür. Kodlarına baktığınızda DMD, DMD2 veya P10panel isimli kütüphaneler sayesinde çalıştırıldığını fark etmişsinizdir. Kütüphaneleri inceleyerek mantığını anlamaya çalıştım ve projemi gerçekleştirirken içeriğinde kayboldum. Çok daha kolay yollar ile denemeler yapmak yerine kütüphaneler ile çalışmaya çalıştım. Sizlere çok daha kolay bir yol önerebilirim. İlk işiniz panelin mantığını öğrendikten sonra tek ledi yakmaya çalışmak olsun. Kısa bir kod ile bunu gerçekleştirebilirsiniz. Clock sinyalini input-output olarak ayarlayabilir ve veriyi basit tutarak 1 ve 0’ lardan oluşan paketler halinde entegreleri sürebilirsiniz. Sonrasında işleri karmaşık hale getirip şekiller hatta kayan yazılar yazabilirsiniz. Bu sayede kütüphaneler ile uğraşmayarak kendinizi geliştirmiş olursunuz. Şekil 4’ de görülen çalışan P10 panelin bağlantı örneğidir.
3.Adım: Hedefe Ulaşıyoruz
Bu kadar anlattım tabi ki de çalışan halinin görselini koymazsam olmaz. Harici güç kaynağı bağlayarak kullanım sağlayabilirsiniz.
Adımın yazdığı kayan yazıları da koymak isterdim ancak çok farklı yollar kullanarak işleri zorlaştırıp proje sürecimi planlarken hatalar yaptığım için staj sürem içerisinde projemi yetiştiremedim. Ayrıca CANBus ve SPI ile haberleşme ile ilgili örnekler yaparak çalıştım. Kütüphane yazdım, C dili ile ilgili yeni bilgiler öğrendim. Farklı ara yüzler kullanarak pes etmeyip birçok yol denedim. Her seferinde panel çalışmadı ancak başka bir yol deneyerek pes etmedim ve sonunda çalıştı. Ben bu staj sürem boyunca çok düşündüm ama en önemlisi ne düşündüğümü bilerek ve nasıl yol alacağımın farkında olarak ilerleyebilmemdi.
Proje sürem boyunca yardımcı olan Elfatek çalışanlarına çok teşekkür ederim.
Herhangi bir sorunuz olursa iletişim bilgilerim;
Gmail: ranabeyzataskin@gmail.com
Li: www.linkedin.com/in/rana-beyza-taskin
Sağlıcakla Kalın.