avatar_bilsisco

programda goto basla hatası

Başlatan bilsisco, 09 Eylül 2014, 01:32:27

bilsisco

Aşağıda sağ ve sol motora bağlı 2 tekerli bir araba kontrolü yapıyorum
kısaca belirteyim
aşağıdaki kod çalışırken neden birkaç saniyede bir Portb.4 ve portA.2 ye bağlı ledler yanıp sönüyor?
Sanki goto basla komutu basla etiketine değilde programın başına yönlendiriyor
değişik mcularla denedim denedim, yine aynı


Include "modedefs.bas"         
@ DEVICE pic16F628A
@ DEVICE pic16F628A, WDT_OFF
@ DEVICE pic16F628A, PWRT_ON
@ DEVICE pic16f628A, BOD_OFF
@ DEVICE pic16f628A, LVP_OFF
@ DEVICE pic16F628A, PROTECT_OFF
@ DEVICE pic16f628A, MCLR_OFF
@ DEVICE pic16F628A, HS_OSC
'@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT

DEFINE OSC 20

TRISA = %00000010
TRISB = %00000000
PORTA=0
PORTB=0
CMCON=7

Araba   var PortB
Lamba   var PortB.4
HIZ     var PortB.5
Mes     var PortA.2
SAYAC   var byte
ileri   var byte
geri    var byte
sol     var byte
sag     var byte
fren    var byte
yon     var byte
X       var word
Y       var word

W       var word
R       var word
Tr      var PORTA.0 'Trig pin
Ec      var PORTA.1 'Echo pin

sayac=0
ileri=9   '1001
geri=6    '0110
sol=5     '0101
sag=10    '1010
fren=0    '0000

high    lamba
pause   500
low     lamba
pause   500

araba=fren
w = 0
low tr

high    mes
pause   500
low     mes
pause   500                   
Basla :
        gosub mesafe

        araba=ileri
            gosub bekle
        araba=sag
            gosub bekle 
        araba=fren
            gosub bekle
        pause   2000
GOTO BASLA
'------------ Araba ile önündeki cismin mesafesi -------
Mesafe:   
    high    tr
    pauseus 10
    low     tr
    pulsin  ec,1,w
    r = w/29
return
'------------ Araba ile önündeki cismin mesafesi -------
Bekle:   
    for x=0 to  40
        high    hiz
        pause   5
        low     hiz
        pause   20
    next
return
END

kdrsrn

Basla etiketinden önce main kullansan ?

ete

Programda bir kusur gözükmüyor. Dediğin olay WDT pic'e reset atarsa meydana gelebilecek bir olay. Yada her hangi bir sigorta ayarının verdiği reset emrinden kaynaklanır. Zira programın Basla satırından sonra bahsi geçen pinleri yakıp söndürecek bir komut yer almamaktadır. Bu durumda olsa olsa pic bir şekilde resetleniyor demekten başka bir teori ortaya koyamayız. Sigorta ayarlarını kontrol et bence.

Ete

BİDİL

Dün gece başıma geldiği için hatırlatmak isterim, beslemenide kontrol etmelisin.
Kısa devre korumalı bir besleme kullanıyorsan ve x bir yerde kısa devre oluşuyorsa enerji gitgellerinden kaynaklanıyor olabilirmi acaba.

bilsisco

L293d yi çift yönlü 2 motor sürmek için kullanıyorum ve
devremde pic ve 7805 ten başka eleman yok, 12v 1A adaptör kullanıyorum.
L293d nin motor bağlantılarına pdfsindeki gibi diyot yerleştirdim
şimdi bazen çalışıyor bazen sanki reset atıyor daha önce de öyleydi aslında.

İlginç bir durum da var. L293d nin enable uçlarını birleştirip picin bacagına vermiştim
onu ne zaman çıkarsam düzgün ama motorlar hızlı çalışıyor.
Yavaş çalışması lazım.

ete

Durum öyle gösteriyorki devren motorlardan nem kapıyor yada etkileniyor.
Enable ucundan PWM vererek motor devrini kontrol edebilirsin. Bana kalırsa enable ucunu opto ile izole et ve gerekirse oradan PWM vererek istediğin devirde motorunu çalıştır.

