Picproje Elektronik Sitesi

ENDÜSTRiYEL OTOMASYON => Motorlar & Sürücüler => Konuyu başlatan: HackTroj - 05 Ocak 2012, 18:46:27

Başlık: dc motor yön hız kontrolü(pwm,l298,16f628)
Gönderen: HackTroj - 05 Ocak 2012, 18:46:27
merhaba arkadaşlar biliyorum benzer çok konu var ama hiçbirindeki düzenekleri çalıştıramadım.. bilgili bi arkadaşımız bana l298 entegresini ve h köprüsü denen yapının nasıl bu işi sağladıgını anlatabilir mi... mesela pwm i anladım sinyaller şeklinde gönderiyo motorun hızını ama direk entegresiz kullandıgımda isiste normal motor hızı doğrudan 12 volt verdiğimde 500 rpm çıkıo ama pwm ile 255 sinyali gönderdiğimde 160 ta falan kalıodu sanırım ... bir de iki motoru farklıı yön ve hız kontrolüne tabi tutabilir miyim aynı anda?
Başlık: Ynt: dc motor yön hız kontrolü(pwm,l298,16f628)
Gönderen: justice_for_all - 05 Ocak 2012, 19:41:03
l298 entegresi ile iki motoru farklı yonlerde ve farklı hızlarda kontor edebilirsin l298 entegresinin 4 girisi 4 cıkısı vardır ikisi bi motor icin 2si diger motor icin enable pinlerine pwm sinyal uygulanır hızı degiskense ornegin 1.girise 1sinyali 2.girise 0 sinyali gondrdgimize motor saga donuyorsa tam tersi sinyal gonderdgmzde motor aksi yone donecektir
Başlık: Ynt: dc motor yön hız kontrolü(pwm,l298,16f628)
Gönderen: HackTroj - 05 Ocak 2012, 19:44:40
tam olarak gerçek bi motorda test etmedim ama 16f628 ile isis de denemeler yapıyorum ... kullandıgım motoru 12 v olarak ayarladım ve 12v güç veriyorum motora normal +- şeklinde 12 volt verdiğimde sanrm rpm değeri altındaki 500 görünürken bu şekilde bagladıgımda sanıyorumki maksimum pwm değeri 255 ve 255 verdiğimde 90 küsürü geçmiyo bu normal mi yoksa bi hata mı yapıyorum bi de 16f628de tek pwm çıkışı mı var?
Başlık: Ynt: dc motor yön hız kontrolü(pwm,l298,16f628)
Gönderen: vitruvius - 05 Ocak 2012, 20:03:06
628'de tek PWM çıkışı vardır. Devre şemanızı ve kodlarınızı paylaşırsanız daha çok yardımcı olabiliriz.
Başlık: Ynt: dc motor yön hız kontrolü(pwm,l298,16f628)
Gönderen: justice_for_all - 05 Ocak 2012, 20:05:29
pwm frekansına gore o deger dgsir pwm cozunurlugu pwm frekansına gore 10 bitte olabilir 8 bitte farklı pwm frekansları deneyin
Başlık: Ynt: dc motor yön hız kontrolü(pwm,l298,16f628)
Gönderen: HackTroj - 05 Ocak 2012, 20:14:14
her hangi bi devre şemam yok arkadaşlar sadece araştırıyorum şimdilik elimde oyuncak uzaktan kumandalı bi araba vardı kendi sağlamdı kumandası yoktu arabanın hem kendimi pic konusunda geliştirmek hemde ilerde daha büyük komplike ve özel bişiler yapmak istediğimden şimdilik bu protatip üzerinde çalışıcam henüz udea dan sipariş verdiğim rf modulleri gelmedi düzgün bi devre isiste çıkartmadan da diğer malzemeleri almayım dedim gereksiz masraf olmasın die ... freakans hızına göre nasıl değişir rpm ... 500 ile sürüyorum motora pwm i .. azaltmalı mı yoksa arttırmalı mıyım işin ilginç yanı bi de butonum var buton sadece pwm e gönderilen değeri değiştiriyo
#define tus Button(&PORTA,0,100,0)
#define tus2 Button(&PORTA,1,100,0)
unsigned char aaa;
void interrupt(void){
     if (PIR1.TMR1IF){               //Let me use this even if no other interrupts are enabled
     if(tus)
aaa=200;
if(tus2)
aaa=0;            //To show the output
     TMR1L = 100;                   //TMR1 start time
     TMR1H = 90;
     PIR1.TMR1IF = 0;              //reset timer1 flag
     }
}

void main()
{
TRISA=3;
PORTA=0;
TRISB=0;
PORTB=0;
T1CON.TMR1CS = 0;                    // Fosc / 4
        T1CON.T1CKPS1 = 4;                   // Setting prescale value to 1:8
        T1CON.T1CKPS0 = 1;                   //              "

        TMR1L = 100;                             //TMR1 start time
        TMR1H = 90;

        PIE1.TMR1IE = 1;
        INTCON.PEIE = 1;
        INTCON.GIE = 1;
                T1CON.TMR1ON = 1;                    //turn on timer1

aaa=0;
PORTB.F0=1;
PWM_Init(500);
PWM_Start();
PWM_Change_Duty(0);
while(1)
{
PWM_Change_Duty(aaa);
}
}


kod böyle


bu da şema

