role sorunu

Başlatan trilian, 10 Mart 2019, 22:53:22

ete

Bir şey de ben ekleyeyim. İnce çizilen ve sarmaş dolaş gideceği yere götürülen kanallar bobin etkiside yaratır ve bununda ark oluşumunda etkisi olabileceğini unutmayın.
İşin doğrusu olabildiğince kalın ve doğrusal götürülmüş kanal olmalıdır. Kanal çiziminde 90 dercelik dönüşlerden daima kaçının.

Ete

aRci

SOn zamanlarda dc motor yön vermem gerekti röle kontakları buradaki gibi yapışma yada temassızlık oluyordu. bende mosfetli devreler deneme yaptım devre 12v de sürücü entegre olmadan sağlıklı çalışırken 24v de yanmıştı sonradan gate gerilimi kaynaklı olduğunu düşündüm bu zaman da çok ca mosfet yaktım. daha sonrasında röleli devreyi buseferde p kanal mosfeti seri bağlayıp yön vermeden önce hattı kapatıp daha sonra röleyi kontrol edip mosfeti pwm ile çalıştırdım. şimdilik kısa süreli test ettim bir problem yok şimdilik.

bunun röle kontaklarındaki arkı ve dc motora yavaçca yol vermenin motor fırçasına aşınmasın az olacağını düşünüyorum.




mehmet

N-kanal mosfet kullansanız, daha yüksek akımlı ve daha ucuz olur. Basit bir bjt ile kontrol edebilirsiniz.
Ancak, P-kanalı kontrol etmek biraz sıkıntılı olabilir.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr
CC BY

muyat

@aRci
Senın koydugun fotodaki tekniğin hemen hemen benzerini ben başka bir kartta da görmüştüm.
IRf3205 mosfet vardı.Zaten yukarda anlattıgım şekilde sorunu çözemeseydik bu tekniği deneyecektım en son ama gerek kalmadı.

Ve Çalışma şekliydi şöyle idi o kartın.
Öncelikle röleler çekili değilken  motorun her iki ucunda da sabit +12v vardı.(Senin koydugun fotoda motor her iki ucu röle çekili değilken eksiye baglı)
Sonrasında Motor tek bir tarafa dönecekse önce rölenin biri çekiyor arkasından da mosfet o yola eksi veriyordu.Böylelıkle röle ilk çektigi anda kontak ucunda artı veya eksi olmadıgı için ark da yapmıyordu.
Bence bu şekılde n kanal mosfetle kontrol etmek daha sorunsuz olur diye düşünüyorum.


aRci

@mehmet @muyat
cevap için teşekkür ederim ben bu devrenin devamında şönt direnc ile akım ölçmek ve ardından akıma göre zorlama olduğunu tespid ederek motor koruma da yapacağım eğer n kanala mosfet kullanırsam şönt direncin yeri mosfete göre gnd yada role tarasında olmasının bir farkı olurmu.

ahmet_zxc

bi eklemede ben yapayım

"araçta akü ceyranı kullanıyoruz."

demişsin.

otomotiv tipi role kullanmalısın.. araçta titreşim de normal rolelerde hayal edemeyeceğin problemlere sebep olabilir...

https://www.amazon.com.tr/CLISPEED-Otomotiv-Par%C3%A7as%C4%B1-R%C3%B6leler-Otomatik/dp/B0D2M3G6QP

görsel olsun diye yolladım, her sanayide bulunur bukadar pahalı değil

mehmet

Alıntı yapılan: aRci - 15 Kasım 2024, 11:09:43@mehmet @muyat
cevap için teşekkür ederim ben bu devrenin devamında şönt direnc ile akım ölçmek ve ardından akıma göre zorlama olduğunu tespid ederek motor koruma da yapacağım eğer n kanala mosfet kullanırsam şönt direncin yeri mosfete göre gnd yada role tarasında olmasının bir farkı olurmu.
Hiç farketmez. N-kanalda gnd'ye göre fark alırsınız. Bir opamp ile gerilimi yükseltirseniz daha iyi olur.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr
CC BY

onurinci

yüksek akımlı P kanal bulmak neredeyse imkansız gibi..
ben tasarımı N kanala göre dizayn ediyorum. ICL7667 TC427 , TC4427 , Si9987 ,MC33151 , TND301 türevleri

artık en uygun en mantıklı ve o an bulunabilen bir model seçiyorum. acı tecrübe ile öğrenmiştim bunların

INVERT edenleride var dikkat etmek gerekiyor. eğer GATE'yi PIC-Micro ile sürüyorsam ya bu tür MOSFET

