Merhabalar
Protonda ws2812b ile uygulama yapan oldumu acaba?
Ben şu sıralar benzeri olan APA106 ile Pic Basic Pro ile
@ete hocanın yardımıyla uğraşıyorum.
https://etepic.com/index.php/topic,4389.msg41364/topicseen.html#msg41364
https://a.aliexpress.com/_B04ixr
Ben bu tarz kodu datasheet i bulunamayan şeyleri aliexprese arıyorum güzel veriler yayınlıyor satıcılar.
Bu Ledler kullanmak başlı başına bir işmiş yav.
Ben saat yapayım dedim ama epey uğraştıracak sanırım.
Yukarıdaki linkte dediğine göre senin Ledler in ws2811B APA106 PL9823 olabilir.
PL9823 diye aratınca biir kaç sayfa datasheet çıkıyor. Belki işini görür hocam.
Daha önce uygulama yaptım demişsin ws2812b ile.
O uygulamadan kod paylaşabilirmisin hocam? Bende 2812b hem 8li düz pcb hemde tekli pcb olarak sipariş ettim.
Biraz uğraşayım hiç olmazsa.
Tekrardan merhabalar..
tekli pcb üzerinde WS2812B aldım.
İlk denemem aşağıdaki kod'ta ki gibi fakat sadece ledleri beyaz olarak sırası ile yakabiliyorum.
Datasheetinde dediği gibi kaç tane led süreceksen o kadar x 3 byte gonderiyorum ve sırası ile 1sn aralıklar ile 3 led'i yakıyorum.
Fakat ledlerin ne rengini değiştirebildim ne parlaklığını.Zamanlama hatasımı yapıyorum ? yoksa komut gönderirken mı hata yapıyorum çözemedim.
Hatta özellikle şunuda sormak istiyorum ledlerin renk ayarını her led için gönderilen 3 bytelık data içerisinde atıyorum kırmızı için 1 byte şeklinde gönderirken bu byte'ın değerini değiştirdiğimde renklerin değişmesi gerekmiyor mu ?
Ve yine mesela 3 led'i sırası ile yaktım fakat hepsini nasıl söndüreceğim tüm gönderdiğim bytelar 0 yapsam da olmuyor..
EDİT: Burada ilk paylaştıım kodu sildim çünki ledlerin mantığını anlayana kadar çok saçma birşeyler yazmıştım kafa karıştırmasın.
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2020 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 07.03.2020 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
Device = 18F25K22
Declare Xtal=16
OSCCON.6=1
OSCCON.5=1
OSCCON.4=1
OSCCON.1=1
OSCCON.0=1
Config_Start
FOSC = INTIO67 ;Internal oscillator block
PLLCFG = OFF ;Oscillator used directly
PRICLKEN = On ;Primary clock enabled
FCMEN = OFF ;Fail-Safe Clock Monitor disabled
IESO = OFF ;Oscillator Switchover mode disabled
PWRTEN = On ;Power up timer enabled
BOREN = SBORDIS ;Brown-out Reset enabled in hardware only and disabled in Sleep mode (SBOREN is disabled)
BORV = 190 ;VBOR set to 2.50 V nominal
WDTEN = OFF ;Watch dog timer is always disabled. SWDTEN has no effect.
'WDTPS = 32768 ;1:32768
'CCP2MX = PORTC1 ;CCP2 input/output is multiplexed with RC1
PBADEN = OFF
'CCP3MX = PORTC6 ;P3A/CCP3 input/output is mulitplexed with RC6
HFOFST = On ;HFINTOSC output and ready status are not delayed by the oscillator stable status 'BURASISSSSS
'T3CMX = PORTC0 ;T3CKI is on RC0
'P2BMX = PORTC0 ;P2B is on RC0
MCLRE = INTMCLR ;RE3 input pin enabled; MCLR disabled
STVREN = OFF ;Stack full/underflow will not cause Reset
LVP = On ;Single-Supply ICSP disabled
XINST = OFF ;Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
Debug = OFF ;Disabled
Cp0 = On ;Block 0 (000800-001FFFh) code-protected
CP1 = On ;Block 1 (002000-003FFFh) code-protected
CPB = On ;Boot block (000000-0007FFh) code-protected
CPD = OFF ;Data EEPROM not code-protected
WRT0 = OFF ;Block 0 (000800-001FFFh) not write-protected
WRT1 = OFF ;Block 1 (002000-003FFFh) not write-protected
WRTC = OFF ;Configuration registers (300000-3000FFh) not write-protected
WRTB = OFF ;Boot Block (000000-0007FFh) not write-protected
WRTD = OFF ;Data EEPROM not write-protected
EBTR0 = OFF ;Block 0 (000800-001FFFh) not protected from table reads executed in other blocks
EBTR1 = OFF ;Block 1 (002000-003FFFh) not protected from table reads executed in other blocks
EBTRB = OFF ;Boot Block (000000-0007FFh) not protected from table reads executed in other blocks
Config_End
All_Digital=TRUE
Dim A As Byte
Symbol WS2812B_PIN = PORTC.3
Output WS2812B_PIN
Low WS2812B_PIN
Dim REST As Byte
REST=50
'*************************
ANA:
GoSub YESIL_LED
DelayUS REST
DelayMS 100
GoSub YESIL_LED
GoSub YESIL_LED
DelayUS REST
DelayMS 100
GoSub YESIL_LED
GoSub YESIL_LED
GoSub YESIL_LED
DelayUS REST
DelayMS 100
GoSub YESIL_LED
GoSub YESIL_LED
GoSub YESIL_LED
GoSub YESIL_LED
DelayUS REST
DelayMS 100
GoSub YESIL_LED
GoSub YESIL_LED
GoSub YESIL_LED
GoSub YESIL_LED
GoSub YESIL_LED
DelayUS REST
DelayMS 100
GoSub YESIL_LED
GoSub YESIL_LED
GoSub YESIL_LED
GoSub YESIL_LED
GoSub YESIL_LED
GoSub YESIL_LED
DelayUS REST
DelayMS 100
'GOSUB LED_KAPAT
DelayUS REST
DelayMS 100
'***************
GoSub KIRMIZI_LED
DelayUS REST
DelayMS 100
GoSub KIRMIZI_LED
GoSub KIRMIZI_LED
DelayUS REST
DelayMS 100
GoSub KIRMIZI_LED
GoSub KIRMIZI_LED
GoSub KIRMIZI_LED
DelayUS REST
DelayMS 100
GoSub KIRMIZI_LED
GoSub KIRMIZI_LED
GoSub KIRMIZI_LED
GoSub KIRMIZI_LED
DelayUS REST
DelayMS 100
GoSub KIRMIZI_LED
GoSub KIRMIZI_LED
GoSub KIRMIZI_LED
GoSub KIRMIZI_LED
GoSub KIRMIZI_LED
DelayUS REST
DelayMS 100
GoSub KIRMIZI_LED
GoSub KIRMIZI_LED
GoSub KIRMIZI_LED
GoSub KIRMIZI_LED
GoSub KIRMIZI_LED
GoSub KIRMIZI_LED
DelayUS REST
DelayMS 100
'GoSub LED_KAPAT
DelayUS REST
DelayMS 100
'***************
GoSub MAVI_LED
DelayUS REST
DelayMS 100
GoSub MAVI_LED
GoSub MAVI_LED
DelayUS REST
DelayMS 100
GoSub MAVI_LED
GoSub MAVI_LED
GoSub MAVI_LED
DelayUS REST
DelayMS 100
GoSub MAVI_LED
GoSub MAVI_LED
GoSub MAVI_LED
GoSub MAVI_LED
DelayUS REST
DelayMS 100
GoSub MAVI_LED
GoSub MAVI_LED
GoSub MAVI_LED
GoSub MAVI_LED
GoSub MAVI_LED
DelayUS REST
DelayMS 100
GoSub MAVI_LED
GoSub MAVI_LED
GoSub MAVI_LED
GoSub MAVI_LED
GoSub MAVI_LED
GoSub MAVI_LED
DelayUS REST
DelayMS 100
'GoSub LED_KAPAT
DelayUS REST
DelayMS 100
GoTo ANA
'*************************
YESIL_LED:
GoSub BIT_1
GoSub BIT_1
GoSub BIT_1
GoSub BIT_1
GoSub BIT_1
GoSub BIT_1
GoSub BIT_1
GoSub BIT_1
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
Return
'*********************
KIRMIZI_LED:
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_1
GoSub BIT_1
GoSub BIT_1
GoSub BIT_1
GoSub BIT_1
GoSub BIT_1
GoSub BIT_1
GoSub BIT_1
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
Return
'*********************
MAVI_LED:
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_1
GoSub BIT_1
GoSub BIT_1
GoSub BIT_1
GoSub BIT_1
GoSub BIT_1
GoSub BIT_1
GoSub BIT_1
Return
'*********************
LED_KAPAT:
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
'*****************
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
'*****************
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
'*****************
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
'*****************
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
GoSub BIT_0
DelayUS REST
Return
'***************
BIT_1:
PORTC.3=1
Nop
Nop
Nop
PORTC.3 =0
Return
BIT_0:
PORTC.3=1
Nop
PORTC.3 =0
Return
EDİT: kodu biraz daha değiştirip sadeleştirdim.Şuan 6 led var ve gayette güzel çalışıyor.Biraz da for next ilave edince daha güzel olacaktır..
proton forumunda birkaç kod görmüştüm onları bulup buraya koyayım.
bence bunu direk interrupt ile yapmak lazım zira süreler çok hassas
başka işler yapınca etkilenmemesi lazım
Alıntı yapılan: Maxim - 09 Mart 2020, 11:38:57proton forumunda birkaç kod görmüştüm onları bulup buraya koyayım.
bence bunu direk interrupt ile yapmak lazım zira süreler çok hassas
başka işler yapınca etkilenmemesi lazım
hocam proton forumun altına üstüne getirdim aynen dediğin örnekler var ama verilen örneklerin de INC. dosyaları siteden uçmuş haliyle ana main kısmı pek işe yaramıyor.
Ben deneme yanılma üstün körü bişiler yazdım alt program olarak çağırıyorum.Mesela bunu for next ile gönderen programlar var o biraz sıkıntı.Benim return komutları falan olduğu için tam denk geldi sanırım.Ayrıca yapmak istediğim uygulamada devamlı komut göndermeyeceğim 7 segment display yapmak istiyorum bunlar ile.O yüzden şimdilik işimi görecek gibi.
Tabi forumdaki inc. dosyasını bulursan çok iyi olur ben epey bakındım bulamadım.
@mustafa_cmbz yazsam mı yazmasam mı diye düşünürken
baktım zaten C ve Stm ile ilgilenmişsin,
diyeceğim kaynağı bol, artık daha yaygın kullanılan
derleyici ve mcu lara yönelmeyi düşünür müsün idi aslında.
Yıllar önce bu işe el atmışsın zaten,
şu anki durum nedir,
zamanında yaptığın projelerden,
elindeki mevcut kaynak ve tecrübeden dolayı
diğerlerine yönelemedin mi?
https://www.picproje.org/index.php/topic,55977.msg430159.html#msg430159
[/quote]
Alıntı yapılan: mustafa_cmbz - 06 Kasım 2014, 19:59:45Modül elime ulaştı.Kitaptaki örnekler üzerine ufak bir led animasyonu yaptım.Vallahi şu zamana kadar c ve 32bitlik işlemcilere neden geçmedim NEDEN pin ve protonda oyalandım neden vakit ayırmadım diye içlendim..
Konuyla alakası yok ama artık kusura bakmayın.
Alıntı yapılan: RaMu - 09 Mart 2020, 22:48:30@mustafa_cmbz yazsam mı yazmasam mı diye düşünürken
baktım zaten C ve Stm ile ilgilenmişsin,
diyeceğim kaynağı bol, artık daha yaygın kullanılan
derleyici ve mcu lara yönelmeyi düşünür müsün idi aslında.
Yıllar önce bu işe el atmışsın zaten,
şu anki durum nedir,
zamanında yaptığın projelerden,
elindeki mevcut kaynak ve tecrübeden dolayı
diğerlerine yönelemedin mi?
https://www.picproje.org/index.php/topic,55977.msg430159.html#msg430159
Konuyla alakası yok ama artık kusura bakmayın.
Valla hocam o yıllardan sonra hayatımda çok şey hızlıca değişti evlendim boşandım iş değiştirdim memleket değiştirdim kaza yaptım maddiyatım tükenti VS derk anda son 2 yıldır evlendim çoluk çocuğa karıştım ve anca şimdi şimdi maddiyatımıda düzelttim.
Mesleğimde hep 1-2 adım geri kaldığımı hissettim eksikliğinde yaşadım.
Tamda bu aralar başka platformlar yada diller bakınırken suratıma şamar gibi indi yazdıkların. Aslında bekliyordum böyle bir şey ama iyi oldu sağolasın.
Tek sıkıntım Protonda epey bir alt yapım oluştu ama artık cevap vermiyor 24f serisine geçeyim dedim onda da program lisans istedi
Dün Micro Basic lisansı baktım 1800tl civarı birşey Di.
Smtlerle devam edeyim ozaman ben 🤗
Sen ne yaptın o kadar,
bayağı iş olmuş saydıkların
ben bir kere evlenemedim daha :)
Bu işin ilerisi gerisi yok,
ne yapsak senden benden ileride birileri olur mutlaka,
genele nazaran konuşuyorsan bende aynı hissetmiyor değilim.
Hatta üniversitede 2012 civarı (asm görüyorduk)
benim yaptıklarımı C kullanarak,
çocuk yaştakiler onda bir zamanda yapıyorlar,
çok geri kalmışım diyordum.
Bende ne varsa kullanırım Pic evs. laf edecek halim yok,
işini ne görüyorsa onu kullanırsın derim her zaman ama
küçük mcu lardan sonra
STM de DMA diğer kapsamlı donanımlar, hazır kütüphaneler vs.
yazmak bayağı zevkli oluyor.
(Evet Microchip vs. diğer eşdeğer MCU larda da tabiki DMA var.)
CubeMx ve Keil MDK Arm kullanıyorum bende daha Cube IDE ye geçemedim.
HAL library i başta anlamak zor geliyor ama
her işte olduğu gibi bir defa anladın mı gerisi çorap söküğü gibi geliyor.
En azından MikroC felan değilde
direk HAL kütüphaneleri ve CubeIDE ile devam et.
Ben bildiğim kadar yardımcı olmaya çalışırım.
Mustafa stmcubeide ye gel ben sürterek kıvılcım çıkartmaya çalışıyorum. Belki 2 kıvılcım ateş yakar. ;) :D :D :D :D
Ben lisans sorunlarından PBP ile yapamadım ara verdim. Bir başlık açayımda STM32f030 ile yapmaya çalışayım. Uzun zaman oldu ARM ve C ile ilgilenmeyeli.
Daha önce normal RGB LED ile yapmıştım.
Mustafa bey C diline geç binlerce örnek var.
Mesela pic için https://www.microchip.com/mplab/compilers
stm için https://www.st.com/en/development-tools/stm32cubeide.html
iki derleyici fazlası ile işini görür.
Ben şunu anlamadım.
STM32CubeIDE ile stm32cubemx arasında ne fark var peki ?
CubeMX HAL kütüpanesini kullanarak seçilen işlemci için ilk kodları oluşturur.
CubeIDE ise Keil Uvision gibi entegre geliştirme ortamı.
Alıntı yapılan: mustafa_cmbz - 10 Mart 2020, 19:15:20Ben şunu anlamadım.
STM32CubeIDE ile stm32cubemx arasında ne fark var peki ?
Mustafa CubeIde, cubemx ve atollic in birleşmişi. 2n1 ikisi bir arada. ;)
CubeMx
Donanımları görsel bir arayüzle
istediğin özelliklerde kurup
program yazmaya başlamak için
hazır bir kod şablonu oluşturan Pc programı,
Keil MDKARM, Ewarm, Truestudio, SW4STM32
ile kullanılabilecek kod oluşturuyor.
Aynı Microchip in
MPLAB Code Configurator veya
MpLab Harmony gibi
veya
MikroE nin timer calculator gibi araçlarının
tüm donanımları kapsayan versiyonu gibi
veya
CcsC nin Project Wizard kısmı gibi.
CubeIDE bahsedildiği gibi
CubeMX in içinde derleyici ve Editör bulunan başka bir programa
entegre edilmiş bir hali,
IDE işi artık Inter Integrated Development Enviroment oldu :)
mustafa slm, kodunda ilerleme varmı?
Alıntı yapılan: Maxim - 19 Mart 2020, 18:32:17mustafa slm, kodunda ilerleme varmı?
en son bıraktığım kodda kaldım printer dan display çıktısı alınca devam edeceğim.Şuan ki haliyle işimi görüyor ama kristal ayarlarını yaparak ete hocanın for next'li kodunu da deneyeceğim.