Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: electroshock - 05 Kasım 2016, 21:26:45

Başlık: CCS C ile Led Efekti.
Gönderen: electroshock - 05 Kasım 2016, 21:26:45
Mrb.
Aşağıdaki videodaki 1.30dk dan sonraki 20sn süren animasyon efekti ile. 3.dk başlayan efeckti nasıl yaparım?
Nasıl bir PWM döngüsü kurmalıyım fikir verirmisiniz.

https://www.youtube.com/watch?v=WlfD1bFekmI
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: mehmet - 05 Kasım 2016, 23:18:38
Adam yazmış oraya; "1000USD yollarsanız,
nasıl yapıldığını anlatırım."

1) Led yak - söndür,
2) SPI, I2C, UART gibi iletişimler
3) Çevresel donanım elemanları

gibi konularla biraz ilgilenirseniz, başlangıç
yapmış olursunuz...
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: aliveli - 06 Kasım 2016, 03:02:53
pek zorluğu yok tarama yaptıracaksın
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: electroshock - 06 Kasım 2016, 14:52:37
normal 74hc595 entegresi ile karaşimşek efekti yapabiliyorum. oraya kadar sıkıntı yok.. fakat bu kuyruklu/gölgeli karaşimşek için pwm sinyalini nasıl kullanacağımı pek anlamadım.
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: RaMu - 06 Kasım 2016, 17:44:47
Daha detaylı anlatım vardı ama hemen bulamadım,
şu yöntemle yazılımsal çok kanal pwm üretiyorsun,
http://etepic.com/index.php/topic,145.msg2148.html?PHPSESSID=67eef84ea4965ba6f16cc6f29e24c392#msg2148

74HC olunca,
her bir mcu pin pwm çıkışı yerine 74hc nin pinleri kullanılmış oluyor,
kaç tane 74hc led süren pini varsa o kadar yazılımsal pwm üretmen gerekiyor.

En basit manada yazılımsal pwm ile mcu pininden 1 adet led i dimlersen gerisi gelir.
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: electroshock - 06 Kasım 2016, 19:45:48
Linki okudum biraz anladim fakat
Simdi normalde 74hc595 3 adet pin ile kontrol ediyorum (stcp,shcp,data)
Şimdi 3 adet pwm mi gerekiyor?
3 pwm demek en fazla 3 kuyrutan oluşan efekt mi demek oluyor?
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: mehmet - 06 Kasım 2016, 20:52:34
Sadece bir pwm yeterli. İlgili HC595 çıkışı aktif iken
OE ye pwm uygula. Bu şekilde de tara...
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: electroshock - 06 Kasım 2016, 21:42:27
Alıntı yapılan: mehmet - 06 Kasım 2016, 20:52:34
Sadece bir pwm yeterli. İlgili HC595 çıkışı aktif iken
OE ye pwm uygula. Bu şekilde de tara...
Tek pwm ile olacaksa donanımsal pwm kullanayım. Ama oe pini ile nasıl olck bu iş anlamadım biraz kurcalıyım.
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: RaMu - 06 Kasım 2016, 22:50:52
Alıntı yapılan: electroshock - 06 Kasım 2016, 19:45:48
...
Şimdi 3 adet pwm mi gerekiyor?
...

Alıntı yapılan: RaMu - 06 Kasım 2016, 17:44:47
...
kaç tane 74hc led süren pini varsa o kadar yazılımsal pwm üretmen gerekiyor.
...

Önce
Alıntı yapılan: RaMu - 06 Kasım 2016, 17:44:47
...
En basit manada yazılımsal pwm ile mcu pininden 1 adet led i dimlersen gerisi gelir.

Daha sonra mcu nun 1 portundaki 8 pinin tamamına 8 tane led bağlayıp
bunları ayrı ayrı dimleyebilen yapıya geçersin.

Dahada sonra bu yapıyı mcu nun 1 portundaki 8 pinin yerine 74hc kullanarak yaparsın.
...
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: mehmet - 07 Kasım 2016, 02:48:55
http://hackaday.com/2011/07/20/output-up-to-768-pwm-signals-from-one-arduino/
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: ertuğrul54 - 07 Kasım 2016, 11:09:51
buyur arkadaşım başlangıç için ideal geliştir
4094 ile yapmıştım  output enable  bacağına pwm  vereceksin

#TYPE short=8, int=16, long=32
///main.c
//#if defined(__PCM__)
#include <18F2550.h>
#fuses HS,NOWDT,PUT,BROWNOUT,PROTECT
#use delay(clock=10M)
#ZERO_RAM
//#endif