Driver ile sürüyorum . dezavantajıda mevcut sürücü için 12...15 Volt'a gerek oluyor. fakat piyasada
 LOGIC GATE MOSFET'lerde mevcut PIC'ten gelen 5 volt bunları sıkıntısız sürebiliyor . eğer MOSFET'i süremezseniz Lineer mod'da kalır bir Watt'lı dirence dönüşür. ısınır yanar her türlü sıkıntı çıkarır.

aRci

İyi akşamlar,
Bağlantıdaki şemayı uygulayacağım.
mosfetin gnd tarafına seri direnci koyacağım resimde +12 yazan kısımada motoru bağlayacağım.
Elimde IRF3710 N kanal mosfet var ilk olarak birtanesini bağlayarak test edeceğim. mosfetin datasheet de Vgs(th) max 4v görülüyot sürücü besleme olarak 12v bağlamam proble olacakmı.

Pwm ile sürerken bazı forumlarda duty degeri max (duty = 255 ) verilmemeli şeklinde karşılaştım. Pwm ile modfet sürerken dikkat edeceğim neler vardır.

https://electronics.stackexchange.com/questions/343504/some-trouble-for-drive-a-mosfetirf540n-with-drivertc4427-overheating

muyat

Bence seri direnç yerine acs712 kullan.Ben 3 yıldır kullanıyorum.Akımı ister artı tarafından,ister eksi tarafından ölç farketmiyor

aRci

Merhaba;
Devrenin uygulamasını yaptım sonunda programda şekillendi biraz. ekteki resimde olan akım ölçme devresini uyguladım. paylaştığım programdan bahsetmem gerekirse devre üzerinde 4 adet pot ve birde motor akım ölçümü için 5 adet analog kanaldan değer ölçülüyor. her kanal sırası ile 30 kez okunum ortalaması alarak ilgili değişkenlere değerleri aktarıyorum.

Yaşadığım bir problem olarak motor dan okunan değerde bazen anlık düşük yada yuksek değer olmakta motor kalkış anında yukselmesi normal olabilir ama motor sabit yukte iken anlık yükselip düşmesi kontrolde güvensizlik yapıyor.

programda akım kontroldeki yapı da Motor akımı Ang1 değişkeninde , motor akım karşılaştırmasını ise Ang3 değişkeninde tutuyorum eğer motor akımı Ang3 den fazla olursa YAkm adlı çıkışı aktif ediyorum. bu denemelerde 2 adet 12v 7ah aku seri bağlı devreye 24v olarak bağlılar. motor hareket ederken akım sınırı ayarı yaptığım potu ayar ederek çıkış aktif ettiği noktaya kadar ayarlıyorum ardından sönecek kadar ayarı geri düşürüyorum. bu hali ile motoru sağ sol ayarı verdiğimde bazen ilk kalkışta bazen normal çalışırken yuksek akım ledi yanıp sönüyor.

bunun normal olmadığını düşünüyorum iyileştirme için tavsiyeniz nedir.

motor kontrol ile ilgili tecrübem yoktur. Anlık değer okuma hataları varsa bunun için neler yapabilirim.

devre çizimim çok karışık bir türlü düzgün çizmeyi öğrenemedim iyileştirip onuda paylaşırım.

devre giriş 24v tl431 ile dc12v ye düşürerek röleleri, lm358 ve tc4427 yi besliyorum. 12v yi 7805 ile de pic16f1827 yi ve potları beslemekteyim.


'****************************************************************
'*  Name    : PwmROLE.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2024 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 10.11.2024                                        *
'*  Version : 1.0                                               *
'*  Notes   : PIC16F1827 PWM DC Motor Kontrol                   *
'*          :                                                   *
'****************************************************************
    ASM
    __config _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF & _CPD_ON & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_ON & _FCMEN_OFF    
    __config _CONFIG2, _WRT_OFF & _PLLEN_ON & _LVP_OFF & _STVREN_OFF 
    endasm

    OSCCON = %11110000      '8 mhz internal clock, PLL on     
    ANSELA = %00011111      ' AN on PortA.0 analog
    ANSELB = %00000000      ' Digital inputs
    
    OPTION_REG.7=0
    'WPUA   = %11000000
    'WPUB   = %00110010
    
    DEFINE OSC 32
    DEFINE ADC_BITS 10     ' 10 bit A/D Conversion
    DEFINE ADC_CLOCK 1
    DEFINE ADC_SAMPLEUS 10 ' 5 uS A/D sample time

