Ws2812b ile daha önce Protonda uygulama yapan oldu mu?

Başlatan mustafa_cmbz, 05 Mart 2020, 19:47:53

mustafa_cmbz

Merhabalar

Protonda ws2812b ile uygulama yapan oldumu acaba?

MC_Skywalker

#1
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

mustafa_cmbz


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.

mustafa_cmbz

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.

mustafa_cmbz

#4
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.

mustafa_cmbz

#5
'****************************************************************
'*  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..


Maxim

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

mustafa_cmbz

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.

RaMu

@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.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

mustafa_cmbz

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 🤗

RaMu

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.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

Murat Mert

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
mert07

MC_Skywalker

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_cmbz


serkan

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.