#include   "main.h"

#define INTS_PER_SECOND 30     // (4000000/(4*256*16))

void main()
{
   SET_TRIS_A( IOBITS_A );
   SET_TRIS_B( IOBITS_B );
   output_a(0x00);
   output_b(0x00);
   output_c(0x00);
   setup_ccp1(CCP_PWM);
   setup_timer_2(T2_DIV_BY_1, 255, 16);
 
   do{
   for(i = 0; i <= 32; ++i){
       write_expanded_outputs(led_tablo16[i][0]);
       write_expanded_outputs(led_tablo16[i][1]);
       write_expanded_outputs(led_tablo16[i][2]);
       write_expanded_outputs(led_tablo16[i][3]);
      for ( x=0;x<25; x++){
      set_pwm1_duty(x);
      delay_ms(5);
      }
         for (x=25;x>0;x--){
         set_pwm1_duty(x);
         delay_ms(5);
         }
       GONDER;
       delay_us(5);
      }
   } while ( TRUE );
}
//main.h
define   GONDER   (output_high(ST),output_low(ST))
// PORT_B'NIN BIT TANIMLAMALARI //
      #define   IOBITS_B      0b01110000

//   #define pwm      PIN_C2  //OUT
   #define DT       PIN_B7  //OUT
   #define CL       PIN_B6  //OUT
   #define ST       PIN_B5  //OUT


static const unsigned char led_tablo16[32][4] = {
       
   {0b00000000,0b00000000,0b00000000,0b00000001},   //0
   {0b00000000,0b00000000,0b00000000,0b00000011},   //1
   {0b00000000,0b00000000,0b00000000,0b00000111},   //2
   {0b00000000,0b00000000,0b00000000,0b00001111},   //3
   {0b00000000,0b00000000,0b00000000,0b00011111},   //4
   {0b00000000,0b00000000,0b00000000,0b00111111},   //5
   {0b00000000,0b00000000,0b00000000,0b01111111},   //6
   {0b00000000,0b00000000,0b00000000,0b11111111},   //7
   {0b00000000,0b00000000,0b00000001,0b11111111},   //8
   {0b00000000,0b00000000,0b00000011,0b11111111},   //9
   {0b00000000,0b00000000,0b00000111,0b11111111},   //10
   {0b00000000,0b00000000,0b00001111,0b11111111},   //11
   {0b00000000,0b00000000,0b00011111,0b11111111},   //12
   {0b00000000,0b00000000,0b00111111,0b11111111},   //13
   {0b00000000,0b00000000,0b01111111,0b11111111},   //14
   {0b00000000,0b00000000,0b11111111,0b11111111},   //15
   {0b00000000,0b00000001,0b11111111,0b11111111},   //16
   {0b00000000,0b00000011,0b11111111,0b11111111},   //17
   {0b00000000,0b00000111,0b11111111,0b11111111},   //18
   {0b00000000,0b00001111,0b11111111,0b11111111},   //19
   {0b00000000,0b00011111,0b11111111,0b11111111},   //20
   {0b00000000,0b00111111,0b11111111,0b11111111},   //21
   {0b00000000,0b01111111,0b11111111,0b11111111},   //22
   {0b00000000,0b11111111,0b11111111,0b11111111},   //23
   {0b00000001,0b11111111,0b11111111,0b11111111},   //24
   {0b00000011,0b11111111,0b11111111,0b11111111},   //25
   {0b00000111,0b11111111,0b11111111,0b11111111},   //26
   {0b00001111,0b11111111,0b11111111,0b11111111},   //27
   {0b00011111,0b11111111,0b11111111,0b11111111},   //28
   {0b00111111,0b11111111,0b11111111,0b11111111},   //29
   {0b01111111,0b11111111,0b11111111,0b11111111},   //30
   {0b11111111,0b11111111,0b11111111,0b11111111},   //31
};

};     
//-------------------------------------------------------------------//
char   i;
char   x,z;
//int  value;

//-------------------------------------------------------------------//
void time(int Get)
{
   Get = Get * 10;
   int16 i;
   for(i=0;i<Get;i++)
   {
      delay_ms(100);
   }   
}   