[IMG]http://img860.imageshack.us/img860/4206/adszoj.jpg[/img] (http://imageshack.us/photo/my-images/860/adszoj.jpg/)

Başlık: Ynt: dc motor yön hız kontrolü(pwm,l298,16f628)
Gönderen: justice_for_all - 05 Ocak 2012, 20:31:54
isiste pwm ucunu osilaskopla olcermisin doluluk oranı(1 olma yuzdesi) ne sekilde
Başlık: Ynt: dc motor yön hız kontrolü(pwm,l298,16f628)
Gönderen: HackTroj - 05 Ocak 2012, 20:38:11
osiloskop kullanmaktan pek anlamam umarım doğru bağlamışımdır
[IMG]http://img812.imageshack.us/img812/1943/aaaumq.th.jpg[/img] (http://imageshack.us/photo/my-images/812/aaaumq.jpg/)
Başlık: Ynt: dc motor yön hız kontrolü(pwm,l298,16f628)
Gönderen: justice_for_all - 05 Ocak 2012, 21:22:28
resimden pek belli olmuyor ama dogru gibi doluluk oranıda %100 proteustan olabilir ozaman
Başlık: Ynt: dc motor yön hız kontrolü(pwm,l298,16f628)
Gönderen: HackTroj - 06 Ocak 2012, 00:20:40
teşekkürler verdiğiniz bilgilerle ... 2 pwm destekli 887 ile çözdüm şu an 2 motoru kontrol edebiliorm yön ve hız olarak :) tekrar tekrar teşekkürler bilgileriniz için
bu arada yeni bi sorun çıktı
motorların ikisine de orta yada yüksek hız verdiğimde rpm ler normal değerine yakın çıkıo ama her hangi birine 0 a yakın verdiğimde diğerinin normal değeri de yarısından daha az oluo
devre bu aceba nerde hata yapıyorum
(http://c1201.hizliresim.com/t/6/1lw9j.jpg)
Başlık: Ynt: dc motor yön hız kontrolü(pwm,l298,16f628)
Gönderen: HackTroj - 06 Ocak 2012, 00:22:38
kod da burda
#define tus Button(&PORTA,0,100,0)
#define tus2 Button(&PORTA,1,100,0)
unsigned char aaa;
void interrupt(void){
     if (PIR1.TMR1IF){               //Let me use this even if no other interrupts are enabled
     if(tus)
aaa=200;
if(tus2)
aaa=0;            //To show the output
     TMR1L = 100;                   //TMR1 start time
     TMR1H = 90;
     PIR1.TMR1IF = 0;              //reset timer1 flag
     }
}

void main()
{
TRISC=0;
PORTC=0;
TRISD=0;
PORTD=0;
T1CON.TMR1CS = 0;                    // Fosc / 4
        T1CON.T1CKPS1 = 4;                   // Setting prescale value to 1:8
        T1CON.T1CKPS0 = 1;                   //              "

        TMR1L = 100;                             //TMR1 start time
        TMR1H = 90;

        PIE1.TMR1IE = 1;
        INTCON.PEIE = 1;
        INTCON.GIE = 1;
                                   //turn on timer1

aaa=0;
PORTD.F0=1;
PORTD.F1=1;
PWM1_Init(500);
PWM1_Start();
PWM1_Change_Duty(255);
PWM2_Init(500);
PWM2_Start();
PWM2_Change_Duty(1);

}
Başlık: Ynt: dc motor yön hız kontrolü(pwm,l298,16f628)
Gönderen: justice_for_all - 06 Ocak 2012, 00:40:38
ama yaptiginiz sekilde her bir motoru sadece tek yonlu dondurursunuz tam olarak istediginiz bumu?eger devreyi gercekleyecekseniz 100 direncler fazla ya orayi saseye baglayin yada direnc degerlerini kucultun similasyondada yaparmisiniz aynisini
Başlık: Ynt: dc motor yön hız kontrolü(pwm,l298,16f628)
Gönderen: HackTroj - 06 Ocak 2012, 01:01:05
evet o hatamı demn ters tarafa test ederken farkettim ve o uçları da l298 aracılığıyla pic e bağlayıp sinyal verdim ters yöne çalıştırdım ama 90 rpm de kalmıştı :D şimdi söylediğiniz gibi dirençleri kaldırıp direk toprakladım ve 450 rpm e çıktı teşekkür ediyorum sanırım şu an düzgün bi biçimde oldu ... konuyla alakasız ama birşey sormak istiyorum ... neden her mesajım onay bekliyo... yeni üye oldugum için mi yoksa bende mi bi sıkıntı var
Başlık: Ynt: dc motor yön hız kontrolü(pwm,l298,16f628)
Gönderen: vitruvius - 06 Ocak 2012, 09:31:14
Alıntı yapılan: HackTroj - 06 Ocak 2012, 01:01:05
evet o hatamı demn ters tarafa test ederken farkettim ve o uçları da l298 aracılığıyla pic e bağlayıp sinyal verdim ters yöne çalıştırdım ama 90 rpm de kalmıştı :D şimdi söylediğiniz gibi dirençleri kaldırıp direk toprakladım ve 450 rpm e çıktı teşekkür ediyorum sanırım şu an düzgün bi biçimde oldu ... konuyla alakasız ama birşey sormak istiyorum ... neden her mesajım onay bekliyo... yeni üye oldugum için mi yoksa bende mi bi sıkıntı var

Yeni üye olduğunuz için.