Kayan yazı devresi bilgisyarın USB portu üzerinden gönderilen metini görüntülüyor. Metin göndermek için kullanılan program visual basic ile hazırlanmış exe ve kaynak kodları var. Devre PIC18F4550 üzerine kurulu 8×32 dot matris ledler 2 adet 74hc154 ile sürülüyor pic yazılımı proton ide ile hazlanmış.
dotmatris3.bas yazılım içeriği;
'*********************************************** '* Name : DOTMATRIS3.BAS * '* Author : [select VIEW...EDITOR OPTIONS] * '* Notice : Copyright (c) 2009 [select VIEW...EDITOR OPTIONS] * '* : All Rights Reserved * '* Date : 13.12.2009 * '* Version : 1.0 * '* Notes : * '* : * '******************************************** ' select MCU and clock speed Device = 18F4550 XTAL = 48 ' descriptor file, located in \inc\usb_18 - a copy ' is located in the same folder as this file USB_DESCRIPTOR = "dotmatris3DESC.inc" ' USB Buffer... Symbol USBBufferSizeMax = 33 Symbol USBBufferSizeTX = 8 Symbol USBBufferSizeRX = 33 Dim USBBuffer[USBBufferSizeMax] As Byte ' some useful flags... Dim PP0 As Byte SYSTEM ' USBPOLL status return Symbol CARRY_FLAG = STATUS.0 ' high if microcontroller does not have control over the buffer Symbol ATTACHED_STATE = 6 ' is USB attached ' ********************************************* ' * main program loop - remember, you must keep the USB * ' * connection alive with a call to USBPoll, USBIn or USBOut * ' * every couple of milliseconds or so * ' ********************************************* i VAR Byte i1 VAR Byte p1 VAR Word p2 VAR Byte 'PORTA değişkenleri pa1 VAR Byte pa2 VAR Byte pa3 VAR Byte pa4 VAR Byte pa5 VAR Byte pa6 VAR Byte pa7 VAR Byte pa8 VAR Byte pa9 VAR Byte pa10 VAR Byte pa11 VAR Byte pa12 VAR Byte pa13 VAR Byte pa14 VAR Byte pa15 VAR Byte pa16 VAR Byte pa17 VAR Byte pa18 VAR Byte pa19 VAR Byte pa20 VAR Byte pa21 VAR Byte pa22 VAR Byte pa23 VAR Byte pa24 VAR Byte pa25 VAR Byte pa26 VAR Byte pa27 VAR Byte pa28 VAR Byte pa29 VAR Byte pa30 VAR Byte pa31 VAR Byte pa32 VAR Byte 'şekil değişkenleri d1 VAR Byte d2 VAR Byte d3 VAR Byte d4 VAR Byte d5 VAR Byte d6 VAR Byte d7 VAR Byte d8 VAR Byte d9 VAR Byte d10 VAR Byte d11 VAR Byte d12 VAR Byte d13 VAR Byte d14 VAR Byte d15 VAR Byte d16 VAR Byte d17 VAR Byte d18 VAR Byte d19 VAR Byte d20 VAR Byte d21 VAR Byte d22 VAR Byte d23 VAR Byte d24 VAR Byte d25 VAR Byte d26 VAR Byte d27 VAR Byte d28 VAR Byte d29 VAR Byte d30 VAR Byte d31 VAR Byte d32 VAR Byte kontrol Var Byte TRISB=%00000000 TRISD=%00000000 PORTB=1 PORTD=0 '=====Bekleme ayarları===== p1=800'delayus 'sütun geçişleri arasındaki bekleme(TİTREMEYİ ÖNLEYECEK DEĞER) '=====Görüntü oluşturan değişkenler tanımlanıyor===== 'görünmesini istediğiniz şekli oluşturmak için, 'görünen için=1 siyah kalan için=0 olarak değer verin. 'değerlerin anlaşılabilir olması açısından binary 'olarak verilmiştir. 'Teknoloji d1=%00000001 d2=%00000001 d3=%01111111 d4=%00000001 d5=%00111001 d6=%01010100 d7=%01011000 d8=%00000000 d9=%01111111 d10=%00010000 d11=%00101000 d12=%01000100 d13=%00000000 d14=%01111100 d15=%00000100 d16=%01111000 d17=%00000000 d18=%00111000 d19=%01000100 d20=%00111000 d21=%00000000 d22=%01111111 d23=%00000000 d24=%00111000 d25=%01000100 d26=%00111000 d27=%00000000 d28=%10000000 d29=%01111101 d30=%00000000 d31=%01111101 d32=%00000000 'PORTA tanımlaması pa1=0 pa2=1 pa3=2 pa4=3 pa5=4 pa6=5 pa7=6 pa8=7 pa9=8 pa10=9 pa11=10 pa12=11 pa13=12 pa14=13 pa15=14 pa16=15 pa17=16 pa18=17 pa19=18 pa20=19 pa21=20 pa22=21 pa23=22 pa24=23 pa25=24 pa26=25 pa27=26 pa28=27 pa29=28 pa30=29 pa31=30 pa32=31 GoTo ProgramLoop basla: 'If UIR And %01000000 Then GoTo verial 'i=i+1 'If i=i1 Then kaydir If UIR.3=1 Then GoTo ProgramLoop1 PORTB=pa1 PORTD=d1 DelayUS p1 PORTB=pa2 PORTD=d2 DelayUS p1 PORTB=pa3 PORTD=d3 DelayUS p1 PORTB=pa4 PORTD=d4 DelayUS p1 PORTB=pa5 PORTD=d5 DelayUS p1 PORTB=pa6 PORTD=d6 DelayUS p1 PORTB=pa7 PORTD=d7 DelayUS p1 PORTB=pa8 PORTD=d8 DelayUS p1 PORTB=pa9 PORTD=d9 DelayUS p1 PORTB=pa10 PORTD=d10 DelayUS p1 PORTB=pa11 PORTD=d11 DelayUS p1 PORTB=pa12 PORTD=d12 DelayUS p1 PORTB=pa13 PORTD=d13 DelayUS p1 PORTB=pa14 PORTD=d14 DelayUS p1 PORTB=pa15 PORTD=d15 DelayUS p1 PORTB=pa16 PORTD=d16 DelayUS p1 PORTB=pa17 PORTD=d17 DelayUS p1 PORTB=pa18 PORTD=d18 DelayUS p1 PORTB=pa19 PORTD=d19 DelayUS p1 PORTB=pa20 PORTD=d20 DelayUS p1 PORTB=pa21 PORTD=d21 DelayUS p1 PORTB=pa22 PORTD=d22 DelayUS p1 PORTB=pa23 PORTD=d23 DelayUS p1 PORTB=pa24 PORTD=d24 DelayUS p1 PORTB=pa25 PORTD=d25 DelayUS p1 PORTB=pa26 PORTD=d26 DelayUS p1 PORTB=pa27 PORTD=d27 DelayUS p1 PORTB=pa28 PORTD=d28 DelayUS p1 PORTB=pa29 PORTD=d29 DelayUS p1 PORTB=pa30 PORTD=d30 DelayUS p1 PORTB=pa31 PORTD=d31 DelayUS p1 PORTB=pa32 PORTD=d32 DelayUS p1 GoTo basla 'Göstermeye yeniden başla '=====Kaydırma işlemi yapılıyor===== GoSub AttachToUSB ProgramLoop1: UIR.3=0 ProgramLoop: GoSub DoUSBIn kontrol=USBBuffer[0] If kontrol=5 Then GoTo basla If kontrol=6 Then GoTo yukle ' GoSub DoUSBOut GoTo ProgramLoop yukle: d1=USBBuffer[1] d2=USBBuffer[2] d3=USBBuffer[3] d4=USBBuffer[4] d5=USBBuffer[5] d6=USBBuffer[6] d7=USBBuffer[7] d8=USBBuffer[8] d9=USBBuffer[9] d10=USBBuffer[10] d11=USBBuffer[11] d12=USBBuffer[12] d13=USBBuffer[13] d14=USBBuffer[14] d15=USBBuffer[15] d16=USBBuffer[16] d17=USBBuffer[17] d18=USBBuffer[18] d19=USBBuffer[19] d20=USBBuffer[20] d21=USBBuffer[21] d22=USBBuffer[22] d23=USBBuffer[23] d24=USBBuffer[24] d25=USBBuffer[25] d26=USBBuffer[26] d27=USBBuffer[27] d28=USBBuffer[28] d29=USBBuffer[29] d30=USBBuffer[30] d31=USBBuffer[31] d32=USBBuffer[32] GoTo basla ' ****************************************** ' * receive data from the USB bus * ' ****************************************** DoUSBIn: USBIn 1, USBBuffer, USBBufferSizeRX, DoUSBIn Return ' ************************************** ' * transmit data * ' ************************************** DoUSBOut: USBOut 1, USBBuffer, USBBufferSizeTX, DoUSBOut Return ' ********************************** ' * wait for USB interface to attach * ' ********************************** AttachToUSB: Repeat USBPoll Until PP0 = ATTACHED_STATE Return
Hazırlayan: Eyüp – Kaynak: elektrobilim.org – Emeği geçen hazırlayan kişilere teşekkürler.
pic18f4550-usb-kayan-yazi-panosu-visual-basic-proton
Şifre-Pass: 320volt.com
Yayım tarihi: 2010/11/20 Etiketler: kayan yazı devresi, led pano, microchip pic projeleri, pic18f4550 projeleri, proton usb, visual basic usb
merhaba çok güzel bir çalışma olmuş sormak istediğim matrix sayısını nasıl çoğaltabiliriz? videoda 5 karekter görünüyor isis programında 4 matrıx var?
teşekkürler….
evet 5 karakter görünüyor ama 4 adet 8×8 dotmatrix kullandım
bu projeyi ben yapmıştım bitirme ödevi olarak yapmak isteyen arkadaşlara yardımcı olabilirim
Merhaba ben biraz farklı bir şey arıyorum yardımcı olursanız çok mutlu olurum.
1×500 (yani tek sıra led) olacak şekilde yapabilirmiyiz .. aynı bu şekilde…
ledleri bir boru üzerine dizicem ve boruyu kendi ekseninde içinden mil geçirerek döndüreceğim.. yani havaya yazmış gibi borunun üzerinde istediğimiz yazı oluşacak.
Böyle birşey yapabilirmiyiz. Ben aslında Fizikçiyim butür çalışmaları da çok seviyorum kendi yaptığım ufak tefen çalışmalarımda var ama bu istediğim şeyi yapamadım… Yardımcı olursanız yada nasıl bir yol izlemem gerektiğini söylerseniz çok mutlu olurum …
yapmak istediğim çalışmanın görsel ifadesi:
***************************************************************
Merhaba bu bir denemedir…
Led şerit kendi eksenne paralel şekilde döndürüldüğünde. Yazı aşağıdan yukarı veya yukarıdan aşağı oluşacak… (yandan değilde yukarıdan oluşmaya başlayacak yani)
2006 da Bilim teknik dergisi kendin yap bölümünde benzeri ufak bir çalışma vardı ama o hem pic, hem küçük, hemde yazı soldan sağa oluşuyor.
Şimdiden Teşekkürler..
Eyüp hocam merhaba ya bende bitirme projesi olarak usb kontrollü kayan yazı aldım benim bu devreye sıcaklık zaman gibi eklentilerde bulunmam mümkün olabilirmi acaba bana yardımcı olursanız çok sevinirim.
Evet mümkün visual basic ve pic basic bilyorsan rahatlıkla yapabilirsin.
Proje konusun da elimden gelen yardımı yaparım.
eyup hocam projenın pcp dosyası varmı acaba varsa gonderebilirmisniz
teşekkür ederim ben size gerekli yerde başvuracağım çok sağolun
zafer hocam sizin bahsettiğiniz devreyi anladım 500 adet led’i sürmek için 500/16=32 adet encoder entegresine ihtiyacımız var döndürme işi için ise step motor kullana bilirsiniz ama hızı yeterli olur mu bilmiyorum. DC motor kullanırsanız dönüşün hızını ölçebilecek dil rölesine ihtiyaç duyarsınız. Pic programlamadan pic basic dilinden anlıyorsanız mekanik kısmı fizikçi olduğunuz için yapabileceğinizi umuyorum.
bu devredeki dotmatris sayısını yazılımda bir değişiklik yapmadan arttırabilir miyiz.eğer degişiklik gerekiyorsa yazılımda çok büyük bir değişiklik gerekir mi.
eyüp hocam sizden visual basic komutlarını alma şansım varmı acaba teşekkürler
https://docs.google.com/leaf?id=0BwivV1q401vqNjAzMjA4NjYtNzAyYy00OTU0LWEzNTgtZDFkMGQ3OTZjZjll&hl=trz bu linkte tüm kodlar mevcut
iyi günler eyüp hocam.ben de kayan yazı projesi yapıyorum da. yalnız bunun simülasyonu nasıl yapılıyor bilmiyorum. hangi aşamaları izleyerek simülasyon yapmalı.bir de videoda izlediğim kadarıyla harfler tek tek geçmiyor sanki 2 şer 2 şer geçiyor.teker teker geçmesi için ne yapmalı acaba? aklıma takılan bir husus da harflerin, sayıların yani karakterlerin tanımlanması. bunları nerede yaptınız acaba ? bu tanımlamalar visual basic de mi yer alıyor. yani mesela A B C D harfleri nerede tanımlı acaba ? bizi bu konuda bilgilendirirseniz çok seviniriz
Harfler beşer beşer geçiyor sonradan teker teker geçenini yapmıştım kodları kaybettim. Kodları bulabilirsem eklerim. Harflerin kodlaması visual basic yani bilgisayar tarafından yapılan arayüz programı içinde yapılmış. yukarıda görülen dotmatris3.bas dosyası pic’e yüklenen picbasic kodlarıdır.
Kodlara ulaşmak için;
http://www.elektrobilim.org/forum/showthread.php?s=701b327c2a05fcc992a487d1e2428dc8&t=6093
sayfaya bakın tüm kodlar mevcut
Pojenin baskı devresi mevcut değil çünkü delikli plaket üzerine kurmuştum ama üzerinde çalışıyorum bitirirsem onuda eklerim.
visual basic harf kodlaması
aşağıdaki gibidir
Program 8×32 satır ve sütuna göre yapılmış. Sütun sayısını artırmak için programda ve devrede biraz değişiklik yapılması gerek.
Bir şey daha diyeyim dotmatrix panoların sürülmesi direk pic ile yapıldı dolayısıyla yüksek akım çekmesine sebeb oldu videoda görüldüğü gibi bazı satırlar parlak bazıları sönük yanıyor.
bunu engellemek için portd çıkışına sürücü entegre eklenmesi lazı uln… entegreleri gibi datasheetlerine bakarak yapılabilir 32 sütundan fazla yapılacaksa mutlaka eklenmeli yada portd’nin herbir pinine transistörlerle anahtarlama devresi yapılabilir.
Eyüp hocam ben bu projeye 6 adet daha matris ve 3 tane daha 74hc154 ekledim bu 74hc lerin E1ve E2 girişlerini vedeğilin çıkışlarından mı alacağım yoksa ayrı ayrı vedeğil mi eklemem gerekiyor.Teşekkürler
Selam eyüp hocam eğer hala buralarda iseniz ben de daha açık vb6 ve pic kodlarını alabilir miyim, halletmeye çalıştım da biraz karıştı. Ben de Fıratlıyım 2007 mezunu elektronik öğretmeniyim. Benim uğraş alanım biraz daha farklı eğer daha sade kodlarını mail ya da burdan verebilirseniz minnettar kalırım teşekkürler…
Eyüp hocam eğer yardımcı olursanız mail adresim [email protected] burda istiyor ama ben yine de vereyim yardımcı olursanız sevinirim, vb6 ve pic arasında kurulacak en basit iletişim 16f84a ile denemek istiyorum,,,
devrenin kopyasını yaptım ama bi türlü tanıtamadım bilgisayara hocam yardımcı olursanız çok sevinirim yok acil yardımınıza ihtiyacım var…
devrede kullanılan matrixler ortak anot mu yoksa katot mu bir yardımcı olun teşekkürler
pardon hocam varmış pic basic kodları baktım yükledim ama hex dosyasını çıkartamadım hata verdi
redefinition of label dim …………..hatası verdi ne yapmam lazım
bu devrenin hex kodu varmı iyi akşamlar