//----- EXT OUT -----//
void write_expanded_outputs(char* eo)
{
    char   bitno;
    bitno = 8;
       do {
          if(eo & 1){
             output_high(DT);
            output_high(CL);
            output_low(CL);
          }
          if(!(eo & 1)){//if(!(eo & 1))
             output_low(DT);
            output_high(CL);
            output_low(CL);
          }
          eo = (eo >> 1) | 0x80;
       } while(--bitno);
      //output_high(ST);
      //output_low(ST);
}
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: ertuğrul54 - 07 Kasım 2016, 11:15:16
veya bunu hazır entegrelerle de yapabilirsiniz bu iş için üretilmiş entegereler var  ws2811 gibi
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: JOKERAS - 07 Kasım 2016, 14:01:05
74HC595 OE pinini ile olmazki bu.
OE Pini tüm çıkışları kapatıp açacak.

3-4 yıl önce yapmıştım bunu, Orjinal kuyruklu Kara Eşek devresi.
O videodakinin aynısı,hatta çok daha egzantrik efektler yapaliyordu,kuyruğu istediğiniz kadar uzatıp kısaltabiliyorsunuz.

Mantık şu..

8 adet bardağı bir masanın üzerine koyup elimdeki kaşıkla bu bardaklara istediğim bir sıra ile vuruyor
ve bardakların çıkardığı çınlama seslerinin vurduğum sıra ile azaldığını görüyorum.
Burada ne oluyorsa algoritmayı ona göre tasarlamak gerekiyor.

Her bir Bardağa vurmak ilgili LED'in PWM oranını MAX seviyeye çekmek demek.
PWM ise belli bir zaman aralığında sürekli Aşağı yani MİN seviyeye inen bir yapı.
Gerisi aliveli Arkadaşin dediği gibi 74HC595'i Tarama yöntemi.





Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: electroshock - 10 Kasım 2016, 18:04:42
Alıntı yapılan: JOKERAS - 07 Kasım 2016, 14:01:05
74HC595 OE pinini ile olmazki bu.
OE Pini tüm çıkışları kapatıp açacak.

3-4 yıl önce yapmıştım bunu, Orjinal kuyruklu Kara Eşek devresi.
O videodakinin aynısı,hatta çok daha egzantrik efektler yapaliyordu,kuyruğu istediğiniz kadar uzatıp kısaltabiliyorsunuz.

Mantık şu..

8 adet bardağı bir masanın üzerine koyup elimdeki kaşıkla bu bardaklara istediğim bir sıra ile vuruyor
ve bardakların çıkardığı çınlama seslerinin vurduğum sıra ile azaldığını görüyorum.
Burada ne oluyorsa algoritmayı ona göre tasarlamak gerekiyor.

Her bir Bardağa vurmak ilgili LED'in PWM oranını MAX seviyeye çekmek demek.
PWM ise belli bir zaman aralığında sürekli Aşağı yani MİN seviyeye inen bir yapı.
Gerisi aliveli Arkadaşin dediği gibi 74HC595'i Tarama yöntemi.






Yani OE ile yapamadım zaten. fakat sizin söylediğinizide pek anlamadım. Daha doğrusu PWM ile bir ledin parlaklığını ayarlamayı yani pic'İn herhangi bir bacağına led'e dimmer yapmayı pwm ile yapabiliyorum.
Lakin araya 74hc595 girince.. bu PWM sinyalini Data bacağına Nasıl uygulayacağımı anlamadım.
Biraz Sanırım bu 40 fırın ekmek yemekle alakalı ama bulacağım inşallah
Yardımcı olan arkadaşlara teşekkürler.

İstek:  74hc595'in herhangi bir bacağındaki lede PWM uyguluma örneği paylaşırmısınız.
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: RaMu - 10 Kasım 2016, 19:23:42
Öncelikle MCU pininden yazılımsal olarak ledi dimlemelisin.
Yani her hangi bir mcu pinini
örneğin sonsuz bir döngüde
bir süre 1
bir süre 0 yapacaksın.

74hc için başlangıç olarak şunları uygulayıp
mantığı daha net anlayabilirsin:

while(1)
{
Adım1> 74hc ye 0xFF gönder 1ms bekle,
Adım2> 74hc ye 0x00 gönder 1ms bekle,
}



while(1)
{
Adım1> 74hc ye 0xFF gönder   200 mikrosaniye  bekle,
Adım2> 74hc ye 0x00 gönder 1800 mikrosaniye bekle,
}



while(1)
{
Adım1> 74hc ye 0xFF gönder  1500 mikrosaniye  bekle,
Adım2> 74hc ye 0x00 gönder   500 mikrosaniye bekle,
}
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: JOKERAS - 10 Kasım 2016, 21:21:31
1000$ Gönderirseniz nasıl yapıldığını anlatırım derrrrmişim:)
Bunu gören ZorO usta da diyecekki bende Bobinleri anlatıyorum hem Videolu hem Matematikli.
Ben 2000$ isterim.Eee Öyle Saça Böyle Tarak derler o zaman.
Şimdi Forumdan uyarı gelecek Eyvaah!:)

