Motor yönü

Başlatan onurinci, 18 Kasım 2013, 12:28:47

onurinci

Hocam selam,
bir dc motorumuz var 5 saniye saat yönü 9 saniye ters yönde dönüyor. bunun kayışına bağlı birde gerginliği kontrol eden switc'imiz var. eğer kayışta bir gerginlik yok ise yani switch GPIO.O 'a Logic 1 bilgisi verdiği sürece sistem çalışıyor buraya kadar bir sıkıntı yok, sıkıntı kayış gerilirde Logic 0 olduysa sistemin durması gerekiyor, durmasından vazgeçtik 5 saniye sürede sonsuz hale geliyor.
yani uzamadan öz'e geçeyim işleyiş kuralları bozulduğunda ,statik mimari bozulduğunda işlemde dursun anacak switc'te logic 1 bilgisi var ise süreç işlesin .
ilgilerize hoca kalın sağlıcakla..

Simulasyon dosyası ektedir.
http://www.dosya.tc/server19/1TrHsm/Relay.rar.html

@ Device PIC12F675,WDT_OFF,PWRT_ON,PROTECT_ON, CPD_ON,MCLR_OFF,BOD_OFF,INTRC_OSC_NOCLKOUT
DEFINE OSC 4
DEFINE OSCCAL_1K 1

TRISIO=%00000001 :GPIO=0
ANSEL=0
CMCON=7

ZAMAN VAR WORD
LIMIT VAR WORD

SYMBOL sw = GPIO.0
      pause 250              ' Discipline time
      LIMIT=4700  'KOMUT GECİKMESİ İLE 5 SN YE YE TEKABÜL EDER
Reset:

'-------------------------------------------------------------------------------         
Start:
        IF SW=1 THEN BASLA
        GOTO START
       
BASLA:
      ZAMAN=0:HIGH GPIO.1
      WHILE SW=1 AND ZAMAN<LIMIT
        ZAMAN=ZAMAN+1
        PAUSE 1
      WEND
      LOW GPIO.1
      IF ZAMAN<LIMIT THEN START     
      PAUSE 1500              ' 2 relay pass delay time
'-------------------------------------------------------------------------------   
      HIGH GPIO.2:ZAMAN=0:LIMIT=8600  'KOMUT GECİKMESİ İLE 9 SN YE YE TEKABÜL EDER
      WHILE SW=1 and ZAMAN<LIMIT
        zaman=zaman+1
        pause 1
      wend
      Low GPIO.2
      IF ZAMAN<LIMIT THEN START       
      PAUSE 1500               ' 2 relay pass delay time

      goto  Start

ete

Yukarıda yazdığın kodu doğrusu ile değiştirdim.
Simulasyonda çalışıyor. Gerçektede çalışması gerekir.
Aslında yazdıkların doğru idi. Bir şeyi düşünmemişsin. Motor start aldı diyelim ana bir müddet sw=0 oldu ne olacak.?
Bunu düşünmemişsin.Önce motor durmalı sonra başa gitmeli ve işe baştan başlamalıdır.
Elbette bu işlem ikinci safha içinde geçerli. Yalnızca bunu ilave ettim. Biraz daha emniyetli kod yazdım o kadar.

Ete


onurinci

hocam emniyet açısından tam istediğim gibi olmuş .mini problemim gerekli olduğunda 90 sn doğru 90 sn ters olarak limit'i değiştirmeye kalksam ,90000 eder buda Dword gerektirir protona geçmek istemiyorum seviyorum basic'i .word bana 65535 ten yukarı müsde etmeyecektir ,peşpeşe 2 limit yazsam 45000 x 2 gibi sistem sadece birini işleyecek yani
90sn yakalayamayacağım. for next 'te yeni alışmış iken bu limit bende bocalama sürecini başlattı.

ete

While wend döngüsü içindeki pause değerini 1 yerine 2 yapsan döngü 45000 i düşer. Bence 5 kullan be uygun döngü miktarını ona göre hesapla.
Ete

onurinci

Hocam 4500x2 yapınca oldu .iki saattir beyin cimnastiği yapıyorum,pause1 önümde göremiyorum,hocam ışıksınız bizi her konuda aydınlatıyorsunuz.klavyenize sağlık hocam.kalın sağlıcakla.saygılar..

Powered by EzPortal