Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

pwm üretme

Başlatan bbs2006, 17 Şubat 2015, 16:39:00

bbs2006

merhaba

16f84 veya 16f628 mikrodenetleyicisi kullanarak 3 ade pwm sinyali üretmek istiyorum. bunu nasıl gerçekleştirebilirim. 16f628 de 1 adet pwm var. bu çıkış yetmiyor ne yapabilirim.

ferit06

16F628 de 3 tane TIMER var, TIMER2 yi PWM modulü kullanıyor. TMR0 ve TMR1 i de sen kullanarak yazılımsal PWM üretebilirsin. Ama üreteceğim pwm lerin frekans ve duty leri için uğraşman gerekecek.

bbs2006

timer o ile  basit bir yazılım örnegi verebilirmisiniz.pwm modülünü gerçekleştiririm.

sadogan

16f1827 veya 16f1825 bulabilirsen bunlarda 4 pwm var.

ziyaretci

CCP modülü olan herhangi bir denetleyiciden pwm üretebilirsin. Örneğin 16f877 'de 2 adet ccp modülü var. Tek bir adetinden 3 kanal veya daha fazla pwm üretebilirsin. Tabi bunun için ek entegre ve kapı veya transistör kullanmalısın. Biraz uğraştırır.

Aşağıdaki bağlantıda çok güzel anlatılmış.
http://ccspic.com/ccs-c-ile-pwm-uygulamalari/

ferit06

#5
Alıntı yapılan: bbs2006 - 17 Şubat 2015, 22:31:58
timer o ile  basit bir yazılım örnegi verebilirmisiniz.pwm modülünü gerçekleştiririm.
burada bir örnek var

http://www.mikroe.com/forum/viewtopic.php?t=21895
ve burada

http://www.ccsinfo.com/forum/viewtopic.php?t=39618

Salih

Alıntı yapılan: bbs2006 - 17 Şubat 2015, 16:39:00
merhaba

16f84 veya 16f628 mikrodenetleyicisi kullanarak 3 ade pwm sinyali üretmek istiyorum. bunu nasıl gerçekleştirebilirim. 16f628 de 1 adet pwm var. bu çıkış yetmiyor ne yapabilirim.

Öncelikle PWM frekansı ve çözünürlüğünü verirsen ona göre örnek  oluşturabiliriz.

mehmet

Alıntı yapılan: Salih - 18 Şubat 2015, 12:50:20
Öncelikle PWM frekansı ve çözünürlüğünü verirsen ona göre örnek  oluşturabiliriz.
Kesme süresi = İstenilen pwm frekansı * 256 (8 bitlik pwm için) gibi hesaplanabilir.
Eğer led sürmeyi düşünüyorsanız; 120Hz. altındaki
frekanslar pek iyi netice vermeyebilir. Bu nedenle
8MIPS* altında çok iyi neticeler alamayabilirsiniz...
(Moral bozmak istemem)

Arduino kullanmanızı önereceğim. ATMega328p içerisinde
6 donanımsal PWM, 6 analog giriş bulunmaktadır...


*)MIPS (million instructions per second)
Saniyedeki işlem sayısı...
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

bbs2006

merhaba
ben 2015 yazıp rgb ypmak istiyorum.  ve  şerit led kullanacam

mehmet

Resim veya şema gibi bir şeyler olsa, RGB ledleri
nasıl kontrol edeceğinizi de bilsek daha iyi olmaz mı?
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

bbs2006

rgb ledleri rasgele olacak şekilde animasyon yapmayı düşünyorum

mehmet

#11
Arduino ile yaparsanız aşağıdaki kodlar örnek olabilir.
MCU çıkışlarına mosfetli bir sürücü yapabilirsiniz...
Ayar değiştirilmez ise her kanal 490Hz.

/*
Kaynak : http://compsci.ca/v3/viewtopic.php?t=34225
*/

//-------------------------------------------------------------
//
#define ON HIGH
#define OFF LOW 
#define fade(x,y) if (x>y) x--; else if (x<y) x++;

//-------------------------------------------------------------
// PWM çıkışları
int red = 9;
int green = 10;
int blue = 11;

//-------------------------------------------------------------
int buttonState = 0;
int firstTime = 0;

//-------------------------------------------------------------
int redNow;
int blueNow;
int greenNow;
int redNew;
int blueNew;
int greenNew;

//-------------------------------------------------------------
void setup(void) 
{
  pinMode(red, OUTPUT);
  pinMode(green, OUTPUT);
  pinMode(blue, OUTPUT);
  redNow = random(255);
  blueNow = random(255);
  greenNow = random(255);
  redNew = redNow;
  blueNew = blueNow;
  greenNew = greenNow;
}

//-------------------------------------------------------------
void loop(void) 
{ 
  analogWrite(blue, blueNow);
  analogWrite(red, redNow);
  analogWrite(green, greenNow);

  changeColor();
}

//-------------------------------------------------------------
void changeColor(void) 
{
 
  if ((redNow == redNew) &&
     (blueNow == blueNew) &&
     (greenNow == greenNew))
     {
        redNew = random(255);
        blueNew = random(255);
        greenNew = random(255);
     }
  fade(redNow,redNew)
  fade(blueNow,blueNew)
  fade(greenNow,greenNew)
  
  analogWrite(blue, blueNow);
  analogWrite(red, redNow);
  analogWrite(green, greenNow);
  delay(10);
} 
//==========================================================================
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

94onur94

#12
mikrokernel
Makalemde detaylı olarak açıklama yaptım. Farklı zaman aralıklarında başlatırsan sinusu,  istediğin kadar pwm elde edebilirsin. Kolay gelsin...