Şaka bir yana.

electroshock Usta,
OE pini ile olmaz demem illaki olmayacağı anlamına gelmiyor.
OE ile de OE olmadan da olur bu.
Sizin mantıkla olmaz.
Çünki Siz 74HC595'i OE pini ile karadüzen  PWM yapıyorsunuz,bu olmaz.



Siz İşlemci Portlarını kullanarak yaptınızmı bunu?
Bence önce İşlemci üzerinde yapın.

Yukarıda ki arkadaşlar yöntem önerdi,onlara baktınızmı?
Ayrıca sakıncası yoksa kodlarınızı paylaşırsanız daha çabuk sonuca ulaşırsınız derim.

Kod veremiyorum Çünki bunu zamanında bir Vatandaş istemişti,
ona yaptım.Ne yaptı bilmiyorum.Şimdi kod verirsem ayıp olur.
Para falanda almadım,yanlış anlaşılmasın,ben kendimi geliştirme aşamasındaydım,
o zaman, hala daha geliştirmeye çalışıyorum.Zor işler.

Bir ara RGB'sini yapacaktım öyle kaldı.
DMX 512 leri görünce Hass.. dedim kendi kendime:)


Size hak veriyorum,zamanında çok tırmlamıştım bunun için.
Emin olunuz gayret edin sizde çözeceksiniz bunu.
Bu sayede kendinizi de geliştirmiş olacaksınız derim.










 


Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: electroshock - 12 Nisan 2017, 11:24:32
5 aydır ilerleme yok :)
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: RaMu - 12 Nisan 2017, 18:22:51
5 ay ne ki...


Gerçek bir örnek vereyim, kendimden;
ben yüzmeyi 5 yıl + 5 dakikada öğrendim,
hemde yılın en az 100 günü eğitim aldım,
5 yıl boyunca yapabildiğim ancak 50 metre ileri gidebilmekti,
bir gün Türkçe dahi tam konuşamayan Kazakistan lı bir arkadaşım
5 dakika bir şey gösterdi, ve ardına kilometre yüzer hale geldim.


Uğraşırsan olur.
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: xoom - 12 Nisan 2017, 19:55:57
Pwm dediğin nedir.. 5dk'lik şey..
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: mehmet - 13 Nisan 2017, 00:43:31
Alıntı yapılan: xoom - 12 Nisan 2017, 19:55:57
Pwm dediğin nedir.. 5dk'lik şey..
Kaç kanal ve frekans nedir?
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: aliveli - 13 Nisan 2017, 21:40:43
pwm değil tarama yapacaksın
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: electroshock - 21 Nisan 2017, 21:02:57
Alıntı yapılan: aliveli - 13 Nisan 2017, 21:40:43
pwm değil tarama yapacaksın
Biriside yapsa bir örnek keşke:)
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: mehmet - 22 Nisan 2017, 00:44:40
PIC18F452 Port B ye 8 led bağlayıp deneyebilirsiniz.


