avatar_ete

PIC Basic Ders-11 (PWM Kullanımı)

Başlatan ete, 28 Ağustos 2011, 16:21:42

ete

İngilizce isminin karşılığı olarak Puls Genişliği Ayarlaması  yada Pals genişliği ayarı şeklinde Türkçe'mize tercüme edilebilir bu terim.   Kare dalga şeklindeki bir sinyalin bir periyodunda hem HIGH hemde LOW seviyesinin olduğunu hepimiz biliyoruz.

Bu dersimizde PWM ve PICBasic ile PWM kullanımı hakkında bilgiler verilecektir


kotan04

Merhaba arkadaşlar boş vakit buldukça pwm yazılımsal pwm kodlarını inceliyorum ve ufak tefek uygulamalar yapıyorum fakat eskisi gibi fazla zaman ayıramadığımdan hep çalışmalarım yarım kalıyor asıl sebep ise proteus ile rgb similasyonu malesef yok yani ben yaptığım devrelerde rgb led liblary dosyası olmadığı için renk karışımını ve geçişlerin hızını titremeleri gerçek anlamda herseferinde devre kurarak görüyorum buda benim kısıtlı zamanımda önem teşkil ediyor.Hatırlarsanız yaptığım uygulamaları görebilmek için test kartı sormuştum oda şimdilik bana biraz pahalı geldi şimdi sormak istediğim soru şu rgb uygulaması için herhangi similatör varmı? Ben sadece proteusta osilaskop bağlıyorum buda bana yetersiz geliyor.Görsel olmadığı için sadce dalga boyundan anlıyorum hani görsel bir durum yok sadece kare dalga :) isterdimki proteusta rgb led ekleyim renk geçişleri görülsün :) siz bu işi nasıl hallediyorsunuz birde rgb devrelerinde 10 mhz kristal hangi sorunu hallediyor ?özellikle donanımsal pwm desteği 1 adet bulunan pic16f628de gördüm adam 3 çıkış almış demekki yazılımsal pwm kullanıyor  :) ve çok güzel çalışıyor tabi kodları görmek mümkün değil istiyorum şöyle rgb similasyonunu yapabileceğim bir altyapı kurabileyim ama nasıl bir yol izlemeleiyim kafam çok karışık şimdiden teşekürler

ete

Kotan04,
Sana 10 puan yolladım yetmez ise yeniden yollarım.
Ete

kotan04

saolun hocam inceliyorum peki buraya yazdıklarımı okudunuzmu? bir öneriniz varmı?

pwm.c

#4
Alıntı yapılan: kotan04 - 28 Ekim 2012, 20:00:30
özellikle donanımsal pwm desteği 1 adet bulunan pic16f628de gördüm adam 3 çıkış almış demekki yazılımsal pwm kullanıyor  :) ve çok güzel çalışıyor tabi kodları görmek mümkün değil istiyorum şöyle rgb similasyonunu yapabileceğim bir altyapı kurabileyim ama nasıl bir yol izlemeleiyim kafam çok karışık şimdiden teşekürler
@kotan04, ben RGB uygulamalarını genelde hazır olanları kullanırım. tekrardan aynı şeyleri yazmak pek işime gelmiyor :)
rgb simülasyonu ise mümkün ama çok karışık bir olay. pasic yazmaktan daha zor. o nedenle deneme yanılma yöntemi senin için bence daha iyi.
elimde birçok RGB uygulaması var ve kaynak dosyaları mevcut. siz hangi dil ile yazmak istiyorsunuz? bu forum pic basic ağırlıklı olduğu için sana pasic ile yazılımsal 3 pwm üretme yöntemini analtan bir yazı göstereyim. belki işine yarar. ensondaki uygulamayı inceleyin.
http://www.teknomerkez.net/sayfa.php?git=226

_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

kotan04

Alıntı yapılan: pwm.c - 28 Ekim 2012, 23:56:04
@kotan04, ben RGB uygulamalarını genelde hazır olanları kullanırım. tekrardan aynı şeyleri yazmak pek işime gelmiyor :)
rgb simülasyonu ise mümkün ama çok karışık bir olay. pasic yazmaktan daha zor. o nedenle deneme yanılma yöntemi senin için bence daha iyi.
elimde birçok RGB uygulaması var ve kaynak dosyaları mevcut. siz hangi dil ile yazmak istiyorsunuz? bu forum pic basic ağırlıklı olduğu için sana pasic ile yazılımsal 3 pwm üretme yöntemini analtan bir yazı göstereyim. belki işine yarar. ensondaki uygulamayı inceleyin.
http://www.teknomerkez.net/sayfa.php?git=226



ben basic ile yazmak istiyorum ufak tefek birşeyler karalıyorum ama herseferinde proteus ile simüle etmiyorum nedeni malum sadece osilaskop ile bakabiliyorum  buda tatminkar olmuyor onun yerine devre kuruyorum bazende internetteki uygulamalar için devre kuruyorum buda bana zahmetli oluyor aslında gönül isterki saatlerce uğraşayım ama iş güç olunca zaman önemli oluyor bunun için pratik bir yol arayışındayım

