ledlerle motor kontrolü

Başlatan samuray84, 04 Kasım 2011, 16:43:48

samuray84

 :-\
merhaba, ben elektronikçi değilim pic dünyasına adım atalı bir iki hafta oldu. step motor ve dc motor kontrolü ile ilgili biraz kaynak buldum hatta birkısım devre elemanlarını aldım konya sokaktan, ancak henüz borda bağlayıp çalıştırcak cesareti bulamadığımdan proteus kurdum. Bilgisayarcı olduğumdan da ccs kulağa daha hoş geliyor. İşin özü, bulduğum kaynaklar ya isis projesi ve hex kodu şeklinde, ya da resim dosyası ve mplab dosyası, yada görsel döküman olmayan sadece ccs kaynak kodu...

sadede gelince de, birkaç tane ledle ( atıyorum 1 numaralı led sağa 1 saniye döndürcek, 8 numaralı led sola 0.1 saniye döndürcek ...gibi) motor kontrolü, yani hangi led yanarsa, o ledi yakan akım aynı zamanda  pic'in de bi bacağından girip motora komut verilmesini sağlayacak.  bi nevi ledler  buton görevi görecek.

motor icin gerekli kod kısmını biraz uğraşır hallederim gibi ama devre tasarımı biraz sıkıntılı. Ledleri ve Pic'i deneme yanılma yöntemi yüzünden yakmak istemiyorum. oyüzden , özellikle de  led'i buton gibi kullanabilmemi sağlayacak düzeneğin örneği varsa (ben bulamadım) paylaşırsanız sevinirim.

her türlü yorum ve cvp yazan arkadaşlara şimdiden cok teşekkür ediyorum

eistain_54

hocam ledleri başka bir kaynak ile mi süreceksin?gerçi başka bir ihtimal gözükmüyor ama...
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

kudretuzuner

Merhaba
Aşağıdaki link işinize yarar mı?Sıfırdan PIC programlamak isteyen öğrenci arkadaşlar için basit bir çalışma yapmıştım belki işinize yarar.Kolay gelsin.
https://rapidshare.com/files/1096640038/ANTRAK1_ASM_BASLANGC.rar
Amatör

samuray84

evet einstein54, ledlerin olduğu devreyi ayrı bi modül gibi düşünebiliriz. yani bu bizim step motorlu devreyle bi ilgisi yok,

sanırım gereken şey, ledlere nekadarlık bi akım geldiğini ölcmek. sonrasında ledlerin bacaklarından o akımı bi şekilde almam gerekcek tabi ledlerin yanmasına engel olmadan ve o düzeneği yakmadan:)

eistain_54

Bir pic mikrodenetleyicinin herhangi bir pinine uygulanabilecek en yüksek akım 25ma düzeyindedir. Led tarafını öyle ayarlamalısın ki lede en fazla 25ma akım gitsin.sıralama şöyle olmalı. Direnç led picin giriş ucu ve besleme yada toprak.şema paylaşmak isterdim ama telden yazıyorum. O yüzden soyut kaldı. Umarım anlaşılır olur. Yani lede bağlayacağın direnç led üzerinden en fazla 25ma kadar akım geçirmeli.
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

samuray84

Alıntı yapılan: samuray84 - 05 Kasım 2011, 01:53:27
evet einstein54, ledlerin olduğu devreyi ayrı bi modül gibi düşünebiliriz. yani bu bizim step motorlu devreyle bi ilgisi yok,

sanırım gereken şey, ledlere nekadarlık bi akım geldiğini ölcmek. sonrasında ledlerin bacaklarından o akımı bi şekilde almam gerekcek tabi ledlerin yanmasına engel olmadan ve o düzeneği yakmadan:)
kudret hocam cok teşekkürler, indirdim dosyayı bakcam bu hafta evde buludukca:)

samuray84

ben de aslında anlatmak istediim şeyi bi kücük resim dosyası olarak göstereyim, ama şimdi tam yatmak üzereydim:) fırsat bulduğum en yakın zamanda yükleyeceğim, bu arada teşekkürler tekrar, ve iyi bayramlar:)

samuray84

araya bayram girdi unuttuk tabi. Neyse Ben şimdi alette ölçümler yaptım. bu ledlere gelen akım 5mA ve ledin voltajını ölcünce 1.8 cıkıyo, Ama sanırım pic'e 5 Voltluk bi akım gelmeli.  İkinci kısım icin de devreyi kurdum ama motor dönmedi. Sanırım pic'de veya yazılımsal bi sıkıntı var. Ben ilkönce kodu paylaşayım.

Bu 3 tane buttonla ( sağ -sol-start) dc motoru cevirebildiğimiz bi program kodu. Bi kitaptan bakarak devreyi ve kodu oluşturdum. Compile ederken 1 warning verdi ama hata yok. Kodda bi gariplik görüyomusunuz?


#include <16f877.h>

#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=4000000)

#define button_ileri pin_a0
#define button_geri pin_a1
#define button_stop pin_a2
#define input1 pin_b0
#define input2 pin_b1
#define enable_a pin_b2
#define enable_b pin_b3

void main()
{
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_CCP1(CCP_OFF);
   setup_CCP2(CCP_OFF);
   
   output_high(enable_a);
   output_low(enable_b);
   
   while(1)
   { 
      if(input(button_ileri))
      { 
         output_high(input1);
         output_low(input2);
      }
     
      if(input(button_geri))
      {
         output_high(input2);
         output_low(input1);
      }
      if(input(button_stop))
      {
         output_low(input1);
         output_low(input2);
      }
   }
}
     
     

fahri-

kod'a bakmadım ama. motorları direk pic'in pinleriyle mi sürmeye çalışıyorsun?

samuray84

yok hocam devre şu şekilde. Bunu bu şekilde calıştırdıktan sonra butonları söküp , dediğim gibi ledlerle çalıştırcam. O kod kısmıyla biraz boşuşcam ama hic calışmayınca bişey yapamıyorum. Alternatif bi devre var ise önerebileceğiniz, onu yapmaya çalışayım. Yada burda bi hata var mı? olmazsa yaptığım devrenin de fotoğrafını çeksem, ama anlaşılmaz heralde o

[IMG]http://img526.imageshack.us/img526/7113/20112011152.jpg[/img]

Uploaded with ImageShack.us

samuray84

bc238 model transistörlerle işi çözdüm:) devreyi bağladım sayılır da kodda sıkıntı var. Biraz uğraşayım bakalım... çok sağolun... ccs bilen varsa biri bana neden integer türünde değişken tanımladığımda "a numeric expression must appear here" yazdığını acıklayabilirse cok sevincem:))


justice_for_all

Alıntı yapılan: samuray84 - 09 Aralık 2011, 23:35:39
bc238 model transistörlerle işi çözdüm:) devreyi bağladım sayılır da kodda sıkıntı var. Biraz uğraşayım bakalım... çok sağolun... ccs bilen varsa biri bana neden integer türünde değişken tanımladığımda "a numeric expression must appear here" yazdığını acıklayabilirse cok sevincem:))
o degiskeni tanimladiginiz yerde veya ust satirlarda buyuk ihtimal bi hata var cunku derleyici hatayi surekli hatanin alt satirinda gosteriyor.
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

samuray84

yok hocam hatanın sebebi bu ccs in eski bi c derleyicisi olmasından kaynaklıymış. değişken tanımlarının fonksyon başlıklarının hemen altında yapılması gerekiyormuş. bikac satır yukarda tanımlayınca çalıştı:) çok teşekkürler