Picproje Elektronik Sitesi

DERLEYİCİLER => Proton+ => Konuyu başlatan: Epsilon - 01 Ocak 2019, 22:13:01

Başlık: PWM Çıkışını Terslemek
Gönderen: Epsilon - 01 Ocak 2019, 22:13:01
Protonda ufak bir program yazdım .
Program bir butona bastıkça bir porttaki LED lerin her biri sıra ile yanıyor.Birinci LED yandığında 1,5 volttan başlayıp yarım volt farkla artıyor.Bu kısmı çalışıyor.

Toplam 6 LED var.Program tekrar çalıştırıldığında örneğin 3 kere basıldığında ayarlanmış olan örneğin 2,5 voltun PWM çıkışından verilmesi gerekiyor.

10 ,20 gibi bir değeri EEPROM a kaydederim de butona bastıkça değişen değeri- bir döngüden- alıp nasıl kaydedeceğim?
İkinci sorun ise sistem ışık algıladığında PWM uçlarındaki o voltajın polaritesi değişmesi gerekiyor.
Yani ışık yokken PWN uçlarında 0,75 volt varsa ,ışığı algılayınca bu voltaj 2,5 volta çıkacak ve + ucu - olacak ,- ucu ise + olacak

Bu iki konu nasıl yapılabilir?
Yardımlarınız için şimdiden teşekkürler.

Başlık: Ynt: PWM Çıkışını Terslemek
Gönderen: Andromeda - 01 Ocak 2019, 22:54:11
..pwm dalgasının darbe süresini değiştirince voltajıda ayarlanmış olacak..
ilk soruyu ise anlamadım.
Başlık: Ynt: PWM Çıkışını Terslemek
Gönderen: Epsilon - 01 Ocak 2019, 23:07:06
Alıntı yapılan: elek - 01 Ocak 2019, 22:54:11..pwm dalgasının darbe süresini değiştirince voltajıda ayarlanmış olacak..
ilk soruyu ise anlamadım.

Hocam  farklı voltajları elde etmekte bir sorun yok.
Çözemediğim kısmı butona bastıkça artan bu değerin -örneğin 3,5 voltta kalmışsa .Tekrar açıldığında PWM çıkışının 3,5 volttan açılması.
Diğer sorun ise ışık algıladığında bu pWM voltajının kutuplarının değişmesi(Işık algıladığında saat yönünde dönen motorun ,bu sefer saat yönünün tersinde dönmesi gibi düşünün )
Başlık: Ynt: PWM Çıkışını Terslemek
Gönderen: mehmet - 01 Ocak 2019, 23:18:43
Ödev mi acaba?
Başlık: Ynt: PWM Çıkışını Terslemek
Gönderen: Epsilon - 01 Ocak 2019, 23:22:25
Alıntı yapılan: mehmet - 01 Ocak 2019, 23:18:43Ödev mi acaba?
Hayır değil?
Neden öyle dediniz anlamadım
Başlık: Ynt: PWM Çıkışını Terslemek
Gönderen: Epsilon - 01 Ocak 2019, 23:27:04
Koduda ekleyeyim

Device = 16F877A
Xtal=20
TRISA=0
TRISC=0
TRISB=%00010000
TRISD=0
TRISE=0
Dim SAYAC As Byte
Dim Loop As Byte
DEFINE CCP1_REG PORTC           'HPWM PORTC.1
DEFINE CCP2_REG PORTC           'HPWM PORTC.2
DEFINE CCP1_BIT 2                          'CCP1 PİNİ PORTC.2
DEFINE CCP2_BIT 1                          'CCP1 PİNİ PORTC.1

Declare All_Digital = TRUE
Declare PortB_Pullups = On      ' Enable PORTB pull-ups
Output PORTC


PORTD = 0        ' Set PORTD (LEDs) to all output

Main:
If PORTB.4 =0 Then                              'butona basıldı mı?
  While PORTB.4 ==0 :Wend                 'butona basmayı bırakana kadar bekle
  Inc SAYAC                                        'sayac değerini bir artır
  If SAYAC >=7 Then SAYAC =1             'eger sayac degeri 5 ve 5 den büyükse sayacı 1 yap yani başa dön
EndIf
If SAYAC =1 Then PORTD =%00000001:HPWM 1,39,1400       
If SAYAC =2 Then PORTD =%00000010 :HPWM 1,45,1400
If SAYAC =3 Then PORTD =%00000100 :HPWM 1,49,1400
If SAYAC =4 Then PORTD =%00010000 :HPWM 1,56,1400
If SAYAC =5 Then PORTD =%00100000 :HPWM 1,65,1400
If SAYAC =6 Then PORTD =%01000000 :HPWM 1,78,1400

DelayMS 100

GoTo Main