kotan04

bir fikri olan varmı arkadaşlar ?

ete

Skop görüntüsü bana led kadar bilgi verebiliyor. Dolayısıyla pek başka şey aramıyorum. Çok istiyorsan rgb led model dosyası bulman gerekir. Bir ara bir yerlerde görmüştüm. Bulursam buraya koyarım.
Ete

kotan04


ooben

hocam ben de 12f675 ile bir adc okuyucu yaptım adc yi okuyup aynı anda pine göndermek istiyorum 0-4.9v gibi yani bunu da yaparken aynı anda frekans çıkabilmek istiyorum yardımcı olurmusunuz. henüz bitmemiş kodu da buraya ekliyorum. saygılar bulent


DEFINE OSC 4
TRISIO=%000001:GPIO=0
B0 VAR BYTE:B0=0   
SAY VAR WORD:SAY=0
PULLS VAR BYTE:PULLS=1000
ANSEL.0 = 1
DEFINE ADC_BITS 8
DEFINE ADC_CLOCK 3     
DEFINE ADC_SAMPLEUS 50
   


SAW:
SAY=SAY+1                   
GPIO.5=B0:PAUSEUS PULLS
GPIO.5=0:PAUSEUS PULLS
IF SAY=10 THEN GOSUB SS
GOTO SAW



'wwwwwwwwwwwwwwwwwwwwwwwww analog olçme
SS:
SAY=0
ADCIN 0,B0
return

'wwwwwwwwwwwwwwwwwwwwwwwwe
END

ete

Pin ler bit bazında çalışır. Verebileceği değer ya "1" yada "0" dır. ADC den okunan bilgi tanımlamaya bağlı olarak ya 8 bit yada 10 bit olur. Programında bir tanımlama göremedim. Önce otur ADC tanımlamalarını öğren.
Daha sonra 8 bitlik bir bilginin bir port pinine verilemeyeceğinde öğrenmen gerekiyor. Yalnızca 1 veya 0 verilebilen bir yere 255 'i nasıl verebilirsinki? Vermezsin. Alt yapın eksik biraz daha çalışman gerekiyor.
Ete


ooben

cmcon= 7
ansel= %00100011
adcon0=%11000010
intcon=0

defıne adc_bıts 8 'a/d çevirim sonucu kaç bit olacak
defıne adc_clock 3 'clock kaynağı (3=rc)
defıne adc_sampleus 100 'örnekleme zamanı mikro saniye cinsinden.
defıne osccal_1k 1
adcon0.1=1

gibi yazarsam olurmu hocam

bu arada benim kafamın karıştığı yer nasıl olurda 1 çevrim de pozitif işin 0-5 v degerini nasıl değiştirebilirim
saygılar bülent

ete

Adcon0 registeri 7. biti high olursa ADC okuması sağa yaslı (10 bit) olarak , sıfır olursa sola yaslı (8 bit ) olarak alınır.
Define tanımlamasında da sonucun 8 yada 10 bit olacağını belirtmek gerekir. Senin kodlarında ADCON0 register tanımlaman yanlış oluyor bu durumda. 7. biti sıfır yapman gerekiyor.

Şu yazdığın cümleyi bir oku ve ne anlama geldiğini kendine bir sor bakalım. Ben bi rşey anlamadım çünkü;
"nasıl olurda 1 çevrim de pozitif işin 0-5 v degerini nasıl değiştirebilirim",
Ete

ooben

cmcon= 7
ansel= %00100011
adcon0=%01000010
intcon=0

defıne adc_bıts 8 'a/d çevirim sonucu kaç bit olacak
defıne adc_clock 3 'clock kaynağı (3=rc)
defıne adc_sampleus 100 'örnekleme zamanı mikro saniye cinsinden.
defıne osccal_1k 1
adcon0.1=1

verdiğiniz bilgi için teşekkür ederim ayrıca zaman ayırmışsınız hocam tekrar teşekkürler.

demek istediğim x hertz lik bir frekansın scop ta bakınca dalga boyunun tepe ve dip noktalarının arasını açmak veya kapatmak istiyorum . bu bir sunis değil kare dalga olacak umarım anlatabilmişimdir. tam adını ve nasıl yapıldığını bilmiyorum sadece pwm üzerine çalışıyorum . 

yada ; pic ile kare dalga yapıp scop ta bakıyorum minicik gorünüyor. 555 ile yapıyorum daha büyük oluyor. acaba kare dalganın tepe noktasını ve dip noktasını nasıl yakınlaştırırım veya uzaklaştırırım ?
şimdiden teşekkürler hocam



ooben

buhalden bir önceki hale getirmem mümkünmü ya da tam tersi.
teşekkürler hocam

Powered by EzPortal