'///////////////////////////Analoglar///////////////////////////////      
    Symbol GODONE    = ADCON0.1  'Dönüştürme Durum Biti Devam ediyor = 1
    Symbol ADONE     = ADCON0.0  'Dönüştürme Modülü Etkin = 1
    Symbol ADIF      = PIR1.6      'ADC okuma bitti kesme bayrağı 
    'ADCON1 = 128
    'ADCON1 = %10100011
    'FVRCON = %10000011
    FVRCON = 0'$83
    ADCON1 = $D0
   	DACCON0 = 0
    DACCON1 = 0
    CM1CON0 = 0
    CM2CON0 = 0
    CM1CON1 = 0
    CM2CON1 = 0
    CPSCON0 = 0
    'RCSTA = $90   ' Enable serial port & continuous receive
    'TXSTA = $24   ' Enable transmit, BRGH = 1
    'SPBRG = 64    ' 9600 Baud @ 32MHz, 0,04%
    'SPBRGH = 3
    'BAUDCON.3 = 1 ' Enable 16 bit baudrate generator

    Symbol GIE       = INTCON.7    'genel kesmeler aktif                         
    Symbol PEIE      = INTCON.6    'Çevresel kesmeler aktif
    Symbol RCIE      = PIE1.5      'EUSART alma kesmesi              
    Symbol RCIF      = PIR1.5      'EUsart Kesme Bayrağı               
    Symbol SPEN      = RCSTA.7    'Seri Bağlantı Noktası Etkin = 1
    Symbol CREN      = RCSTA.4    'Sürekli veri alma etkin = 1
    Symbol OERR      = RCSTA.1    'Sürekli veri alma etkin = 1
    
    PEIE             = 0  'Çevresel Kesmeler Aktif                                                                                
    SPEN             = 0  'Seri Bağlantı Noktası Etkin = 1
    CREN             = 0  'Sürekli veri alma etkin = 1
    CREN             = 0

    RCIE             = 0  'EUsart Alma Kesmesi Aktif  = 1

    GIE              = 0  'Tüm kesmeler açık
    'ON INTERRUPT GOTO KESME 'komut satırını ekle programa (BASLA satırından bir evvele koyabilirsin)
        
    Porta = 0 
    Portb = 0 
    TRISA = %00011111   
    TRISB = %00010110
    WPUB  = %00010110
    
    MDCON=0                'modülator çıkışı iptal
    MDSRC=0                'modülasyon kaynak seçimi                 pwm sayfa 205 ten başlıyor
    MDCARH=0               'modülasyon yüksek biti
    MDCARL=0               'modülasyon düşük biti
    CCP1CON= %00001100     'pwm moduna ve tek pin çıkışına ayarlandı
    CCPTMRS=0              'tüm ccp lere tmr2  seçildi
    CCPR1L=0 
    CCPR1H=0
    T2CON=%00000101        'Prescaller / 16, Timer2 ON  'ccp1 için prescaller ayarlandı ve t2 devreye alındı
    PR2=249

    'Portb.3 Pwm Cıkıs
    Symbol Rly1    = Portb.7
    Symbol Rly2    = Portb.6
    Symbol Ttk1    = Portb.1
    Symbol Ttk2    = portb.2
    Symbol Ttk3    = portb.4
    Symbol YAkm    = portb.5
    
    Deger var word
    Dongu var byte
    Kanal var byte
    Ang1  var word
    Ang2  var word
    Ang3  var word
    Ang4  var word
    Ang5  var word
    
    OrtDgr var word
    Tmp1   var byte
    PwmDuty var word
    KnmMtr var byte
    X      var word
    YAkmSay    var word
    
    CCPR1L=0 
    CCPR1H=0 
    PwmDuty = 0
    KnmMtr = 0 
    YAkmSay = 100
    low Rly1
    low Rly2
'===============================================================================
'===============================================================================
basla:
      gosub AdcOku
      if Ttk1 = 0 and PwmDuty = 0 then
      low Rly2:high Rly1
      gosub YkrRampa
      endif
      if Ttk2 = 0 and PwmDuty = 0 then
      low Rly1:high Rly2
      gosub YkrRampa
      endif
      if Ttk1 = 1 and Ttk2 = 1 and PwmDuty != 0 then
      gosub AsgRampa
      endif  
      'pause 300
goto basla
'===============================================================================
'===============================================================================
RTemp1   var word
RTemp2   var word
Bkl      var word
YkrRampa:
Bkl = 2
'Ang2 = 1000
for PwmDuty = 0 to Ang2
    pause Bkl
    gosub PwmVer
next PwmDuty
Return
'===============================================================================
'===============================================================================
AsgRampa:
Bkl = 2
'Ang2 = 1000
for PwmDuty = ang2 to 1 Step -1
    pause Bkl
    gosub PwmVer
