yuksek akimli motor surme devresi

Başlatan Libertador, 28 Aralık 2003, 15:57:53

Libertador

Herkese merhabalar. Asagida 8A ceken motoru surme devresini gonderiyorum. Devreyi

orcad'de simule ettim. Devre ufak tefek yerler haric gayet iyi calisiyor. Ufak tefek dedigim yerlere gelince;
Data girislerine (kare dalga ureticileri) 0V uyguladigimda motorun iki ucu da

birbiriyle ayni gerilimlerle salinim yapiyor. Sanirim bu bir sorun yaratmaz. Yine de sizden devre hakkinda yorumlarinizi bekliyorum. Onerebileceginiz baska ornek devreler ve devredeki elemanlar

yerine onerebileceginiz baska elemanlar varsa sevinirim.

Devrenin amacini kisaca izah etmek gerekirse, Devrede gorulen kare dalga ureticilerin yerine PIC baglayarak PWM ile 8A ceken

bir motor surecegim. Motorun durma hizi oldukca onemli.
Herkese simdiden tesukkurler.

Not: web siteme dosya gondermeyle ilgili bir problemim oldugu icin dosyayi picprojeup

grubuna gonderdim umarim bir sorun teskil etmez. :roll:



Libertador

Devreyi yuksek akim ceken bir motorla denedim. Sonuc fena değil. Fakat sinyal olarak 1-1 veya 0-0 gonderdigimde istedigim

hizda durmadi. Ancak ters gerilim uyguladigimda oldu. Acaba h-bridge devrelerinde motorun hizli durmasi icin nasil bir devre eklemeliyim? Tek yon olsaydi ters yonde hizli diyot baglardim ama

burada bu soz konusu değil.  