Ete

bilsisco

Evet hocam motorlar tam çalışma anında sorun çıkarıyor
12V 1A lik (switch adaptörü)  smps tipi adaptör kullanıyorum
devreme bağladığım yerde akım değerleri şöyle buldum
Motorların ikisi de çalışıyorken(ölçerken çalışmaya başladı ilginç) 360mA kadar değer okudum
hiç motor çalışmıyorken 40mA okudum
elimde başka L293d olmadığından transistörlü h köprüsü yaparak sürmeyi deneyecem

ete

12V, 2 A lik bir besleme yapsan bunlar olmazdı diye düşünüyorum. Zira motorlar ilk kalkış anında pik akım denilen ve normal seviyenin bir iki katı akım çekerler. Bu anlık akım çekme sonucunda senin besleme sınıfta kalıyor ve picde hemen reset atıyor anlaşılan. Bana kalırsa daha güçlü bir besleme ile deneme yapmadan başka şeye girişme.

Ete

bilsisco

Hocam basit redüktörlü 2 tane motor için bu kaynağı nasıl bulacam?
Üstelik bu motorlar şu oyuncak arabalarda bulunan, 1 pille bile çalışan cinslerden
Ben şimdi ancak şu led tabelalarda kullanılan güç kaynağı bulmam lazım
6 tane kalem pille de halledilebilir diye düşünüyorum yada
picin beslemesini farklı bir kaynaktan verme imkanım olur mu? olursa nasıl yaparım?
Bunu hiç araştırmamıştım ama internette engele çarpmadan giden robot arabalarda bu sorunu nasıl çözmüşler merak ettim

ete

Motorlarını görmeden bu çözümleri üretmeye çalışıyorum. Sen yinede hafife alma . Kalkış akımları yüksek olabilir.
2A öyle yüksek bir akım değilki kolaylıkla bulunabilir ama elinde yoksa aramaya değmez.
Son öneri olarak Motorların fırça uçlarına birer 100nf kondansatör bağla bakalım. Söz konusu motorlar epeyce parazitli çalışırlar. Kondansatör bir kısım paraziti elimine eder.

Ete

bilsisco

motor özellikleri yazmıyor ama alttaki bağlantıdaki motorların aynısı
ben bir de 100nf kondansatör bağlayıp akşam deneyeyim hocam.

http://www.aliexpress.com/item/New-Motor-Smart-Robot-Car-Chassis-Kit-Speed-Encoder-Battery-Box-For-Arduino-Free-Shipping/1924502066.html

bilsisco

hocam dediğin gibi 100nf kondansatörleri motor uçlarına bağladım sonuç değişmedi yine reset atıyordu.
harici bir 12v çıkışlı trafodan 5v dc çıkışlı bir doğru akım kaynağı yaptım ve sadece mcu ya bağladım
şimdi bir bu kaynağım, bir de adaptörüm var. eksileri ortak.
atta isis devresini de yaptım
Çalışıyor ve sorun yok ama pille bu arabayı yapanlar nasıl bu sorunu halletmişler anlamadım

onurinci

genelde çin imalatı oyuncaklar için,kalın amperli piller motor devresini besler,9V pilde alıcı devresini besler.motorlarda ayrıca 2 adet VK200 şok bobini ve buna paralel her iki tarafında 100nF kapasite.

bilsisco

evet dediğiniz gibi tüm parçaları bulunan bir robot araba kitinde 6lı kalem pillerin yanısıra bir de 9v luk pil yatağı bulunuyor
sorunu çözdüm hocam herkese teşşekkürler

ete

Lütfen yalnızca sorunu çözdüm herkese teşekkürler demeyiniz. Mesajların arasında çözüme ait önceden bilgi vermiş bile olsanız, sorunu çözdüm şunu yaptım diyerek açıklayınki gerçek çözümün ne olduğunu bizde bilelim dahada önemlisi benzer sorunu yaşayacaklara referans bilgisi olsun.

Ete

Powered by EzPortal