Proton ile Çizgi izleyen robot yapımı

Başlatan GRaFiT, 06 Nisan 2012, 12:29:01

GRaFiT

Öncelikle Merhaba,
Benim proton ile çok fazla bir tecrübem yok aslında isis ile de çok çalışmadım ama aşağıdaki resimdeki devreyi tasarladım. Bu devredeki amacım ilk önce similasyon ile çalıştırabildiğim bir çizgi izleyen devresi yapmak ama motoru döndüremedim neden dönmediği hakkında yardım ederseniz sevinirim.



yazdığım kod ise aşağıda
Device 16F877
XTAL 20
TRISA.0=%00000001
TRISC = %00000000      
CCP1CON = %00001100
CCP1_PIN=PORTC.1
CCP2_PIN=PORTC.2
PORTA=0
PORTC=0
If PORTA.0=1 Then
HPWM 1,127,1000         
EndIf
http://teknokoliker.com - Kişisel Web Sitem

tmhzkhzhz

iyi gunler

devreyi henuz proteus da cizmedim biraz ugrasmam gereken isler var fakat ilk gordugum hatalari yaziyim belki siz once bitirirsiniz
aksam ustu bos vaktimde tekrar bakarim konuyu takip ediyorum

'device 16f877  yanlis dogrusunu yazdim'

Device = 16F877
XTAL 20

'kullandiginiz porta.0 pini varsayilan adc olarak baslar digital yapmaniz gerekiyor bunun icin register ayarlarini kullanmaniz'
'gerekir fakat sizin devrenizde adc gerektiren durum yok bunun icin butun portlari digital yapan komutu altta yazdim'

ALL_DIGITAL = TRUE


'TRISA.0=%00000001'
'ustteki komut yanlis dogrusunu yazdim'

trisa.0=1

TRISC = %00000000

'pwm ayarlarina henuz bakmadim sizin dogru yazdiginizi varsaydim aksam bakarim ayrica l293 olarak okudum tam okunmuyor dogruysa l293' 'de neden pwm kullandiniz'
     
CCP1CON = %00001100
CCP1_PIN=PORTC.1
CCP2_PIN=PORTC.2

'PORTA=0    bu komutu yazmayin giris olarak tanimlanmis porta.0 pinini saseye baglamaya calisir gerek yok yanlis calisir'

PORTC=0

'ornek olarak label yazdim'

kontrol:

If PORTA.0=1 Then
HPWM 1,127,1000         
EndIf

'peki yukaridaki olasilik gerceklesmezse ne yapicak yazmamissiniz diger olasiliklari yazip bundan sonra ustte bir label olusturup
'program akisini yonlendiriniz bu sekilde birakirsaniz mikrodenetleyici surekli reset yapar'

goto kontrol

16f877 nin 1 nolu ayagini  +5 volta baglayiniz yoksa mikrodenetleyici baslamaz mclr ayagidir

ayrica mikrodenetleyicinin isis de frekans ayarini yaptinizmi  hex dosyasini gosterdinizmi birde yapacaginiz is icin 16f877 cok fazla değilmi
16f628  ve 12f675  var dahili osilator leri var kristal kullanmaniz gerekmez  mclr ayagini programda kapatabiliyorsunuz

16f628a  18 pin 2 k program hafizasi
12f675    8 pin 

taskintez

L298 de pwm kontrolü yok. PWM kontrollü motor sürme ancak LMD8200 ile yapılabilir.

taskintez


ibrsel

L298 in datasheet ini inceleyerek çalışma mantığını tam kavramalısın..in1-in2 1. Motor sola-sağa döndürme pinleri..in3-in4 2. motor sola-sağa döndürme pinleri.
1. motor sola için;
in1 girişine CCP1 pininden PWM ini uygula.in2=0 olunca motor bir yöne,in2=1 olunca motor ters yöne döner.programını ve donanımını buna göre güncelle.

ipek

ilgili yön pinlerine doğru tablo uygulandığında enable girişlerine Pwm uygulanabilir diye düşünüyorum.

taskintez

Serdar Çiçeğe ait CCS C ile PIC Programlama kitabının sayafa 368 de koyu renkli yazıları okumanızı tavsiye ederim...Orada "Eğer uygulamanızda motorun hızını da ayaralamak istiyorsanız LMD18200 gibi PWM girişli entegreleri kullanabilirsiniz." diye not var....