:0600000000F049EF00F0E2
:10000800FFFF28829EA23BD001501F5C02E28A803B
:1000180001D08A90FFFF02501F5C02E28A8201D061
:100028008A92FFFF03501F5C02E28A8401D08A94FF
:10003800FFFF04501F5C02E28A8601D08A96FFFF08
:10004800040005501F5C02E28A8801D08A98FFFFED
:1000580006501F5C02E28A8A01D08A9AFFFF075085
:100068001F5C02E28A8C01D08A9CFFFF08501F5C4B
:1000780002E28A8E01D08A9EFFFF04001F2AFFFF3A
:100088009E9228921100FFFFFFFF5CEF01F0FFFF37
:10009800256A0B0E256EFFFF2550FC0FD96EDA6A14
:1000A800010EDF6E2550FD0FD96EDA6A640E206EE0
:1000B800FF0ED5EC00F0DF6E2550FE0FD96EDA6A20
:1000C800320E206EFF0ED5EC00F0DF6E2550FF0FCC
:1000D800D96EDA6A0A0E206EFF0ED5EC00F0DF6EDC
:1000E8002550000FD96EDA6A030E206EFF0ED5EC8C
:1000F80000F0DF6E2550010FD96EDA6ADF68216AD9
:100108000A0E206E0CEC01F02506040E2560C3D7FC
:10011800216AC80E206E31EC01F0050E256EFFFF36
:100128002550FC0FD96EDA6ADF6A2550FD0FD96EAB
:10013800DA6A640E206EFF0ED5EC00F0DF6E2550F3
:10014800FE0FD96EDA6A320E206EFF0ED5EC00F083
:10015800DF6E2550FF0FD96EDA6A0A0E206EFF0E89
:10016800D5EC00F0DF6E2550000FD96EDA6A030E69
:10017800206EFF0ED5EC00F0DF6E2550010FD96E12
:10018800DA6ADF68216A0A0E206E0CEC01F0252A73
:100198000A0E2564C4D7216AC80E206E31EF01F01B
:1001A800FFFFFFFF216E236A205017E0010E226E29
:1001B80004D0FFFFD8902036222AFFFF20AEF9D7BF
:1001C800FFFFD89023362050215C03E32050215EA6
:1001D8002380D8902032222EF3D723501200FFFF1D
:1001E800FFFF080E276E9E0E266E4C0EFFFFE82EB0
:1001F800FDD7262EFBD7272EF9D741EC01F050EC7E
:1002080001F0000E20EC01F0FFFF4BEC00F0FCD7F2
:10021800FFFF09D00A0E226E730EFFFFE82EFDD7EE
:10022800222EFBD700D0FFFF2006D8A021062050A1
:100238002110F0E11200FFFFFFFF206E216A216A02
:10024800FFFF2150010FD96EDA6A20C0DFFF212A93
:10025800190E2164F5D7190CFFFFFFFF05D0020E18
:10026800FFFFE82EFDD700D0FFFF2006D8A021060B
:1002780020502110F4E11200FFFFFFFF896A8A6A0B
:100288008B6A8C6A8D6A926A936A946A956A966A8E
:10029800070EC16E070CFFFFFFFFCA6ACA84CA9225
:1002A800CA903C0ECB6E9D82F28EF28C3C0CFFFF06
:1002B80000EE01F01F0EEE6AE806FDE12890289294
:0802C8000001F4EF00F0FFFF5C
:020000040020DA
:08000000FFFFFFFFFFFFFFFF00
:020000040030CA
:0E000000FF260E00FF0080FF00000000000041
:00000001FF
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: electroshock - 22 Nisan 2017, 12:54:09
simülasyonda pek belli olmamakla birlikte açık kaynak kodlarını CCS C olmadığı için mi vermediniz ?  Bu arada ne zaman sona erecek bu moderatör onayı beklemesi..
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: FMY - 22 Nisan 2017, 19:38:32
arduinodan yapmak istersen vereyim çok kolay
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: ByTEK - 05 Aralık 2021, 21:06:11
Konu eski biliyorum. Ama yapmak isteyen kişiler için link bırakmak istedim.

https://www.sercanca.com/jalv2-74hc595-shift-pwm-ile-karasimsek-efekti/

Shift pwm yöntemi ile yapılabilir.ben jalv2 ile yaZdim. Siz mantıgina göre kullandınız dilde yazın.
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: JOKERAS - 06 Aralık 2021, 16:42:16
Bravo SercanTEK, Güzel olmuş, Fakat daha güzel olabilirdi.
Ledler Su Dalgası gibi Animasyon yapsa çok daha güzel olurdu.

Şunun gibi.
https://www.youtube.com/watch?v=WlfD1bFekmI
Bu basit gibi görünen şeyi yapmak göründüğü kadar kolay değil.Çok zordur.
Ama mantığı anladıktan sonrası leblebi çekirdek.
Başlık: Ynt: CCS C ile Led Efekti.
Gönderen: ByTEK - 06 Aralık 2021, 19:06:17
Alıntı yapılan: JOKERAS - 06 Aralık 2021, 16:42:16Bravo SercanTEK, Güzel olmuş, Fakat daha güzel olabilirdi.
Ledler Su Dalgası gibi Animasyon yapsa çok daha güzel olurdu.

Şunun gibi.
https://www.youtube.com/watch?v=WlfD1bFekmI
Bu basit gibi görünen şeyi yapmak göründüğü kadar kolay değil.Çok zordur.
Ama mantığı anladıktan sonrası leblebi çekirdek.

Beğendiğinize sevindim üstat. Shift PWM mantığını anlamak için yaptığım bir çalışmadan ibarettir.yapmışkende birileri faydalansın diye paylaştım. eminim birilerine çıkış noktası olacak ve daha iyisini yapacaklardır.