pwm ile dc motor hız kontrol ve takometre ile hız gösterimi

eywallah kardeş ilgilenmen yeter , uğraşcam yapmam gerekiyor bitirme projem bu benim :) çok sağolun
 
ya C ile pic program yazmadıgım icin sana tam olarak yardım edemiyorum

izlemen gereken yol icin yardımcı olabilirm yada picbasic kodunda yardım edebilirim.

sen hangi pici kullanıyorsun bu arada 16f877 mi ?
 
abi yardımcı olursan sevinirim, ben dc motorun hızını kontrol edebiliyom picin pwm özelliğini kullanarak.darbe genişliğini artırıp azaltabiliyom buraya kadar sorun yok Allah'a şükür :) takometreyide ilave edebilsem rahatliycam
 
yardım edebilcek biri olursa çok sevinirim bitirme projem yapmak zorundayım
 
Proton basic kodu..
1 pwm cıkısı var motor tek yone donuyor..
portd ve porte lcd icin

portb 6 ve 7 hız PWM duty artırma ve azaltma
portb.1 Takometre icin giris sinyali..
60 Sn de 1 RPM bilgisini yeniliyor.. motorun dakikadaki hızını gosteriyor..
hızlıca yazdım .. ne kadar saglıklı bilmiyorum test etmen gerekli

Kod:
	Device = 16F877
        XTAL = 20


		LCD_DTPIN = PORTD.4	
		LCD_RSPIN = PORTE.0
		LCD_ENPIN = PORTE.1
		LCD_INTERFACE = 4	' 4-bit Interface
		LCD_LINES = 2
		LCD_TYPE = 0
		LCD_COMMANDUS = 2000
		LCD_DATAUS = 50
		LCD_RWPIN = PORTE.2
		
        CCP1_PIN = PORTC.2
		CCP2_PIN = PORTC.1
		


 Symbol SW1 = PORTB.6
 Symbol SW2 = PORTB.7
 
 
 Dim Duty As Byte
 Dim US As Word 
 Dim sn As Byte 
 Dim RPM As Word
 Dim BUF1 As Byte
 Dim BUF2 As Byte


 
 On_Interrupt GoTo Main_Int     
 ALL_DIGITAL = TRUE
 PORTB   = 0
 TRISB   = 255
 TRISE.2 = 0
 OPTION_REG=%10000111
 PORTB_PULLUPS = On 


 INTCON.4 = 1   ' Portb.0 External Interrupt Acık
 INTCON.5 = 1   ' Timer0 Interrupt Acık PORTB 
 INTCON.7=1
 
 Print At 1,1, "PWM DUTY :"
 Print At 2,1, "RPM      :"
 
 Clear BUF1
 Clear BUF2
 Duty = 1
 Loop:
    HPWM 1,Duty,1000         ' Send duty cycle PWM signal at 1KHz


    
B1: 'Button SW1,0,240,100,BUF1,0,B2
    If BUF1=2 Then
    BUF1= 0
    Inc Duty 
    Print At 1,11,"        "
    Print At 1,11,Dec Duty
    If Duty > 254 Then 
        Duty = 254
       Print At 1,11,"        "
       Print At 1,11,Dec Duty
    EndIf
    EndIf
    
B2: 
    If BUF2 = 2 Then 
    BUF2 = 0
    'Button SW2,0,240,100,BUF2,0,BExit
    Dec Duty 
    Print At 1,11,"        "
    Print At 1,11,Dec Duty
    If  Duty < 1 Then 
        Duty = 1
        Print At 1,11,"        "
        Print At 1,11,Dec Duty
    EndIf
    EndIf
BExit:
    
    
    If SW1=0 And BUF1=0 Then 
        DelayUS 10
        If SW1 = 0 Then 
             BUF1= 1
        EndIf
    EndIf
            
    If SW2=0 And BUF2=0 Then 
        DelayUS 10
        If SW2 = 0 Then 
            BUF2=1
        EndIf
    EndIf
    
    GoTo Loop
    




Disable         'Butun interruptları kapat
Main_Int:
    ' Portb.0 int veya Timer 0 interruptlarını kontrol et
    INTCON.7=0
    If INTCON.1 = 1 Then 
    ExtInt:
        'Portb.0 dan gelen interrupt
        RPM=rpm+1
        INTCON.1 =0
    ElseIf INTCON.2 = 1 Then 
        'pir1 = 0 
        TimerInt:
        'Timer dan gelen interrupt
         Inc US
         If US = 318 Or US=36 Or US=54 Or US=74 Then
            If BUF1 = 1 Then BUF1=2
            If BUF2 = 1 Then BUF2=2
         EndIf           
         If US > 74 Then
            Clear US
            Inc sn


            
            If sn>60 Then
                Print At 2,6,"        "; 
                Print At 2,6,Dec RPM
                
                Clear RPM
                Clear sn
            EndIf
         EndIf
         
         INTCON.2=0
    EndIf       
    
  
Context Restore
Resume
Enable
 
abi gerçekten çok sağol uğraşmıssın ama bana ccs c de yazılmış program gerekiyo
 
ben de dc motor hız kontrolü bitirme ödevi aldım bu konuda bitirme ödevi tezi elinde olan varsa paylaşabilir mi acaba ?
 
mezun olanlara sordugumda onlarda farklı dökümanlardan birleştirdiklerini söylediler yani a dan z ye tamamen bireysel yapıldıgını duymadım acıkcası
 

Forum istatistikleri

Konular
128,126
Mesajlar
915,241
Kullanıcılar
449,839
Son üye
Qkay

Yeni konular

Geri
Üst