:(

http://f6.grp.yahoofs.com/v1/8KoGQFXAcSg1wyMSJMPKVOp6uEK51eaglEeCYA99e6K4XVDkmh8M_I3m2qeVzcs_cqjb-OYtkDzRU54lrETOmCreTYdcM7IaRzkP/libertador/h-b

ridge.JPG


Erol YILMAZ

alt veya ust gruptaki transistorleri acarsan motor cıkısı kisa devre olur. Ve kısa zamanda durur.

aster

koprü devrenden motora hem + pals hem - pals gönder
iki pals de eşit olduğunda motor kendinden frenli olarak durur
hangi pals adedi (frekansı) fazlaysa motor o yöne dönecektir
tersi olduğunda öbür yöne dönecektir
palsler eşit olduğunda kazıklıyacaktır (mecburiyetten)
hazırda bir çizim yok umarım anlata bilmişimdir
yani start verdiğinde motor dönsede dönmesede kartın çalışıyor olacak
kart çalışır vaziyette motor duruyor iken motoru ellediğde bir titreme hissedeceksin
çünki bir sola bir sağa dönüyor olacak ama frekans eşit olduğu için motor duruyor olacak

Libertador

Alıntı yapılan: "aster"koprü devrenden motora hem + pals hem - pals gönder
iki pals de eşit olduğunda motor

kendinden frenli olarak durur
hangi pals adedi (frekansı) fazlaysa motor o yöne dönecektir
tersi olduğunda öbür yöne dönecektir
palsler eşit olduğunda kazıklıyacaktır

(mecburiyetten)
hazırda bir çizim yok umarım anlata bilmişimdir
yani start verdiğinde motor dönsede dönmesede kartın çalışıyor olacak
kart çalışır vaziyette motor duruyor iken

motoru ellediğde bir titreme hissedeceksin
çünki bir sola bir sağa dönüyor olacak ama frekans eşit olduğu için motor duruyor olacak
Sonuc mukemmel. Tesukkurler

aster. Durumu ifade etme acisindan bulabildigim tek kelime "lönk" diye durdugudur.  :D
Devre icin *.asm dosyasini su an yazmaktayim. En kisa zamanda gonderecegim.

aster

Bu uygulama ile motoru kendinden frenli yapıyorsunuz
kritik durumlarda veya genelde bu şekil uygulama her zaman çok iyi sonuçlar verir
motora hiç bir zararı yoktur ve istediğiniz devirde ve ani yön değişimleri gereken
her şekilde size cevap verir , senin de dediğin gibi sonuç mükemmeldir
sürücü ısınmalarıda minumumdur !
aslen bu bir PWM uygulamasıdır,
555 ile basit bir monostable ile duty cycle yaparsanız işte size kontrol

Libertador

Merhaba uygulamaya gecince birkac noktada sorun meydana geldi. Oncelikle PWM frekansinin tam olarak hangi degerde olmasi gerektigine karar veremedim. 50Hz olarak duymustum fakat bu deger butun motorlar icin ayni mi?
PWM ile hiz kontrolu yaparken dusuk hizlarda motordan otme sesi meydana geliyor. Hizi artirdigimda ise bu ses kesiliyor. Bu da bana sanki sabit bir frekans yerine degisken bir frekans uygulamanin daha mantikli olabilecegini getirdi. Siz PWM motor surme devrelerinizde bu soruna nasil bir cozum buluyorsunuz?
Bu arada bu otme meselesi brake icin de gecerli. Bu acaba motora zarar verir mi? Son olarak frekansi azalttigimda otme sesi kesiliyor. Fakat yuksek oranda bir titreme meydana getiriyor.
Asagida yazmis oldugum kod bulunuyor. Biraz bastan savma oldu. Daha duzgun hale getirecegim.
;PORTA,0 ve PORTA,1 motor girisleri ; PORTB,4 ileri-geri ; PORTB,1 Fren ; PORTB,2 PORTB,3 hiz azaltma artirma 	
	LIST	P=16F84
	INCLUDE	"P16F84.INC"
	ORG		H'000'
	GOTO	ANA
	ORG		H'004'
	GOTO	HBRIDGE
ANA
SAYAC1	EQU	h'0F'
SAYAC2	EQU	h'10'
SAYAC3	EQU	h'11'
TBOSLUK	EQU	H'0D'
TDARBE	EQU	H'12'
SAYAC4	EQU	H'13'
SAKLA_S	EQU	H'14'
SAKLA_W	EQU	H'15'
SAYAC5	EQU	H'16'
SAYAC6	EQU	H'17'
SECIM	EQU	H'18'

	MOVLW	B'10100000' ;Tmr0 kesmesi acik diger kesmeler kapali, RBIF=0
	MOVWF	INTCON
                                                                                                                                                                                                                                                                     
	BSF	STATUS,5

	MOVLW	B'10000110' ; portb girisleri pull-up.
	MOVWF	OPTION_REG

	MOVLW	B'11111111' ;PORTB giris
	MOVWF	TRISB
	CLRF	TRISA	    ;PORTA cikis

	BCF	STATUS,5

	CLRF	PORTA
	MOVLW	D'0'
	MOVWF	TDARBE
	MOVLW	D'255'	    
	MOVWF	TBOSLUK	 
	BCF	SECIM, 0
LOOP
ARTIR
	BTFSC	PORTB, 2
	GOTO	AZALT
	MOVLW	D'250'
	SUBWF	TDARBE,W
	BTFSC	STATUS,0
	GOTO	LOOP
	INCF	TDARBE,F
	DECF	TBOSLUK, F
	GOTO	RED
AZALT
	BTFSC	PORTB, 3
	GOTO	LOOP
	MOVLW	D'5'
	SUBWF	TDARBE,W
	BTFSS	STATUS,0
	GOTO	LOOP
	DECF	TDARBE,F
	INCF	TBOSLUK, F
RED
	CALL	GECIKME
	GOTO	LOOP
	

HBRIDGE
	MOVWF	SAKLA_W
	SWAPF	STATUS, W
	MOVWF	SAKLA_S
	BTFSS	PORTB,1
	CALL	BRAKE
	BCF	INTCON,2
	BTFSS	SECIM, 0
	GOTO	DARBE
	GOTO	BOSLUK
DARBE
	BSF	SECIM,0
	BTFSS	PORTB, 4
	GOTO	ATLA1
	GOTO	ATLA2
ATLA1
	BSF	PORTA,0
	BSF	PORTA,1
	GOTO	SONUC1
ATLA2
	BSF	PORTA,1
	BSF	PORTA,0
	GOTO	SONUC1
SONUC1	
	MOVF	TDARBE,W
	MOVWF	TMR0
	GOTO	SON
BOSLUK	
	BCF	SECIM,0
	BTFSS	PORTB,4
	GOTO	ATLA11
	GOTO	ATLA22
ATLA11
	BCF	PORTA,0
	BSF	PORTA,1
	GOTO	SONUC2
ATLA22
	BCF	PORTA,1
	BSF	PORTA,0
	GOTO	SONUC2
SONUC2
	MOVF	TBOSLUK,W
	MOVWF	TMR0
	GOTO	SON
SON
	SWAPF	SAKLA_S, W
	MOVWF	STATUS
	SWAPF	SAKLA_W, F
	SWAPF	SAKLA_W, W
	RETFIE
GECIKME
	MOVLW	D'5'
	MOVWF	SAYAC1
D1
	MOVLW	D'10'
	MOVWF	SAYAC2
D2
	MOVLW	D'100'
	MOVWF	SAYAC3
D3
	DECFSZ	SAYAC3, F
	GOTO	D3
	DECFSZ	SAYAC2, F
	GOTO	D2
	DECFSZ	SAYAC1, F
	GOTO	D1
	RETURN
BRAKE
	MOVLW	D'10'
	MOVWF	SAYAC6
BRAKE2
	DECFSZ	SAYAC6
	GOTO	BRAKE3
	MOVLW	D'0'
	MOVWF	TDARBE
	MOVLW	D'255'	    
	MOVWF	TBOSLUK	 	
	RETURN
BRAKE3
	BSF		PORTA,0
	BCF		PORTA,1
	CALL	GCKME2
	BCF		PORTA,0
	BSF		PORTA,1
	CALL	GCKME2
	GOTO	BRAKE2
GCKME2
	MOVLW	D'3'
	MOVWF	SAYAC4
D4
	MOVLW	D'100'
	MOVWF	SAYAC5
D5
	DECFSZ	SAYAC5
	GOTO	D5
	DECFSZ	SAYAC4
	GOTO	D4
	RETURN
	END

aster

50Hz ikiye bölündüğü için sn de 25 palse düşüyor ve bu algılanacak bir titreşim oluşturuyor
frekansı yükselt sonuçta devri sen ayarlıyacaksın max deviri ölçüp bulabilirsin
o noktayıda fixlersin üstüne çıkmaz
duyduğun osilatör (osc) sesi pwm sesidir hiç bir zararı yok (kulakların dışında)(sivri sinek kovucu ları düşün)
zaten bu sesi duyduğunuz başka alette pwm olduğunu hemen anlarsınız
frekansı yükseltiğinde ses azalacaktır
iyi olmuş eline sağlık

Libertador

Asagida Pic16F877 icin yaptigim DC motor surme kodunu gonderiyorum. Program RA0 'a baglanmis potansiyometre ile hiz kontrolu yapiyor. ADC donusumu icin http://www.antrak.org.tr/gazete/042001/adnan.htm sitesinden yararlandim. ADRESH 'in en anlamli biti (7. bit) ileri veya geriyi belirliyor. Diger 7 bit ise hizin miktarini belirliyor. Pic16F877'nin PWM cikisini incelemekteyim. Fakat anladigim kadariyla sadece RC2 cikisi PWM icin kullanabiliyor. Bana ise ek devre yapmadan iki PWM cikisi gerektiginden PWM cikisini yazilimsal olarak yaptim.
Bu konuda bildiginiz yani iki veya daha fazla PWM cikisli 16FXXX serisi bir mikrodenetleyici varsa bilgilenmek isterim.
;RB1 VE RB2 CIKIS, RA0 POTANSİYOMETRE BAGLI HIZ KONTROLU, RA1 BRAKE
	LIST	P=16F877 
	INCLUDE	"P16F877a.INC" 
 	ORG		H'000'
	GOTO	ANA
	ORG		H'004'
	GOTO	HBRIDGE

ANA
SAYAC1	EQU	h'21'
SAYAC2	EQU	h'22'
SECIM	EQU	H'23'
TDARBE	EQU	H'24'
SAYAC3	equ	h'25'  
 MOVLW B'10100000' 
 MOVWF INTCON 
 MOVLW B'00000000' 
 MOVWF PORTA 
 MOVLW B'00000000' 
 MOVWF PORTB 
  MOVLW B'00000000' 
 MOVWF PORTC 
 MOVLW B'00000000' 
 MOVWF PORTD 
 MOVLW B'00000000' 
 MOVWF PORTE 
 movlw B'01000001' ;Konum/8, A/D enabled 
 movwf ADCON0 

 BSF STATUS,RP0 ; Bank 1  
 BCF STATUS,RP1 ; Bank 1 
 MOVLW B'10000111' ;TMR0 prescaler, 1:256 Bölme palsı 
 MOVWF OPTION_REG 
 MOVLW B'00001110' ;Left seçme,1 analog channel  
 MOVWF ADCON1 
 MOVLW B'00000001' 
 MOVWF TRISA 
 MOVLW B'10000000' 
 MOVWF TRISB 
 MOVLW B'00000000' 
 MOVWF TRISC 
 MOVLW B'00000000' 
 MOVWF TRISD 
  MOVLW B'00000000' 
 MOVWF TRISE 
 BCF STATUS,RP0 ; Bank 0 
 BCF STATUS,RP1 ; Bank 0 

;-------------------------------------program baslangıcı------------------------------------- 
BASLA
	MOVLW	D'10'
	MOVWF	SAYAC3
DONGU
 BTFSC	SECIM, 0
 GOTO	ILERI
 BTFSS	SECIM, 0
 GOTO	GERI
ILERI
	BSF	PORTB,2
	COMF	TDARBE, W
	MOVWF	SAYAC1
	BSF	PORTB,1
	CALL	GCKME2
	MOVF	TDARBE, W
	MOVWF	SAYAC1
	BCF	PORTB,1
	CALL	GCKME2
	GOTO	DONGU
GERI
	BSF	PORTB,1
	MOVF	TDARBE, W
	MOVWF	SAYAC1
	BSF	PORTB,2
	CALL	GCKME2	
	COMF	TDARBE, W
	MOVWF	SAYAC1
	BCF	PORTB,2
	CALL	GCKME2
	GOTO	DONGU

HBRIDGE
	BTFSS	PORTB,7
	CALL	BRAKE
	
	BCF	INTCON,T0IF
	BSF	ADCON0,GO ;basla A/D cevirmeye 
WAIT 
	BTFSS	PIR1,ADIF ;islem bitene kadar bekle 
	GOTO	WAIT 
	BTFSC	ADRESH,7 
	BSF	SECIM, 0
	BTFSS	ADRESH,7
	BCF	SECIM,0
	RLF	ADRESH,W
	MOVWF	TDARBE
	
	MOVLW	H'FF'
	SUBWF	TDARBE, W
	BTFSC	STATUS, 2
	DECF	TDARBE, F
	
	MOVLW	H'00'
	SUBWF	TDARBE, W
	BTFSC	STATUS, 2
	INCF	TDARBE, F
	RETFIE
BRAKE
	BCF	PORTB,1
	BSF	PORTB,2
	MOVLW	D'125'
	MOVWF	SAYAC1
	CALL	GCKME2
	
	BSF	PORTB,1
	BCF	PORTB,2
	MOVLW	D'125'
	MOVWF	SAYAC1
	CALL	GCKME2
	DECFSZ	SAYAC3
	GOTO	BRAKE
	MOVLW	D'10'
	MOVWF	SAYAC3
	RETURN
GCKME2
D4
	MOVLW	D'10'
	MOVWF	SAYAC2
D5
	DECFSZ	SAYAC2
	GOTO	D5
	DECFSZ	SAYAC1
	GOTO	D4
	RETURN
	END

Veli B.

Alıntı Yap8.0 CAPTURE/COMPARE/PWM
MODULES
Each Capture/Compare/PWM (CCP) module contains
a 16-bit register which can operate as a:
• 16-bit Capture register
• 16-bit Compare register
• PWM master/slave Duty Cycle register
Both the CCP1 and CCP2 modules are identical in
operation, with the exception being the operation of the
special event trigger. Ta bl e 8 - 1 and Tabl e 8- 2 show the
resources and interactions of the CCP module(s). In
the following sections, the operation of a CCP module
is described with respect to CCP1. CCP2 operates the
same as CCP1, except where noted.
CCP1 Module:
Capture/Compare/PWM Register1 (CCPR1) is com-prised
of two 8-bit registers: CCPR1L (low byte) and
CCPR1H (high byte). The CCP1CON register controls
the operation of CCP1. The special event trigger is gen-erated
by a compare match and will reset Timer1.
CCP2 Module:
Capture/Compare/PWM Register1 (CCPR2) is com-prised
of two 8-bit registers: CCPR2L (low byte) and
CCPR2H (high byte). The CCP2CON register controls
the operation of CCP2. The special event trigger is gen-erated
by a compare match and will reset Timer1 and
start an A/D conversion (if the A/D module is enabled).
Additional information on CCP modules is available in
the PICmicro™ Mid-Range MCU Family Reference
Manual (DS33023) and in Application Note 594, “Using
the CCP Modules” (DS00594).
TABLE 8-1: CCP MODE - TIMER
RESOURCES REQUIRED
TABLE 8-2: INTERACTION OF TWO CCP MODULES
CCP Mode Timer Resource
Capture
Compare
PWM
Timer1
Timer1
Timer2
CCPx Mode CCPy Mode Interaction
Capture Capture Same TMR1 time-base.
Capture Compare The compare should be configured for the special event trigger, which clears TMR1.
Compare Compare The compare(s) should be configured for the special event trigger, which clears TMR1.
PWM PWM The PWMs will have the same frequency and update rate (TMR2 interrupt).
PWM Capture None.
PWM Compare None.

Bildiğim kadarı ile 877 iki donanımsal PWM modülüne sahip.

oyaz

Merhaba linki acamadım. Yenilemeniz mümkün mü acaba ?
Become a learning machine...