Encoderlı picstepper

Başlatan Mr.Thinking, 17 Kasım 2009, 21:01:02

Mr.Thinking

robot devrelerinde kullanılan encoderle step sürücülerin mantığı nedir yardımcı olabilirmisiniz ustalarım. örnek bir devre verebilirmisiniz.

bir robot projesi tasarlıyorum ve mekaniği komple hazır stepleri yerleştirdim. Tüm mekanizmayı tasarlayıp yaptım.hatta size bir fotosunuda göndereceğim.Mekanizmam üzerinde normal dc motorlarda var.stepleri pic 16f877 ile uln2803 ler kullanıp tek picle 8 step ve 2 dc motor sürecek şekilde tasarlayıp proteuste simülasyonunu yaparak başarılı bir şekilde çalıştırdım.ancak gerçekte nasıl çalışacağını ve çıkabilecek sorunları bilmediğim için daha gelişmiş devreler tasarlamaya çalışıyorum.bunu yapabilmem için örnek bir yazılıma ihtiyacım var.Ben bu projeyi pic basic proda sadece IF ve THEN komutlarıyla çalıştırdım.bu yöntem doğrumudur bilmiyorum.Çünki pic basic pro ile yazılmış örnek bir step sürücü yazılımı bulamadım.Ete hocamın derslerindede yok.(ete hocam bu konuda yardım lütfen). benim yazdığım örnek yazılımı ekte gönderiyorum.Fakat bir sorunum var:ileri veya geri tuşlarından herhangibirini bıraktığım zman stepin frenlemesini sağlayamıyorum.frenlemden kastım tuşu bıraktığımda hangi adımda kaldıysa o adımın bobin uçları hala elektrikli kalacak.


'****************************************************************
'*  Name    : step motor yarım adım deneme yazılımı                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2009 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 10/3/2009                                         *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
@ DEVICE pic16F877A
@ DEVICE pic16F877A, WDT_on
@ DEVICE pic16F877A, PWRT_off
@ DEVICE pic16F877A, PROTECT_OFF
@ DEVICE pic16F877A, XT_OSC

CMCON=7  'komparatörleri iptal eder bu yalnızca 877A da vardır 877 de yok.
ADCON1=7 'ADC leri iptal pinlerin hepsi digital
'------------------------------------------------------------------------------
  TRISA=%11111
  TRISB=%00000000
  TRISC=%00000000
  TRISD=%00000000
  TRISE=%000
  PORTA=0
  PORTB=0
  PORTC=0
  PORTD=0
  PORTE=0
'----------------------------------------------------------------                                                  
  symbol TUS1=PORTA.0
  SYMBOL TUS2=PORTA.1
  SYMBOL TUS3=PORTA.2
  SYMBOL TUS4=PORTA.3
  SYMBOL Q1=PORTB.0
  SYMBOL Q2=PORTB.1
  SYMBOL Q3=PORTB.2
  SYMBOL Q4=PORTB.3
 
'----------------------------------------------------------------
START:
IF TUS1=0 THEN
   Q1=1
   q2=1
     FREN1:
     IF TUS1=1 THEN
               Q1=1
               Q2=1
     GOTO FREN1
     ENDIF
PAUSE 40
   Q1=0
   Q3=1
     FREN2:
     IF TUS1=1 THEN
               Q2=1
               Q3=1
     GOTO FREN2
     ENDIF
PAUSE 40
   Q2=0
   Q4=1
     FREN3:
     IF TUS1=1 THEN
               Q3=1
               Q4=1
     GOTO FREN3
     ENDIF
PAUSE 40
   Q3=0
   Q1=1
     FREN4:
     IF TUS1=1 THEN
               Q4=1
               Q1=1
     GOTO FREN4
     ENDIF
PAUSE 40
   Q4=0
     FREN5:
     IF TUS1=1 THEN
               Q1=1
               Q2=1
     GOTO FREN5
     ENDIF
PAUSE 20

ENDIF


'----------------------------
IF TUS2=0 THEN
   Q4=1
   q3=1
     FREN55:
     IF TUS2=1 THEN
               Q4=1
               Q3=1
     GOTO FREN55
     ENDIF
PAUSE 40
   Q4=0
   Q2=1
     FREN44:
     IF TUS2=1 THEN
               Q3=1
               Q2=1
     GOTO FREN44
     ENDIF
PAUSE 40
   Q3=0
   Q1=1
     FREN33:
     IF TUS2=1 THEN
               Q2=1
               Q1=1
     GOTO FREN33
     ENDIF
PAUSE 40
   Q2=0
   Q4=1
     FREN22:
     IF TUS2=1 THEN
               Q1=1
               Q4=1
    GOTO FREN22
     ENDIF
PAUSE 40
   Q1=0
     FREN11:
     IF TUS2=1 THEN
               Q4=1
               Q3=1
     GOTO FREN11
     ENDIF
PAUSE 20

ENDIF
GOTO START
ego=1/Knowledge

azimli

enkoder okuma için ve step motor sürme için özel modülleri olan ve üreticisinin hazır verdiği kodları olan (genelde kodlar C dili üzerindendir)
çipler var sizin kullandığınız çiplerin 16 bitleri mesela onlara baksanız.
enkoderi okumak çok kolaylaştırılmış stepi sürmede zorlanabilirsiniz belki.

Mr.Thinking

Alıntı yapılan: "azimli"enkoder okuma için ve step motor sürme için özel modülleri olan ve üreticisinin hazır verdiği kodları olan (genelde kodlar C dili üzerindendir)
çipler var sizin kullandığınız çiplerin 16 bitleri mesela onlara baksanız.
enkoderi okumak çok kolaylaştırılmış stepi sürmede zorlanabilirsiniz belki.

16 bit chipe bir örnek veririmisiniz.encoder için
ego=1/Knowledge