Başlık: Ynt: PWM Çıkışını Terslemek
Gönderen: Andromeda - 02 Ocak 2019, 05:49:20
.. butona basıldıkça artan değişken kaydedilecek ve sonra bu değer istenen yerde kullanılabilir.
Amaç bir motorun ters çalışması  ise dc motor sürücüsü ile bu kolayca yapılabilir.
Ama önce yapılmak istenen devrenin tam olarak ne amaca hizmet edeceğinin bilinmesi gerekir..
pwm nin kutuplarının ters yapılması ne demek  anlamadım..
Başlık: Ynt: PWM Çıkışını Terslemek
Gönderen: mehmet - 03 Ocak 2019, 23:09:17
Gerilim olarak değil de, pwm
dalga oranı olarak düşünün.
0-255 aralığında; 0-127 arasında
ise sola dönüş olsun. Aynı şekilde
128-255 için de sağa dönsün.

Bir pin sağ/sol seçimi için
röleyi kontrol edebilir.
Pwm dalga oranı da buna göre
oranlanır.

Tabii bunun tam ne işe yaradığını
bilmeden söyledim.
Başlık: Ynt: PWM Çıkışını Terslemek
Gönderen: Epsilon - 04 Ocak 2019, 19:05:07
@mehmet hocam
dedikleriniz olabilir.Aşağıdaki resmi bir videodan aldım.Resimdekini de deneyebilirim aslında
Protonda PWM komutununun syntaxın da  terslemek ile ilgili bir ek özellik yokmudur?
Döngü sonucu buton değerini sanırım Vlookup gibi bir komutla yapabileceğim sanırım


(https://i.ibb.co/gPWZsHn/pwm-terslemek.png) (https://ibb.co/gPWZsHn)
Başlık: Ynt: PWM Çıkışını Terslemek
Gönderen: Andromeda - 04 Ocak 2019, 19:58:43
..pwm çıkışı nereye bağlanacak?
Başlık: Ynt: PWM Çıkışını Terslemek
Gönderen: Epsilon - 04 Ocak 2019, 20:03:45
Alıntı yapılan: elek - 04 Ocak 2019, 19:58:43..pwm çıkışı nereye bağlanacak?

Bir cihaza bağlanacak
Başlık: Ynt: PWM Çıkışını Terslemek
Gönderen: Andromeda - 04 Ocak 2019, 21:02:38
..pwm çıkışının terslenmesini anlayamadım hala..
yani darbelerin boşluk ,boşlukların darbe olmasımı?
neticede pwm çıkışı tek bir pinden çıkıyor..referans olarak 
0 voltajı alıyor..
Başlık: Ynt: PWM Çıkışını Terslemek
Gönderen: Epsilon - 04 Ocak 2019, 21:18:57
Yukarıda örneğini verdim.Bir durumda  motorun sola dönmesi başka bir durumda sağa dönmesi gibi ve voltajlar aynı olacak.

Dolu boş oranı ile ilgili değil.Onunla ilgili olsa maximumdan o duty yi çıkartırım
Başlık: Ynt: PWM Çıkışını Terslemek
Gönderen: Andromeda - 04 Ocak 2019, 21:32:27
..pwm çıkışı bir cihaza bağlanacak ise o cihazın pwm ye tepkisini bilmek lazım..
Başlık: Ynt: PWM Çıkışını Terslemek
Gönderen: Epsilon - 04 Ocak 2019, 22:25:03
 @ elek  aşağıdaki videoda izah ediliyor(18:45)

Başlık: Ynt: PWM Çıkışını Terslemek
Gönderen: sadogan - 05 Ocak 2019, 00:03:03
Videoda yanlış anlatım var. Transitor inverter olark çalıştığında giriş 0 oldufunda çıkış vcc giriş bir direnç üzerinden vcc olduğunda çıkış 0 olur.
Anladığım kadarı işe sizin istediğiniz yüke giden beslemenin polaritesinin değişmesi.
high bridge transistor sürücüsü gerekiyor.
https://www.youtube.com/watch?v=tCADp0we_54
Başlık: Ynt: PWM Çıkışını Terslemek
Gönderen: Epsilon - 06 Ocak 2019, 21:40:33
@sadogan
Cevabınız için teşekkürler.

Sistemi çalıştırabildim.Bu tersleme işlemlerine gerek kalmadı.
Cihaz 40-80 hz arasında çalışıyor.Ben 250 hz de çalıştırabildim .
Frekansı düşürebilmek için 4 mhz lik kristal kullandım.Bu frekansa kadar inebildim
HPWM komutuyla elde ettiğim bu 250 Hz i en azından 80 hz e nasıl düşürebilirim?

Band pass filtre olabilirmi?
Başlık: Ynt: PWM Çıkışını Terslemek
Gönderen: F.T - 06 Ocak 2019, 22:54:30
Frekans bölücü entegre kullanmanız lazım.
Yada işlemci ile 80 hz üretmek için tmr kesmesi kullanarak bu işi yapmanız lazım.
Veyahut 80 hz elde etmek için xtal frekansınızı dahada düşürmeniz gerekecek.
Başlık: Ynt: PWM Çıkışını Terslemek
Gönderen: fahri- - 07 Ocak 2019, 09:53:17
4MHz yerine 1Mhz kristal kullanırsanız frekansınız 250/4 olur.