PIC 16F877 İLE DC MOTOR HIZ KONTROLÜ

Başlatan mamidamanda, 07 Eylül 2012, 19:57:04

mamidamanda

Arkadaşlar 1 haftadan beri uğraşıyorum.Bir çizgi izleyen kodları yazdım ama diffansiyel sürüş için motoru durdurmak yerine %50 gibi hızlara düşürmek istiyorum. Bunu PROTON IDE nasıl yapabilirim? Yardımlarınız için şimdiden teşekkürler...

matador

basic le arasında pek bir fark yok diye biliyorum basic ten bir örnek.

DEFINE CCP1_REG        PORTC                           '1. pwm modül çıkışı portc
DEFINE CCP1_BIT        2                               '1. pwm modül çıkışı 2.bit
DEFINE CCP2_REG        PORTC                           '2. pwm modül çıkışı portc
DEFINE CCP2_BIT        1                               '2. pwm modül çıkışı 1.bit

HPWM 1,MOT1,25000                              'MOT1 byte tipi değişken içindeki sayı pwm için duty değeri, 25000 sinyalin frekansı                                                                    Hz cinsinden 1 ise 1. pwm çıkışı
HPWM 2,MOT2,25000


Basic te donanımsal pwm kullanım böyle   proton pwm örnek diye aratırsan bir çok örnek çıkar büyük ihtimalle.

mamidamanda

Arkadaşım yanıt için teşekkürler, verdiğin kodlar işe yarıyor ama kodların içine nasıl yerleştireceğimi bilemedim.ISIS de deneyince ikiside yavaş döndü. Sadece biri döndü. Kodları veriyorum içine yerleştirirsen çok teşekkür ederim. Ayrıca 25000000 değiştirince farklı hızda dönüyor değil mi? Şimdiden teşekkürler...
Device=16F877
TRISB=1
TRISC=0
PORTC=0
PORTB=0
Dim MOTORSOL As PORTB.2
Dim MOTORSAG As PORTB.4
Dim SENSORSOL As PORTC.0
Dim SENSORORTA As PORTC.1
Dim SENSORSAG As PORTC.2
BASLA:
If SENSORSAG=1 Then
GoTo SAG
Else
If SENSORORTA=1 Then
GoTo DUZ
Else
If SENSORSOL=1 Then
GoTo SOL
SAG:
MOTORSOL=1
MOTORSAG=0
EndIf
GoTo BASLA
SOL:
MOTORSAG=1
MOTORSOL=0
EndIf
GoTo BASLA
DUZ:
MOTORSAG=1
MOTORSOL=1
EndIf
GoTo BASLA
End

Maxim

protonun help dosyasını inceleyin
protondaki help dosyası süperdir

hpwm komutuna bakın

kodun tanımlamar bölümünden sonrasına
yani, başla etiketinden bir öncesine
Declare CCP1_Pin Port . Pin komutunu ekleyin

mesela 16f877A için ccp1 pwm çıkışınımı kullanıcaz ?
o zaman Declare CCP1_Pin PortC.2 yazıyoruz
şimdi derleyici buranın hardware pwm çıkışı olarak kullanılacağını biliyor

komutumuz Hpwm
Hpwm 1,127,1000 mesela bunun açılımı şu demek
1. pwm çıkışı, 127 %50 duty , 1 khz ile

Hpwm 1,64,2000
1. pwm çıkışı, %25 duty , 2khz


işte bunlar zaten help pdf dosyasında yazıyor
Hpwm 

Syntax 
Hpwm Channel, Dutycycle, Frequency



Example
   Device = 16F877 
   Declare Xtal = 20 
    Hpwm 1,127,1000          ' Send a 50% duty cycle Pwm signal at 1KHz 
   DelayMs 500 
    Hpwm 1,64,2000           ' Send a 25% duty cycle Pwm signal at 2KHz 
   Stop