next PwmDuty
PwmDuty = 0
gosub PwmVer
Low Rly1
Low Rly2
Return
'===============================================================================
'===============================================================================
PwmVer:
if CCP1CON.2= 0 then CCP1CON.2= 1
if CCP1CON.3= 0 then CCP1CON.3= 1
    X = PwmDuty 
    CCP1CON.4 = x.0
    CCP1CON.5 = x.1
    CCPR1L = (X>>2)
return
'===============================================================================
'===============================================================================
AdcOku:
    For Kanal = 0 to 4
        OrtDgr = 0 
        for Dongu = 0 to 29
            lookup Kanal,[0,4,8,12,16], ADCON0
            ADIF   = 0
            ADONE  = 1  'Dönüştürme Modülü Etkin = 1
            GODONE = 1
            while GODONE = 1
            wend
            ADONE  = 0
            Deger = (ADRESh*256) + ADRESL 
            OrtDgr = OrtDgr + Deger
        next Dongu   
        OrtDgr = OrtDgr / 30
        if Kanal = 0 then     'Motor akım değeri
           Ang1 = OrtDgr
        endif  
        if Kanal = 1 then     'Motor hız değeri
           Ang2 = OrtDgr
           if Ang2>= 1001 then Ang2 = 1000
        endif  
        if Kanal = 2 then     'akım sınır değeri
           Ang3 = OrtDgr 
        endif  
        if Kanal = 3 then
           Ang4 = OrtDgr * 5     'Kalkış rampa değeri
           if Ang4 >= 5001 then Ang4 = 5000
        endif  
        if Kanal = 4 then
           Ang5 = OrtDgr * 5     'assağı rampa değeri
           if Ang5 >= 5001 then Ang5 = 5000
        endif  
    next Kanal 
    if ANg1 >= Ang3 then
       high YAkm
    else
       low Yakm
    endif
           
return
'===============================================================================
'===============================================================================                                       






ete

Öncelikle programdaki ufak tefek kusurları düeltip yeniden gözlem yapılması gerekir.
Birinci kusur;
ADC ölçümünde kullanılacak olan CLK seçimin hatalı. Data sheet'e bakacak olursan 32Mhz OSC clk için ADCON1 registeri 4-6 bitleri için kullanman gereken değer %101 değil, %110 olmalı.Data sheet de verilen tabloya göre %010 da olabiliyor.

İkinci kusur yada eksiklik diyelim, ADC okumalarında ardışık okuma pek sağlıklı olmuyor. İki okuma arasına mutlaka 5-10us lik gecikme koymanda fayda var.

Başka kusur göremedim. Bu arada PWM frekansın 8Khz ve T2CON bölme oranın ise 1/4 oraya bölme oranını 1/16 yazınca orada da bir kusur var zannettim ama değilmiş.

Ete

aRci

Alıntı yapılan: ete - 17 Aralık 2024, 12:01:42Öncelikle programdaki ufak tefek kusurları düeltip yeniden gözlem yapılması gerekir.
Birinci kusur;
ADC ölçümünde kullanılacak olan CLK seçimin hatalı. Data sheet'e bakacak olursan 32Mhz OSC clk için ADCON1 registeri 4-6 bitleri için kullanman gereken değer %101 değil, %110 olmalı.Data sheet de verilen tabloya göre %010 da olabiliyor.

İkinci kusur yada eksiklik diyelim, ADC okumalarında ardışık okuma pek sağlıklı olmuyor. İki okuma arasına mutlaka 5-10us lik gecikme koymanda fayda var.

Başka kusur göremedim. Bu arada PWM frekansın 8Khz ve T2CON bölme oranın ise 1/4 oraya bölme oranını 1/16 yazınca orada da bir kusur var zannettim ama değilmiş.

Ete


teşekkürler ete hocam ADCON1 için 2 ayarıda denedim ve okumalar arası 10us bekleme koydum gözle görülür bir değişim var gibi sabit bir yük alrında test edemiyorum şuan için. 2 adet liner motor ile herhangi bir yük olmadan boşta motorları çalıştırıyorum 2 si beraber boşta 1.2a civarı akım çekiyor. yük olarakda deneme için hareket koluna baskı yapıyorum elle burada ki baskı yı sabit tutuamadığım için akım değerlerinde oynama yapıyor olabilir.

bazen pwm sıfıra geldiğinde role kapanırken asırı akım lambam yanıp sönüyor röleler ile lm358 aynu 12v den beslenmesi buna sebep olabilirmi.

ete

Kesin şundan olur diyebileceğim bir durum değil maalesef. Olabilir diyebilirim yalnızca.
Ete

Powered by EzPortal